From c1de2cd962eb713b20a64277d2185cde1b5ed964 Mon Sep 17 00:00:00 2001 From: Philip Gai Date: Thu, 2 Sep 2021 09:10:32 +0000 Subject: [PATCH 01/17] Fix source branch ref --- src/azureDevOpsClient.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/azureDevOpsClient.ts b/src/azureDevOpsClient.ts index faa7343..ded0971 100644 --- a/src/azureDevOpsClient.ts +++ b/src/azureDevOpsClient.ts @@ -33,8 +33,8 @@ export class AzureDevOpsClient { const repo = await this.getRepo(gitClient); this._context.log.debug('Got it.'); - let sourceBranchFinal = sourceBranch; - if (!sourceBranchFinal) { + let sourceBranchFinal = `heads/${sourceBranch}`; + if (!sourceBranch) { this._context.log.debug('Getting the default branch in ADO...'); sourceBranchFinal = this.getDefaultBranch(repo); this._context.log.debug('Got it...'); From eedc94e2636032d979d59b6f3d40449231d4083b Mon Sep 17 00:00:00 2001 From: Philip Gai Date: Fri, 3 Sep 2021 22:25:36 -0500 Subject: [PATCH 02/17] Use GitHub Actions (#33) * Import actions/typescript-action * Configure action.yml * Rewrite to use toolkit (not done) * Fixed chatOpService * Fixed all errors when rewriting for Actions * Fix tests * Update ci * Run npm format * Update npm package --- .dockerignore | 12 - .env.example | 15 - .eslintignore | 4 + .eslintrc.json | 53 + .gitattributes | 1 + .github/dependabot.yml | 9 + .github/github-ado-chatops.yml | 4 - .github/issue-branch.yml | 1 - .github/workflows/ci.yml | 28 + .../workflows/ci_github-ado-chatops-web.yml | 30 - .../workflows/main_github-ado-chatops-web.yml | 41 - .gitignore | 102 +- .prettierignore | 3 + .prettierrc.json | 9 + .vscode/launch.json | 8 - .vscode/settings.json | 2 - CODEOWNERS | 1 + CODE_OF_CONDUCT.md | 73 - CONTRIBUTING.md | 39 - Dockerfile | 10 - LICENSE | 31 +- README.md | 119 +- __tests__/main.test.ts | 5 + __tests__/main.test.ts.txt | 29 + action.yml | 23 + app.yml | 24 - dist/index.js | 67015 ++++++++++++++++ dist/index.js.map | 1 + dist/licenses.txt | 880 + dist/package.json | 86 + dist/sourcemap-register.js | 1 + jest.config.js | 13 +- package-lock.json | 8403 +- package.json | 39 +- scripts/test-pat.sh | 7 - src/azureDevOpsClient.ts | 233 +- src/chatOpService.ts | 205 +- src/config.ts | 149 +- src/index.ts | 6 - src/issueCommentHandler.ts | 11 - src/main.ts | 18 + test/azureDevOpsClient.test.ts | 24 - test/chatOpService.test.ts | 69 - test/fixtures/issues.opened.json | 18 - test/fixtures/mock-cert.pem | 27 - test/index.test.ts | 74 - test/testUtils.ts | 40 - tsconfig.json | 78 +- 48 files changed, 72615 insertions(+), 5458 deletions(-) delete mode 100644 .dockerignore delete mode 100644 .env.example create mode 100644 .eslintignore create mode 100644 .eslintrc.json create mode 100644 .gitattributes create mode 100644 .github/dependabot.yml delete mode 100644 .github/github-ado-chatops.yml delete mode 100644 .github/issue-branch.yml create mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/ci_github-ado-chatops-web.yml delete mode 100644 .github/workflows/main_github-ado-chatops-web.yml create mode 100644 .prettierignore create mode 100644 .prettierrc.json create mode 100644 CODEOWNERS delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 CONTRIBUTING.md delete mode 100644 Dockerfile create mode 100644 __tests__/main.test.ts create mode 100644 __tests__/main.test.ts.txt create mode 100644 action.yml delete mode 100644 app.yml create mode 100644 dist/index.js create mode 100644 dist/index.js.map create mode 100644 dist/licenses.txt create mode 100644 dist/package.json create mode 100644 dist/sourcemap-register.js delete mode 100755 scripts/test-pat.sh delete mode 100644 src/index.ts delete mode 100644 src/issueCommentHandler.ts create mode 100644 src/main.ts delete mode 100644 test/azureDevOpsClient.test.ts delete mode 100644 test/chatOpService.test.ts delete mode 100644 test/fixtures/issues.opened.json delete mode 100644 test/fixtures/mock-cert.pem delete mode 100644 test/index.test.ts delete mode 100644 test/testUtils.ts diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index c961acb..0000000 --- a/.dockerignore +++ /dev/null @@ -1,12 +0,0 @@ -**/node_modules/ -**/.git -**/README.md -**/LICENSE -**/.vscode -**/npm-debug.log -**/coverage -**/.env -**/.editorconfig -**/dist -**/*.pem -Dockerfile diff --git a/.env.example b/.env.example deleted file mode 100644 index 45c6b35..0000000 --- a/.env.example +++ /dev/null @@ -1,15 +0,0 @@ -# GitHub and Probot Variables -WEBHOOK_PROXY_URL=https://smee.io/kVTmQaOLzAud94oz -APP_ID=135254 -PRIVATE_KEY= -WEBHOOK_SECRET= -GITHUB_CLIENT_ID=Iv1.860ddee634a1169b -GITHUB_CLIENT_SECRET= -LOG_LEVEL=debug - -# ADO Variables -ADO_INSTANCE=dev.azure.com -ADO_ORG=philip-gai -ADO_PROJECT=github-ado-chatops -ADO_REPO=github-ado-chatops -ADO_PAT= \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..42ceb9a --- /dev/null +++ b/.eslintignore @@ -0,0 +1,4 @@ +dist/ +lib/ +node_modules/ +jest.config.js diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..c5a5485 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,53 @@ +{ + "plugins": ["jest", "@typescript-eslint"], + "extends": ["plugin:github/recommended"], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": 9, + "sourceType": "module", + "project": "./tsconfig.json" + }, + "rules": { + "eslint-comments/no-use": "off", + "import/no-namespace": "off", + "no-unused-vars": "off", + "@typescript-eslint/no-unused-vars": "error", + "@typescript-eslint/explicit-member-accessibility": ["error", {"accessibility": "no-public"}], + "@typescript-eslint/no-require-imports": "error", + "@typescript-eslint/array-type": "error", + "@typescript-eslint/await-thenable": "error", + "@typescript-eslint/ban-ts-comment": "error", + "camelcase": "off", + "@typescript-eslint/consistent-type-assertions": "error", + "@typescript-eslint/explicit-function-return-type": ["error", {"allowExpressions": true}], + "@typescript-eslint/func-call-spacing": ["error", "never"], + "@typescript-eslint/no-array-constructor": "error", + "@typescript-eslint/no-empty-interface": "error", + "@typescript-eslint/no-explicit-any": "error", + "@typescript-eslint/no-extraneous-class": "error", + "@typescript-eslint/no-for-in-array": "error", + "@typescript-eslint/no-inferrable-types": "error", + "@typescript-eslint/no-misused-new": "error", + "@typescript-eslint/no-namespace": "error", + "@typescript-eslint/no-non-null-assertion": "warn", + "@typescript-eslint/no-unnecessary-qualifier": "error", + "@typescript-eslint/no-unnecessary-type-assertion": "error", + "@typescript-eslint/no-useless-constructor": "error", + "@typescript-eslint/no-var-requires": "error", + "@typescript-eslint/prefer-for-of": "warn", + "@typescript-eslint/prefer-function-type": "warn", + "@typescript-eslint/prefer-includes": "error", + "@typescript-eslint/prefer-string-starts-ends-with": "error", + "@typescript-eslint/promise-function-async": "error", + "@typescript-eslint/require-array-sort-compare": "error", + "@typescript-eslint/restrict-plus-operands": "error", + "semi": 2, + "@typescript-eslint/type-annotation-spacing": "error", + "@typescript-eslint/unbound-method": "error" + }, + "env": { + "node": true, + "es6": true, + "jest/globals": true + } + } \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..2e051e1 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +dist/** -diff linguist-generated=true \ No newline at end of file diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..77b915d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,9 @@ +version: 2 +updates: + # Enable version updates for npm + - package-ecosystem: 'npm' + # Look for `package.json` and `lock` files in the `root` directory + directory: '/' + # Check the npm registry for updates every day (weekdays) + schedule: + interval: 'daily' diff --git a/.github/github-ado-chatops.yml b/.github/github-ado-chatops.yml deleted file mode 100644 index a3d739c..0000000 --- a/.github/github-ado-chatops.yml +++ /dev/null @@ -1,4 +0,0 @@ -ado_org: philip-gai -ado_project: github-ado-chatops -ado_repo: github-ado-chatops -ado_pat_secret_name: ADO_PAT \ No newline at end of file diff --git a/.github/issue-branch.yml b/.github/issue-branch.yml deleted file mode 100644 index 993c763..0000000 --- a/.github/issue-branch.yml +++ /dev/null @@ -1 +0,0 @@ -mode: chatops diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ded89b6 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,28 @@ +name: 'ci' +on: + pull_request: + push: + branches: + - main + - develop + - 'releases/*' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - run: | + npm install + - run: | + npm run all + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: ./ + with: + ado_org: philip-gai + ado_project: github-ado-chatops + ado_repo: github-ado-chatops + ado_pat: ${{ secrets.ADO_PAT }} \ No newline at end of file diff --git a/.github/workflows/ci_github-ado-chatops-web.yml b/.github/workflows/ci_github-ado-chatops-web.yml deleted file mode 100644 index b6ab40f..0000000 --- a/.github/workflows/ci_github-ado-chatops-web.yml +++ /dev/null @@ -1,30 +0,0 @@ -# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy -# More GitHub Actions for Azure: https://github.com/Azure/actions - -name: Build Node.js app - github-ado-chatops-web - -on: - pull_request: - workflow_dispatch: - push: - branches: - - develop - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - - name: Set up Node.js version - uses: actions/setup-node@v1 - with: - node-version: "12.x" - - - name: npm install, lint, build (and skip tests) - run: | - npm install - npm run lint --if-present - npm run build --if-present - # npm run test --if-present diff --git a/.github/workflows/main_github-ado-chatops-web.yml b/.github/workflows/main_github-ado-chatops-web.yml deleted file mode 100644 index a28b435..0000000 --- a/.github/workflows/main_github-ado-chatops-web.yml +++ /dev/null @@ -1,41 +0,0 @@ -# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy -# More GitHub Actions for Azure: https://github.com/Azure/actions - -name: Build and deploy Node.js app to Azure Web App - github-ado-chatops-web - -on: - push: - branches: - - main - workflow_dispatch: - -jobs: - build-and-deploy: - runs-on: ubuntu-latest - environment: - name: "production" - url: ${{ steps.deploy-to-webapp.outputs.webapp-url }} - - steps: - - uses: actions/checkout@v2 - - - name: Set up Node.js version - uses: actions/setup-node@v1 - with: - node-version: "12.x" - - - name: npm install, lint, build (and skip tests) - run: | - npm install - npm run lint --if-present - npm run build --if-present - # npm run test --if-present - - - name: "Deploy to Azure Web App" - id: deploy-to-webapp - uses: azure/webapps-deploy@v2 - with: - app-name: "github-ado-chatops-web" - slot-name: "production" - publish-profile: ${{ secrets.AzureAppService_PublishProfile_ef30b67375f04dd49e9e51dee507546a }} - package: . diff --git a/.gitignore b/.gitignore index b3d906d..18e337d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,99 @@ +# Dependency directory node_modules -npm-debug.log -*.pem -!mock-cert.pem -.env + +# Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul coverage -lib +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# next.js build output +.next + +# nuxt.js build output +.nuxt + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# OS metadata +.DS_Store +Thumbs.db + +# Ignore built ts files +__tests__/runner/* +lib/**/* \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..2186947 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,3 @@ +dist/ +lib/ +node_modules/ \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..687c71d --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,9 @@ +{ + "printWidth": 160, + "tabWidth": 2, + "useTabs": false, + "semi": true, + "singleQuote": true, + "trailingComma": "none", + "arrowParens": "avoid" +} diff --git a/.vscode/launch.json b/.vscode/launch.json index f4ccd40..b8d2d84 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -4,13 +4,5 @@ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ - { - "name": "Debug Jest Tests", - "type": "node", - "request": "launch", - "runtimeArgs": ["--inspect-brk", "${workspaceRoot}/node_modules/.bin/jest", "--runInBand", "--coverage", "false"], - "console": "integratedTerminal", - "internalConsoleOptions": "neverOpen" - } ] } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 9b4eca4..7a73a41 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,2 @@ { - "editor.formatOnSave": true, - "appService.defaultWebAppToDeploy": "/subscriptions/98d42051-32a1-4593-8ca5-7d37b8b41880/resourceGroups/github-ado-chatops/providers/Microsoft.Web/sites/github-ado-chatops-web", } \ No newline at end of file diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..7634fe1 --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +* @philip-gai diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index 8bd43bb..0000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,73 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, gender identity and expression, level of experience, -education, socio-economic status, nationality, personal appearance, race, -religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -- Using welcoming and inclusive language -- Being respectful of differing viewpoints and experiences -- Gracefully accepting constructive criticism -- Focusing on what is best for the community -- Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -- The use of sexualized language or imagery and unwelcome sexual attention or - advances -- Trolling, insulting/derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or electronic - address, without explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at philip-gai@github.com. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -[homepage]: https://www.contributor-covenant.org diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index f6ebb81..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,39 +0,0 @@ -## Contributing - -[fork]: /fork -[pr]: /compare -[code-of-conduct]: CODE_OF_CONDUCT.md - -Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. - -Please note that this project is released with a [Contributor Code of Conduct][code-of-conduct]. By participating in this project you agree to abide by its terms. - -## Issues and PRs - -If you have suggestions for how this project could be improved, or want to report a bug, open an issue! We'd love all and any contributions. If you have questions, too, we'd love to hear them. - -We'd also love PRs. If you're thinking of a large PR, we advise opening up an issue first to talk about it, though! Look at the links below if you're not sure how to open a PR. - -## Submitting a pull request - -1. [Fork][fork] and clone the repository. -1. Configure and install the dependencies: `npm install`. -1. Make sure the tests pass on your machine: `npm test`, note: these tests also apply the linter, so there's no need to lint separately. -1. Create a new branch: `git checkout -b my-branch-name`. -1. Make your change, add tests, and make sure the tests still pass. -1. Push to your fork and [submit a pull request][pr]. -1. Pat your self on the back and wait for your pull request to be reviewed and merged. - -Here are a few things you can do that will increase the likelihood of your pull request being accepted: - -- Write and update tests. -- Keep your changes as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests. -- Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html). - -Work in Progress pull requests are also welcome to get feedback early on, or if there is something blocked you. - -## Resources - -- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) -- [Using Pull Requests](https://help.github.com/articles/about-pull-requests/) -- [GitHub Help](https://help.github.com) diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 941b6a6..0000000 --- a/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM node:12-slim -WORKDIR /usr/src/app -COPY package.json package-lock.json ./ -RUN npm ci --production -RUN npm cache clean --force -RUN npm install -ENV NODE_ENV="production" -COPY . . -RUN npm run build -CMD [ "npm", "start" ] diff --git a/LICENSE b/LICENSE index 21941c2..a426ef2 100644 --- a/LICENSE +++ b/LICENSE @@ -1,15 +1,22 @@ -ISC License -Copyright (c) 2021, Philip Gai +The MIT License (MIT) -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. +Copyright (c) 2018 GitHub, Inc. and contributors -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index ff865b1..68d5d07 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,105 @@ -# github-ado-chatops +

+ typescript-action status +

-> A GitHub App built with [Probot](https://github.com/probot/probot) that Integrates GitHub with Azure DevOps via ChatOps +# Create a JavaScript Action using TypeScript -## Setup +Use this template to bootstrap the creation of a TypeScript action.:rocket: -```sh -# Install dependencies -npm install +This template includes compilation support, tests, a validation workflow, publishing, and versioning guidance. -# Run the bot -npm start -``` +If you are new, there's also a simpler introduction. See the [Hello World JavaScript Action](https://github.com/actions/hello-world-javascript-action) -## Docker (Optional) +## Create an action from this template -```sh -# 1. Build container -docker build -t github-ado-chatops . +Click the `Use this Template` and provide the new repo details for your action -# 2. Start container -docker run --env-file .env github-ado-chatops +## Code in Main +> First, you'll need to have a reasonably modern version of `node` handy. This won't work with versions older than 9, for instance. -# Build/Deploy for Azure -docker login githubadochatops.azurecr.io --username githubadochatops -docker build -t githubadochatops.azurecr.io/github-ado-chatops:latest . -docker push githubadochatops.azurecr.io/github-ado-chatops:latest +Install the dependencies +```bash +$ npm install ``` -## Usage +Build the typescript and package it for distribution +```bash +$ npm run build && npm run package +``` -`/create-branch-ado` or `/cb-ado` without any argument will create a branch with the naming scheme `users//-` off of the default branch set in your ADO Repo. +Run the tests :heavy_check_mark: +```bash +$ npm test -Additional parameters can be passed to customize the branch: + PASS ./index.test.js + ✓ throws invalid number (3ms) + ✓ wait 500 ms (504ms) + ✓ test runs (95ms) -### Username +... +``` -Appending `username ` after `/create-branch-ado` or `/cb-ado` will allow you to customize what you would like to have following `users/` in the branch name. +## Change action.yml -For example, the command: -```sh -/create-branch-ado username jdoe -``` -would create the the following branch name: +The action.yml contains defines the inputs and output for your action. -```sh -users/jdoe/- -``` +Update the action.yml with your name, description, inputs and outputs for your action. + +See the [documentation](https://help.github.com/en/articles/metadata-syntax-for-github-actions) + +## Change the Code + +Most toolkit and CI/CD operations involve async operations so the action is run in an async function. + +```javascript +import * as core from '@actions/core'; +... -### Branch +async function run() { + try { + ... + } + catch (error) { + core.setFailed(error.message); + } +} -If you want to branch off of a specific branch: +run() ``` -/cb-ado branch + +See the [toolkit documentation](https://github.com/actions/toolkit/blob/master/README.md#packages) for the various packages. + +## Publish to a distribution branch + +Actions are run from GitHub repos so we will checkin the packed dist folder. + +Then run [ncc](https://github.com/zeit/ncc) and push the results: +```bash +$ npm run package +$ git add dist +$ git commit -a -m "prod dependencies" +$ git push origin releases/v1 ``` -## Contributing +Note: We recommend using the `--license` option for ncc, which will create a license file for all of the production node modules used in your project. + +Your action is now published! :rocket: -If you have suggestions for how github-ado-chatops could be improved, or want to report a bug, open an issue! We'd love all and any contributions. +See the [versioning documentation](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) + +## Validate + +You can now validate the action by referencing `./` in a workflow in your repo (see [test.yml](.github/workflows/test.yml)) + +```yaml +uses: ./ +with: + milliseconds: 1000 +``` -For more, check out the [Contributing Guide](CONTRIBUTING.md). +See the [actions tab](https://github.com/actions/typescript-action/actions) for runs of this action! :rocket: -## License +## Usage: -[ISC](LICENSE) © 2021 Philip Gai +After testing you can [create a v1 tag](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) to reference the stable and latest V1 action diff --git a/__tests__/main.test.ts b/__tests__/main.test.ts new file mode 100644 index 0000000..7390214 --- /dev/null +++ b/__tests__/main.test.ts @@ -0,0 +1,5 @@ +import { expect, test } from '@jest/globals'; + +test('is true', async () => { + expect(true).toBe(true); +}); diff --git a/__tests__/main.test.ts.txt b/__tests__/main.test.ts.txt new file mode 100644 index 0000000..98f44c5 --- /dev/null +++ b/__tests__/main.test.ts.txt @@ -0,0 +1,29 @@ +import {wait} from '../src/wait' +import * as process from 'process' +import * as cp from 'child_process' +import * as path from 'path' +import {expect, test} from '@jest/globals' + +test('throws invalid number', async () => { + const input = parseInt('foo', 10) + await expect(wait(input)).rejects.toThrow('milliseconds not a number') +}) + +test('wait 500 ms', async () => { + const start = new Date() + await wait(500) + const end = new Date() + var delta = Math.abs(end.getTime() - start.getTime()) + expect(delta).toBeGreaterThan(450) +}) + +// shows how the runner will run a javascript action with env / stdout protocol +test('test runs', () => { + process.env['INPUT_MILLISECONDS'] = '500' + const np = process.execPath + const ip = path.join(__dirname, '..', 'lib', 'main.js') + const options: cp.ExecFileSyncOptions = { + env: process.env + } + console.log(cp.execFileSync(np, [ip], options).toString()) +}) diff --git a/action.yml b/action.yml new file mode 100644 index 0000000..575c911 --- /dev/null +++ b/action.yml @@ -0,0 +1,23 @@ +name: "GitHub <> Azure DevOps ChatOps" +description: "Integrates GitHub with Azure DevOps (ADO) via ChatOps. Example: Create a branch in an Azure Repo directly from a GitHub Issue using /cb-ado." +author: "philip-gai" +inputs: + ado_domain: + description: "The domain your ADO instance is in" + required: true + default: "dev.azure.com" + ado_org: + description: "The organization that your ADO repository is in" + required: true + ado_project: + description: "The project that your ADO repository is in" + required: true + ado_repo: + description: "The name of your ADO repository" + required: true + ado_pat: + description: "The Personal Access Token (PAT) to use when authenticating with Azure DevOps. Use a repository secret here!" + required: true +runs: + using: "node12" + main: "dist/index.js" diff --git a/app.yml b/app.yml deleted file mode 100644 index 4e5e7fd..0000000 --- a/app.yml +++ /dev/null @@ -1,24 +0,0 @@ -# This is a GitHub App Manifest. These settings will be used by default when -# initially configuring your GitHub App. -# -# NOTE: changing this file will not update your GitHub App settings. -# You must visit github.com/settings/apps/your-app-name to edit them. -# -# Read more about configuring your GitHub App: -# https://probot.github.io/docs/development/#configuring-a-github-app -# -# Read more about GitHub App Manifests: -# https://developer.github.com/apps/building-github-apps/creating-github-apps-from-a-manifest/ - -# The list of events the GitHub App subscribes to. -default_events: - - issue_comment - -# The set of permissions needed by the GitHub App. The format of the object uses -# the permission name for the key (for example, issues) and the access type for -# the value (for example, write). -# Valid values are `read`, `write`, and `none` -default_permissions: - issues: write - metadata: read - secrets: read diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..6df5bb9 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,67015 @@ +require('./sourcemap-register.js');/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ 7743: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.AzureDevOpsClient = void 0; +const core = __importStar(__nccwpck_require__(2186)); +const azdev = __importStar(__nccwpck_require__(7967)); +const config_1 = __nccwpck_require__(88); +class AzureDevOpsClient { + constructor(context, appConfig, azDevClient) { + this._appConfig = config_1.Config.defaultAppConfig; + this._context = context; + this._appConfig = appConfig; + this._azDevClient = azDevClient; + } + static build(context) { + return __awaiter(this, void 0, void 0, function* () { + const appConfig = (yield config_1.Config.build()).appConfig; + const orgUrl = `https://${appConfig.ado_domain}/${appConfig.ado_org}`; + core.debug(`orgUrl: ${orgUrl}`); + const authHandler = azdev.getPersonalAccessTokenHandler(appConfig.ado_pat); + const azDevClient = new azdev.WebApi(orgUrl, authHandler); + return new AzureDevOpsClient(context, appConfig, azDevClient); + }); + } + createBranch(branchName, sourceBranch) { + return __awaiter(this, void 0, void 0, function* () { + try { + core.debug('Getting the ADO git API...'); + const gitClient = yield this._azDevClient.getGitApi(); + core.debug('Getting repo...'); + const repo = yield this.getRepo(gitClient); + core.debug('Got it.'); + let sourceBranchFinal = sourceBranch; + if (!sourceBranchFinal) { + core.debug('Getting the default branch in ADO...'); + sourceBranchFinal = this.getDefaultBranch(repo); + core.debug('Got it...'); + } + const result = yield this.createBranchInner(gitClient, repo, sourceBranchFinal, branchName); + return result; + } + catch (error) { + core.error(`POST to create branch [${branchName}] has failed`); + throw new Error(`POST to create branch [${branchName}] has failed`); + } + }); + } + deleteBranch(refName, refObjectId) { + return __awaiter(this, void 0, void 0, function* () { + const gitClient = yield this._azDevClient.getGitApi(); + const gitRefUpdates = [ + { + oldObjectId: refObjectId, + newObjectId: new Array(41).join('0'), + name: refName + } + ]; + // create a new branch from the source + const updateResults = yield gitClient.updateRefs(gitRefUpdates, this._appConfig.ado_repo, this._appConfig.ado_project); + const refDeleteResult = updateResults[0]; + return refDeleteResult; + }); + } + getBranchUrl(branchName) { + const uriEncodedBranchName = encodeURIComponent(branchName); + return `https://${this._appConfig.ado_domain}/${this._appConfig.ado_org}/${this._appConfig.ado_project}/_git/${this._appConfig.ado_repo}?version=GB${uriEncodedBranchName}`; + } + createBranchInner(gitClient, repo, sourceBranch, branchName) { + return __awaiter(this, void 0, void 0, function* () { + core.debug(`Creating branch from ${sourceBranch}.`); + core.debug(`Getting ${sourceBranch} refs...`); + const gitRefs = yield gitClient.getRefs(repo.id, this._appConfig.ado_project, sourceBranch); + const sourceRef = gitRefs[0]; + core.debug("Got 'em."); + const gitRefUpdates = [ + { + oldObjectId: new Array(41).join('0'), + newObjectId: sourceRef.objectId, + name: `refs/heads/${branchName}` + } + ]; + // create a new branch from the source + core.debug('Creating the branch...'); + const updateResults = yield gitClient.updateRefs(gitRefUpdates, this._appConfig.ado_repo, this._appConfig.ado_project); + const refCreateResult = updateResults[0]; + core.info(`project ${this._appConfig.ado_project}, repo ${repo.name}, source branch ${sourceRef.name}`); + core.info(`new branch ${refCreateResult.name} (success=${refCreateResult.success} status=${refCreateResult.updateStatus})`); + return refCreateResult; + }); + } + getDefaultBranch(repo) { + var _a; + const defaultBranch = (_a = repo.defaultBranch) === null || _a === void 0 ? void 0 : _a.replace('refs/', ''); + if (!defaultBranch) { + core.error(`${defaultBranch} does not exist`); + throw new Error(`${defaultBranch} does not exist`); + } + return defaultBranch; + } + getRepo(gitClient) { + return __awaiter(this, void 0, void 0, function* () { + const repo = yield gitClient.getRepository(this._appConfig.ado_repo, this._appConfig.ado_project); + if (!repo.id) { + core.error(`Repo ${this._appConfig.ado_repo} does not exist in project ${this._appConfig.ado_project}`); + throw new Error(`Repo ${this._appConfig.ado_repo} does not exist in project ${this._appConfig.ado_project}`); + } + return repo; + }); + } +} +exports.AzureDevOpsClient = AzureDevOpsClient; + + +/***/ }), + +/***/ 2842: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ChatOpService = void 0; +const core = __importStar(__nccwpck_require__(2186)); +const github = __importStar(__nccwpck_require__(5438)); +const azureDevOpsClient_1 = __nccwpck_require__(7743); +class ChatOpService { + constructor(octokit, adoClient) { + // Maximum number of bytes in a git branch is 250 + // Therefore, trim branch name to 62 characters (assuming 32-bit/4-byte Unicode) => 238 bytes + // (https://stackoverflow.com/questions/60045157/what-is-the-maximum-length-of-a-github-branch-name) + this.maxNumOfChars = 62; + this._octokit = octokit; + this._adoClient = adoClient; + } + static build(context) { + return __awaiter(this, void 0, void 0, function* () { + const adoClient = yield azureDevOpsClient_1.AzureDevOpsClient.build(context); + const githubToken = core.getInput('GITHUB_TOKEN'); + const octokit = github.getOctokit(githubToken); + return new ChatOpService(octokit, adoClient); + }); + } + static containsChatOpCommand(comment, chatOps) { + return chatOps.includes(comment.trim()); + } + tryCreateBranch(context) { + var _a, _b, _c, _d, _e; + return __awaiter(this, void 0, void 0, function* () { + const comment = (_a = context.payload.comment) === null || _a === void 0 ? void 0 : _a.body; + // Check if the comment contains any createBranchChatCommands + core.debug(comment.trim()); + if (!ChatOpService.containsChatOpCommand(comment.split(' ')[0], ChatOpService.createBranchChatOpCommands)) { + core.debug(`Comment ${(_b = context.payload.comment) === null || _b === void 0 ? void 0 : _b.url} does not contain createBranchChatOps`); + return false; + } + let username = (_c = context.payload.comment) === null || _c === void 0 ? void 0 : _c.user.login; + core.debug(`username: ${username}`); + // Check for username parameter + if (comment.includes(ChatOpService.usernameParameter)) { + username = this.parseParameter(comment, ChatOpService.usernameParameter); + } + // Check for branch parameter + let sourceBranch; + if (comment.includes(ChatOpService.branchParameter)) { + sourceBranch = this.parseParameter(comment, ChatOpService.branchParameter); + } + // Build the branch name from the issue title + const branchName = this.createBranchName(username, ((_d = context.payload.issue) === null || _d === void 0 ? void 0 : _d.number) || -1, (_e = context.payload.issue) === null || _e === void 0 ? void 0 : _e.title); + core.info(`built branch name string: ${branchName}`); + const issue = context.issue; + // Create the branch in ADO + try { + this._adoClient.createBranch(branchName, sourceBranch); + } + catch (e) { + // Create a comment that a failure occured + const errorMessage = `Branch [${branchName}] was unable to be created in Azure DevOps" ${e}`; + core.error(errorMessage); + yield this._octokit.issues.createComment({ + issue_number: issue.number, + owner: issue.owner, + repo: issue.repo, + body: errorMessage + }); + return false; + } + // Create a comment with a link to the newly created branch + const result = `Branch [${branchName}](${this._adoClient.getBranchUrl(branchName)}) has been created in Azure DevOps`; + yield this._octokit.rest.issues.createComment({ + issue_number: issue.number, + owner: issue.owner, + repo: issue.repo, + body: result + }); + return true; + }); + } + createBranchName(username, issueNum, issueTitle) { + let branchString = `${issueNum}-${issueTitle}`; + branchString = `users/${this.makeGitSafe(username)}/${this.makeGitSafe(branchString)}`; + return branchString.substr(0, this.maxNumOfChars); + } + makeGitSafe(s) { + const replacementChar = '-'; + const regexp = /(?![-/])[\W]+/g; + const result = s.replace(regexp, replacementChar).replace(/[/]+$/, ''); + return result; + } + parseParameter(comment, parameter) { + const commentArr = comment.trim().split(' '); + const paramIdx = commentArr.findIndex(x => x === parameter); + // Check we're still in bounds + if (paramIdx + 1 < commentArr.length) { + return commentArr[paramIdx + 1]; + } + // TODO: throw error? + return ''; + } +} +exports.ChatOpService = ChatOpService; +ChatOpService.createBranchChatOpCommands = ['/create-branch-ado', '/cb-ado']; +ChatOpService.usernameParameter = 'username'; +ChatOpService.branchParameter = 'branch'; + + +/***/ }), + +/***/ 88: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Config = void 0; +const core = __importStar(__nccwpck_require__(2186)); +class Config { + constructor(appConfig) { + this.appConfig = Config.defaultAppConfig; + this.appConfig = appConfig; + } + static build() { + return __awaiter(this, void 0, void 0, function* () { + const loadedConfig = this.loadConfig(); + const config = Config.mergeDefaults(loadedConfig); + const errorMessages = Config.validateConfig(config); + if (errorMessages.length > 0) { + const errorStr = errorMessages.join('\n'); + core.error(errorStr); + throw new Error(errorStr); + } + return new Config(config); + }); + } + static mergeDefaults(loadedConfig) { + return { + ado_domain: loadedConfig.ado_domain || Config.defaultAppConfig.ado_domain, + ado_org: loadedConfig.ado_org, + ado_pat: loadedConfig.ado_pat, + ado_project: loadedConfig.ado_project, + ado_repo: loadedConfig.ado_repo + }; + } + static validateConfig(config) { + const errorMessages = []; + // There are better ways to do this but I'm being lazy + if (!config.ado_domain) + errorMessages.push('No ado_org was found. Check your inputs'); + if (!config.ado_org) + errorMessages.push('No ado_org was found. Check your inputs'); + if (!config.ado_pat) + errorMessages.push('No ado_pat was found. Check your inputs'); + if (!config.ado_project) + errorMessages.push('No ado_project was found. Check your inputs'); + if (!config.ado_repo) + errorMessages.push('No ado_repo was found. Check your inputs'); + return errorMessages; + } +} +exports.Config = Config; +Config.defaultAppConfig = { + ado_domain: 'dev.azure.com', + ado_org: '', + ado_pat: '', + ado_project: '', + ado_repo: '' +}; +Config.loadConfig = () => { + const ado_domain = core.getInput('ado_domain'); + const ado_org = core.getInput('ado_org'); + const ado_project = core.getInput('ado_project'); + const ado_repo = core.getInput('ado_repo'); + const ado_pat = core.getInput('ado_pat'); + // debug is only output if you set the secret `ACTIONS_RUNNER_DEBUG` to true + core.debug(`ado_domain: ${ado_domain}!`); + core.debug(`ado_org: ${ado_org}!`); + core.debug(`ado_project: ${ado_project}!`); + core.debug(`ado_repo: ${ado_repo}!`); + core.debug(`ado_pat: ${ado_pat}!`); + return { + ado_domain, + ado_org, + ado_project, + ado_repo, + ado_pat + }; +}; + + +/***/ }), + +/***/ 3109: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const core = __importStar(__nccwpck_require__(2186)); +const github = __importStar(__nccwpck_require__(5438)); +const chatOpService_1 = __nccwpck_require__(2842); +function run() { + return __awaiter(this, void 0, void 0, function* () { + try { + const context = github.context; + if (context.eventName === 'issue_comment.created') { + const chatOpService = yield chatOpService_1.ChatOpService.build(context); + chatOpService.tryCreateBranch(context); + } + } + catch (error) { + core.setFailed(error.message); + } + }); +} +run(); + + +/***/ }), + +/***/ 7351: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.issue = exports.issueCommand = void 0; +const os = __importStar(__nccwpck_require__(2087)); +const utils_1 = __nccwpck_require__(5278); +/** + * Commands + * + * Command Format: + * ::name key=value,key=value::message + * + * Examples: + * ::warning::This is the message + * ::set-env name=MY_VAR::some value + */ +function issueCommand(command, properties, message) { + const cmd = new Command(command, properties, message); + process.stdout.write(cmd.toString() + os.EOL); +} +exports.issueCommand = issueCommand; +function issue(name, message = '') { + issueCommand(name, {}, message); +} +exports.issue = issue; +const CMD_STRING = '::'; +class Command { + constructor(command, properties, message) { + if (!command) { + command = 'missing.command'; + } + this.command = command; + this.properties = properties; + this.message = message; + } + toString() { + let cmdStr = CMD_STRING + this.command; + if (this.properties && Object.keys(this.properties).length > 0) { + cmdStr += ' '; + let first = true; + for (const key in this.properties) { + if (this.properties.hasOwnProperty(key)) { + const val = this.properties[key]; + if (val) { + if (first) { + first = false; + } + else { + cmdStr += ','; + } + cmdStr += `${key}=${escapeProperty(val)}`; + } + } + } + } + cmdStr += `${CMD_STRING}${escapeData(this.message)}`; + return cmdStr; + } +} +function escapeData(s) { + return utils_1.toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A'); +} +function escapeProperty(s) { + return utils_1.toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A') + .replace(/:/g, '%3A') + .replace(/,/g, '%2C'); +} +//# sourceMappingURL=command.js.map + +/***/ }), + +/***/ 2186: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0; +const command_1 = __nccwpck_require__(7351); +const file_command_1 = __nccwpck_require__(717); +const utils_1 = __nccwpck_require__(5278); +const os = __importStar(__nccwpck_require__(2087)); +const path = __importStar(__nccwpck_require__(5622)); +/** + * The code to exit an action + */ +var ExitCode; +(function (ExitCode) { + /** + * A code indicating that the action was successful + */ + ExitCode[ExitCode["Success"] = 0] = "Success"; + /** + * A code indicating that the action was a failure + */ + ExitCode[ExitCode["Failure"] = 1] = "Failure"; +})(ExitCode = exports.ExitCode || (exports.ExitCode = {})); +//----------------------------------------------------------------------- +// Variables +//----------------------------------------------------------------------- +/** + * Sets env variable for this action and future actions in the job + * @param name the name of the variable to set + * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function exportVariable(name, val) { + const convertedVal = utils_1.toCommandValue(val); + process.env[name] = convertedVal; + const filePath = process.env['GITHUB_ENV'] || ''; + if (filePath) { + const delimiter = '_GitHubActionsFileCommandDelimeter_'; + const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`; + file_command_1.issueCommand('ENV', commandValue); + } + else { + command_1.issueCommand('set-env', { name }, convertedVal); + } +} +exports.exportVariable = exportVariable; +/** + * Registers a secret which will get masked from logs + * @param secret value of the secret + */ +function setSecret(secret) { + command_1.issueCommand('add-mask', {}, secret); +} +exports.setSecret = setSecret; +/** + * Prepends inputPath to the PATH (for this action and future actions) + * @param inputPath + */ +function addPath(inputPath) { + const filePath = process.env['GITHUB_PATH'] || ''; + if (filePath) { + file_command_1.issueCommand('PATH', inputPath); + } + else { + command_1.issueCommand('add-path', {}, inputPath); + } + process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`; +} +exports.addPath = addPath; +/** + * Gets the value of an input. + * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed. + * Returns an empty string if the value is not defined. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string + */ +function getInput(name, options) { + const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || ''; + if (options && options.required && !val) { + throw new Error(`Input required and not supplied: ${name}`); + } + if (options && options.trimWhitespace === false) { + return val; + } + return val.trim(); +} +exports.getInput = getInput; +/** + * Gets the values of an multiline input. Each value is also trimmed. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string[] + * + */ +function getMultilineInput(name, options) { + const inputs = getInput(name, options) + .split('\n') + .filter(x => x !== ''); + return inputs; +} +exports.getMultilineInput = getMultilineInput; +/** + * Gets the input value of the boolean type in the YAML 1.2 "core schema" specification. + * Support boolean input list: `true | True | TRUE | false | False | FALSE` . + * The return value is also in boolean type. + * ref: https://yaml.org/spec/1.2/spec.html#id2804923 + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns boolean + */ +function getBooleanInput(name, options) { + const trueValue = ['true', 'True', 'TRUE']; + const falseValue = ['false', 'False', 'FALSE']; + const val = getInput(name, options); + if (trueValue.includes(val)) + return true; + if (falseValue.includes(val)) + return false; + throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${name}\n` + + `Support boolean input list: \`true | True | TRUE | false | False | FALSE\``); +} +exports.getBooleanInput = getBooleanInput; +/** + * Sets the value of an output. + * + * @param name name of the output to set + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function setOutput(name, value) { + process.stdout.write(os.EOL); + command_1.issueCommand('set-output', { name }, value); +} +exports.setOutput = setOutput; +/** + * Enables or disables the echoing of commands into stdout for the rest of the step. + * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. + * + */ +function setCommandEcho(enabled) { + command_1.issue('echo', enabled ? 'on' : 'off'); +} +exports.setCommandEcho = setCommandEcho; +//----------------------------------------------------------------------- +// Results +//----------------------------------------------------------------------- +/** + * Sets the action status to failed. + * When the action exits it will be with an exit code of 1 + * @param message add error issue message + */ +function setFailed(message) { + process.exitCode = ExitCode.Failure; + error(message); +} +exports.setFailed = setFailed; +//----------------------------------------------------------------------- +// Logging Commands +//----------------------------------------------------------------------- +/** + * Gets whether Actions Step Debug is on or not + */ +function isDebug() { + return process.env['RUNNER_DEBUG'] === '1'; +} +exports.isDebug = isDebug; +/** + * Writes debug message to user log + * @param message debug message + */ +function debug(message) { + command_1.issueCommand('debug', {}, message); +} +exports.debug = debug; +/** + * Adds an error issue + * @param message error issue message. Errors will be converted to string via toString() + */ +function error(message) { + command_1.issue('error', message instanceof Error ? message.toString() : message); +} +exports.error = error; +/** + * Adds an warning issue + * @param message warning issue message. Errors will be converted to string via toString() + */ +function warning(message) { + command_1.issue('warning', message instanceof Error ? message.toString() : message); +} +exports.warning = warning; +/** + * Writes info to log with console.log. + * @param message info message + */ +function info(message) { + process.stdout.write(message + os.EOL); +} +exports.info = info; +/** + * Begin an output group. + * + * Output until the next `groupEnd` will be foldable in this group + * + * @param name The name of the output group + */ +function startGroup(name) { + command_1.issue('group', name); +} +exports.startGroup = startGroup; +/** + * End an output group. + */ +function endGroup() { + command_1.issue('endgroup'); +} +exports.endGroup = endGroup; +/** + * Wrap an asynchronous function call in a group. + * + * Returns the same type as the function itself. + * + * @param name The name of the group + * @param fn The function to wrap in the group + */ +function group(name, fn) { + return __awaiter(this, void 0, void 0, function* () { + startGroup(name); + let result; + try { + result = yield fn(); + } + finally { + endGroup(); + } + return result; + }); +} +exports.group = group; +//----------------------------------------------------------------------- +// Wrapper action state +//----------------------------------------------------------------------- +/** + * Saves state for current action, the state can only be retrieved by this action's post job execution. + * + * @param name name of the state to store + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function saveState(name, value) { + command_1.issueCommand('save-state', { name }, value); +} +exports.saveState = saveState; +/** + * Gets the value of an state set by this action's main execution. + * + * @param name name of the state to get + * @returns string + */ +function getState(name) { + return process.env[`STATE_${name}`] || ''; +} +exports.getState = getState; +//# sourceMappingURL=core.js.map + +/***/ }), + +/***/ 717: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +// For internal use, subject to change. +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.issueCommand = void 0; +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ +const fs = __importStar(__nccwpck_require__(5747)); +const os = __importStar(__nccwpck_require__(2087)); +const utils_1 = __nccwpck_require__(5278); +function issueCommand(command, message) { + const filePath = process.env[`GITHUB_${command}`]; + if (!filePath) { + throw new Error(`Unable to find environment variable for file command ${command}`); + } + if (!fs.existsSync(filePath)) { + throw new Error(`Missing file at path: ${filePath}`); + } + fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, { + encoding: 'utf8' + }); +} +exports.issueCommand = issueCommand; +//# sourceMappingURL=file-command.js.map + +/***/ }), + +/***/ 5278: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.toCommandValue = void 0; +/** + * Sanitizes an input into a string so it can be passed into issueCommand safely + * @param input input to sanitize into a string + */ +function toCommandValue(input) { + if (input === null || input === undefined) { + return ''; + } + else if (typeof input === 'string' || input instanceof String) { + return input; + } + return JSON.stringify(input); +} +exports.toCommandValue = toCommandValue; +//# sourceMappingURL=utils.js.map + +/***/ }), + +/***/ 4087: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Context = void 0; +const fs_1 = __nccwpck_require__(5747); +const os_1 = __nccwpck_require__(2087); +class Context { + /** + * Hydrate the context from the environment + */ + constructor() { + var _a, _b, _c; + this.payload = {}; + if (process.env.GITHUB_EVENT_PATH) { + if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) { + this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' })); + } + else { + const path = process.env.GITHUB_EVENT_PATH; + process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`); + } + } + this.eventName = process.env.GITHUB_EVENT_NAME; + this.sha = process.env.GITHUB_SHA; + this.ref = process.env.GITHUB_REF; + this.workflow = process.env.GITHUB_WORKFLOW; + this.action = process.env.GITHUB_ACTION; + this.actor = process.env.GITHUB_ACTOR; + this.job = process.env.GITHUB_JOB; + this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10); + this.runId = parseInt(process.env.GITHUB_RUN_ID, 10); + this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`; + this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`; + this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`; + } + get issue() { + const payload = this.payload; + return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number }); + } + get repo() { + if (process.env.GITHUB_REPOSITORY) { + const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/'); + return { owner, repo }; + } + if (this.payload.repository) { + return { + owner: this.payload.repository.owner.login, + repo: this.payload.repository.name + }; + } + throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'"); + } +} +exports.Context = Context; +//# sourceMappingURL=context.js.map + +/***/ }), + +/***/ 5438: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.getOctokit = exports.context = void 0; +const Context = __importStar(__nccwpck_require__(4087)); +const utils_1 = __nccwpck_require__(3030); +exports.context = new Context.Context(); +/** + * Returns a hydrated octokit ready to use for GitHub Actions + * + * @param token the repo PAT or GITHUB_TOKEN + * @param options other options to set + */ +function getOctokit(token, options) { + return new utils_1.GitHub(utils_1.getOctokitOptions(token, options)); +} +exports.getOctokit = getOctokit; +//# sourceMappingURL=github.js.map + +/***/ }), + +/***/ 7914: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0; +const httpClient = __importStar(__nccwpck_require__(9925)); +function getAuthString(token, options) { + if (!token && !options.auth) { + throw new Error('Parameter token or opts.auth is required'); + } + else if (token && options.auth) { + throw new Error('Parameters token and opts.auth may not both be specified'); + } + return typeof options.auth === 'string' ? options.auth : `token ${token}`; +} +exports.getAuthString = getAuthString; +function getProxyAgent(destinationUrl) { + const hc = new httpClient.HttpClient(); + return hc.getAgent(destinationUrl); +} +exports.getProxyAgent = getProxyAgent; +function getApiBaseUrl() { + return process.env['GITHUB_API_URL'] || 'https://api.github.com'; +} +exports.getApiBaseUrl = getApiBaseUrl; +//# sourceMappingURL=utils.js.map + +/***/ }), + +/***/ 3030: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.getOctokitOptions = exports.GitHub = exports.context = void 0; +const Context = __importStar(__nccwpck_require__(4087)); +const Utils = __importStar(__nccwpck_require__(7914)); +// octokit + plugins +const core_1 = __nccwpck_require__(6762); +const plugin_rest_endpoint_methods_1 = __nccwpck_require__(3044); +const plugin_paginate_rest_1 = __nccwpck_require__(4193); +exports.context = new Context.Context(); +const baseUrl = Utils.getApiBaseUrl(); +const defaults = { + baseUrl, + request: { + agent: Utils.getProxyAgent(baseUrl) + } +}; +exports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(defaults); +/** + * Convience function to correctly format Octokit Options to pass into the constructor. + * + * @param token the repo PAT or GITHUB_TOKEN + * @param options other options to set + */ +function getOctokitOptions(token, options) { + const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller + // Auth + const auth = Utils.getAuthString(token, opts); + if (auth) { + opts.auth = auth; + } + return opts; +} +exports.getOctokitOptions = getOctokitOptions; +//# sourceMappingURL=utils.js.map + +/***/ }), + +/***/ 9925: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const http = __nccwpck_require__(8605); +const https = __nccwpck_require__(7211); +const pm = __nccwpck_require__(6443); +let tunnel; +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers = exports.Headers || (exports.Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +function getProxyUrl(serverUrl) { + let proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ''; +} +exports.getProxyUrl = getProxyUrl; +const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +]; +const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = 'HttpClientError'; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); + } +} +exports.HttpClientError = HttpClientError; +class HttpClientResponse { + constructor(message) { + this.message = message; + } + readBody() { + return new Promise(async (resolve, reject) => { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); + }); + } +} +exports.HttpClientResponse = HttpClientResponse; +function isHttps(requestUrl) { + let parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === 'https:'; +} +exports.isHttps = isHttps; +class HttpClient { + constructor(userAgent, handlers, requestOptions) { + this._ignoreSslError = false; + this._allowRedirects = true; + this._allowRedirectDowngrade = false; + this._maxRedirects = 50; + this._allowRetries = false; + this._maxRetries = 1; + this._keepAlive = false; + this._disposed = false; + this.userAgent = userAgent; + this.handlers = handlers || []; + this.requestOptions = requestOptions; + if (requestOptions) { + if (requestOptions.ignoreSslError != null) { + this._ignoreSslError = requestOptions.ignoreSslError; + } + this._socketTimeout = requestOptions.socketTimeout; + if (requestOptions.allowRedirects != null) { + this._allowRedirects = requestOptions.allowRedirects; + } + if (requestOptions.allowRedirectDowngrade != null) { + this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; + } + if (requestOptions.maxRedirects != null) { + this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); + } + if (requestOptions.keepAlive != null) { + this._keepAlive = requestOptions.keepAlive; + } + if (requestOptions.allowRetries != null) { + this._allowRetries = requestOptions.allowRetries; + } + if (requestOptions.maxRetries != null) { + this._maxRetries = requestOptions.maxRetries; + } + } + } + options(requestUrl, additionalHeaders) { + return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); + } + get(requestUrl, additionalHeaders) { + return this.request('GET', requestUrl, null, additionalHeaders || {}); + } + del(requestUrl, additionalHeaders) { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); + } + post(requestUrl, data, additionalHeaders) { + return this.request('POST', requestUrl, data, additionalHeaders || {}); + } + patch(requestUrl, data, additionalHeaders) { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + } + put(requestUrl, data, additionalHeaders) { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + } + head(requestUrl, additionalHeaders) { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return this.request(verb, requestUrl, stream, additionalHeaders); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + async getJson(requestUrl, additionalHeaders = {}) { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + let res = await this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async postJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async putJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + async patchJson(requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + let res = await this.patch(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + } + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ + async request(verb, requestUrl, data, headers) { + if (this._disposed) { + throw new Error('Client has already been disposed.'); + } + let parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1 + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + while (numTries < maxTries) { + response = await this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (let i = 0; i < this.handlers.length; i++) { + if (this.handlers[i].canHandleAuthentication(response)) { + authenticationHandler = this.handlers[i]; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + let parsedRedirectUrl = new URL(redirectUrl); + if (parsedUrl.protocol == 'https:' && + parsedUrl.protocol != parsedRedirectUrl.protocol && + !this._allowRedirectDowngrade) { + throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.'); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + await response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (let header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = await this.requestRaw(info, data); + redirectsRemaining--; + } + if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + await response.readBody(); + await this._performExponentialBackoff(numTries); + } + } + return response; + } + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { + this._agent.destroy(); + } + this._disposed = true; + } + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info, data) { + return new Promise((resolve, reject) => { + let callbackForResult = function (err, res) { + if (err) { + reject(err); + } + resolve(res); + }; + this.requestRawWithCallback(info, data, callbackForResult); + }); + } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + let socket; + if (typeof data === 'string') { + info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + let handleResult = (err, res) => { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + }; + let req = info.httpModule.request(info.options, (msg) => { + let res = new HttpClientResponse(msg); + handleResult(null, res); + }); + req.on('socket', sock => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end(); + } + handleResult(new Error('Request timeout: ' + info.options.path), null); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err, null); + }); + if (data && typeof data === 'string') { + req.write(data, 'utf8'); + } + if (data && typeof data !== 'string') { + data.on('close', function () { + req.end(); + }); + data.pipe(req); + } + else { + req.end(); + } + } + /** + * Gets an http agent. This function is useful when you need an http agent that handles + * routing through a proxy server - depending upon the url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + getAgent(serverUrl) { + let parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); + } + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort; + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { + this.handlers.forEach(handler => { + handler.prepareRequest(info.options); + }); + } + return info; + } + _mergeHeaders(headers) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers)); + } + return lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + let proxyUrl = pm.getProxyUrl(parsedUrl); + let useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (this._keepAlive && !useProxy) { + agent = this._agent; + } + // if agent is already assigned use that agent. + if (!!agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (!!this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + if (useProxy) { + // If using proxy, need tunnel + if (!tunnel) { + tunnel = __nccwpck_require__(4294); + } + const agentOptions = { + maxSockets: maxSockets, + keepAlive: this._keepAlive, + proxy: { + ...((proxyUrl.username || proxyUrl.password) && { + proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` + }), + host: proxyUrl.hostname, + port: proxyUrl.port + } + }; + let tunnelAgent; + const overHttps = proxyUrl.protocol === 'https:'; + if (usingSsl) { + tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; + } + else { + tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; + } + agent = tunnelAgent(agentOptions); + this._proxyAgent = agent; + } + // if reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { keepAlive: this._keepAlive, maxSockets: maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { + agent = usingSsl ? https.globalAgent : http.globalAgent; + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }); + } + return agent; + } + _performExponentialBackoff(retryNumber) { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + } + static dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + let a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + async _processResponse(res, options) { + return new Promise(async (resolve, reject) => { + const statusCode = res.message.statusCode; + const response = { + statusCode: statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode == HttpCodes.NotFound) { + resolve(response); + } + let obj; + let contents; + // get the result from the body + try { + contents = await res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, HttpClient.dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = 'Failed request: (' + statusCode + ')'; + } + let err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + }); + } +} +exports.HttpClient = HttpClient; + + +/***/ }), + +/***/ 6443: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +function getProxyUrl(reqUrl) { + let usingSsl = reqUrl.protocol === 'https:'; + let proxyUrl; + if (checkBypass(reqUrl)) { + return proxyUrl; + } + let proxyVar; + if (usingSsl) { + proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } + else { + proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + if (proxyVar) { + proxyUrl = new URL(proxyVar); + } + return proxyUrl; +} +exports.getProxyUrl = getProxyUrl; +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + let upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + for (let upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperReqHosts.some(x => x === upperNoProxyItem)) { + return true; + } + } + return false; +} +exports.checkBypass = checkBypass; + + +/***/ }), + +/***/ 334: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +async function auth(token) { + const tokenType = token.split(/\./).length === 3 ? "app" : /^v\d+\./.test(token) ? "installation" : "oauth"; + return { + type: "token", + token: token, + tokenType + }; +} + +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + + return `token ${token}`; +} + +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} + +const createTokenAuth = function createTokenAuth(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + + if (typeof token !== "string") { + throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); + } + + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; + +exports.createTokenAuth = createTokenAuth; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 6762: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +var universalUserAgent = __nccwpck_require__(5030); +var beforeAfterHook = __nccwpck_require__(3682); +var request = __nccwpck_require__(6234); +var graphql = __nccwpck_require__(8467); +var authToken = __nccwpck_require__(334); + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + + var target = _objectWithoutPropertiesLoose(source, excluded); + + var key, i; + + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + + return target; +} + +const VERSION = "3.5.1"; + +const _excluded = ["authStrategy"]; +class Octokit { + constructor(options = {}) { + const hook = new beforeAfterHook.Collection(); + const requestDefaults = { + baseUrl: request.request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; // prepend default user agent with `options.userAgent` if set + + requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); + + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + + this.request = request.request.defaults(requestDefaults); + this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign({ + debug: () => {}, + info: () => {}, + warn: console.warn.bind(console), + error: console.error.bind(console) + }, options.log); + this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance + // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. + // (2) If only `options.auth` is set, use the default token authentication strategy. + // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. + // TODO: type `options.auth` based on `options.authStrategy`. + + if (!options.authStrategy) { + if (!options.auth) { + // (1) + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + // (2) + const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { + authStrategy + } = options, + otherOptions = _objectWithoutProperties(options, _excluded); + + const auth = authStrategy(Object.assign({ + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions + }, options.auth)); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } // apply plugins + // https://stackoverflow.com/a/16345172 + + + const classConstructor = this.constructor; + classConstructor.plugins.forEach(plugin => { + Object.assign(this, plugin(this, options)); + }); + } + + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null)); + } + + }; + return OctokitWithDefaults; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + + + static plugin(...newPlugins) { + var _a; + + const currentPlugins = this.plugins; + const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); + return NewOctokit; + } + +} +Octokit.VERSION = VERSION; +Octokit.plugins = []; + +exports.Octokit = Octokit; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 9440: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +var isPlainObject = __nccwpck_require__(3287); +var universalUserAgent = __nccwpck_require__(5030); + +function lowercaseKeys(object) { + if (!object) { + return {}; + } + + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} + +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach(key => { + if (isPlainObject.isPlainObject(options[key])) { + if (!(key in defaults)) Object.assign(result, { + [key]: options[key] + });else result[key] = mergeDeep(defaults[key], options[key]); + } else { + Object.assign(result, { + [key]: options[key] + }); + } + }); + return result; +} + +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === undefined) { + delete obj[key]; + } + } + + return obj; +} + +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { + method, + url + } : { + url: method + }, options); + } else { + options = Object.assign({}, route); + } // lowercase header names before merging with defaults to avoid duplicates + + + options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging + + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten + + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews); + } + + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, "")); + return mergedOptions; +} + +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + + if (names.length === 0) { + return url; + } + + return url + separator + names.map(name => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } + + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); +} + +const urlVariableRegex = /\{[^}]+\}/g; + +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} + +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + + if (!matches) { + return []; + } + + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} + +function omit(object, keysToOmit) { + return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} + +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +/* istanbul ignore file */ +function encodeReserved(str) { + return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + + return part; + }).join(""); +} + +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} + +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); + + if (key) { + return encodeUnreserved(key) + "=" + value; + } else { + return value; + } +} + +function isDefined(value) { + return value !== undefined && value !== null; +} + +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} + +function getValues(context, operator, key, modifier) { + var value = context[key], + result = []; + + if (isDefined(value) && value !== "") { + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + value = value.toString(); + + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; + + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } else if (value === "") { + result.push(""); + } + } + + return result; +} + +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} + +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + + expression.split(/,/g).forEach(function (variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + + if (operator && operator !== "+") { + var separator = ","; + + if (operator === "?") { + separator = "&"; + } else if (operator !== "#") { + separator = operator; + } + + return (values.length !== 0 ? operator : "") + values.join(separator); + } else { + return values.join(","); + } + } else { + return encodeReserved(literal); + } + }); +} + +function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible + + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, ["method", "baseUrl", "url", "headers", "request", "mediaType"]); // extract variable names from URL to calculate remaining variables later + + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + + const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + + if (!isBinaryRequest) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + } + + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + + + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } else { + headers["content-length"] = 0; + } + } + } // default content-type for JSON if body is set + + + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + + + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } // Only return body/request keys if present + + + return Object.assign({ + method, + url, + headers + }, typeof body !== "undefined" ? { + body + } : null, options.request ? { + request: options.request + } : null); +} + +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse + }); +} + +const VERSION = "6.0.12"; + +const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. + +const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "", + previews: [] + } +}; + +const endpoint = withDefaults(null, DEFAULTS); + +exports.endpoint = endpoint; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 8467: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +var request = __nccwpck_require__(6234); +var universalUserAgent = __nccwpck_require__(5030); + +const VERSION = "4.8.0"; + +function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors:\n` + data.errors.map(e => ` - ${e.message}`).join("\n"); +} + +class GraphqlResponseError extends Error { + constructor(request, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request; + this.headers = headers; + this.response = response; + this.name = "GraphqlResponseError"; // Expose the errors and response data in their shorthand properties. + + this.errors = response.errors; + this.data = response.data; // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + +} + +const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; +const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request, query, options) { + if (options) { + if (typeof query === "string" && "query" in options) { + return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`)); + } + + for (const key in options) { + if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue; + return Promise.reject(new Error(`[@octokit/graphql] "${key}" cannot be used as variable name`)); + } + } + + const parsedOptions = typeof query === "string" ? Object.assign({ + query + }, options) : query; + const requestOptions = Object.keys(parsedOptions).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + + if (!result.variables) { + result.variables = {}; + } + + result.variables[key] = parsedOptions[key]; + return result; + }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix + // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + + const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + + return request(requestOptions).then(response => { + if (response.data.errors) { + const headers = {}; + + for (const key of Object.keys(response.headers)) { + headers[key] = response.headers[key]; + } + + throw new GraphqlResponseError(requestOptions, headers, response.data); + } + + return response.data.data; + }); +} + +function withDefaults(request$1, newDefaults) { + const newRequest = request$1.defaults(newDefaults); + + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: request.request.endpoint + }); +} + +const graphql$1 = withDefaults(request.request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` + }, + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} + +exports.GraphqlResponseError = GraphqlResponseError; +exports.graphql = graphql$1; +exports.withCustomRequest = withCustomRequest; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 4193: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +const VERSION = "2.16.0"; + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +function normalizePaginatedListResponse(response) { + // endpoints can respond with 204 if repository is empty + if (!response.data) { + return _objectSpread2(_objectSpread2({}, response), {}, { + data: [] + }); + } + + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way + // to retrieve the same information. + + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + + if (typeof incompleteResults !== "undefined") { + response.data.incomplete_results = incompleteResults; + } + + if (typeof repositorySelection !== "undefined") { + response.data.repository_selection = repositorySelection; + } + + response.data.total_count = totalCount; + return response; +} + +function iterator(octokit, route, parameters) { + const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); + const requestMethod = typeof route === "function" ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; + return { + [Symbol.asyncIterator]: () => ({ + async next() { + if (!url) return { + done: true + }; + + try { + const response = await requestMethod({ + method, + url, + headers + }); + const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + + url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; + return { + value: normalizedResponse + }; + } catch (error) { + if (error.status !== 409) throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [] + } + }; + } + } + + }) + }; +} + +function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = undefined; + } + + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); +} + +function gather(octokit, results, iterator, mapFn) { + return iterator.next().then(result => { + if (result.done) { + return results; + } + + let earlyExit = false; + + function done() { + earlyExit = true; + } + + results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data); + + if (earlyExit) { + return results; + } + + return gather(octokit, results, iterator, mapFn); + }); +} + +const composePaginateRest = Object.assign(paginate, { + iterator +}); + +const paginatingEndpoints = ["GET /app/hook/deliveries", "GET /app/installations", "GET /applications/grants", "GET /authorizations", "GET /enterprises/{enterprise}/actions/permissions/organizations", "GET /enterprises/{enterprise}/actions/runner-groups", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "GET /enterprises/{enterprise}/actions/runners", "GET /enterprises/{enterprise}/actions/runners/downloads", "GET /events", "GET /gists", "GET /gists/public", "GET /gists/starred", "GET /gists/{gist_id}/comments", "GET /gists/{gist_id}/commits", "GET /gists/{gist_id}/forks", "GET /installation/repositories", "GET /issues", "GET /marketplace_listing/plans", "GET /marketplace_listing/plans/{plan_id}/accounts", "GET /marketplace_listing/stubbed/plans", "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", "GET /networks/{owner}/{repo}/events", "GET /notifications", "GET /organizations", "GET /orgs/{org}/actions/permissions/repositories", "GET /orgs/{org}/actions/runner-groups", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "GET /orgs/{org}/actions/runners", "GET /orgs/{org}/actions/runners/downloads", "GET /orgs/{org}/actions/secrets", "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", "GET /orgs/{org}/blocks", "GET /orgs/{org}/credential-authorizations", "GET /orgs/{org}/events", "GET /orgs/{org}/failed_invitations", "GET /orgs/{org}/hooks", "GET /orgs/{org}/hooks/{hook_id}/deliveries", "GET /orgs/{org}/installations", "GET /orgs/{org}/invitations", "GET /orgs/{org}/invitations/{invitation_id}/teams", "GET /orgs/{org}/issues", "GET /orgs/{org}/members", "GET /orgs/{org}/migrations", "GET /orgs/{org}/migrations/{migration_id}/repositories", "GET /orgs/{org}/outside_collaborators", "GET /orgs/{org}/packages", "GET /orgs/{org}/projects", "GET /orgs/{org}/public_members", "GET /orgs/{org}/repos", "GET /orgs/{org}/secret-scanning/alerts", "GET /orgs/{org}/team-sync/groups", "GET /orgs/{org}/teams", "GET /orgs/{org}/teams/{team_slug}/discussions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/invitations", "GET /orgs/{org}/teams/{team_slug}/members", "GET /orgs/{org}/teams/{team_slug}/projects", "GET /orgs/{org}/teams/{team_slug}/repos", "GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings", "GET /orgs/{org}/teams/{team_slug}/teams", "GET /projects/columns/{column_id}/cards", "GET /projects/{project_id}/collaborators", "GET /projects/{project_id}/columns", "GET /repos/{owner}/{repo}/actions/artifacts", "GET /repos/{owner}/{repo}/actions/runners", "GET /repos/{owner}/{repo}/actions/runners/downloads", "GET /repos/{owner}/{repo}/actions/runs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "GET /repos/{owner}/{repo}/actions/secrets", "GET /repos/{owner}/{repo}/actions/workflows", "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "GET /repos/{owner}/{repo}/assignees", "GET /repos/{owner}/{repo}/autolinks", "GET /repos/{owner}/{repo}/branches", "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "GET /repos/{owner}/{repo}/code-scanning/alerts", "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "GET /repos/{owner}/{repo}/code-scanning/analyses", "GET /repos/{owner}/{repo}/collaborators", "GET /repos/{owner}/{repo}/comments", "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/commits", "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", "GET /repos/{owner}/{repo}/commits/{ref}/statuses", "GET /repos/{owner}/{repo}/contributors", "GET /repos/{owner}/{repo}/deployments", "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "GET /repos/{owner}/{repo}/events", "GET /repos/{owner}/{repo}/forks", "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", "GET /repos/{owner}/{repo}/hooks", "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "GET /repos/{owner}/{repo}/invitations", "GET /repos/{owner}/{repo}/issues", "GET /repos/{owner}/{repo}/issues/comments", "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/issues/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", "GET /repos/{owner}/{repo}/issues/{issue_number}/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", "GET /repos/{owner}/{repo}/keys", "GET /repos/{owner}/{repo}/labels", "GET /repos/{owner}/{repo}/milestones", "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", "GET /repos/{owner}/{repo}/notifications", "GET /repos/{owner}/{repo}/pages/builds", "GET /repos/{owner}/{repo}/projects", "GET /repos/{owner}/{repo}/pulls", "GET /repos/{owner}/{repo}/pulls/comments", "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "GET /repos/{owner}/{repo}/releases", "GET /repos/{owner}/{repo}/releases/{release_id}/assets", "GET /repos/{owner}/{repo}/secret-scanning/alerts", "GET /repos/{owner}/{repo}/stargazers", "GET /repos/{owner}/{repo}/subscribers", "GET /repos/{owner}/{repo}/tags", "GET /repos/{owner}/{repo}/teams", "GET /repositories", "GET /repositories/{repository_id}/environments/{environment_name}/secrets", "GET /scim/v2/enterprises/{enterprise}/Groups", "GET /scim/v2/enterprises/{enterprise}/Users", "GET /scim/v2/organizations/{org}/Users", "GET /search/code", "GET /search/commits", "GET /search/issues", "GET /search/labels", "GET /search/repositories", "GET /search/topics", "GET /search/users", "GET /teams/{team_id}/discussions", "GET /teams/{team_id}/discussions/{discussion_number}/comments", "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /teams/{team_id}/discussions/{discussion_number}/reactions", "GET /teams/{team_id}/invitations", "GET /teams/{team_id}/members", "GET /teams/{team_id}/projects", "GET /teams/{team_id}/repos", "GET /teams/{team_id}/team-sync/group-mappings", "GET /teams/{team_id}/teams", "GET /user/blocks", "GET /user/emails", "GET /user/followers", "GET /user/following", "GET /user/gpg_keys", "GET /user/installations", "GET /user/installations/{installation_id}/repositories", "GET /user/issues", "GET /user/keys", "GET /user/marketplace_purchases", "GET /user/marketplace_purchases/stubbed", "GET /user/memberships/orgs", "GET /user/migrations", "GET /user/migrations/{migration_id}/repositories", "GET /user/orgs", "GET /user/packages", "GET /user/public_emails", "GET /user/repos", "GET /user/repository_invitations", "GET /user/starred", "GET /user/subscriptions", "GET /user/teams", "GET /user/{username}/packages", "GET /users", "GET /users/{username}/events", "GET /users/{username}/events/orgs/{org}", "GET /users/{username}/events/public", "GET /users/{username}/followers", "GET /users/{username}/following", "GET /users/{username}/gists", "GET /users/{username}/gpg_keys", "GET /users/{username}/keys", "GET /users/{username}/orgs", "GET /users/{username}/projects", "GET /users/{username}/received_events", "GET /users/{username}/received_events/public", "GET /users/{username}/repos", "GET /users/{username}/starred", "GET /users/{username}/subscriptions"]; + +function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } else { + return false; + } +} + +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ + +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; +} +paginateRest.VERSION = VERSION; + +exports.composePaginateRest = composePaginateRest; +exports.isPaginatingEndpoint = isPaginatingEndpoint; +exports.paginateRest = paginateRest; +exports.paginatingEndpoints = paginatingEndpoints; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 3044: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +const Endpoints = { + actions: { + addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], + approveWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"], + cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], + createOrUpdateEnvironmentSecret: ["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + createRegistrationTokenForOrg: ["POST /orgs/{org}/actions/runners/registration-token"], + createRegistrationTokenForRepo: ["POST /repos/{owner}/{repo}/actions/runners/registration-token"], + createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], + createRemoveTokenForRepo: ["POST /repos/{owner}/{repo}/actions/runners/remove-token"], + createWorkflowDispatch: ["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"], + deleteArtifact: ["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + deleteEnvironmentSecret: ["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + deleteSelfHostedRunnerFromOrg: ["DELETE /orgs/{org}/actions/runners/{runner_id}"], + deleteSelfHostedRunnerFromRepo: ["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"], + deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], + deleteWorkflowRunLogs: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"], + disableSelectedRepositoryGithubActionsOrganization: ["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"], + disableWorkflow: ["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"], + downloadArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"], + downloadJobLogsForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"], + downloadWorkflowRunLogs: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"], + enableSelectedRepositoryGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"], + enableWorkflow: ["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"], + getAllowedActionsOrganization: ["GET /orgs/{org}/actions/permissions/selected-actions"], + getAllowedActionsRepository: ["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"], + getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + getEnvironmentPublicKey: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"], + getEnvironmentSecret: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + getGithubActionsPermissionsOrganization: ["GET /orgs/{org}/actions/permissions"], + getGithubActionsPermissionsRepository: ["GET /repos/{owner}/{repo}/actions/permissions"], + getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], + getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], + getPendingDeploymentsForRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"], + getRepoPermissions: ["GET /repos/{owner}/{repo}/actions/permissions", {}, { + renamed: ["actions", "getGithubActionsPermissionsRepository"] + }], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + getReviewsForRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"], + getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], + getSelfHostedRunnerForRepo: ["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"], + getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], + getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], + getWorkflowRunUsage: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"], + getWorkflowUsage: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"], + listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], + listEnvironmentSecrets: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets"], + listJobsForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"], + listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], + listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], + listRunnerApplicationsForRepo: ["GET /repos/{owner}/{repo}/actions/runners/downloads"], + listSelectedReposForOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"], + listSelectedRepositoriesEnabledGithubActionsOrganization: ["GET /orgs/{org}/actions/permissions/repositories"], + listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], + listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], + listWorkflowRunArtifacts: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"], + listWorkflowRuns: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"], + listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], + reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], + removeSelectedRepoFromOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], + reviewPendingDeploymentsForRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"], + setAllowedActionsOrganization: ["PUT /orgs/{org}/actions/permissions/selected-actions"], + setAllowedActionsRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"], + setGithubActionsPermissionsOrganization: ["PUT /orgs/{org}/actions/permissions"], + setGithubActionsPermissionsRepository: ["PUT /repos/{owner}/{repo}/actions/permissions"], + setSelectedReposForOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"], + setSelectedRepositoriesEnabledGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories"] + }, + activity: { + checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], + deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], + deleteThreadSubscription: ["DELETE /notifications/threads/{thread_id}/subscription"], + getFeeds: ["GET /feeds"], + getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], + getThread: ["GET /notifications/threads/{thread_id}"], + getThreadSubscriptionForAuthenticatedUser: ["GET /notifications/threads/{thread_id}/subscription"], + listEventsForAuthenticatedUser: ["GET /users/{username}/events"], + listNotificationsForAuthenticatedUser: ["GET /notifications"], + listOrgEventsForAuthenticatedUser: ["GET /users/{username}/events/orgs/{org}"], + listPublicEvents: ["GET /events"], + listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], + listPublicEventsForUser: ["GET /users/{username}/events/public"], + listPublicOrgEvents: ["GET /orgs/{org}/events"], + listReceivedEventsForUser: ["GET /users/{username}/received_events"], + listReceivedPublicEventsForUser: ["GET /users/{username}/received_events/public"], + listRepoEvents: ["GET /repos/{owner}/{repo}/events"], + listRepoNotificationsForAuthenticatedUser: ["GET /repos/{owner}/{repo}/notifications"], + listReposStarredByAuthenticatedUser: ["GET /user/starred"], + listReposStarredByUser: ["GET /users/{username}/starred"], + listReposWatchedByUser: ["GET /users/{username}/subscriptions"], + listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], + listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], + listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], + markNotificationsAsRead: ["PUT /notifications"], + markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], + markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], + setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], + setThreadSubscription: ["PUT /notifications/threads/{thread_id}/subscription"], + starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], + unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] + }, + apps: { + addRepoToInstallation: ["PUT /user/installations/{installation_id}/repositories/{repository_id}"], + checkToken: ["POST /applications/{client_id}/token"], + createContentAttachment: ["POST /content_references/{content_reference_id}/attachments", { + mediaType: { + previews: ["corsair"] + } + }], + createContentAttachmentForRepo: ["POST /repos/{owner}/{repo}/content_references/{content_reference_id}/attachments", { + mediaType: { + previews: ["corsair"] + } + }], + createFromManifest: ["POST /app-manifests/{code}/conversions"], + createInstallationAccessToken: ["POST /app/installations/{installation_id}/access_tokens"], + deleteAuthorization: ["DELETE /applications/{client_id}/grant"], + deleteInstallation: ["DELETE /app/installations/{installation_id}"], + deleteToken: ["DELETE /applications/{client_id}/token"], + getAuthenticated: ["GET /app"], + getBySlug: ["GET /apps/{app_slug}"], + getInstallation: ["GET /app/installations/{installation_id}"], + getOrgInstallation: ["GET /orgs/{org}/installation"], + getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], + getSubscriptionPlanForAccount: ["GET /marketplace_listing/accounts/{account_id}"], + getSubscriptionPlanForAccountStubbed: ["GET /marketplace_listing/stubbed/accounts/{account_id}"], + getUserInstallation: ["GET /users/{username}/installation"], + getWebhookConfigForApp: ["GET /app/hook/config"], + getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"], + listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], + listAccountsForPlanStubbed: ["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"], + listInstallationReposForAuthenticatedUser: ["GET /user/installations/{installation_id}/repositories"], + listInstallations: ["GET /app/installations"], + listInstallationsForAuthenticatedUser: ["GET /user/installations"], + listPlans: ["GET /marketplace_listing/plans"], + listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], + listReposAccessibleToInstallation: ["GET /installation/repositories"], + listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], + listSubscriptionsForAuthenticatedUserStubbed: ["GET /user/marketplace_purchases/stubbed"], + listWebhookDeliveries: ["GET /app/hook/deliveries"], + redeliverWebhookDelivery: ["POST /app/hook/deliveries/{delivery_id}/attempts"], + removeRepoFromInstallation: ["DELETE /user/installations/{installation_id}/repositories/{repository_id}"], + resetToken: ["PATCH /applications/{client_id}/token"], + revokeInstallationAccessToken: ["DELETE /installation/token"], + scopeToken: ["POST /applications/{client_id}/token/scoped"], + suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], + unsuspendInstallation: ["DELETE /app/installations/{installation_id}/suspended"], + updateWebhookConfigForApp: ["PATCH /app/hook/config"] + }, + billing: { + getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], + getGithubActionsBillingUser: ["GET /users/{username}/settings/billing/actions"], + getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], + getGithubPackagesBillingUser: ["GET /users/{username}/settings/billing/packages"], + getSharedStorageBillingOrg: ["GET /orgs/{org}/settings/billing/shared-storage"], + getSharedStorageBillingUser: ["GET /users/{username}/settings/billing/shared-storage"] + }, + checks: { + create: ["POST /repos/{owner}/{repo}/check-runs"], + createSuite: ["POST /repos/{owner}/{repo}/check-suites"], + get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], + getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], + listAnnotations: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"], + listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], + listForSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"], + listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], + rerequestSuite: ["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"], + setSuitesPreferences: ["PATCH /repos/{owner}/{repo}/check-suites/preferences"], + update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] + }, + codeScanning: { + deleteAnalysis: ["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"], + getAlert: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", {}, { + renamedParameters: { + alert_id: "alert_number" + } + }], + getAnalysis: ["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"], + getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], + listAlertInstances: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], + listAlertsInstances: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", {}, { + renamed: ["codeScanning", "listAlertInstances"] + }], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] + }, + codesOfConduct: { + getAllCodesOfConduct: ["GET /codes_of_conduct"], + getConductCode: ["GET /codes_of_conduct/{key}"], + getForRepo: ["GET /repos/{owner}/{repo}/community/code_of_conduct", { + mediaType: { + previews: ["scarlet-witch"] + } + }] + }, + emojis: { + get: ["GET /emojis"] + }, + enterpriseAdmin: { + disableSelectedOrganizationGithubActionsEnterprise: ["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"], + enableSelectedOrganizationGithubActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"], + getAllowedActionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/selected-actions"], + getGithubActionsPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions"], + listSelectedOrganizationsEnabledGithubActionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/organizations"], + setAllowedActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"], + setGithubActionsPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions"], + setSelectedOrganizationsEnabledGithubActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/organizations"] + }, + gists: { + checkIsStarred: ["GET /gists/{gist_id}/star"], + create: ["POST /gists"], + createComment: ["POST /gists/{gist_id}/comments"], + delete: ["DELETE /gists/{gist_id}"], + deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], + fork: ["POST /gists/{gist_id}/forks"], + get: ["GET /gists/{gist_id}"], + getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], + getRevision: ["GET /gists/{gist_id}/{sha}"], + list: ["GET /gists"], + listComments: ["GET /gists/{gist_id}/comments"], + listCommits: ["GET /gists/{gist_id}/commits"], + listForUser: ["GET /users/{username}/gists"], + listForks: ["GET /gists/{gist_id}/forks"], + listPublic: ["GET /gists/public"], + listStarred: ["GET /gists/starred"], + star: ["PUT /gists/{gist_id}/star"], + unstar: ["DELETE /gists/{gist_id}/star"], + update: ["PATCH /gists/{gist_id}"], + updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] + }, + git: { + createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], + createCommit: ["POST /repos/{owner}/{repo}/git/commits"], + createRef: ["POST /repos/{owner}/{repo}/git/refs"], + createTag: ["POST /repos/{owner}/{repo}/git/tags"], + createTree: ["POST /repos/{owner}/{repo}/git/trees"], + deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], + getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], + getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], + getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], + getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], + getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], + listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], + updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] + }, + gitignore: { + getAllTemplates: ["GET /gitignore/templates"], + getTemplate: ["GET /gitignore/templates/{name}"] + }, + interactions: { + getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], + getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], + getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], + getRestrictionsForYourPublicRepos: ["GET /user/interaction-limits", {}, { + renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] + }], + removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], + removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], + removeRestrictionsForRepo: ["DELETE /repos/{owner}/{repo}/interaction-limits"], + removeRestrictionsForYourPublicRepos: ["DELETE /user/interaction-limits", {}, { + renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] + }], + setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], + setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], + setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], + setRestrictionsForYourPublicRepos: ["PUT /user/interaction-limits", {}, { + renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] + }] + }, + issues: { + addAssignees: ["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"], + addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], + checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], + create: ["POST /repos/{owner}/{repo}/issues"], + createComment: ["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"], + createLabel: ["POST /repos/{owner}/{repo}/labels"], + createMilestone: ["POST /repos/{owner}/{repo}/milestones"], + deleteComment: ["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"], + deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], + deleteMilestone: ["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"], + get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], + getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], + getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], + getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], + getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], + list: ["GET /issues"], + listAssignees: ["GET /repos/{owner}/{repo}/assignees"], + listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], + listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], + listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], + listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], + listEventsForTimeline: ["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", { + mediaType: { + previews: ["mockingbird"] + } + }], + listForAuthenticatedUser: ["GET /user/issues"], + listForOrg: ["GET /orgs/{org}/issues"], + listForRepo: ["GET /repos/{owner}/{repo}/issues"], + listLabelsForMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"], + listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], + listLabelsOnIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"], + listMilestones: ["GET /repos/{owner}/{repo}/milestones"], + lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], + removeAllLabels: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"], + removeAssignees: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"], + removeLabel: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"], + setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], + unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], + update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], + updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], + updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], + updateMilestone: ["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"] + }, + licenses: { + get: ["GET /licenses/{license}"], + getAllCommonlyUsed: ["GET /licenses"], + getForRepo: ["GET /repos/{owner}/{repo}/license"] + }, + markdown: { + render: ["POST /markdown"], + renderRaw: ["POST /markdown/raw", { + headers: { + "content-type": "text/plain; charset=utf-8" + } + }] + }, + meta: { + get: ["GET /meta"], + getOctocat: ["GET /octocat"], + getZen: ["GET /zen"], + root: ["GET /"] + }, + migrations: { + cancelImport: ["DELETE /repos/{owner}/{repo}/import"], + deleteArchiveForAuthenticatedUser: ["DELETE /user/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + deleteArchiveForOrg: ["DELETE /orgs/{org}/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + downloadArchiveForOrg: ["GET /orgs/{org}/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + getArchiveForAuthenticatedUser: ["GET /user/migrations/{migration_id}/archive", { + mediaType: { + previews: ["wyandotte"] + } + }], + getCommitAuthors: ["GET /repos/{owner}/{repo}/import/authors"], + getImportStatus: ["GET /repos/{owner}/{repo}/import"], + getLargeFiles: ["GET /repos/{owner}/{repo}/import/large_files"], + getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}", { + mediaType: { + previews: ["wyandotte"] + } + }], + getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}", { + mediaType: { + previews: ["wyandotte"] + } + }], + listForAuthenticatedUser: ["GET /user/migrations", { + mediaType: { + previews: ["wyandotte"] + } + }], + listForOrg: ["GET /orgs/{org}/migrations", { + mediaType: { + previews: ["wyandotte"] + } + }], + listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories", { + mediaType: { + previews: ["wyandotte"] + } + }], + listReposForUser: ["GET /user/migrations/{migration_id}/repositories", { + mediaType: { + previews: ["wyandotte"] + } + }], + mapCommitAuthor: ["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"], + setLfsPreference: ["PATCH /repos/{owner}/{repo}/import/lfs"], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + startImport: ["PUT /repos/{owner}/{repo}/import"], + unlockRepoForAuthenticatedUser: ["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock", { + mediaType: { + previews: ["wyandotte"] + } + }], + unlockRepoForOrg: ["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock", { + mediaType: { + previews: ["wyandotte"] + } + }], + updateImport: ["PATCH /repos/{owner}/{repo}/import"] + }, + orgs: { + blockUser: ["PUT /orgs/{org}/blocks/{username}"], + cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], + checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], + checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], + checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], + convertMemberToOutsideCollaborator: ["PUT /orgs/{org}/outside_collaborators/{username}"], + createInvitation: ["POST /orgs/{org}/invitations"], + createWebhook: ["POST /orgs/{org}/hooks"], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + get: ["GET /orgs/{org}"], + getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], + getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], + getWebhookDelivery: ["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"], + list: ["GET /organizations"], + listAppInstallations: ["GET /orgs/{org}/installations"], + listBlockedUsers: ["GET /orgs/{org}/blocks"], + listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], + listForAuthenticatedUser: ["GET /user/orgs"], + listForUser: ["GET /users/{username}/orgs"], + listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], + listMembers: ["GET /orgs/{org}/members"], + listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + listPendingInvitations: ["GET /orgs/{org}/invitations"], + listPublicMembers: ["GET /orgs/{org}/public_members"], + listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"], + listWebhooks: ["GET /orgs/{org}/hooks"], + pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], + redeliverWebhookDelivery: ["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"], + removeMember: ["DELETE /orgs/{org}/members/{username}"], + removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], + removeOutsideCollaborator: ["DELETE /orgs/{org}/outside_collaborators/{username}"], + removePublicMembershipForAuthenticatedUser: ["DELETE /orgs/{org}/public_members/{username}"], + setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], + setPublicMembershipForAuthenticatedUser: ["PUT /orgs/{org}/public_members/{username}"], + unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], + update: ["PATCH /orgs/{org}"], + updateMembershipForAuthenticatedUser: ["PATCH /user/memberships/orgs/{org}"], + updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], + updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] + }, + packages: { + deletePackageForAuthenticatedUser: ["DELETE /user/packages/{package_type}/{package_name}"], + deletePackageForOrg: ["DELETE /orgs/{org}/packages/{package_type}/{package_name}"], + deletePackageForUser: ["DELETE /users/{username}/packages/{package_type}/{package_name}"], + deletePackageVersionForAuthenticatedUser: ["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"], + deletePackageVersionForOrg: ["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"], + deletePackageVersionForUser: ["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"], + getAllPackageVersionsForAPackageOwnedByAnOrg: ["GET /orgs/{org}/packages/{package_type}/{package_name}/versions", {}, { + renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] + }], + getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}/versions", {}, { + renamed: ["packages", "getAllPackageVersionsForPackageOwnedByAuthenticatedUser"] + }], + getAllPackageVersionsForPackageOwnedByAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}/versions"], + getAllPackageVersionsForPackageOwnedByOrg: ["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"], + getAllPackageVersionsForPackageOwnedByUser: ["GET /users/{username}/packages/{package_type}/{package_name}/versions"], + getPackageForAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}"], + getPackageForOrganization: ["GET /orgs/{org}/packages/{package_type}/{package_name}"], + getPackageForUser: ["GET /users/{username}/packages/{package_type}/{package_name}"], + getPackageVersionForAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"], + getPackageVersionForOrganization: ["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"], + getPackageVersionForUser: ["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"], + listPackagesForAuthenticatedUser: ["GET /user/packages"], + listPackagesForOrganization: ["GET /orgs/{org}/packages"], + listPackagesForUser: ["GET /user/{username}/packages"], + restorePackageForAuthenticatedUser: ["POST /user/packages/{package_type}/{package_name}/restore{?token}"], + restorePackageForOrg: ["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"], + restorePackageForUser: ["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"], + restorePackageVersionForAuthenticatedUser: ["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"], + restorePackageVersionForOrg: ["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"], + restorePackageVersionForUser: ["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"] + }, + projects: { + addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}", { + mediaType: { + previews: ["inertia"] + } + }], + createCard: ["POST /projects/columns/{column_id}/cards", { + mediaType: { + previews: ["inertia"] + } + }], + createColumn: ["POST /projects/{project_id}/columns", { + mediaType: { + previews: ["inertia"] + } + }], + createForAuthenticatedUser: ["POST /user/projects", { + mediaType: { + previews: ["inertia"] + } + }], + createForOrg: ["POST /orgs/{org}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + createForRepo: ["POST /repos/{owner}/{repo}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + delete: ["DELETE /projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + deleteCard: ["DELETE /projects/columns/cards/{card_id}", { + mediaType: { + previews: ["inertia"] + } + }], + deleteColumn: ["DELETE /projects/columns/{column_id}", { + mediaType: { + previews: ["inertia"] + } + }], + get: ["GET /projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + getCard: ["GET /projects/columns/cards/{card_id}", { + mediaType: { + previews: ["inertia"] + } + }], + getColumn: ["GET /projects/columns/{column_id}", { + mediaType: { + previews: ["inertia"] + } + }], + getPermissionForUser: ["GET /projects/{project_id}/collaborators/{username}/permission", { + mediaType: { + previews: ["inertia"] + } + }], + listCards: ["GET /projects/columns/{column_id}/cards", { + mediaType: { + previews: ["inertia"] + } + }], + listCollaborators: ["GET /projects/{project_id}/collaborators", { + mediaType: { + previews: ["inertia"] + } + }], + listColumns: ["GET /projects/{project_id}/columns", { + mediaType: { + previews: ["inertia"] + } + }], + listForOrg: ["GET /orgs/{org}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + listForRepo: ["GET /repos/{owner}/{repo}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + listForUser: ["GET /users/{username}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + moveCard: ["POST /projects/columns/cards/{card_id}/moves", { + mediaType: { + previews: ["inertia"] + } + }], + moveColumn: ["POST /projects/columns/{column_id}/moves", { + mediaType: { + previews: ["inertia"] + } + }], + removeCollaborator: ["DELETE /projects/{project_id}/collaborators/{username}", { + mediaType: { + previews: ["inertia"] + } + }], + update: ["PATCH /projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + updateCard: ["PATCH /projects/columns/cards/{card_id}", { + mediaType: { + previews: ["inertia"] + } + }], + updateColumn: ["PATCH /projects/columns/{column_id}", { + mediaType: { + previews: ["inertia"] + } + }] + }, + pulls: { + checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + create: ["POST /repos/{owner}/{repo}/pulls"], + createReplyForReviewComment: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"], + createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + createReviewComment: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"], + deletePendingReview: ["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], + deleteReviewComment: ["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + dismissReview: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"], + get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], + getReview: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], + getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + list: ["GET /repos/{owner}/{repo}/pulls"], + listCommentsForReview: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"], + listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], + listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], + listRequestedReviewers: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], + listReviewComments: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"], + listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], + listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + removeRequestedReviewers: ["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], + requestReviewers: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], + submitReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"], + update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], + updateBranch: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch", { + mediaType: { + previews: ["lydian"] + } + }], + updateReview: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], + updateReviewComment: ["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"] + }, + rateLimit: { + get: ["GET /rate_limit"] + }, + reactions: { + createForCommitComment: ["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForIssue: ["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForIssueComment: ["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForPullRequestReviewComment: ["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForRelease: ["POST /repos/{owner}/{repo}/releases/{release_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForTeamDiscussionCommentInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + createForTeamDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForIssue: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForIssueComment: ["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForPullRequestComment: ["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForTeamDiscussion: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteForTeamDiscussionComment: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + deleteLegacy: ["DELETE /reactions/{reaction_id}", { + mediaType: { + previews: ["squirrel-girl"] + } + }, { + deprecated: "octokit.rest.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy" + }], + listForCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForIssueComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForPullRequestReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForTeamDiscussionCommentInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }], + listForTeamDiscussionInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", { + mediaType: { + previews: ["squirrel-girl"] + } + }] + }, + repos: { + acceptInvitation: ["PATCH /user/repository_invitations/{invitation_id}"], + addAppAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { + mapToData: "apps" + }], + addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], + addStatusCheckContexts: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { + mapToData: "contexts" + }], + addTeamAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { + mapToData: "teams" + }], + addUserAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { + mapToData: "users" + }], + checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], + checkVulnerabilityAlerts: ["GET /repos/{owner}/{repo}/vulnerability-alerts", { + mediaType: { + previews: ["dorian"] + } + }], + compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], + compareCommitsWithBasehead: ["GET /repos/{owner}/{repo}/compare/{basehead}"], + createAutolink: ["POST /repos/{owner}/{repo}/autolinks"], + createCommitComment: ["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"], + createCommitSignatureProtection: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", { + mediaType: { + previews: ["zzzax"] + } + }], + createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], + createDeployKey: ["POST /repos/{owner}/{repo}/keys"], + createDeployment: ["POST /repos/{owner}/{repo}/deployments"], + createDeploymentStatus: ["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"], + createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], + createForAuthenticatedUser: ["POST /user/repos"], + createFork: ["POST /repos/{owner}/{repo}/forks"], + createInOrg: ["POST /orgs/{org}/repos"], + createOrUpdateEnvironment: ["PUT /repos/{owner}/{repo}/environments/{environment_name}"], + createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], + createPagesSite: ["POST /repos/{owner}/{repo}/pages", { + mediaType: { + previews: ["switcheroo"] + } + }], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + createUsingTemplate: ["POST /repos/{template_owner}/{template_repo}/generate", { + mediaType: { + previews: ["baptiste"] + } + }], + createWebhook: ["POST /repos/{owner}/{repo}/hooks"], + declineInvitation: ["DELETE /user/repository_invitations/{invitation_id}"], + delete: ["DELETE /repos/{owner}/{repo}"], + deleteAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"], + deleteAdminBranchProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], + deleteAnEnvironment: ["DELETE /repos/{owner}/{repo}/environments/{environment_name}"], + deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"], + deleteBranchProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"], + deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], + deleteCommitSignatureProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", { + mediaType: { + previews: ["zzzax"] + } + }], + deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], + deleteDeployment: ["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"], + deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], + deleteInvitation: ["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"], + deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages", { + mediaType: { + previews: ["switcheroo"] + } + }], + deletePullRequestReviewProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], + deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], + deleteReleaseAsset: ["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"], + deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], + disableAutomatedSecurityFixes: ["DELETE /repos/{owner}/{repo}/automated-security-fixes", { + mediaType: { + previews: ["london"] + } + }], + disableVulnerabilityAlerts: ["DELETE /repos/{owner}/{repo}/vulnerability-alerts", { + mediaType: { + previews: ["dorian"] + } + }], + downloadArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}", {}, { + renamed: ["repos", "downloadZipballArchive"] + }], + downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], + downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], + enableAutomatedSecurityFixes: ["PUT /repos/{owner}/{repo}/automated-security-fixes", { + mediaType: { + previews: ["london"] + } + }], + enableVulnerabilityAlerts: ["PUT /repos/{owner}/{repo}/vulnerability-alerts", { + mediaType: { + previews: ["dorian"] + } + }], + get: ["GET /repos/{owner}/{repo}"], + getAccessRestrictions: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"], + getAdminBranchProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], + getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], + getAllStatusCheckContexts: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"], + getAllTopics: ["GET /repos/{owner}/{repo}/topics", { + mediaType: { + previews: ["mercy"] + } + }], + getAppsWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"], + getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"], + getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], + getBranchProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection"], + getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], + getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], + getCollaboratorPermissionLevel: ["GET /repos/{owner}/{repo}/collaborators/{username}/permission"], + getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], + getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], + getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], + getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], + getCommitSignatureProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures", { + mediaType: { + previews: ["zzzax"] + } + }], + getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], + getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], + getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], + getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], + getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], + getDeploymentStatus: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"], + getEnvironment: ["GET /repos/{owner}/{repo}/environments/{environment_name}"], + getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], + getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], + getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"], + getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], + getPullRequestReviewProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], + getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], + getReadme: ["GET /repos/{owner}/{repo}/readme"], + getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], + getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], + getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], + getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], + getStatusChecksProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], + getTeamsWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"], + getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], + getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], + getUsersWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"], + getViews: ["GET /repos/{owner}/{repo}/traffic/views"], + getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], + getWebhookConfigForRepo: ["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"], + getWebhookDelivery: ["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"], + listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"], + listBranches: ["GET /repos/{owner}/{repo}/branches"], + listBranchesForHeadCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head", { + mediaType: { + previews: ["groot"] + } + }], + listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], + listCommentsForCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"], + listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], + listCommitStatusesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/statuses"], + listCommits: ["GET /repos/{owner}/{repo}/commits"], + listContributors: ["GET /repos/{owner}/{repo}/contributors"], + listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], + listDeploymentStatuses: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"], + listDeployments: ["GET /repos/{owner}/{repo}/deployments"], + listForAuthenticatedUser: ["GET /user/repos"], + listForOrg: ["GET /orgs/{org}/repos"], + listForUser: ["GET /users/{username}/repos"], + listForks: ["GET /repos/{owner}/{repo}/forks"], + listInvitations: ["GET /repos/{owner}/{repo}/invitations"], + listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], + listLanguages: ["GET /repos/{owner}/{repo}/languages"], + listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], + listPublic: ["GET /repositories"], + listPullRequestsAssociatedWithCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", { + mediaType: { + previews: ["groot"] + } + }], + listReleaseAssets: ["GET /repos/{owner}/{repo}/releases/{release_id}/assets"], + listReleases: ["GET /repos/{owner}/{repo}/releases"], + listTags: ["GET /repos/{owner}/{repo}/tags"], + listTeams: ["GET /repos/{owner}/{repo}/teams"], + listWebhookDeliveries: ["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"], + listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], + merge: ["POST /repos/{owner}/{repo}/merges"], + mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"], + pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], + redeliverWebhookDelivery: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"], + removeAppAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { + mapToData: "apps" + }], + removeCollaborator: ["DELETE /repos/{owner}/{repo}/collaborators/{username}"], + removeStatusCheckContexts: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { + mapToData: "contexts" + }], + removeStatusCheckProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], + removeTeamAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { + mapToData: "teams" + }], + removeUserAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { + mapToData: "users" + }], + renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], + replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics", { + mediaType: { + previews: ["mercy"] + } + }], + requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], + setAdminBranchProtection: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], + setAppAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { + mapToData: "apps" + }], + setStatusCheckContexts: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { + mapToData: "contexts" + }], + setTeamAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { + mapToData: "teams" + }], + setUserAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { + mapToData: "users" + }], + testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], + transfer: ["POST /repos/{owner}/{repo}/transfer"], + update: ["PATCH /repos/{owner}/{repo}"], + updateBranchProtection: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection"], + updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], + updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], + updateInvitation: ["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"], + updatePullRequestReviewProtection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], + updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], + updateReleaseAsset: ["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"], + updateStatusCheckPotection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", {}, { + renamed: ["repos", "updateStatusCheckProtection"] + }], + updateStatusCheckProtection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], + updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], + updateWebhookConfigForRepo: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"], + uploadReleaseAsset: ["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", { + baseUrl: "https://uploads.github.com" + }] + }, + search: { + code: ["GET /search/code"], + commits: ["GET /search/commits", { + mediaType: { + previews: ["cloak"] + } + }], + issuesAndPullRequests: ["GET /search/issues"], + labels: ["GET /search/labels"], + repos: ["GET /search/repositories"], + topics: ["GET /search/topics", { + mediaType: { + previews: ["mercy"] + } + }], + users: ["GET /search/users"] + }, + secretScanning: { + getAlert: ["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"], + listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], + updateAlert: ["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"] + }, + teams: { + addOrUpdateMembershipForUserInOrg: ["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"], + addOrUpdateProjectPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + addOrUpdateRepoPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + checkPermissionsForProjectInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}", { + mediaType: { + previews: ["inertia"] + } + }], + checkPermissionsForRepoInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + create: ["POST /orgs/{org}/teams"], + createDiscussionCommentInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"], + createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], + deleteDiscussionCommentInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], + deleteDiscussionInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], + deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], + getByName: ["GET /orgs/{org}/teams/{team_slug}"], + getDiscussionCommentInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], + getDiscussionInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], + getMembershipForUserInOrg: ["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"], + list: ["GET /orgs/{org}/teams"], + listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], + listDiscussionCommentsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"], + listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], + listForAuthenticatedUser: ["GET /user/teams"], + listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], + listPendingInvitationsInOrg: ["GET /orgs/{org}/teams/{team_slug}/invitations"], + listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects", { + mediaType: { + previews: ["inertia"] + } + }], + listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], + removeMembershipForUserInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"], + removeProjectInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"], + removeRepoInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + updateDiscussionCommentInOrg: ["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], + updateDiscussionInOrg: ["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], + updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] + }, + users: { + addEmailForAuthenticated: ["POST /user/emails"], + block: ["PUT /user/blocks/{username}"], + checkBlocked: ["GET /user/blocks/{username}"], + checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], + checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], + createGpgKeyForAuthenticated: ["POST /user/gpg_keys"], + createPublicSshKeyForAuthenticated: ["POST /user/keys"], + deleteEmailForAuthenticated: ["DELETE /user/emails"], + deleteGpgKeyForAuthenticated: ["DELETE /user/gpg_keys/{gpg_key_id}"], + deletePublicSshKeyForAuthenticated: ["DELETE /user/keys/{key_id}"], + follow: ["PUT /user/following/{username}"], + getAuthenticated: ["GET /user"], + getByUsername: ["GET /users/{username}"], + getContextForUser: ["GET /users/{username}/hovercard"], + getGpgKeyForAuthenticated: ["GET /user/gpg_keys/{gpg_key_id}"], + getPublicSshKeyForAuthenticated: ["GET /user/keys/{key_id}"], + list: ["GET /users"], + listBlockedByAuthenticated: ["GET /user/blocks"], + listEmailsForAuthenticated: ["GET /user/emails"], + listFollowedByAuthenticated: ["GET /user/following"], + listFollowersForAuthenticatedUser: ["GET /user/followers"], + listFollowersForUser: ["GET /users/{username}/followers"], + listFollowingForUser: ["GET /users/{username}/following"], + listGpgKeysForAuthenticated: ["GET /user/gpg_keys"], + listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], + listPublicEmailsForAuthenticated: ["GET /user/public_emails"], + listPublicKeysForUser: ["GET /users/{username}/keys"], + listPublicSshKeysForAuthenticated: ["GET /user/keys"], + setPrimaryEmailVisibilityForAuthenticated: ["PATCH /user/email/visibility"], + unblock: ["DELETE /user/blocks/{username}"], + unfollow: ["DELETE /user/following/{username}"], + updateAuthenticated: ["PATCH /user"] + } +}; + +const VERSION = "5.10.0"; + +function endpointsToMethods(octokit, endpointsMap) { + const newMethods = {}; + + for (const [scope, endpoints] of Object.entries(endpointsMap)) { + for (const [methodName, endpoint] of Object.entries(endpoints)) { + const [route, defaults, decorations] = endpoint; + const [method, url] = route.split(/ /); + const endpointDefaults = Object.assign({ + method, + url + }, defaults); + + if (!newMethods[scope]) { + newMethods[scope] = {}; + } + + const scopeMethods = newMethods[scope]; + + if (decorations) { + scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations); + continue; + } + + scopeMethods[methodName] = octokit.request.defaults(endpointDefaults); + } + } + + return newMethods; +} + +function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + /* istanbul ignore next */ + + function withDecorations(...args) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData` + + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: undefined + }); + return requestWithDefaults(options); + } + + if (decorations.renamed) { + const [newScope, newMethodName] = decorations.renamed; + octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`); + } + + if (decorations.deprecated) { + octokit.log.warn(decorations.deprecated); + } + + if (decorations.renamedParameters) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + const options = requestWithDefaults.endpoint.merge(...args); + + for (const [name, alias] of Object.entries(decorations.renamedParameters)) { + if (name in options) { + octokit.log.warn(`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`); + + if (!(alias in options)) { + options[alias] = options[name]; + } + + delete options[name]; + } + } + + return requestWithDefaults(options); + } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + + + return requestWithDefaults(...args); + } + + return Object.assign(withDecorations, requestWithDefaults); +} + +function restEndpointMethods(octokit) { + const api = endpointsToMethods(octokit, Endpoints); + return { + rest: api + }; +} +restEndpointMethods.VERSION = VERSION; +function legacyRestEndpointMethods(octokit) { + const api = endpointsToMethods(octokit, Endpoints); + return _objectSpread2(_objectSpread2({}, api), {}, { + rest: api + }); +} +legacyRestEndpointMethods.VERSION = VERSION; + +exports.legacyRestEndpointMethods = legacyRestEndpointMethods; +exports.restEndpointMethods = restEndpointMethods; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 537: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var deprecation = __nccwpck_require__(8932); +var once = _interopDefault(__nccwpck_require__(1223)); + +const logOnceCode = once(deprecation => console.warn(deprecation)); +const logOnceHeaders = once(deprecation => console.warn(deprecation)); +/** + * Error with extra properties to help with debugging + */ + +class RequestError extends Error { + constructor(message, statusCode, options) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = "HttpError"; + this.status = statusCode; + let headers; + + if ("headers" in options && typeof options.headers !== "undefined") { + headers = options.headers; + } + + if ("response" in options) { + this.response = options.response; + headers = options.response.headers; + } // redact request credentials without mutating original request options + + + const requestCopy = Object.assign({}, options.request); + + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]") + }); + } + + requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit + // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications + .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") // OAuth tokens can be passed as URL query parameters, although it is not recommended + // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header + .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; // deprecations + + Object.defineProperty(this, "code", { + get() { + logOnceCode(new deprecation.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); + return statusCode; + } + + }); + Object.defineProperty(this, "headers", { + get() { + logOnceHeaders(new deprecation.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")); + return headers || {}; + } + + }); + } + +} + +exports.RequestError = RequestError; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 6234: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var endpoint = __nccwpck_require__(9440); +var universalUserAgent = __nccwpck_require__(5030); +var isPlainObject = __nccwpck_require__(3287); +var nodeFetch = _interopDefault(__nccwpck_require__(467)); +var requestError = __nccwpck_require__(537); + +const VERSION = "5.6.1"; + +function getBufferResponse(response) { + return response.arrayBuffer(); +} + +function fetchWrapper(requestOptions) { + const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; + + if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + + let headers = {}; + let status; + let url; + const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch; + return fetch(requestOptions.url, Object.assign({ + method: requestOptions.method, + body: requestOptions.body, + headers: requestOptions.headers, + redirect: requestOptions.redirect + }, // `requestOptions.request.agent` type is incompatible + // see https://github.com/octokit/types.ts/pull/264 + requestOptions.request)).then(async response => { + url = response.url; + status = response.status; + + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + + if ("deprecation" in headers) { + const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/); + const deprecationLink = matches && matches.pop(); + log.warn(`[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`); + } + + if (status === 204 || status === 205) { + return; + } // GitHub API returns 200 for HEAD requests + + + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + + throw new requestError.RequestError(response.statusText, status, { + response: { + url, + status, + headers, + data: undefined + }, + request: requestOptions + }); + } + + if (status === 304) { + throw new requestError.RequestError("Not modified", status, { + response: { + url, + status, + headers, + data: await getResponseData(response) + }, + request: requestOptions + }); + } + + if (status >= 400) { + const data = await getResponseData(response); + const error = new requestError.RequestError(toErrorMessage(data), status, { + response: { + url, + status, + headers, + data + }, + request: requestOptions + }); + throw error; + } + + return getResponseData(response); + }).then(data => { + return { + status, + url, + headers, + data + }; + }).catch(error => { + if (error instanceof requestError.RequestError) throw error; + throw new requestError.RequestError(error.message, 500, { + request: requestOptions + }); + }); +} + +async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + + if (/application\/json/.test(contentType)) { + return response.json(); + } + + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + + return getBufferResponse(response); +} + +function toErrorMessage(data) { + if (typeof data === "string") return data; // istanbul ignore else - just in case + + if ("message" in data) { + if (Array.isArray(data.errors)) { + return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}`; + } + + return data.message; + } // istanbul ignore next - just in case + + + return `Unknown error: ${JSON.stringify(data)}`; +} + +function withDefaults(oldEndpoint, newDefaults) { + const endpoint = oldEndpoint.defaults(newDefaults); + + const newApi = function (route, parameters) { + const endpointOptions = endpoint.merge(route, parameters); + + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint.parse(endpointOptions)); + } + + const request = (route, parameters) => { + return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); + }; + + Object.assign(request, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); + return endpointOptions.request.hook(request, endpointOptions); + }; + + return Object.assign(newApi, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); +} + +const request = withDefaults(endpoint.endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}` + } +}); + +exports.request = request; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 9893: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const BuildInterfaces = __nccwpck_require__(2167); +class BuildApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-Build-api', options); + } + /** + * Associates an artifact with a build. + * + * @param {BuildInterfaces.BuildArtifact} artifact - The artifact. + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + */ + createArtifact(artifact, project, buildId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.5", "build", "1db06c96-014e-44e1-ac91-90b2d4b3e984", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, artifact, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a specific artifact for a build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {string} artifactName - The name of the artifact. + */ + getArtifact(project, buildId, artifactName) { + return __awaiter(this, void 0, void 0, function* () { + if (artifactName == null) { + throw new TypeError('artifactName can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + let queryValues = { + artifactName: artifactName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.5", "build", "1db06c96-014e-44e1-ac91-90b2d4b3e984", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a specific artifact for a build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {string} artifactName - The name of the artifact. + */ + getArtifactContentZip(project, buildId, artifactName) { + return __awaiter(this, void 0, void 0, function* () { + if (artifactName == null) { + throw new TypeError('artifactName can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + let queryValues = { + artifactName: artifactName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.5", "build", "1db06c96-014e-44e1-ac91-90b2d4b3e984", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets all artifacts for a build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + */ + getArtifacts(project, buildId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.5", "build", "1db06c96-014e-44e1-ac91-90b2d4b3e984", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a file from the build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {string} artifactName - The name of the artifact. + * @param {string} fileId - The primary key for the file. + * @param {string} fileName - The name that the file will be set to. + */ + getFile(project, buildId, artifactName, fileId, fileName) { + return __awaiter(this, void 0, void 0, function* () { + if (artifactName == null) { + throw new TypeError('artifactName can not be null or undefined'); + } + if (fileId == null) { + throw new TypeError('fileId can not be null or undefined'); + } + if (fileName == null) { + throw new TypeError('fileName can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + let queryValues = { + artifactName: artifactName, + fileId: fileId, + fileName: fileName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.5", "build", "1db06c96-014e-44e1-ac91-90b2d4b3e984", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the list of attachments of a specific type that are associated with a build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {string} type - The type of attachment. + */ + getAttachments(project, buildId, type) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId, + type: type + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "f2192269-89fa-4f94-baf6-8fb128c55159", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a specific attachment. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {string} timelineId - The ID of the timeline. + * @param {string} recordId - The ID of the timeline record. + * @param {string} type - The type of the attachment. + * @param {string} name - The name of the attachment. + */ + getAttachment(project, buildId, timelineId, recordId, type, name) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId, + timelineId: timelineId, + recordId: recordId, + type: type, + name: name + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "af5122d3-3438-485e-a25a-2dbbfde84ee6", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {BuildInterfaces.DefinitionResourceReference[]} resources + * @param {string} project - Project ID or project name + */ + authorizeProjectResources(resources, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "398c85bc-81aa-4822-947c-a194a05f0fef", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, resources, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {string} type + * @param {string} id + */ + getProjectResources(project, type, id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + type: type, + id: id, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "398c85bc-81aa-4822-947c-a194a05f0fef", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a badge that indicates the status of the most recent build for a definition. Note that this API is deprecated. Prefer StatusBadgeController.GetStatusBadge. + * + * @param {string} project - The project ID or name. + * @param {number} definitionId - The ID of the definition. + * @param {string} branchName - The name of the branch. + */ + getBadge(project, definitionId, branchName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + let queryValues = { + branchName: branchName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "de6a4df8-22cd-44ee-af2d-39f6aa7a4261", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a list of branches for the given source code repository. + * + * @param {string} project - Project ID or project name + * @param {string} providerName - The name of the source provider. + * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit. + * @param {string} repository - The vendor-specific identifier or the name of the repository to get branches. Can only be omitted for providers that do not support multiple repositories. + * @param {string} branchName - If supplied, the name of the branch to check for specifically. + */ + listBranches(project, providerName, serviceEndpointId, repository, branchName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + providerName: providerName + }; + let queryValues = { + serviceEndpointId: serviceEndpointId, + repository: repository, + branchName: branchName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "e05d4403-9b81-4244-8763-20fde28d1976", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a badge that indicates the status of the most recent build for the specified branch. + * + * @param {string} project - Project ID or project name + * @param {string} repoType - The repository type. + * @param {string} repoId - The repository ID. + * @param {string} branchName - The branch name. + */ + getBuildBadge(project, repoType, repoId, branchName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repoType: repoType + }; + let queryValues = { + repoId: repoId, + branchName: branchName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "21b3b9ce-fad5-4567-9ad0-80679794e003", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a badge that indicates the status of the most recent build for the specified branch. + * + * @param {string} project - Project ID or project name + * @param {string} repoType - The repository type. + * @param {string} repoId - The repository ID. + * @param {string} branchName - The branch name. + */ + getBuildBadgeData(project, repoType, repoId, branchName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repoType: repoType + }; + let queryValues = { + repoId: repoId, + branchName: branchName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "21b3b9ce-fad5-4567-9ad0-80679794e003", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes a build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + */ + deleteBuild(project, buildId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.7", "build", "0cd358e1-9217-4d94-8269-1c1ee6f93dcf", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a build + * + * @param {string} project - Project ID or project name + * @param {number} buildId + * @param {string} propertyFilters + */ + getBuild(project, buildId, propertyFilters) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + let queryValues = { + propertyFilters: propertyFilters, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.7", "build", "0cd358e1-9217-4d94-8269-1c1ee6f93dcf", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a list of builds. + * + * @param {string} project - Project ID or project name + * @param {number[]} definitions - A comma-delimited list of definition IDs. If specified, filters to builds for these definitions. + * @param {number[]} queues - A comma-delimited list of queue IDs. If specified, filters to builds that ran against these queues. + * @param {string} buildNumber - If specified, filters to builds that match this build number. Append * to do a prefix search. + * @param {Date} minTime - If specified, filters to builds that finished/started/queued after this date based on the queryOrder specified. + * @param {Date} maxTime - If specified, filters to builds that finished/started/queued before this date based on the queryOrder specified. + * @param {string} requestedFor - If specified, filters to builds requested for the specified user. + * @param {BuildInterfaces.BuildReason} reasonFilter - If specified, filters to builds that match this reason. + * @param {BuildInterfaces.BuildStatus} statusFilter - If specified, filters to builds that match this status. + * @param {BuildInterfaces.BuildResult} resultFilter - If specified, filters to builds that match this result. + * @param {string[]} tagFilters - A comma-delimited list of tags. If specified, filters to builds that have the specified tags. + * @param {string[]} properties - A comma-delimited list of properties to retrieve. + * @param {number} top - The maximum number of builds to return. + * @param {string} continuationToken - A continuation token, returned by a previous call to this method, that can be used to return the next set of builds. + * @param {number} maxBuildsPerDefinition - The maximum number of builds to return per definition. + * @param {BuildInterfaces.QueryDeletedOption} deletedFilter - Indicates whether to exclude, include, or only return deleted builds. + * @param {BuildInterfaces.BuildQueryOrder} queryOrder - The order in which builds should be returned. + * @param {string} branchName - If specified, filters to builds that built branches that built this branch. + * @param {number[]} buildIds - A comma-delimited list that specifies the IDs of builds to retrieve. + * @param {string} repositoryId - If specified, filters to builds that built from this repository. + * @param {string} repositoryType - If specified, filters to builds that built from repositories of this type. + */ + getBuilds(project, definitions, queues, buildNumber, minTime, maxTime, requestedFor, reasonFilter, statusFilter, resultFilter, tagFilters, properties, top, continuationToken, maxBuildsPerDefinition, deletedFilter, queryOrder, branchName, buildIds, repositoryId, repositoryType) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + definitions: definitions && definitions.join(","), + queues: queues && queues.join(","), + buildNumber: buildNumber, + minTime: minTime, + maxTime: maxTime, + requestedFor: requestedFor, + reasonFilter: reasonFilter, + statusFilter: statusFilter, + resultFilter: resultFilter, + tagFilters: tagFilters && tagFilters.join(","), + properties: properties && properties.join(","), + '$top': top, + continuationToken: continuationToken, + maxBuildsPerDefinition: maxBuildsPerDefinition, + deletedFilter: deletedFilter, + queryOrder: queryOrder, + branchName: branchName, + buildIds: buildIds && buildIds.join(","), + repositoryId: repositoryId, + repositoryType: repositoryType, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.7", "build", "0cd358e1-9217-4d94-8269-1c1ee6f93dcf", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Queues a build + * + * @param {BuildInterfaces.Build} build + * @param {string} project - Project ID or project name + * @param {boolean} ignoreWarnings + * @param {string} checkInTicket + * @param {number} sourceBuildId + * @param {number} definitionId - Optional definition id to queue a build without a body. Ignored if there's a valid body + */ + queueBuild(build, project, ignoreWarnings, checkInTicket, sourceBuildId, definitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + ignoreWarnings: ignoreWarnings, + checkInTicket: checkInTicket, + sourceBuildId: sourceBuildId, + definitionId: definitionId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.7", "build", "0cd358e1-9217-4d94-8269-1c1ee6f93dcf", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, build, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a build. + * + * @param {BuildInterfaces.Build} build - The build. + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {boolean} retry + */ + updateBuild(build, project, buildId, retry) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + let queryValues = { + retry: retry, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.7", "build", "0cd358e1-9217-4d94-8269-1c1ee6f93dcf", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, build, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates multiple builds. + * + * @param {BuildInterfaces.Build[]} builds - The builds to update. + * @param {string} project - Project ID or project name + */ + updateBuilds(builds, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.7", "build", "0cd358e1-9217-4d94-8269-1c1ee6f93dcf", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, builds, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the changes associated with a build + * + * @param {string} project - Project ID or project name + * @param {number} buildId + * @param {string} continuationToken + * @param {number} top - The maximum number of changes to return + * @param {boolean} includeSourceChange + */ + getBuildChanges(project, buildId, continuationToken, top, includeSourceChange) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + let queryValues = { + continuationToken: continuationToken, + '$top': top, + includeSourceChange: includeSourceChange, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "54572c7b-bbd3-45d4-80dc-28be08941620", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Change, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the changes made to the repository between two given builds. + * + * @param {string} project - Project ID or project name + * @param {number} fromBuildId - The ID of the first build. + * @param {number} toBuildId - The ID of the last build. + * @param {number} top - The maximum number of changes to return. + */ + getChangesBetweenBuilds(project, fromBuildId, toBuildId, top) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + fromBuildId: fromBuildId, + toBuildId: toBuildId, + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "f10f0ea5-18a1-43ec-a8fb-2042c7be9b43", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Change, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a controller + * + * @param {number} controllerId + */ + getBuildController(controllerId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + controllerId: controllerId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "fcac1932-2ee1-437f-9b6f-7f696be858f6", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildController, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets controller, optionally filtered by name + * + * @param {string} name + */ + getBuildControllers(name) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + name: name, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "fcac1932-2ee1-437f-9b6f-7f696be858f6", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildController, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a new definition. + * + * @param {BuildInterfaces.BuildDefinition} definition - The definition. + * @param {string} project - Project ID or project name + * @param {number} definitionToCloneId + * @param {number} definitionToCloneRevision + */ + createDefinition(definition, project, definitionToCloneId, definitionToCloneRevision) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + definitionToCloneId: definitionToCloneId, + definitionToCloneRevision: definitionToCloneRevision, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.7", "build", "dbeaf647-6167-421a-bda9-c9327b25e2e6", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, definition, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes a definition and all associated builds. + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - The ID of the definition. + */ + deleteDefinition(project, definitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.7", "build", "dbeaf647-6167-421a-bda9-c9327b25e2e6", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a definition, optionally at a specific revision. + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - The ID of the definition. + * @param {number} revision - The revision number to retrieve. If this is not specified, the latest version will be returned. + * @param {Date} minMetricsTime - If specified, indicates the date from which metrics should be included. + * @param {string[]} propertyFilters - A comma-delimited list of properties to include in the results. + * @param {boolean} includeLatestBuilds + */ + getDefinition(project, definitionId, revision, minMetricsTime, propertyFilters, includeLatestBuilds) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + let queryValues = { + revision: revision, + minMetricsTime: minMetricsTime, + propertyFilters: propertyFilters && propertyFilters.join(","), + includeLatestBuilds: includeLatestBuilds, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.7", "build", "dbeaf647-6167-421a-bda9-c9327b25e2e6", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a list of definitions. + * + * @param {string} project - Project ID or project name + * @param {string} name - If specified, filters to definitions whose names match this pattern. + * @param {string} repositoryId - A repository ID. If specified, filters to definitions that use this repository. + * @param {string} repositoryType - If specified, filters to definitions that have a repository of this type. + * @param {BuildInterfaces.DefinitionQueryOrder} queryOrder - Indicates the order in which definitions should be returned. + * @param {number} top - The maximum number of definitions to return. + * @param {string} continuationToken - A continuation token, returned by a previous call to this method, that can be used to return the next set of definitions. + * @param {Date} minMetricsTime - If specified, indicates the date from which metrics should be included. + * @param {number[]} definitionIds - A comma-delimited list that specifies the IDs of definitions to retrieve. + * @param {string} path - If specified, filters to definitions under this folder. + * @param {Date} builtAfter - If specified, filters to definitions that have builds after this date. + * @param {Date} notBuiltAfter - If specified, filters to definitions that do not have builds after this date. + * @param {boolean} includeAllProperties - Indicates whether the full definitions should be returned. By default, shallow representations of the definitions are returned. + * @param {boolean} includeLatestBuilds - Indicates whether to return the latest and latest completed builds for this definition. + * @param {string} taskIdFilter - If specified, filters to definitions that use the specified task. + * @param {number} processType - If specified, filters to definitions with the given process type. + * @param {string} yamlFilename - If specified, filters to YAML definitions that match the given filename. + */ + getDefinitions(project, name, repositoryId, repositoryType, queryOrder, top, continuationToken, minMetricsTime, definitionIds, path, builtAfter, notBuiltAfter, includeAllProperties, includeLatestBuilds, taskIdFilter, processType, yamlFilename) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + name: name, + repositoryId: repositoryId, + repositoryType: repositoryType, + queryOrder: queryOrder, + '$top': top, + continuationToken: continuationToken, + minMetricsTime: minMetricsTime, + definitionIds: definitionIds && definitionIds.join(","), + path: path, + builtAfter: builtAfter, + notBuiltAfter: notBuiltAfter, + includeAllProperties: includeAllProperties, + includeLatestBuilds: includeLatestBuilds, + taskIdFilter: taskIdFilter, + processType: processType, + yamlFilename: yamlFilename, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.7", "build", "dbeaf647-6167-421a-bda9-c9327b25e2e6", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionReference, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Restores a deleted definition + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - The identifier of the definition to restore. + * @param {boolean} deleted - When false, restores a deleted definition. + */ + restoreDefinition(project, definitionId, deleted) { + return __awaiter(this, void 0, void 0, function* () { + if (deleted == null) { + throw new TypeError('deleted can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + let queryValues = { + deleted: deleted, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.7", "build", "dbeaf647-6167-421a-bda9-c9327b25e2e6", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, null, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates an existing build definition. In order for this operation to succeed, the value of the "Revision" property of the request body must match the existing build definition's. It is recommended that you obtain the existing build definition by using GET, modify the build definition as necessary, and then submit the modified definition with PUT. + * + * @param {BuildInterfaces.BuildDefinition} definition - The new version of the definition. Its "Revision" property must match the existing definition for the update to be accepted. + * @param {string} project - Project ID or project name + * @param {number} definitionId - The ID of the definition. + * @param {number} secretsSourceDefinitionId + * @param {number} secretsSourceDefinitionRevision + */ + updateDefinition(definition, project, definitionId, secretsSourceDefinitionId, secretsSourceDefinitionRevision) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + let queryValues = { + secretsSourceDefinitionId: secretsSourceDefinitionId, + secretsSourceDefinitionRevision: secretsSourceDefinitionRevision, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.7", "build", "dbeaf647-6167-421a-bda9-c9327b25e2e6", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, definition, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the contents of a file in the given source code repository. + * + * @param {string} project - Project ID or project name + * @param {string} providerName - The name of the source provider. + * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit. + * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get branches. Can only be omitted for providers that do not support multiple repositories. + * @param {string} commitOrBranch - The identifier of the commit or branch from which a file's contents are retrieved. + * @param {string} path - The path to the file to retrieve, relative to the root of the repository. + */ + getFileContents(project, providerName, serviceEndpointId, repository, commitOrBranch, path) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + providerName: providerName + }; + let queryValues = { + serviceEndpointId: serviceEndpointId, + repository: repository, + commitOrBranch: commitOrBranch, + path: path, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "29d12225-b1d9-425f-b668-6c594a981313", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/plain", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a new folder. + * + * @param {BuildInterfaces.Folder} folder - The folder. + * @param {string} project - Project ID or project name + * @param {string} path - The full path of the folder. + */ + createFolder(folder, project, path) { + return __awaiter(this, void 0, void 0, function* () { + if (path == null) { + throw new TypeError('path can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + path: path, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "a906531b-d2da-4f55-bda7-f3e676cc50d9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, folder, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Folder, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes a definition folder. Definitions and their corresponding builds will also be deleted. + * + * @param {string} project - Project ID or project name + * @param {string} path - The full path to the folder. + */ + deleteFolder(project, path) { + return __awaiter(this, void 0, void 0, function* () { + if (path == null) { + throw new TypeError('path can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + path: path, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "a906531b-d2da-4f55-bda7-f3e676cc50d9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a list of build definition folders. + * + * @param {string} project - Project ID or project name + * @param {string} path - The path to start with. + * @param {BuildInterfaces.FolderQueryOrder} queryOrder - The order in which folders should be returned. + */ + getFolders(project, path, queryOrder) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + path: path + }; + let queryValues = { + queryOrder: queryOrder, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "a906531b-d2da-4f55-bda7-f3e676cc50d9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Folder, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates an existing folder at given existing path + * + * @param {BuildInterfaces.Folder} folder - The new version of the folder. + * @param {string} project - Project ID or project name + * @param {string} path - The full path to the folder. + */ + updateFolder(folder, project, path) { + return __awaiter(this, void 0, void 0, function* () { + if (path == null) { + throw new TypeError('path can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + path: path, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "a906531b-d2da-4f55-bda7-f3e676cc50d9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, folder, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Folder, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets pipeline general settings. + * + * @param {string} project - Project ID or project name + */ + getBuildGeneralSettings(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "c4aefd19-30ff-405b-80ad-aca021e7242a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates pipeline general settings. + * + * @param {BuildInterfaces.PipelineGeneralSettings} newSettings + * @param {string} project - Project ID or project name + */ + updateBuildGeneralSettings(newSettings, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "c4aefd19-30ff-405b-80ad-aca021e7242a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, newSettings, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns the retention history for the project collection. This includes pipelines that have custom retention rules that may prevent the retention job from cleaning them up, runs per pipeline with retention type, files associated with pipelines owned by the collection with retention type, and the number of files per pipeline. + * + * @param {number} daysToLookback + */ + getRetentionHistory(daysToLookback) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + daysToLookback: daysToLookback, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "1a9c48be-0ef5-4ec2-b94f-f053bdd2d3bf", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildRetentionHistory, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the latest build for a definition, optionally scoped to a specific branch. + * + * @param {string} project - Project ID or project name + * @param {string} definition - definition name with optional leading folder path, or the definition id + * @param {string} branchName - optional parameter that indicates the specific branch to use. If not specified, the default branch is used. + */ + getLatestBuild(project, definition, branchName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definition: definition + }; + let queryValues = { + branchName: branchName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "54481611-01f4-47f3-998f-160da0f0c229", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds new leases for pipeline runs. + * + * @param {BuildInterfaces.NewRetentionLease[]} newLeases + * @param {string} project - Project ID or project name + */ + addRetentionLeases(newLeases, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "272051e4-9af1-45b5-ae22-8d960a5539d4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, newLeases, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes specific retention leases. + * + * @param {string} project - Project ID or project name + * @param {number[]} ids + */ + deleteRetentionLeasesById(project, ids) { + return __awaiter(this, void 0, void 0, function* () { + if (ids == null) { + throw new TypeError('ids can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + ids: ids && ids.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "272051e4-9af1-45b5-ae22-8d960a5539d4", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns the details of the retention lease given a lease id. + * + * @param {string} project - Project ID or project name + * @param {number} leaseId + */ + getRetentionLease(project, leaseId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + leaseId: leaseId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "272051e4-9af1-45b5-ae22-8d960a5539d4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns any leases matching the specified MinimalRetentionLeases + * + * @param {string} project - Project ID or project name + * @param {BuildInterfaces.MinimalRetentionLease[]} leasesToFetch - List of JSON-serialized MinimalRetentionLeases separated by '|' + */ + getRetentionLeasesByMinimalRetentionLeases(project, leasesToFetch) { + return __awaiter(this, void 0, void 0, function* () { + if (leasesToFetch == null) { + throw new TypeError('leasesToFetch can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + leasesToFetch: leasesToFetch && leasesToFetch.join("|"), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "272051e4-9af1-45b5-ae22-8d960a5539d4", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns any leases owned by the specified entity, optionally scoped to a single pipeline definition and run. + * + * @param {string} project - Project ID or project name + * @param {string} ownerId + * @param {number} definitionId - An optional parameter to limit the search to a specific pipeline definition. + * @param {number} runId - An optional parameter to limit the search to a single pipeline run. Requires definitionId. + */ + getRetentionLeasesByOwnerId(project, ownerId, definitionId, runId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + ownerId: ownerId, + definitionId: definitionId, + runId: runId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "272051e4-9af1-45b5-ae22-8d960a5539d4", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns any leases owned by the specified user, optionally scoped to a single pipeline definition and run. + * + * @param {string} project - Project ID or project name + * @param {string} userOwnerId - The user id to search for. + * @param {number} definitionId - An optional parameter to limit the search to a specific pipeline definition. + * @param {number} runId - An optional parameter to limit the search to a single pipeline run. Requires definitionId. + */ + getRetentionLeasesByUserId(project, userOwnerId, definitionId, runId) { + return __awaiter(this, void 0, void 0, function* () { + if (userOwnerId == null) { + throw new TypeError('userOwnerId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + userOwnerId: userOwnerId, + definitionId: definitionId, + runId: runId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "272051e4-9af1-45b5-ae22-8d960a5539d4", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets an individual log file for a build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {number} logId - The ID of the log file. + * @param {number} startLine - The start line. + * @param {number} endLine - The end line. + */ + getBuildLog(project, buildId, logId, startLine, endLine) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId, + logId: logId + }; + let queryValues = { + startLine: startLine, + endLine: endLine, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "35a80daf-7f30-45fc-86e8-6b813d9c90df", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/plain", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets an individual log file for a build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {number} logId - The ID of the log file. + * @param {number} startLine - The start line. + * @param {number} endLine - The end line. + */ + getBuildLogLines(project, buildId, logId, startLine, endLine) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId, + logId: logId + }; + let queryValues = { + startLine: startLine, + endLine: endLine, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "35a80daf-7f30-45fc-86e8-6b813d9c90df", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the logs for a build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + */ + getBuildLogs(project, buildId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "35a80daf-7f30-45fc-86e8-6b813d9c90df", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildLog, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the logs for a build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + */ + getBuildLogsZip(project, buildId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "35a80daf-7f30-45fc-86e8-6b813d9c90df", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets an individual log file for a build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {number} logId - The ID of the log file. + * @param {number} startLine - The start line. + * @param {number} endLine - The end line. + */ + getBuildLogZip(project, buildId, logId, startLine, endLine) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId, + logId: logId + }; + let queryValues = { + startLine: startLine, + endLine: endLine, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "35a80daf-7f30-45fc-86e8-6b813d9c90df", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets build metrics for a project. + * + * @param {string} project - Project ID or project name + * @param {string} metricAggregationType - The aggregation type to use (hourly, daily). + * @param {Date} minMetricsTime - The date from which to calculate metrics. + */ + getProjectMetrics(project, metricAggregationType, minMetricsTime) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + metricAggregationType: metricAggregationType + }; + let queryValues = { + minMetricsTime: minMetricsTime, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "7433fae7-a6bc-41dc-a6e2-eef9005ce41a", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildMetric, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets build metrics for a definition. + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - The ID of the definition. + * @param {Date} minMetricsTime - The date from which to calculate metrics. + */ + getDefinitionMetrics(project, definitionId, minMetricsTime) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + let queryValues = { + minMetricsTime: minMetricsTime, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "d973b939-0ce0-4fec-91d8-da3940fa1827", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildMetric, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets all build definition options supported by the system. + * + * @param {string} project - Project ID or project name + */ + getBuildOptionDefinitions(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "591cb5a4-2d46-4f3a-a697-5cd42b6bd332", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildOptionDefinition, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the contents of a directory in the given source code repository. + * + * @param {string} project - Project ID or project name + * @param {string} providerName - The name of the source provider. + * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit. + * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get branches. Can only be omitted for providers that do not support multiple repositories. + * @param {string} commitOrBranch - The identifier of the commit or branch from which a file's contents are retrieved. + * @param {string} path - The path contents to list, relative to the root of the repository. + */ + getPathContents(project, providerName, serviceEndpointId, repository, commitOrBranch, path) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + providerName: providerName + }; + let queryValues = { + serviceEndpointId: serviceEndpointId, + repository: repository, + commitOrBranch: commitOrBranch, + path: path, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "7944d6fb-df01-4709-920a-7a189aa34037", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets properties for a build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {string[]} filter - A comma-delimited list of properties. If specified, filters to these specific properties. + */ + getBuildProperties(project, buildId, filter) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + let queryValues = { + filter: filter && filter.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "0a6312e9-0627-49b7-8083-7d74a64849c9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates properties for a build. + * + * @param {VSSInterfaces.JsonPatchDocument} document - A json-patch document describing the properties to update. + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + */ + updateBuildProperties(customHeaders, document, project, buildId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/json-patch+json"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "0a6312e9-0627-49b7-8083-7d74a64849c9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.update(url, document, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets properties for a definition. + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - The ID of the definition. + * @param {string[]} filter - A comma-delimited list of properties. If specified, filters to these specific properties. + */ + getDefinitionProperties(project, definitionId, filter) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + let queryValues = { + filter: filter && filter.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "d9826ad7-2a68-46a9-a6e9-677698777895", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates properties for a definition. + * + * @param {VSSInterfaces.JsonPatchDocument} document - A json-patch document describing the properties to update. + * @param {string} project - Project ID or project name + * @param {number} definitionId - The ID of the definition. + */ + updateDefinitionProperties(customHeaders, document, project, definitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/json-patch+json"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "d9826ad7-2a68-46a9-a6e9-677698777895", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.update(url, document, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a pull request object from source provider. + * + * @param {string} project - Project ID or project name + * @param {string} providerName - The name of the source provider. + * @param {string} pullRequestId - Vendor-specific id of the pull request. + * @param {string} repositoryId - Vendor-specific identifier or the name of the repository that contains the pull request. + * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit. + */ + getPullRequest(project, providerName, pullRequestId, repositoryId, serviceEndpointId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + providerName: providerName, + pullRequestId: pullRequestId + }; + let queryValues = { + repositoryId: repositoryId, + serviceEndpointId: serviceEndpointId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "d8763ec7-9ff0-4fb4-b2b2-9d757906ff14", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a build report. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {string} type + */ + getBuildReport(project, buildId, type) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + let queryValues = { + type: type, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "45bcaa88-67e1-4042-a035-56d3b4a7d44c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a build report. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {string} type + */ + getBuildReportHtmlContent(project, buildId, type) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + let queryValues = { + type: type, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "45bcaa88-67e1-4042-a035-56d3b4a7d44c", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/html", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a list of source code repositories. + * + * @param {string} project - Project ID or project name + * @param {string} providerName - The name of the source provider. + * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit. + * @param {string} repository - If specified, the vendor-specific identifier or the name of a single repository to get. + * @param {BuildInterfaces.ResultSet} resultSet - 'top' for the repositories most relevant for the endpoint. If not set, all repositories are returned. Ignored if 'repository' is set. + * @param {boolean} pageResults - If set to true, this will limit the set of results and will return a continuation token to continue the query. + * @param {string} continuationToken - When paging results, this is a continuation token, returned by a previous call to this method, that can be used to return the next set of repositories. + */ + listRepositories(project, providerName, serviceEndpointId, repository, resultSet, pageResults, continuationToken) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + providerName: providerName + }; + let queryValues = { + serviceEndpointId: serviceEndpointId, + repository: repository, + resultSet: resultSet, + pageResults: pageResults, + continuationToken: continuationToken, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "d44d1680-f978-4834-9b93-8c6e132329c9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {BuildInterfaces.DefinitionResourceReference[]} resources + * @param {string} project - Project ID or project name + * @param {number} definitionId + */ + authorizeDefinitionResources(resources, project, definitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "ea623316-1967-45eb-89ab-e9e6110cf2d6", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, resources, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} definitionId + */ + getDefinitionResources(project, definitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "ea623316-1967-45eb-89ab-e9e6110cf2d6", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets information about build resources in the system. + * + */ + getResourceUsage() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "3813d06c-9e36-4ea1-aac3-61a485d60e3d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the project's retention settings. + * + * @param {string} project - Project ID or project name + */ + getRetentionSettings(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "dadb46e7-5851-4c72-820e-ae8abb82f59f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates the project's retention settings. + * + * @param {BuildInterfaces.UpdateProjectRetentionSettingModel} updateModel + * @param {string} project - Project ID or project name + */ + updateRetentionSettings(updateModel, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "dadb46e7-5851-4c72-820e-ae8abb82f59f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, updateModel, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets all revisions of a definition. + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - The ID of the definition. + */ + getDefinitionRevisions(project, definitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "7c116775-52e5-453e-8c5d-914d9762d8c4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionRevision, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the build settings. + * + * @param {string} project - Project ID or project name + */ + getBuildSettings(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "aa8c1c9c-ef8b-474a-b8c4-785c7b191d0d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates the build settings. + * + * @param {BuildInterfaces.BuildSettings} settings - The new settings. + * @param {string} project - Project ID or project name + */ + updateBuildSettings(settings, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "aa8c1c9c-ef8b-474a-b8c4-785c7b191d0d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, settings, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of source providers and their capabilities. + * + * @param {string} project - Project ID or project name + */ + listSourceProviders(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "3ce81729-954f-423d-a581-9fea01d25186", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.SourceProviderAttributes, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a build stage + * + * @param {BuildInterfaces.UpdateStageParameters} updateParameters + * @param {number} buildId + * @param {string} stageRefName + * @param {string} project - Project ID or project name + */ + updateStage(updateParameters, buildId, stageRefName, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId, + stageRefName: stageRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "b8aac6c9-744b-46e1-88fc-3550969f9313", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, updateParameters, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + *

Gets the build status for a definition, optionally scoped to a specific branch, stage, job, and configuration.

If there are more than one, then it is required to pass in a stageName value when specifying a jobName, and the same rule then applies for both if passing a configuration parameter.

+ * + * @param {string} project - Project ID or project name + * @param {string} definition - Either the definition name with optional leading folder path, or the definition id. + * @param {string} branchName - Only consider the most recent build for this branch. If not specified, the default branch is used. + * @param {string} stageName - Use this stage within the pipeline to render the status. + * @param {string} jobName - Use this job within a stage of the pipeline to render the status. + * @param {string} configuration - Use this job configuration to render the status + * @param {string} label - Replaces the default text on the left side of the badge. + */ + getStatusBadge(project, definition, branchName, stageName, jobName, configuration, label) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definition: definition + }; + let queryValues = { + branchName: branchName, + stageName: stageName, + jobName: jobName, + configuration: configuration, + label: label, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "07acfdce-4757-4439-b422-ddd13a2fcc10", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds a tag to a build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {string} tag - The tag to add. + */ + addBuildTag(project, buildId, tag) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId, + tag: tag + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "6e6114b2-8161-44c8-8f6c-c5505782427f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, null, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds tags to a build. + * + * @param {string[]} tags - The tags to add. + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + */ + addBuildTags(tags, project, buildId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "6e6114b2-8161-44c8-8f6c-c5505782427f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, tags, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a tag from a build. NOTE: This API will not work for tags with special characters. To remove tags with special characters, use the PATCH method instead (in 6.0+) + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {string} tag - The tag to remove. + */ + deleteBuildTag(project, buildId, tag) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId, + tag: tag + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "6e6114b2-8161-44c8-8f6c-c5505782427f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the tags for a build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + */ + getBuildTags(project, buildId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "6e6114b2-8161-44c8-8f6c-c5505782427f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds/Removes tags from a build. + * + * @param {BuildInterfaces.UpdateTagParameters} updateParameters - The tags to add/remove. + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + */ + updateBuildTags(updateParameters, project, buildId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "6e6114b2-8161-44c8-8f6c-c5505782427f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, updateParameters, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds a tag to a definition + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - The ID of the definition. + * @param {string} tag - The tag to add. + */ + addDefinitionTag(project, definitionId, tag) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId, + tag: tag + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "cb894432-134a-4d31-a839-83beceaace4b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, null, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds multiple tags to a definition. + * + * @param {string[]} tags - The tags to add. + * @param {string} project - Project ID or project name + * @param {number} definitionId - The ID of the definition. + */ + addDefinitionTags(tags, project, definitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "cb894432-134a-4d31-a839-83beceaace4b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, tags, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a tag from a definition. NOTE: This API will not work for tags with special characters. To remove tags with special characters, use the PATCH method instead (in 6.0+) + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - The ID of the definition. + * @param {string} tag - The tag to remove. + */ + deleteDefinitionTag(project, definitionId, tag) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId, + tag: tag + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "cb894432-134a-4d31-a839-83beceaace4b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the tags for a definition. + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - The ID of the definition. + * @param {number} revision - The definition revision number. If not specified, uses the latest revision of the definition. + */ + getDefinitionTags(project, definitionId, revision) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + let queryValues = { + revision: revision, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "cb894432-134a-4d31-a839-83beceaace4b", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds/Removes tags from a definition. + * + * @param {BuildInterfaces.UpdateTagParameters} updateParameters - The tags to add/remove. + * @param {string} project - Project ID or project name + * @param {number} definitionId - The ID of the definition. + */ + updateDefinitionTags(updateParameters, project, definitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "cb894432-134a-4d31-a839-83beceaace4b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, updateParameters, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a tag from builds, definitions, and from the tag store + * + * @param {string} project - Project ID or project name + * @param {string} tag - The tag to remove. + */ + deleteTag(project, tag) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + tag: tag + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "d84ac5c6-edc7-43d5-adc9-1b34be5dea09", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a list of all build tags in the project. + * + * @param {string} project - Project ID or project name + */ + getTags(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "d84ac5c6-edc7-43d5-adc9-1b34be5dea09", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes a build definition template. + * + * @param {string} project - Project ID or project name + * @param {string} templateId - The ID of the template. + */ + deleteTemplate(project, templateId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + templateId: templateId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "e884571e-7f92-4d6a-9274-3f5649900835", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a specific build definition template. + * + * @param {string} project - Project ID or project name + * @param {string} templateId - The ID of the requested template. + */ + getTemplate(project, templateId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + templateId: templateId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "e884571e-7f92-4d6a-9274-3f5649900835", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionTemplate, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets all definition templates. + * + * @param {string} project - Project ID or project name + */ + getTemplates(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "e884571e-7f92-4d6a-9274-3f5649900835", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionTemplate, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates an existing build definition template. + * + * @param {BuildInterfaces.BuildDefinitionTemplate} template - The new version of the template. + * @param {string} project - Project ID or project name + * @param {string} templateId - The ID of the template. + */ + saveTemplate(template, project, templateId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + templateId: templateId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "build", "e884571e-7f92-4d6a-9274-3f5649900835", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, template, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionTemplate, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets details for a build + * + * @param {string} project - Project ID or project name + * @param {number} buildId + * @param {string} timelineId + * @param {number} changeId + * @param {string} planId + */ + getBuildTimeline(project, buildId, timelineId, changeId, planId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId, + timelineId: timelineId + }; + let queryValues = { + changeId: changeId, + planId: planId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "8baac422-4c6e-4de5-8532-db96d92acffa", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Timeline, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Recreates the webhooks for the specified triggers in the given source code repository. + * + * @param {BuildInterfaces.DefinitionTriggerType[]} triggerTypes - The types of triggers to restore webhooks for. + * @param {string} project - Project ID or project name + * @param {string} providerName - The name of the source provider. + * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit. + * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get webhooks. Can only be omitted for providers that do not support multiple repositories. + */ + restoreWebhooks(triggerTypes, project, providerName, serviceEndpointId, repository) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + providerName: providerName + }; + let queryValues = { + serviceEndpointId: serviceEndpointId, + repository: repository, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "793bceb8-9736-4030-bd2f-fb3ce6d6b478", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, triggerTypes, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a list of webhooks installed in the given source code repository. + * + * @param {string} project - Project ID or project name + * @param {string} providerName - The name of the source provider. + * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit. + * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get webhooks. Can only be omitted for providers that do not support multiple repositories. + */ + listWebhooks(project, providerName, serviceEndpointId, repository) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + providerName: providerName + }; + let queryValues = { + serviceEndpointId: serviceEndpointId, + repository: repository, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "8f20ff82-9498-4812-9f6e-9c01bdc50e99", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RepositoryWebhook, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the work items associated with a build. Only work items in the same project are returned. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {number} top - The maximum number of work items to return. + */ + getBuildWorkItemsRefs(project, buildId, top) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + let queryValues = { + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "5a21f5d2-5642-47e4-a0bd-1356e6731bee", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the work items associated with a build, filtered to specific commits. + * + * @param {string[]} commitIds - A comma-delimited list of commit IDs. + * @param {string} project - Project ID or project name + * @param {number} buildId - The ID of the build. + * @param {number} top - The maximum number of work items to return, or the number of commits to consider if no commit IDs are specified. + */ + getBuildWorkItemsRefsFromCommits(commitIds, project, buildId, top) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + let queryValues = { + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "5a21f5d2-5642-47e4-a0bd-1356e6731bee", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, commitIds, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets all the work items between two builds. + * + * @param {string} project - Project ID or project name + * @param {number} fromBuildId - The ID of the first build. + * @param {number} toBuildId - The ID of the last build. + * @param {number} top - The maximum number of work items to return. + */ + getWorkItemsBetweenBuilds(project, fromBuildId, toBuildId, top) { + return __awaiter(this, void 0, void 0, function* () { + if (fromBuildId == null) { + throw new TypeError('fromBuildId can not be null or undefined'); + } + if (toBuildId == null) { + throw new TypeError('toBuildId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + fromBuildId: fromBuildId, + toBuildId: toBuildId, + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "build", "52ba8915-5518-42e3-a4bb-b0182d159e2d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Converts a definition to YAML, optionally at a specific revision. + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - The ID of the definition. + * @param {number} revision - The revision number to retrieve. If this is not specified, the latest version will be returned. + * @param {Date} minMetricsTime - If specified, indicates the date from which metrics should be included. + * @param {string[]} propertyFilters - A comma-delimited list of properties to include in the results. + * @param {boolean} includeLatestBuilds + */ + getDefinitionYaml(project, definitionId, revision, minMetricsTime, propertyFilters, includeLatestBuilds) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + let queryValues = { + revision: revision, + minMetricsTime: minMetricsTime, + propertyFilters: propertyFilters && propertyFilters.join(","), + includeLatestBuilds: includeLatestBuilds, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "build", "7c3df3a1-7e51-4150-8cf7-540347f8697f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +BuildApi.RESOURCE_AREA_ID = "965220d5-5bb9-42cf-8d67-9b146df2a5a4"; +exports.BuildApi = BuildApi; + + +/***/ }), + +/***/ 273: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +Object.defineProperty(exports, "__esModule", ({ value: true })); +const vsom = __nccwpck_require__(9686); +const serm = __nccwpck_require__(5817); +const rm = __nccwpck_require__(7405); +const hm = __nccwpck_require__(5538); +class ClientApiBase { + constructor(baseUrl, handlers, userAgent, options) { + this.baseUrl = baseUrl; + this.http = new hm.HttpClient(userAgent, handlers, options); + this.rest = new rm.RestClient(userAgent, null, handlers, options); + this.vsoClient = new vsom.VsoClient(baseUrl, this.rest); + this.userAgent = userAgent; + } + createAcceptHeader(type, apiVersion) { + return type + (apiVersion ? (';api-version=' + apiVersion) : ''); + } + createRequestOptions(type, apiVersion) { + let options = {}; + options.acceptHeader = this.createAcceptHeader(type, apiVersion); + return options; + } + formatResponse(data, responseTypeMetadata, isCollection) { + let serializationData = { + responseTypeMetadata: responseTypeMetadata, + responseIsCollection: isCollection + }; + let deserializedResult = serm.ContractSerializer.deserialize(data, serializationData.responseTypeMetadata, false, serializationData.responseIsCollection); + return deserializedResult; + } +} +exports.ClientApiBase = ClientApiBase; + + +/***/ }), + +/***/ 4020: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const CoreInterfaces = __nccwpck_require__(3931); +const OperationsInterfaces = __nccwpck_require__(3052); +class CoreApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-Core-api', options); + } + /** + * Removes the avatar for the project. + * + * @param {string} projectId - The ID or name of the project. + */ + removeProjectAvatar(projectId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "core", "54b2a2a0-859b-4d05-827c-ec4c862f641a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Sets the avatar for the project. + * + * @param {CoreInterfaces.ProjectAvatar} avatarBlob - The avatar blob data object to upload. + * @param {string} projectId - The ID or name of the project. + */ + setProjectAvatar(avatarBlob, projectId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "core", "54b2a2a0-859b-4d05-827c-ec4c862f641a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, avatarBlob, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {CoreInterfaces.WebApiConnectedServiceDetails} connectedServiceCreationData + * @param {string} projectId + */ + createConnectedService(connectedServiceCreationData, projectId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "core", "b4f70219-e18b-42c5-abe3-98b07d35525e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, connectedServiceCreationData, options); + let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.WebApiConnectedService, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} projectId + * @param {string} name + */ + getConnectedServiceDetails(projectId, name) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId, + name: name + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "core", "b4f70219-e18b-42c5-abe3-98b07d35525e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.WebApiConnectedServiceDetails, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} projectId + * @param {CoreInterfaces.ConnectedServiceKind} kind + */ + getConnectedServices(projectId, kind) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId + }; + let queryValues = { + kind: kind, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "core", "b4f70219-e18b-42c5-abe3-98b07d35525e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.WebApiConnectedService, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {CoreInterfaces.IdentityData} mruData + * @param {string} mruName + */ + createIdentityMru(mruData, mruName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + mruName: mruName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "core", "5ead0b70-2572-4697-97e9-f341069a783a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, mruData, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {CoreInterfaces.IdentityData} mruData + * @param {string} mruName + */ + deleteIdentityMru(mruData, mruName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + mruName: mruName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "core", "5ead0b70-2572-4697-97e9-f341069a783a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} mruName + */ + getIdentityMru(mruName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + mruName: mruName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "core", "5ead0b70-2572-4697-97e9-f341069a783a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {CoreInterfaces.IdentityData} mruData + * @param {string} mruName + */ + updateIdentityMru(mruData, mruName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + mruName: mruName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "core", "5ead0b70-2572-4697-97e9-f341069a783a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, mruData, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of members for a specific team. + * + * @param {string} projectId - The name or ID (GUID) of the team project the team belongs to. + * @param {string} teamId - The name or ID (GUID) of the team . + * @param {number} top + * @param {number} skip + */ + getTeamMembersWithExtendedProperties(projectId, teamId, top, skip) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId, + teamId: teamId + }; + let queryValues = { + '$top': top, + '$skip': skip, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "core", "294c494c-2600-4d7e-b76c-3dd50c3c95be", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a process by ID. + * + * @param {string} processId - ID for a process. + */ + getProcessById(processId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "core", "93878975-88c5-4e6a-8abb-7ddd77a8a7d8", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.Process, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of processes. + * + */ + getProcesses() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "core", "93878975-88c5-4e6a-8abb-7ddd77a8a7d8", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.Process, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get project collection with the specified id or name. + * + * @param {string} collectionId + */ + getProjectCollection(collectionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + collectionId: collectionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "core", "8031090f-ef1d-4af6-85fc-698cd75d42bf", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.TeamProjectCollection, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get project collection references for this application. + * + * @param {number} top + * @param {number} skip + */ + getProjectCollections(top, skip) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + '$top': top, + '$skip': skip, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "core", "8031090f-ef1d-4af6-85fc-698cd75d42bf", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the history of changes to the project. + * + * @param {number} minRevision - The minimum revision number to return in the history. + */ + getProjectHistoryEntries(minRevision) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + minRevision: minRevision, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "core", "6488a877-4749-4954-82ea-7340d36be9f2", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.ProjectInfo, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get project with the specified id or name, optionally including capabilities. + * + * @param {string} projectId + * @param {boolean} includeCapabilities - Include capabilities (such as source control) in the team project result (default: false). + * @param {boolean} includeHistory - Search within renamed projects (that had such name in the past). + */ + getProject(projectId, includeCapabilities, includeHistory) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId + }; + let queryValues = { + includeCapabilities: includeCapabilities, + includeHistory: includeHistory, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "core", "603fe2ac-9723-48b9-88ad-09305aa6c6e1", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.TeamProject, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get all projects in the organization that the authenticated user has access to. + * + * @param {any} stateFilter - Filter on team projects in a specific team project state (default: WellFormed). + * @param {number} top + * @param {number} skip + * @param {string} continuationToken + * @param {boolean} getDefaultTeamImageUrl + */ + getProjects(stateFilter, top, skip, continuationToken, getDefaultTeamImageUrl) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + stateFilter: stateFilter, + '$top': top, + '$skip': skip, + continuationToken: continuationToken, + getDefaultTeamImageUrl: getDefaultTeamImageUrl, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "core", "603fe2ac-9723-48b9-88ad-09305aa6c6e1", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.TeamProjectReference, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Queues a project to be created. Use the [GetOperation](../../operations/operations/get) to periodically check for create project status. + * + * @param {CoreInterfaces.TeamProject} projectToCreate - The project to create. + */ + queueCreateProject(projectToCreate) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "core", "603fe2ac-9723-48b9-88ad-09305aa6c6e1", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, projectToCreate, options); + let ret = this.formatResponse(res.result, OperationsInterfaces.TypeInfo.OperationReference, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Queues a project to be deleted. Use the [GetOperation](../../operations/operations/get) to periodically check for delete project status. + * + * @param {string} projectId - The project id of the project to delete. + */ + queueDeleteProject(projectId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "core", "603fe2ac-9723-48b9-88ad-09305aa6c6e1", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, OperationsInterfaces.TypeInfo.OperationReference, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update an existing project's name, abbreviation, description, or restore a project. + * + * @param {CoreInterfaces.TeamProject} projectUpdate - The updates for the project. The state must be set to wellFormed to restore the project. + * @param {string} projectId - The project id of the project to update. + */ + updateProject(projectUpdate, projectId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "core", "603fe2ac-9723-48b9-88ad-09305aa6c6e1", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, projectUpdate, options); + let ret = this.formatResponse(res.result, OperationsInterfaces.TypeInfo.OperationReference, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a collection of team project properties for multiple projects. + * + * @param {string[]} projectIds - A comma-delimited string of team project IDs + * @param {string[]} properties + */ + getProjectsProperties(projectIds, properties) { + return __awaiter(this, void 0, void 0, function* () { + if (projectIds == null) { + throw new TypeError('projectIds can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + projectIds: projectIds && projectIds.join(","), + properties: properties && properties.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "core", "0a3ffdfc-fe94-47a6-bb27-79bf3f762eac", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a collection of team project properties. + * + * @param {string} projectId - The team project ID. + * @param {string[]} keys - A comma-delimited string of team project property names. Wildcard characters ("?" and "*") are supported. If no key is specified, all properties will be returned. + */ + getProjectProperties(projectId, keys) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId + }; + let queryValues = { + keys: keys && keys.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "core", "4976a71a-4487-49aa-8aab-a1eda469037a", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create, update, and delete team project properties. + * + * @param {string} projectId - The team project ID. + * @param {VSSInterfaces.JsonPatchDocument} patchDocument - A JSON Patch document that represents an array of property operations. See RFC 6902 for more details on JSON Patch. The accepted operation verbs are Add and Remove, where Add is used for both creating and updating properties. The path consists of a forward slash and a property name. + */ + setProjectProperties(customHeaders, projectId, patchDocument) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/json-patch+json"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "core", "4976a71a-4487-49aa-8aab-a1eda469037a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.update(url, patchDocument, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {CoreInterfaces.Proxy} proxy + */ + createOrUpdateProxy(proxy) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "core", "ec1f4311-f2b4-4c15-b2b8-8990b80d2908", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, proxy, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} proxyUrl + * @param {string} site + */ + deleteProxy(proxyUrl, site) { + return __awaiter(this, void 0, void 0, function* () { + if (proxyUrl == null) { + throw new TypeError('proxyUrl can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + proxyUrl: proxyUrl, + site: site, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "core", "ec1f4311-f2b4-4c15-b2b8-8990b80d2908", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} proxyUrl + */ + getProxies(proxyUrl) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + proxyUrl: proxyUrl, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "core", "ec1f4311-f2b4-4c15-b2b8-8990b80d2908", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of all teams. + * + * @param {boolean} mine - If true, then return all teams requesting user is member. Otherwise return all teams user has read access. + * @param {number} top - Maximum number of teams to return. + * @param {number} skip - Number of teams to skip. + * @param {boolean} expandIdentity - A value indicating whether or not to expand Identity information in the result WebApiTeam object. + */ + getAllTeams(mine, top, skip, expandIdentity) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + '$mine': mine, + '$top': top, + '$skip': skip, + '$expandIdentity': expandIdentity, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "core", "7a4d9ee9-3433-4347-b47a-7a80f1cf307e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a team in a team project. + * + * @param {CoreInterfaces.WebApiTeam} team - The team data used to create the team. + * @param {string} projectId - The name or ID (GUID) of the team project in which to create the team. + */ + createTeam(team, projectId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "core", "d30a3dd1-f8ba-442a-b86a-bd0c0c383e59", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, team, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a team. + * + * @param {string} projectId - The name or ID (GUID) of the team project containing the team to delete. + * @param {string} teamId - The name or ID of the team to delete. + */ + deleteTeam(projectId, teamId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId, + teamId: teamId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "core", "d30a3dd1-f8ba-442a-b86a-bd0c0c383e59", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a specific team. + * + * @param {string} projectId - The name or ID (GUID) of the team project containing the team. + * @param {string} teamId - The name or ID (GUID) of the team. + * @param {boolean} expandIdentity - A value indicating whether or not to expand Identity information in the result WebApiTeam object. + */ + getTeam(projectId, teamId, expandIdentity) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId, + teamId: teamId + }; + let queryValues = { + '$expandIdentity': expandIdentity, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "core", "d30a3dd1-f8ba-442a-b86a-bd0c0c383e59", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of teams. + * + * @param {string} projectId + * @param {boolean} mine - If true return all the teams requesting user is member, otherwise return all the teams user has read access. + * @param {number} top - Maximum number of teams to return. + * @param {number} skip - Number of teams to skip. + * @param {boolean} expandIdentity - A value indicating whether or not to expand Identity information in the result WebApiTeam object. + */ + getTeams(projectId, mine, top, skip, expandIdentity) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId + }; + let queryValues = { + '$mine': mine, + '$top': top, + '$skip': skip, + '$expandIdentity': expandIdentity, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "core", "d30a3dd1-f8ba-442a-b86a-bd0c0c383e59", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a team's name and/or description. + * + * @param {CoreInterfaces.WebApiTeam} teamData + * @param {string} projectId - The name or ID (GUID) of the team project containing the team to update. + * @param {string} teamId - The name of ID of the team to update. + */ + updateTeam(teamData, projectId, teamId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId, + teamId: teamId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "core", "d30a3dd1-f8ba-442a-b86a-bd0c0c383e59", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, teamData, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +CoreApi.RESOURCE_AREA_ID = "79134c72-4a58-4b42-976c-04e7115f32bf"; +exports.CoreApi = CoreApi; + + +/***/ }), + +/***/ 7539: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const DashboardInterfaces = __nccwpck_require__(6890); +class DashboardApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-Dashboard-api', options); + } + /** + * Create the supplied dashboard. + * + * @param {DashboardInterfaces.Dashboard} dashboard - The initial state of the dashboard + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + createDashboard(dashboard, teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Dashboard", "454b3e51-2e6e-48d4-ad81-978154089351", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, dashboard, options); + let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a dashboard given its ID. This also deletes the widgets associated with this dashboard. + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} dashboardId - ID of the dashboard to delete. + */ + deleteDashboard(teamContext, dashboardId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + dashboardId: dashboardId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Dashboard", "454b3e51-2e6e-48d4-ad81-978154089351", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a dashboard by its ID. + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} dashboardId + */ + getDashboard(teamContext, dashboardId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + dashboardId: dashboardId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Dashboard", "454b3e51-2e6e-48d4-ad81-978154089351", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of dashboards under a project. + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + getDashboardsByProject(teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Dashboard", "454b3e51-2e6e-48d4-ad81-978154089351", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Replace configuration for the specified dashboard. Replaces Widget list on Dashboard, only if property is supplied. + * + * @param {DashboardInterfaces.Dashboard} dashboard - The Configuration of the dashboard to replace. + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} dashboardId - ID of the dashboard to replace. + */ + replaceDashboard(dashboard, teamContext, dashboardId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + dashboardId: dashboardId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Dashboard", "454b3e51-2e6e-48d4-ad81-978154089351", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, dashboard, options); + let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update the name and position of dashboards in the supplied group, and remove omitted dashboards. Does not modify dashboard content. + * + * @param {DashboardInterfaces.DashboardGroup} group + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + replaceDashboards(group, teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Dashboard", "454b3e51-2e6e-48d4-ad81-978154089351", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, group, options); + let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.DashboardGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a widget on the specified dashboard. + * + * @param {DashboardInterfaces.Widget} widget - State of the widget to add + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} dashboardId - ID of dashboard the widget will be added to. + */ + createWidget(widget, teamContext, dashboardId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + dashboardId: dashboardId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Dashboard", "bdcff53a-8355-4172-a00a-40497ea23afc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, widget, options); + let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete the specified widget. + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} dashboardId - ID of the dashboard containing the widget. + * @param {string} widgetId - ID of the widget to update. + */ + deleteWidget(teamContext, dashboardId, widgetId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + dashboardId: dashboardId, + widgetId: widgetId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Dashboard", "bdcff53a-8355-4172-a00a-40497ea23afc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the current state of the specified widget. + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} dashboardId - ID of the dashboard containing the widget. + * @param {string} widgetId - ID of the widget to read. + */ + getWidget(teamContext, dashboardId, widgetId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + dashboardId: dashboardId, + widgetId: widgetId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Dashboard", "bdcff53a-8355-4172-a00a-40497ea23afc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Override the state of the specified widget. + * + * @param {DashboardInterfaces.Widget} widget - State to be written for the widget. + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} dashboardId - ID of the dashboard containing the widget. + * @param {string} widgetId - ID of the widget to update. + */ + replaceWidget(widget, teamContext, dashboardId, widgetId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + dashboardId: dashboardId, + widgetId: widgetId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Dashboard", "bdcff53a-8355-4172-a00a-40497ea23afc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, widget, options); + let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Perform a partial update of the specified widget. + * + * @param {DashboardInterfaces.Widget} widget - Description of the widget changes to apply. All non-null fields will be replaced. + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} dashboardId - ID of the dashboard containing the widget. + * @param {string} widgetId - ID of the widget to update. + */ + updateWidget(widget, teamContext, dashboardId, widgetId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + dashboardId: dashboardId, + widgetId: widgetId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Dashboard", "bdcff53a-8355-4172-a00a-40497ea23afc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, widget, options); + let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the widget metadata satisfying the specified contribution ID. + * + * @param {string} contributionId - The ID of Contribution for the Widget + * @param {string} project - Project ID or project name + */ + getWidgetMetadata(contributionId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + contributionId: contributionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Dashboard", "6b3628d3-e96f-4fc7-b176-50240b03b515", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.WidgetMetadataResponse, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get all available widget metadata in alphabetical order, including widgets marked with isVisibleFromCatalog == false. + * + * @param {DashboardInterfaces.WidgetScope} scope + * @param {string} project - Project ID or project name + */ + getWidgetTypes(scope, project) { + return __awaiter(this, void 0, void 0, function* () { + if (scope == null) { + throw new TypeError('scope can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + '$scope': scope, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Dashboard", "6b3628d3-e96f-4fc7-b176-50240b03b515", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.WidgetTypesResponse, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +DashboardApi.RESOURCE_AREA_ID = "31c84e0a-3ece-48fd-a29d-100849af99ba"; +exports.DashboardApi = DashboardApi; + + +/***/ }), + +/***/ 4605: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const ExtensionManagementInterfaces = __nccwpck_require__(7357); +const GalleryInterfaces = __nccwpck_require__(8905); +class ExtensionManagementApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-ExtensionManagement-api', options); + } + /** + * @param {string} itemId + * @param {boolean} testCommerce + * @param {boolean} isFreeOrTrialInstall + * @param {boolean} isAccountOwner + * @param {boolean} isLinked + * @param {boolean} isConnectedServer + * @param {boolean} isBuyOperationValid + */ + getAcquisitionOptions(itemId, testCommerce, isFreeOrTrialInstall, isAccountOwner, isLinked, isConnectedServer, isBuyOperationValid) { + return __awaiter(this, void 0, void 0, function* () { + if (itemId == null) { + throw new TypeError('itemId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + itemId: itemId, + testCommerce: testCommerce, + isFreeOrTrialInstall: isFreeOrTrialInstall, + isAccountOwner: isAccountOwner, + isLinked: isLinked, + isConnectedServer: isConnectedServer, + isBuyOperationValid: isBuyOperationValid, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "288dff58-d13b-468e-9671-0fb754e9398c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.AcquisitionOptions, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {ExtensionManagementInterfaces.ExtensionAcquisitionRequest} acquisitionRequest + */ + requestAcquisition(acquisitionRequest) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "da616457-eed3-4672-92d7-18d21f5c1658", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, acquisitionRequest, options); + let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.ExtensionAcquisitionRequest, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + */ + getAuditLog(publisherName, extensionName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "23a312e0-562d-42fb-a505-5a046b5635db", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.ExtensionAuditLog, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} registrationId + */ + registerAuthorization(publisherName, extensionName, registrationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + registrationId: registrationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "f21cfc80-d2d2-4248-98bb-7820c74c4606", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {any} doc + * @param {string} publisherName + * @param {string} extensionName + * @param {string} scopeType + * @param {string} scopeValue + * @param {string} collectionName + */ + createDocumentByName(doc, publisherName, extensionName, scopeType, scopeValue, collectionName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + scopeType: scopeType, + scopeValue: scopeValue, + collectionName: collectionName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "bbe06c18-1c8b-4fcd-b9c6-1535aaab8749", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, doc, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} scopeType + * @param {string} scopeValue + * @param {string} collectionName + * @param {string} documentId + */ + deleteDocumentByName(publisherName, extensionName, scopeType, scopeValue, collectionName, documentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + scopeType: scopeType, + scopeValue: scopeValue, + collectionName: collectionName, + documentId: documentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "bbe06c18-1c8b-4fcd-b9c6-1535aaab8749", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} scopeType + * @param {string} scopeValue + * @param {string} collectionName + * @param {string} documentId + */ + getDocumentByName(publisherName, extensionName, scopeType, scopeValue, collectionName, documentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + scopeType: scopeType, + scopeValue: scopeValue, + collectionName: collectionName, + documentId: documentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "bbe06c18-1c8b-4fcd-b9c6-1535aaab8749", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} scopeType + * @param {string} scopeValue + * @param {string} collectionName + */ + getDocumentsByName(publisherName, extensionName, scopeType, scopeValue, collectionName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + scopeType: scopeType, + scopeValue: scopeValue, + collectionName: collectionName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "bbe06c18-1c8b-4fcd-b9c6-1535aaab8749", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {any} doc + * @param {string} publisherName + * @param {string} extensionName + * @param {string} scopeType + * @param {string} scopeValue + * @param {string} collectionName + */ + setDocumentByName(doc, publisherName, extensionName, scopeType, scopeValue, collectionName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + scopeType: scopeType, + scopeValue: scopeValue, + collectionName: collectionName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "bbe06c18-1c8b-4fcd-b9c6-1535aaab8749", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, doc, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {any} doc + * @param {string} publisherName + * @param {string} extensionName + * @param {string} scopeType + * @param {string} scopeValue + * @param {string} collectionName + */ + updateDocumentByName(doc, publisherName, extensionName, scopeType, scopeValue, collectionName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + scopeType: scopeType, + scopeValue: scopeValue, + collectionName: collectionName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "bbe06c18-1c8b-4fcd-b9c6-1535aaab8749", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, doc, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Query for one or more data collections for the specified extension. Note: the token used for authorization must have been issued on behalf of the specified extension. + * + * @param {ExtensionManagementInterfaces.ExtensionDataCollectionQuery} collectionQuery + * @param {string} publisherName - Name of the publisher. Example: "fabrikam". + * @param {string} extensionName - Name of the extension. Example: "ops-tools". + */ + queryCollectionsByName(collectionQuery, publisherName, extensionName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "56c331f1-ce53-4318-adfd-4db5c52a7a2e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, collectionQuery, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * List state and version information for all installed extensions. + * + * @param {boolean} includeDisabled - If true (the default), include disabled extensions in the results. + * @param {boolean} includeErrors - If true, include installed extensions in an error state in the results. + * @param {boolean} includeInstallationIssues + * @param {boolean} forceRefresh + */ + getStates(includeDisabled, includeErrors, includeInstallationIssues, forceRefresh) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + includeDisabled: includeDisabled, + includeErrors: includeErrors, + includeInstallationIssues: includeInstallationIssues, + forceRefresh: forceRefresh, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "92755d3d-9a8a-42b3-8a4d-87359fe5aa93", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.ExtensionState, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {ExtensionManagementInterfaces.InstalledExtensionQuery} query + */ + queryExtensions(query) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "046c980f-1345-4ce2-bf85-b46d10ff4cfd", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, query, options); + let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * List the installed extensions in the account / project collection. + * + * @param {boolean} includeDisabledExtensions - If true (the default), include disabled extensions in the results. + * @param {boolean} includeErrors - If true, include installed extensions with errors. + * @param {string[]} assetTypes + * @param {boolean} includeInstallationIssues + */ + getInstalledExtensions(includeDisabledExtensions, includeErrors, assetTypes, includeInstallationIssues) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + includeDisabledExtensions: includeDisabledExtensions, + includeErrors: includeErrors, + assetTypes: assetTypes && assetTypes.join(":"), + includeInstallationIssues: includeInstallationIssues, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "275424d0-c844-4fe2-bda6-04933a1357d8", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update an installed extension. Typically this API is used to enable or disable an extension. + * + * @param {ExtensionManagementInterfaces.InstalledExtension} extension + */ + updateInstalledExtension(extension) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "275424d0-c844-4fe2-bda6-04933a1357d8", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, extension, options); + let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get an installed extension by its publisher and extension name. + * + * @param {string} publisherName - Name of the publisher. Example: "fabrikam". + * @param {string} extensionName - Name of the extension. Example: "ops-tools". + * @param {string[]} assetTypes + */ + getInstalledExtensionByName(publisherName, extensionName, assetTypes) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + let queryValues = { + assetTypes: assetTypes && assetTypes.join(":"), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "fb0da285-f23e-4b56-8b53-3ef5f9f6de66", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Install the specified extension into the account / project collection. + * + * @param {string} publisherName - Name of the publisher. Example: "fabrikam". + * @param {string} extensionName - Name of the extension. Example: "ops-tools". + * @param {string} version + */ + installExtensionByName(publisherName, extensionName, version) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + version: version + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "fb0da285-f23e-4b56-8b53-3ef5f9f6de66", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Uninstall the specified extension from the account / project collection. + * + * @param {string} publisherName - Name of the publisher. Example: "fabrikam". + * @param {string} extensionName - Name of the extension. Example: "ops-tools". + * @param {string} reason + * @param {string} reasonCode + */ + uninstallExtensionByName(publisherName, extensionName, reason, reasonCode) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + let queryValues = { + reason: reason, + reasonCode: reasonCode, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "fb0da285-f23e-4b56-8b53-3ef5f9f6de66", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} userId + */ + getPolicies(userId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + userId: userId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "e5cc8c09-407b-4867-8319-2ae3338cbf6f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.UserExtensionPolicy, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} rejectMessage + * @param {string} publisherName + * @param {string} extensionName + * @param {string} requesterId + * @param {ExtensionManagementInterfaces.ExtensionRequestState} state + */ + resolveRequest(rejectMessage, publisherName, extensionName, requesterId, state) { + return __awaiter(this, void 0, void 0, function* () { + if (state == null) { + throw new TypeError('state can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + requesterId: requesterId + }; + let queryValues = { + state: state, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "aa93e1f3-511c-4364-8b9c-eb98818f2e0b", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, rejectMessage, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + */ + getRequests() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "216b978f-b164-424e-ada2-b77561e842b7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.RequestedExtension, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} rejectMessage + * @param {string} publisherName + * @param {string} extensionName + * @param {ExtensionManagementInterfaces.ExtensionRequestState} state + */ + resolveAllRequests(rejectMessage, publisherName, extensionName, state) { + return __awaiter(this, void 0, void 0, function* () { + if (state == null) { + throw new TypeError('state can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + let queryValues = { + state: state, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "ba93e1f3-511c-4364-8b9c-eb98818f2e0b", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, rejectMessage, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + */ + deleteRequest(publisherName, extensionName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "f5afca1e-a728-4294-aa2d-4af0173431b5", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} requestMessage + */ + requestExtension(publisherName, extensionName, requestMessage) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "f5afca1e-a728-4294-aa2d-4af0173431b5", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, requestMessage, options); + let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.RequestedExtension, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + */ + getToken() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "ExtensionManagement", "3a2e24ed-1d6f-4cb2-9f3b-45a96bbfaf50", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +ExtensionManagementApi.RESOURCE_AREA_ID = "6c2b0933-3600-42ae-bf8b-93d4f7e83594"; +exports.ExtensionManagementApi = ExtensionManagementApi; + + +/***/ }), + +/***/ 3193: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const FeatureManagementInterfaces = __nccwpck_require__(7278); +class FeatureManagementApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-FeatureManagement-api', options); + } + /** + * Get a specific feature by its id + * + * @param {string} featureId - The contribution id of the feature + */ + getFeature(featureId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + featureId: featureId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "FeatureManagement", "c4209f25-7a27-41dd-9f04-06080c7b6afd", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of all defined features + * + * @param {string} targetContributionId - Optional target contribution. If null/empty, return all features. If specified include the features that target the specified contribution. + */ + getFeatures(targetContributionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + targetContributionId: targetContributionId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "FeatureManagement", "c4209f25-7a27-41dd-9f04-06080c7b6afd", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the state of the specified feature for the given user/all-users scope + * + * @param {string} featureId - Contribution id of the feature + * @param {string} userScope - User-Scope at which to get the value. Should be "me" for the current user or "host" for all users. + */ + getFeatureState(featureId, userScope) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + featureId: featureId, + userScope: userScope + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "FeatureManagement", "98911314-3f9b-4eaf-80e8-83900d8e85d9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Set the state of a feature + * + * @param {FeatureManagementInterfaces.ContributedFeatureState} feature - Posted feature state object. Should specify the effective value. + * @param {string} featureId - Contribution id of the feature + * @param {string} userScope - User-Scope at which to set the value. Should be "me" for the current user or "host" for all users. + * @param {string} reason - Reason for changing the state + * @param {string} reasonCode - Short reason code + */ + setFeatureState(feature, featureId, userScope, reason, reasonCode) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + featureId: featureId, + userScope: userScope + }; + let queryValues = { + reason: reason, + reasonCode: reasonCode, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "FeatureManagement", "98911314-3f9b-4eaf-80e8-83900d8e85d9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, feature, options); + let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the state of the specified feature for the given named scope + * + * @param {string} featureId - Contribution id of the feature + * @param {string} userScope - User-Scope at which to get the value. Should be "me" for the current user or "host" for all users. + * @param {string} scopeName - Scope at which to get the feature setting for (e.g. "project" or "team") + * @param {string} scopeValue - Value of the scope (e.g. the project or team id) + */ + getFeatureStateForScope(featureId, userScope, scopeName, scopeValue) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + featureId: featureId, + userScope: userScope, + scopeName: scopeName, + scopeValue: scopeValue + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "FeatureManagement", "dd291e43-aa9f-4cee-8465-a93c78e414a4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Set the state of a feature at a specific scope + * + * @param {FeatureManagementInterfaces.ContributedFeatureState} feature - Posted feature state object. Should specify the effective value. + * @param {string} featureId - Contribution id of the feature + * @param {string} userScope - User-Scope at which to set the value. Should be "me" for the current user or "host" for all users. + * @param {string} scopeName - Scope at which to get the feature setting for (e.g. "project" or "team") + * @param {string} scopeValue - Value of the scope (e.g. the project or team id) + * @param {string} reason - Reason for changing the state + * @param {string} reasonCode - Short reason code + */ + setFeatureStateForScope(feature, featureId, userScope, scopeName, scopeValue, reason, reasonCode) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + featureId: featureId, + userScope: userScope, + scopeName: scopeName, + scopeValue: scopeValue + }; + let queryValues = { + reason: reason, + reasonCode: reasonCode, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "FeatureManagement", "dd291e43-aa9f-4cee-8465-a93c78e414a4", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, feature, options); + let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the effective state for a list of feature ids + * + * @param {FeatureManagementInterfaces.ContributedFeatureStateQuery} query - Features to query along with current scope values + */ + queryFeatureStates(query) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "FeatureManagement", "2b4486ad-122b-400c-ae65-17b6672c1f9d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, query, options); + let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureStateQuery, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the states of the specified features for the default scope + * + * @param {FeatureManagementInterfaces.ContributedFeatureStateQuery} query - Query describing the features to query. + * @param {string} userScope + */ + queryFeatureStatesForDefaultScope(query, userScope) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + userScope: userScope + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "FeatureManagement", "3f810f28-03e2-4239-b0bc-788add3005e5", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, query, options); + let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureStateQuery, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the states of the specified features for the specific named scope + * + * @param {FeatureManagementInterfaces.ContributedFeatureStateQuery} query - Query describing the features to query. + * @param {string} userScope + * @param {string} scopeName + * @param {string} scopeValue + */ + queryFeatureStatesForNamedScope(query, userScope, scopeName, scopeValue) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + userScope: userScope, + scopeName: scopeName, + scopeValue: scopeValue + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "FeatureManagement", "f29e997b-c2da-4d15-8380-765788a1a74c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, query, options); + let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureStateQuery, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +exports.FeatureManagementApi = FeatureManagementApi; + + +/***/ }), + +/***/ 7558: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* +* --------------------------------------------------------- +* Copyright(C) Microsoft Corporation. All rights reserved. +* --------------------------------------------------------- +* +* --------------------------------------------------------- +* Generated file, DO NOT EDIT +* --------------------------------------------------------- +*/ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +const stream = __nccwpck_require__(2413); +const zlib = __nccwpck_require__(8761); +const httpm = __nccwpck_require__(5538); +const FileContainerApiBase = __nccwpck_require__(5145); +const FileContainerInterfaces = __nccwpck_require__(6110); +class FileContainerApi extends FileContainerApiBase.FileContainerApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, options); + } + /** + * @param {number} containerId + * @param {string} scope + * @param {string} itemPath + * @param {string} downloadFileName + */ + getItem(containerId, scope, itemPath, downloadFileName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + containerId: containerId + }; + let queryValues = { + scope: scope, + itemPath: itemPath, + '$format': "OctetStream", + downloadFileName: downloadFileName + }; + try { + let verData = yield this.vsoClient.getVersioningData("4.0-preview.4", "Container", "e4f5c81e-e250-447b-9fef-bd48471bea5e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/octet-stream', verData.apiVersion); + let res = yield this.http.get(url); + let rres = {}; + let statusCode = res.message.statusCode; + rres.statusCode = statusCode; + // not found leads to null obj returned + if (statusCode == httpm.HttpCodes.NotFound) { + resolve(rres); + } + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + let contents = yield res.readBody(); + let obj; + if (contents && contents.length > 0) { + obj = JSON.parse(contents); + if (options && options.responseProcessor) { + rres.result = options.responseProcessor(obj); + } + else { + rres.result = obj; + } + } + if (obj && obj.message) { + msg = obj.message; + } + else { + msg = "Failed request: (" + statusCode + ") " + res.message.url; + } + reject(new Error(msg)); + } + else { + // if the response is gzipped, unzip it + if (res.message.headers["content-encoding"] === "gzip") { + let unzipStream = zlib.createGunzip(); + res.message.pipe(unzipStream); + rres.result = unzipStream; + } + else { + rres.result = res.message; + } + resolve(rres); + } + } + catch (err) { + reject(err); + } + })); + }); + } + createItem(contentStream, uncompressedLength, containerId, itemPath, scope, options) { + return new Promise((resolve, reject) => { + let chunkStream = new ChunkStream(this, uncompressedLength, containerId, itemPath, scope, options); + chunkStream.on('finish', () => { + resolve(chunkStream.getItem()); + }); + contentStream.pipe(chunkStream); + }); + } + // used by ChunkStream + _createItem(customHeaders, contentStream, containerId, itemPath, scope, onResult) { + var routeValues = { + containerId: containerId + }; + var queryValues = { + itemPath: itemPath, + scope: scope, + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = ""; + this.vsoClient.getVersioningData("4.0-preview.4", "Container", "e4f5c81e-e250-447b-9fef-bd48471bea5e", routeValues, queryValues) + .then((versioningData) => { + var url = versioningData.requestUrl; + var serializationData = { responseTypeMetadata: FileContainerInterfaces.TypeInfo.FileContainerItem, responseIsCollection: false }; + let options = this.createRequestOptions('application/octet-stream', versioningData.apiVersion); + options.additionalHeaders = customHeaders; + this.rest.uploadStream('PUT', url, contentStream, options) + .then((res) => { + let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainerItem, false); + onResult(null, res.statusCode, ret); + }) + .catch((err) => { + onResult(err, err.statusCode, null); + }); + }, (error) => { + onResult(error, error.statusCode, null); + }); + } +} +exports.FileContainerApi = FileContainerApi; +class ChunkStream extends stream.Writable { + constructor(api, uncompressedLength, containerId, itemPath, scope, options) { + super(); + this._buffer = new Buffer(ChunkStream.ChunkSize); + this._length = 0; + this._startRange = 0; + this._bytesToSend = 0; + this._totalReceived = 0; + this._api = api; + this._options = options || {}; + this._uncompressedLength = uncompressedLength; + this._containerId = containerId; + this._itemPath = itemPath; + this._scope = scope; + this._bytesToSend = this._options.isGzipped ? this._options.compressedLength : uncompressedLength; + } + _write(data, encoding, callback) { + let chunk = data; + if (!chunk) { + if (this._length == 0) { + callback(); + } + else { + // last chunk + this._sendChunk(callback); + } + return; + } + let newBuffer = null; + if (this._length + chunk.length > ChunkStream.ChunkSize) { + // overflow + let overflowPosition = chunk.length - (ChunkStream.ChunkSize - this._length); + chunk.copy(this._buffer, this._length, 0, overflowPosition); + this._length += overflowPosition; + newBuffer = chunk.slice(overflowPosition); + } + else { + chunk.copy(this._buffer, this._length, 0, chunk.length); + this._length += chunk.length; + } + this._totalReceived += chunk.length; + if (this._length >= ChunkStream.ChunkSize || this._totalReceived >= this._bytesToSend) { + this._sendChunk(callback, newBuffer); + } + else { + callback(); + } + } + _sendChunk(callback, newBuffer) { + let endRange = this._startRange + this._length; + let headers = { + "Content-Range": "bytes " + this._startRange + "-" + (endRange - 1) + "/" + this._bytesToSend, + "Content-Length": this._length + }; + if (this._options.isGzipped) { + headers["Accept-Encoding"] = "gzip"; + headers["Content-Encoding"] = "gzip"; + headers["x-tfs-filelength"] = this._uncompressedLength; + } + this._startRange = endRange; + this._api._createItem(headers, new BufferStream(this._buffer, this._length), this._containerId, this._itemPath, this._scope, (err, statusCode, item) => { + if (newBuffer) { + this._length = newBuffer.length; + newBuffer.copy(this._buffer); + } + else { + this._length = 0; + } + this._item = item; + callback(err); + }); + } + getItem() { + return this._item; + } +} +ChunkStream.ChunkSize = (16 * 1024 * 1024); +class BufferStream extends stream.Readable { + constructor(buffer, length) { + super(); + this._position = 0; + this._length = 0; + this._buffer = buffer; + this._length = length; + } + _read(size) { + if (this._position >= this._length) { + this.push(null); + return; + } + let end = Math.min(this._position + size, this._length); + this.push(this._buffer.slice(this._position, end)); + this._position = end; + } +} + + +/***/ }), + +/***/ 5145: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const FileContainerInterfaces = __nccwpck_require__(6110); +class FileContainerApiBase extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-FileContainer-api', options); + } + /** + * Creates the specified items in in the referenced container. + * + * @param {VSSInterfaces.VssJsonCollectionWrapperV} items + * @param {number} containerId + * @param {string} scope - A guid representing the scope of the container. This is often the project id. + */ + createItems(items, containerId, scope) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + containerId: containerId + }; + let queryValues = { + scope: scope, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Container", "e4f5c81e-e250-447b-9fef-bd48471bea5e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, items, options); + let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainerItem, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes the specified items in a container. + * + * @param {number} containerId - Container Id. + * @param {string} itemPath - Path to delete. + * @param {string} scope - A guid representing the scope of the container. This is often the project id. + */ + deleteItem(containerId, itemPath, scope) { + return __awaiter(this, void 0, void 0, function* () { + if (itemPath == null) { + throw new TypeError('itemPath can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + containerId: containerId + }; + let queryValues = { + itemPath: itemPath, + scope: scope, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Container", "e4f5c81e-e250-447b-9fef-bd48471bea5e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets containers filtered by a comma separated list of artifact uris within the same scope, if not specified returns all containers + * + * @param {string} scope - A guid representing the scope of the container. This is often the project id. + * @param {string} artifactUris + */ + getContainers(scope, artifactUris) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + scope: scope, + artifactUris: artifactUris, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Container", "e4f5c81e-e250-447b-9fef-bd48471bea5e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainer, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} containerId + * @param {string} scope + * @param {string} itemPath + * @param {boolean} metadata + * @param {string} format + * @param {string} downloadFileName + * @param {boolean} includeDownloadTickets + * @param {boolean} isShallow + * @param {boolean} ignoreRequestedMediaType + * @param {boolean} includeBlobMetadata + * @param {boolean} saveAbsolutePath + */ + getItems(containerId, scope, itemPath, metadata, format, downloadFileName, includeDownloadTickets, isShallow, ignoreRequestedMediaType, includeBlobMetadata, saveAbsolutePath) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + containerId: containerId + }; + let queryValues = { + scope: scope, + itemPath: itemPath, + metadata: metadata, + '$format': format, + downloadFileName: downloadFileName, + includeDownloadTickets: includeDownloadTickets, + isShallow: isShallow, + ignoreRequestedMediaType: ignoreRequestedMediaType, + includeBlobMetadata: includeBlobMetadata, + saveAbsolutePath: saveAbsolutePath, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Container", "e4f5c81e-e250-447b-9fef-bd48471bea5e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainerItem, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +exports.FileContainerApiBase = FileContainerApiBase; + + +/***/ }), + +/***/ 1939: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const compatBase = __nccwpck_require__(946); +const GalleryInterfaces = __nccwpck_require__(8905); +class GalleryApi extends compatBase.GalleryCompatHttpClientBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-Gallery-api', options); + } + /** + * @param {string} extensionId + * @param {string} accountName + */ + shareExtensionById(extensionId, accountName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + extensionId: extensionId, + accountName: accountName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "1f19631b-a0b4-4a03-89c2-d79785d24360", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} extensionId + * @param {string} accountName + */ + unshareExtensionById(extensionId, accountName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + extensionId: extensionId, + accountName: accountName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "1f19631b-a0b4-4a03-89c2-d79785d24360", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} accountName + */ + shareExtension(publisherName, extensionName, accountName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + accountName: accountName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "a1e66d8f-f5de-4d16-8309-91a4e015ee46", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} accountName + */ + unshareExtension(publisherName, extensionName, accountName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + accountName: accountName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "a1e66d8f-f5de-4d16-8309-91a4e015ee46", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} itemId + * @param {string} installationTarget + * @param {boolean} testCommerce + * @param {boolean} isFreeOrTrialInstall + */ + getAcquisitionOptions(itemId, installationTarget, testCommerce, isFreeOrTrialInstall) { + return __awaiter(this, void 0, void 0, function* () { + if (installationTarget == null) { + throw new TypeError('installationTarget can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + itemId: itemId + }; + let queryValues = { + installationTarget: installationTarget, + testCommerce: testCommerce, + isFreeOrTrialInstall: isFreeOrTrialInstall, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "9d0a0105-075e-4760-aa15-8bcf54d1bd7d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.AcquisitionOptions, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {GalleryInterfaces.ExtensionAcquisitionRequest} acquisitionRequest + */ + requestAcquisition(acquisitionRequest) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "3adb1f2d-e328-446e-be73-9f6d98071c45", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, acquisitionRequest, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionAcquisitionRequest, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} version + * @param {string} assetType + * @param {string} accountToken + * @param {boolean} acceptDefault + * @param {String} accountTokenHeader - Header to pass the account token + */ + getAssetByName(customHeaders, publisherName, extensionName, version, assetType, accountToken, acceptDefault, accountTokenHeader) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + version: version, + assetType: assetType + }; + let queryValues = { + accountToken: accountToken, + acceptDefault: acceptDefault, + }; + customHeaders = customHeaders || {}; + customHeaders["X-Market-AccountToken"] = "accountTokenHeader"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "7529171f-a002-4180-93ba-685f358a0482", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} extensionId + * @param {string} version + * @param {string} assetType + * @param {string} accountToken + * @param {boolean} acceptDefault + * @param {String} accountTokenHeader - Header to pass the account token + */ + getAsset(customHeaders, extensionId, version, assetType, accountToken, acceptDefault, accountTokenHeader) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + extensionId: extensionId, + version: version, + assetType: assetType + }; + let queryValues = { + accountToken: accountToken, + acceptDefault: acceptDefault, + }; + customHeaders = customHeaders || {}; + customHeaders["X-Market-AccountToken"] = "accountTokenHeader"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "5d545f3d-ef47-488b-8be3-f5ee1517856c", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} version + * @param {string} assetType + * @param {string} accountToken + * @param {String} accountTokenHeader - Header to pass the account token + */ + getAssetAuthenticated(customHeaders, publisherName, extensionName, version, assetType, accountToken, accountTokenHeader) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + version: version, + assetType: assetType + }; + let queryValues = { + accountToken: accountToken, + }; + customHeaders = customHeaders || {}; + customHeaders["X-Market-AccountToken"] = "accountTokenHeader"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "506aff36-2622-4f70-8063-77cce6366d20", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} azurePublisherId + */ + associateAzurePublisher(publisherName, azurePublisherId) { + return __awaiter(this, void 0, void 0, function* () { + if (azurePublisherId == null) { + throw new TypeError('azurePublisherId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName + }; + let queryValues = { + azurePublisherId: azurePublisherId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "efd202a6-9d87-4ebc-9229-d2b8ae2fdb6d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + */ + queryAssociatedAzurePublisher(publisherName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "efd202a6-9d87-4ebc-9229-d2b8ae2fdb6d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} languages + */ + getCategories(languages) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + languages: languages, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "e0a5a71e-3ac3-43a0-ae7d-0bb5c3046a2a", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} categoryName + * @param {string} languages + * @param {string} product + */ + getCategoryDetails(categoryName, languages, product) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + categoryName: categoryName + }; + let queryValues = { + languages: languages, + product: product, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "75d3c04d-84d2-4973-acd2-22627587dabc", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} product + * @param {string} categoryId + * @param {number} lcid + * @param {string} source + * @param {string} productVersion + * @param {string} skus + * @param {string} subSkus + */ + getCategoryTree(product, categoryId, lcid, source, productVersion, skus, subSkus) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + product: product, + categoryId: categoryId + }; + let queryValues = { + lcid: lcid, + source: source, + productVersion: productVersion, + skus: skus, + subSkus: subSkus, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "1102bb42-82b0-4955-8d8a-435d6b4cedd3", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} product + * @param {number} lcid + * @param {string} source + * @param {string} productVersion + * @param {string} skus + * @param {string} subSkus + */ + getRootCategories(product, lcid, source, productVersion, skus, subSkus) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + product: product + }; + let queryValues = { + lcid: lcid, + source: source, + productVersion: productVersion, + skus: skus, + subSkus: subSkus, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "31fba831-35b2-46f6-a641-d05de5a877d8", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} version + */ + getCertificate(publisherName, extensionName, version) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + version: version + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "e905ad6a-3f1f-4d08-9f6d-7d357ff8b7d0", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + */ + getContentVerificationLog(publisherName, extensionName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "c0f1c7c4-3557-4ffb-b774-1e48c4865e99", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {GalleryInterfaces.CustomerSupportRequest} customerSupportRequest + */ + createSupportRequest(customerSupportRequest) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "8eded385-026a-4c15-b810-b8eb402771f1", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, customerSupportRequest, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + */ + createDraftForEditExtension(publisherName, extensionName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "02b33873-4e61-496e-83a2-59d1df46b7d8", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {GalleryInterfaces.ExtensionDraftPatch} draftPatch + * @param {string} publisherName + * @param {string} extensionName + * @param {string} draftId + */ + performEditExtensionDraftOperation(draftPatch, publisherName, extensionName, draftId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + draftId: draftId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "02b33873-4e61-496e-83a2-59d1df46b7d8", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, draftPatch, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {NodeJS.ReadableStream} contentStream - Content to upload + * @param {string} publisherName + * @param {string} extensionName + * @param {string} draftId + * @param {String} fileName - Header to pass the filename of the uploaded data + */ + updatePayloadInDraftForEditExtension(customHeaders, contentStream, publisherName, extensionName, draftId, fileName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + draftId: draftId + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + customHeaders["X-Market-UploadFileName"] = "fileName"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "02b33873-4e61-496e-83a2-59d1df46b7d8", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("PUT", url, contentStream, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {NodeJS.ReadableStream} contentStream - Content to upload + * @param {string} publisherName + * @param {string} extensionName + * @param {string} draftId + * @param {string} assetType + */ + addAssetForEditExtensionDraft(customHeaders, contentStream, publisherName, extensionName, draftId, assetType) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + draftId: draftId, + assetType: assetType + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "f1db9c47-6619-4998-a7e5-d7f9f41a4617", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("PUT", url, contentStream, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {NodeJS.ReadableStream} contentStream - Content to upload + * @param {string} publisherName + * @param {String} product - Header to pass the product type of the payload file + * @param {String} fileName - Header to pass the filename of the uploaded data + */ + createDraftForNewExtension(customHeaders, contentStream, publisherName, product, fileName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + customHeaders["X-Market-UploadFileProduct"] = "product"; + customHeaders["X-Market-UploadFileName"] = "fileName"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "b3ab127d-ebb9-4d22-b611-4e09593c8d79", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("POST", url, contentStream, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {GalleryInterfaces.ExtensionDraftPatch} draftPatch + * @param {string} publisherName + * @param {string} draftId + */ + performNewExtensionDraftOperation(draftPatch, publisherName, draftId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + draftId: draftId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "b3ab127d-ebb9-4d22-b611-4e09593c8d79", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, draftPatch, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {NodeJS.ReadableStream} contentStream - Content to upload + * @param {string} publisherName + * @param {string} draftId + * @param {String} fileName - Header to pass the filename of the uploaded data + */ + updatePayloadInDraftForNewExtension(customHeaders, contentStream, publisherName, draftId, fileName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + draftId: draftId + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + customHeaders["X-Market-UploadFileName"] = "fileName"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "b3ab127d-ebb9-4d22-b611-4e09593c8d79", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("PUT", url, contentStream, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {NodeJS.ReadableStream} contentStream - Content to upload + * @param {string} publisherName + * @param {string} draftId + * @param {string} assetType + */ + addAssetForNewExtensionDraft(customHeaders, contentStream, publisherName, draftId, assetType) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + draftId: draftId, + assetType: assetType + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "88c0b1c8-b4f1-498a-9b2a-8446ef9f32e7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("PUT", url, contentStream, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} draftId + * @param {string} assetType + * @param {string} extensionName + */ + getAssetFromEditExtensionDraft(publisherName, draftId, assetType, extensionName) { + return __awaiter(this, void 0, void 0, function* () { + if (extensionName == null) { + throw new TypeError('extensionName can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + draftId: draftId, + assetType: assetType + }; + let queryValues = { + extensionName: extensionName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "88c0b1c8-b4f1-498a-9b2a-8446ef9f32e7", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} draftId + * @param {string} assetType + */ + getAssetFromNewExtensionDraft(publisherName, draftId, assetType) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + draftId: draftId, + assetType: assetType + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "88c0b1c8-b4f1-498a-9b2a-8446ef9f32e7", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get install/uninstall events of an extension. If both count and afterDate parameters are specified, count takes precedence. + * + * @param {string} publisherName - Name of the publisher + * @param {string} extensionName - Name of the extension + * @param {number} count - Count of events to fetch, applies to each event type. + * @param {Date} afterDate - Fetch events that occurred on or after this date + * @param {string} include - Filter options. Supported values: install, uninstall, review, acquisition, sales. Default is to fetch all types of events + * @param {string} includeProperty - Event properties to include. Currently only 'lastContactDetails' is supported for uninstall events + */ + getExtensionEvents(publisherName, extensionName, count, afterDate, include, includeProperty) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + let queryValues = { + count: count, + afterDate: afterDate, + include: include, + includeProperty: includeProperty, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "3d13c499-2168-4d06-bef4-14aba185dcd5", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionEvents, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * API endpoint to publish extension install/uninstall events. This is meant to be invoked by EMS only for sending us data related to install/uninstall of an extension. + * + * @param {GalleryInterfaces.ExtensionEvents[]} extensionEvents + */ + publishExtensionEvents(extensionEvents) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "0bf2bd3a-70e0-4d5d-8bf7-bd4a9c2ab6e7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, extensionEvents, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {GalleryInterfaces.ExtensionQuery} extensionQuery + * @param {string} accountToken + * @param {String} accountTokenHeader - Header to pass the account token + */ + queryExtensions(customHeaders, extensionQuery, accountToken, accountTokenHeader) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + accountToken: accountToken, + }; + customHeaders = customHeaders || {}; + customHeaders["X-Market-AccountToken"] = "accountTokenHeader"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "eb9d5ee1-6d43-456b-b80e-8a96fbc014b6", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.create(url, extensionQuery, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionQueryResult, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {NodeJS.ReadableStream} contentStream - Content to upload + * @param {string} extensionType + * @param {string} reCaptchaToken + */ + createExtension(customHeaders, contentStream, extensionType, reCaptchaToken) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + extensionType: extensionType, + reCaptchaToken: reCaptchaToken, + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "gallery", "a41192c8-9525-4b58-bc86-179fa549d80d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("POST", url, contentStream, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} extensionId + * @param {string} version + */ + deleteExtensionById(extensionId, version) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + extensionId: extensionId + }; + let queryValues = { + version: version, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "gallery", "a41192c8-9525-4b58-bc86-179fa549d80d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} extensionId + * @param {string} version + * @param {GalleryInterfaces.ExtensionQueryFlags} flags + */ + getExtensionById(extensionId, version, flags) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + extensionId: extensionId + }; + let queryValues = { + version: version, + flags: flags, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "gallery", "a41192c8-9525-4b58-bc86-179fa549d80d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} extensionId + * @param {string} reCaptchaToken + */ + updateExtensionById(extensionId, reCaptchaToken) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + extensionId: extensionId + }; + let queryValues = { + reCaptchaToken: reCaptchaToken, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "gallery", "a41192c8-9525-4b58-bc86-179fa549d80d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, null, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {NodeJS.ReadableStream} contentStream - Content to upload + * @param {string} publisherName + * @param {string} extensionType + * @param {string} reCaptchaToken + */ + createExtensionWithPublisher(customHeaders, contentStream, publisherName, extensionType, reCaptchaToken) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName + }; + let queryValues = { + extensionType: extensionType, + reCaptchaToken: reCaptchaToken, + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "gallery", "e11ea35a-16fe-4b80-ab11-c4cab88a0966", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("POST", url, contentStream, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} version + */ + deleteExtension(publisherName, extensionName, version) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + let queryValues = { + version: version, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "gallery", "e11ea35a-16fe-4b80-ab11-c4cab88a0966", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} version + * @param {GalleryInterfaces.ExtensionQueryFlags} flags + * @param {string} accountToken + * @param {String} accountTokenHeader - Header to pass the account token + */ + getExtension(customHeaders, publisherName, extensionName, version, flags, accountToken, accountTokenHeader) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + let queryValues = { + version: version, + flags: flags, + accountToken: accountToken, + }; + customHeaders = customHeaders || {}; + customHeaders["X-Market-AccountToken"] = "accountTokenHeader"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "gallery", "e11ea35a-16fe-4b80-ab11-c4cab88a0966", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * REST endpoint to update an extension. + * + * @param {NodeJS.ReadableStream} contentStream - Content to upload + * @param {string} publisherName - Name of the publisher + * @param {string} extensionName - Name of the extension + * @param {string} extensionType + * @param {string} reCaptchaToken + * @param {boolean} bypassScopeCheck - This parameter decides if the scope change check needs to be invoked or not + */ + updateExtension(customHeaders, contentStream, publisherName, extensionName, extensionType, reCaptchaToken, bypassScopeCheck) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + let queryValues = { + extensionType: extensionType, + reCaptchaToken: reCaptchaToken, + bypassScopeCheck: bypassScopeCheck, + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "gallery", "e11ea35a-16fe-4b80-ab11-c4cab88a0966", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("PUT", url, contentStream, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {GalleryInterfaces.PublishedExtensionFlags} flags + */ + updateExtensionProperties(publisherName, extensionName, flags) { + return __awaiter(this, void 0, void 0, function* () { + if (flags == null) { + throw new TypeError('flags can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + let queryValues = { + flags: flags, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "gallery", "e11ea35a-16fe-4b80-ab11-c4cab88a0966", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, null, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} hostType + * @param {string} hostName + */ + shareExtensionWithHost(publisherName, extensionName, hostType, hostName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + hostType: hostType, + hostName: hostName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "328a3af8-d124-46e9-9483-01690cd415b9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} hostType + * @param {string} hostName + */ + unshareExtensionWithHost(publisherName, extensionName, hostType, hostName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + hostType: hostType, + hostName: hostName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "328a3af8-d124-46e9-9483-01690cd415b9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {GalleryInterfaces.AzureRestApiRequestModel} azureRestApiRequestModel + */ + extensionValidator(azureRestApiRequestModel) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "05e8a5e1-8c59-4c2c-8856-0ff087d1a844", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, azureRestApiRequestModel, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Send Notification + * + * @param {GalleryInterfaces.NotificationsData} notificationData - Denoting the data needed to send notification + */ + sendNotifications(notificationData) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "eab39817-413c-4602-a49f-07ad00844980", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, notificationData, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * This endpoint gets hit when you download a VSTS extension from the Web UI + * + * @param {string} publisherName + * @param {string} extensionName + * @param {string} version + * @param {string} accountToken + * @param {boolean} acceptDefault + * @param {String} accountTokenHeader - Header to pass the account token + */ + getPackage(customHeaders, publisherName, extensionName, version, accountToken, acceptDefault, accountTokenHeader) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + version: version + }; + let queryValues = { + accountToken: accountToken, + acceptDefault: acceptDefault, + }; + customHeaders = customHeaders || {}; + customHeaders["X-Market-AccountToken"] = "accountTokenHeader"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "7cb576f8-1cae-4c4b-b7b1-e4af5759e965", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} version + * @param {string} assetType + * @param {string} assetToken + * @param {string} accountToken + * @param {boolean} acceptDefault + * @param {String} accountTokenHeader - Header to pass the account token + */ + getAssetWithToken(customHeaders, publisherName, extensionName, version, assetType, assetToken, accountToken, acceptDefault, accountTokenHeader) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + version: version, + assetType: assetType, + assetToken: assetToken + }; + let queryValues = { + accountToken: accountToken, + acceptDefault: acceptDefault, + }; + customHeaders = customHeaders || {}; + customHeaders["X-Market-AccountToken"] = "accountTokenHeader"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "364415a1-0077-4a41-a7a0-06edd4497492", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete publisher asset like logo + * + * @param {string} publisherName - Internal name of the publisher + * @param {string} assetType - Type of asset. Default value is 'logo'. + */ + deletePublisherAsset(publisherName, assetType) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName + }; + let queryValues = { + assetType: assetType, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "21143299-34f9-4c62-8ca8-53da691192f9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get publisher asset like logo as a stream + * + * @param {string} publisherName - Internal name of the publisher + * @param {string} assetType - Type of asset. Default value is 'logo'. + */ + getPublisherAsset(publisherName, assetType) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName + }; + let queryValues = { + assetType: assetType, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "21143299-34f9-4c62-8ca8-53da691192f9", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update publisher asset like logo. It accepts asset file as an octet stream and file name is passed in header values. + * + * @param {NodeJS.ReadableStream} contentStream - Content to upload + * @param {string} publisherName - Internal name of the publisher + * @param {string} assetType - Type of asset. Default value is 'logo'. + * @param {String} fileName - Header to pass the filename of the uploaded data + */ + updatePublisherAsset(customHeaders, contentStream, publisherName, assetType, fileName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName + }; + let queryValues = { + assetType: assetType, + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + customHeaders["X-Market-UploadFileName"] = "fileName"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "21143299-34f9-4c62-8ca8-53da691192f9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("PUT", url, contentStream, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {GalleryInterfaces.PublisherQuery} publisherQuery + */ + queryPublishers(publisherQuery) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "2ad6ee0a-b53f-4034-9d1d-d009fda1212e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, publisherQuery, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublisherQueryResult, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {GalleryInterfaces.Publisher} publisher + */ + createPublisher(publisher) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "4ddec66a-e4f6-4f5d-999e-9e77710d7ff4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, publisher, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Publisher, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + */ + deletePublisher(publisherName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "4ddec66a-e4f6-4f5d-999e-9e77710d7ff4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {number} flags + */ + getPublisher(publisherName, flags) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName + }; + let queryValues = { + flags: flags, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "4ddec66a-e4f6-4f5d-999e-9e77710d7ff4", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Publisher, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {GalleryInterfaces.Publisher} publisher + * @param {string} publisherName + */ + updatePublisher(publisher, publisherName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "4ddec66a-e4f6-4f5d-999e-9e77710d7ff4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, publisher, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Publisher, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Endpoint to add/modify publisher membership. Currently Supports only addition/modification of 1 user at a time Works only for adding members of same tenant. + * + * @param {GalleryInterfaces.PublisherUserRoleAssignmentRef[]} roleAssignments - List of user identifiers(email address) and role to be added. Currently only one entry is supported. + * @param {string} publisherName - The name/id of publisher to which users have to be added + * @param {boolean} limitToCallerIdentityDomain - Should cross tenant addtions be allowed or not. + */ + updatePublisherMembers(roleAssignments, publisherName, limitToCallerIdentityDomain) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName + }; + let queryValues = { + limitToCallerIdentityDomain: limitToCallerIdentityDomain, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "4ddec66a-e4f6-4f5d-999e-9e77710d7ff4", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, roleAssignments, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublisherRoleAssignment, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of questions with their responses associated with an extension. + * + * @param {string} publisherName - Name of the publisher who published the extension. + * @param {string} extensionName - Name of the extension. + * @param {number} count - Number of questions to retrieve (defaults to 10). + * @param {number} page - Page number from which set of questions are to be retrieved. + * @param {Date} afterDate - If provided, results questions are returned which were posted after this date + */ + getQuestions(publisherName, extensionName, count, page, afterDate) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + let queryValues = { + count: count, + page: page, + afterDate: afterDate, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "c010d03d-812c-4ade-ae07-c1862475eda5", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.QuestionsResult, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Flags a concern with an existing question for an extension. + * + * @param {GalleryInterfaces.Concern} concern - User reported concern with a question for the extension. + * @param {string} pubName - Name of the publisher who published the extension. + * @param {string} extName - Name of the extension. + * @param {number} questionId - Identifier of the question to be updated for the extension. + */ + reportQuestion(concern, pubName, extName, questionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + pubName: pubName, + extName: extName, + questionId: questionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "784910cd-254a-494d-898b-0728549b2f10", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, concern, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Concern, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a new question for an extension. + * + * @param {GalleryInterfaces.Question} question - Question to be created for the extension. + * @param {string} publisherName - Name of the publisher who published the extension. + * @param {string} extensionName - Name of the extension. + */ + createQuestion(question, publisherName, extensionName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "6d1d9741-eca8-4701-a3a5-235afc82dfa4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, question, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Question, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes an existing question and all its associated responses for an extension. (soft delete) + * + * @param {string} publisherName - Name of the publisher who published the extension. + * @param {string} extensionName - Name of the extension. + * @param {number} questionId - Identifier of the question to be deleted for the extension. + */ + deleteQuestion(publisherName, extensionName, questionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + questionId: questionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "6d1d9741-eca8-4701-a3a5-235afc82dfa4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates an existing question for an extension. + * + * @param {GalleryInterfaces.Question} question - Updated question to be set for the extension. + * @param {string} publisherName - Name of the publisher who published the extension. + * @param {string} extensionName - Name of the extension. + * @param {number} questionId - Identifier of the question to be updated for the extension. + */ + updateQuestion(question, publisherName, extensionName, questionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + questionId: questionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "6d1d9741-eca8-4701-a3a5-235afc82dfa4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, question, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Question, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a new response for a given question for an extension. + * + * @param {GalleryInterfaces.Response} response - Response to be created for the extension. + * @param {string} publisherName - Name of the publisher who published the extension. + * @param {string} extensionName - Name of the extension. + * @param {number} questionId - Identifier of the question for which response is to be created for the extension. + */ + createResponse(response, publisherName, extensionName, questionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + questionId: questionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "7f8ae5e0-46b0-438f-b2e8-13e8513517bd", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, response, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Response, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes a response for an extension. (soft delete) + * + * @param {string} publisherName - Name of the publisher who published the extension. + * @param {string} extensionName - Name of the extension. + * @param {number} questionId - Identifies the question whose response is to be deleted. + * @param {number} responseId - Identifies the response to be deleted. + */ + deleteResponse(publisherName, extensionName, questionId, responseId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + questionId: questionId, + responseId: responseId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "7f8ae5e0-46b0-438f-b2e8-13e8513517bd", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates an existing response for a given question for an extension. + * + * @param {GalleryInterfaces.Response} response - Updated response to be set for the extension. + * @param {string} publisherName - Name of the publisher who published the extension. + * @param {string} extensionName - Name of the extension. + * @param {number} questionId - Identifier of the question for which response is to be updated for the extension. + * @param {number} responseId - Identifier of the response which has to be updated. + */ + updateResponse(response, publisherName, extensionName, questionId, responseId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + questionId: questionId, + responseId: responseId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "7f8ae5e0-46b0-438f-b2e8-13e8513517bd", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, response, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Response, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns extension reports + * + * @param {string} publisherName - Name of the publisher who published the extension + * @param {string} extensionName - Name of the extension + * @param {number} days - Last n days report. If afterDate and days are specified, days will take priority + * @param {number} count - Number of events to be returned + * @param {Date} afterDate - Use if you want to fetch events newer than the specified date + */ + getExtensionReports(publisherName, extensionName, days, count, afterDate) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + let queryValues = { + days: days, + count: count, + afterDate: afterDate, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "79e0c74f-157f-437e-845f-74fbb4121d4c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of reviews associated with an extension + * + * @param {string} publisherName - Name of the publisher who published the extension + * @param {string} extensionName - Name of the extension + * @param {number} count - Number of reviews to retrieve (defaults to 5) + * @param {GalleryInterfaces.ReviewFilterOptions} filterOptions - FilterOptions to filter out empty reviews etcetera, defaults to none + * @param {Date} beforeDate - Use if you want to fetch reviews older than the specified date, defaults to null + * @param {Date} afterDate - Use if you want to fetch reviews newer than the specified date, defaults to null + */ + getReviews(publisherName, extensionName, count, filterOptions, beforeDate, afterDate) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + let queryValues = { + count: count, + filterOptions: filterOptions, + beforeDate: beforeDate, + afterDate: afterDate, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "5b3f819f-f247-42ad-8c00-dd9ab9ab246d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ReviewsResult, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a summary of the reviews + * + * @param {string} pubName - Name of the publisher who published the extension + * @param {string} extName - Name of the extension + * @param {Date} beforeDate - Use if you want to fetch summary of reviews older than the specified date, defaults to null + * @param {Date} afterDate - Use if you want to fetch summary of reviews newer than the specified date, defaults to null + */ + getReviewsSummary(pubName, extName, beforeDate, afterDate) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + pubName: pubName, + extName: extName + }; + let queryValues = { + beforeDate: beforeDate, + afterDate: afterDate, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "b7b44e21-209e-48f0-ae78-04727fc37d77", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a new review for an extension + * + * @param {GalleryInterfaces.Review} review - Review to be created for the extension + * @param {string} pubName - Name of the publisher who published the extension + * @param {string} extName - Name of the extension + */ + createReview(review, pubName, extName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + pubName: pubName, + extName: extName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "e6e85b9d-aa70-40e6-aa28-d0fbf40b91a3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, review, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Review, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes a review + * + * @param {string} pubName - Name of the publisher who published the extension + * @param {string} extName - Name of the extension + * @param {number} reviewId - Id of the review which needs to be updated + */ + deleteReview(pubName, extName, reviewId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + pubName: pubName, + extName: extName, + reviewId: reviewId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "e6e85b9d-aa70-40e6-aa28-d0fbf40b91a3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates or Flags a review + * + * @param {GalleryInterfaces.ReviewPatch} reviewPatch - ReviewPatch object which contains the changes to be applied to the review + * @param {string} pubName - Name of the publisher who published the extension + * @param {string} extName - Name of the extension + * @param {number} reviewId - Id of the review which needs to be updated + */ + updateReview(reviewPatch, pubName, extName, reviewId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + pubName: pubName, + extName: extName, + reviewId: reviewId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "e6e85b9d-aa70-40e6-aa28-d0fbf40b91a3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, reviewPatch, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ReviewPatch, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {GalleryInterfaces.ExtensionCategory} category + */ + createCategory(category) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "476531a3-7024-4516-a76a-ed64d3008ad6", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, category, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get all setting entries for the given user/all-users scope + * + * @param {string} userScope - User-Scope at which to get the value. Should be "me" for the current user or "host" for all users. + * @param {string} key - Optional key under which to filter all the entries + */ + getGalleryUserSettings(userScope, key) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + userScope: userScope, + key: key + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "9b75ece3-7960-401c-848b-148ac01ca350", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Set all setting entries for the given user/all-users scope + * + * @param {{ [key: string] : any; }} entries - A key-value pair of all settings that need to be set + * @param {string} userScope - User-Scope at which to get the value. Should be "me" for the current user or "host" for all users. + */ + setGalleryUserSettings(entries, userScope) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + userScope: userScope + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "9b75ece3-7960-401c-848b-148ac01ca350", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, entries, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} keyType + * @param {number} expireCurrentSeconds + */ + generateKey(keyType, expireCurrentSeconds) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + keyType: keyType + }; + let queryValues = { + expireCurrentSeconds: expireCurrentSeconds, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "92ed5cf4-c38b-465a-9059-2f2fb7c624b5", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} keyType + */ + getSigningKey(keyType) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + keyType: keyType + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "92ed5cf4-c38b-465a-9059-2f2fb7c624b5", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {GalleryInterfaces.ExtensionStatisticUpdate} extensionStatisticsUpdate + * @param {string} publisherName + * @param {string} extensionName + */ + updateExtensionStatistics(extensionStatisticsUpdate, publisherName, extensionName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "a0ea3204-11e9-422d-a9ca-45851cc41400", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, extensionStatisticsUpdate, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {number} days + * @param {GalleryInterfaces.ExtensionStatsAggregateType} aggregate + * @param {Date} afterDate + */ + getExtensionDailyStats(publisherName, extensionName, days, aggregate, afterDate) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + let queryValues = { + days: days, + aggregate: aggregate, + afterDate: afterDate, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "ae06047e-51c5-4fb4-ab65-7be488544416", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDailyStats, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * This route/location id only supports HTTP POST anonymously, so that the page view daily stat can be incremented from Marketplace client. Trying to call GET on this route should result in an exception. Without this explicit implementation, calling GET on this public route invokes the above GET implementation GetExtensionDailyStats. + * + * @param {string} publisherName - Name of the publisher + * @param {string} extensionName - Name of the extension + * @param {string} version - Version of the extension + */ + getExtensionDailyStatsAnonymous(publisherName, extensionName, version) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + version: version + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "4fa7adb6-ca65-4075-a232-5f28323288ea", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDailyStats, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Increments a daily statistic associated with the extension + * + * @param {string} publisherName - Name of the publisher + * @param {string} extensionName - Name of the extension + * @param {string} version - Version of the extension + * @param {string} statType - Type of stat to increment + */ + incrementExtensionDailyStat(publisherName, extensionName, version, statType) { + return __awaiter(this, void 0, void 0, function* () { + if (statType == null) { + throw new TypeError('statType can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + version: version + }; + let queryValues = { + statType: statType, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "4fa7adb6-ca65-4075-a232-5f28323288ea", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} publisherName + * @param {string} extensionName + * @param {string} version + */ + getVerificationLog(publisherName, extensionName, version) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName, + version: version + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "gallery", "c5523abe-b843-437f-875b-5833064efe4d", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } +} +GalleryApi.RESOURCE_AREA_ID = "69d21c00-f135-441b-b5ce-3626378e0819"; +exports.GalleryApi = GalleryApi; + + +/***/ }), + +/***/ 946: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* +* --------------------------------------------------------- +* Copyright(C) Microsoft Corporation. All rights reserved. +* --------------------------------------------------------- +* +* --------------------------------------------------------- +* Generated file, DO NOT EDIT +* --------------------------------------------------------- +*/ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const GalleryInterfaces = __nccwpck_require__(8905); +class GalleryCompatHttpClientBase extends basem.ClientApiBase { + constructor(baseUrl, handlers, userAgent, options) { + super(baseUrl, handlers, userAgent, options); + } + /** + * @param {GalleryInterfaces.ExtensionPackage} extensionPackage + */ + createExtensionJson(extensionPackage) { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("3.1-preview.1", "gallery", "a41192c8-9525-4b58-bc86-179fa549d80d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, extensionPackage, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + } + /** + * @param {GalleryInterfaces.ExtensionPackage} extensionPackage + * @param {string} extensionId + */ + updateExtensionByIdJson(extensionPackage, extensionId) { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + extensionId: extensionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.1-preview.1", "gallery", "a41192c8-9525-4b58-bc86-179fa549d80d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, extensionPackage, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + } + /** + * @param {GalleryInterfaces.ExtensionPackage} extensionPackage + * @param {string} publisherName + */ + createExtensionWithPublisherJson(extensionPackage, publisherName) { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.1-preview.1", "gallery", "e11ea35a-16fe-4b80-ab11-c4cab88a0966", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, extensionPackage, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + } + /** + * @param {GalleryInterfaces.ExtensionPackage} extensionPackage + * @param {string} publisherName + * @param {string} extensionName + */ + updateExtensionJson(extensionPackage, publisherName, extensionName) { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + publisherName: publisherName, + extensionName: extensionName + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.1-preview.1", "gallery", "e11ea35a-16fe-4b80-ab11-c4cab88a0966", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, extensionPackage, options); + let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + } +} +exports.GalleryCompatHttpClientBase = GalleryCompatHttpClientBase; + + +/***/ }), + +/***/ 4996: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const GitInterfaces = __nccwpck_require__(9803); +class GitApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-Git-api', options); + } + /** + * Create an annotated tag. + * + * @param {GitInterfaces.GitAnnotatedTag} tagObject - Object containing details of tag to be created. + * @param {string} project - Project ID or project name + * @param {string} repositoryId - ID or name of the repository. + */ + createAnnotatedTag(tagObject, project, repositoryId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "5e8a8081-3851-4626-b677-9891cc04102e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, tagObject, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitAnnotatedTag, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get an annotated tag. + * + * @param {string} project - Project ID or project name + * @param {string} repositoryId - ID or name of the repository. + * @param {string} objectId - ObjectId (Sha1Id) of tag to get. + */ + getAnnotatedTag(project, repositoryId, objectId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + objectId: objectId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "5e8a8081-3851-4626-b677-9891cc04102e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitAnnotatedTag, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a single blob. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} sha1 - SHA1 hash of the file. You can get the SHA1 of a file using the "Git/Items/Get Item" endpoint. + * @param {string} project - Project ID or project name + * @param {boolean} download - If true, prompt for a download rather than rendering in a browser. Note: this value defaults to true if $format is zip + * @param {string} fileName - Provide a fileName to use for a download. + * @param {boolean} resolveLfs - If true, try to resolve a blob to its LFS contents, if it's an LFS pointer file. Only compatible with octet-stream Accept headers or $format types + */ + getBlob(repositoryId, sha1, project, download, fileName, resolveLfs) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + sha1: sha1 + }; + let queryValues = { + download: download, + fileName: fileName, + resolveLfs: resolveLfs, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "7b28e929-2c99-405d-9c5c-6167a06e6816", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a single blob. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} sha1 - SHA1 hash of the file. You can get the SHA1 of a file using the "Git/Items/Get Item" endpoint. + * @param {string} project - Project ID or project name + * @param {boolean} download - If true, prompt for a download rather than rendering in a browser. Note: this value defaults to true if $format is zip + * @param {string} fileName - Provide a fileName to use for a download. + * @param {boolean} resolveLfs - If true, try to resolve a blob to its LFS contents, if it's an LFS pointer file. Only compatible with octet-stream Accept headers or $format types + */ + getBlobContent(repositoryId, sha1, project, download, fileName, resolveLfs) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + sha1: sha1 + }; + let queryValues = { + download: download, + fileName: fileName, + resolveLfs: resolveLfs, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "7b28e929-2c99-405d-9c5c-6167a06e6816", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets one or more blobs in a zip file download. + * + * @param {string[]} blobIds - Blob IDs (SHA1 hashes) to be returned in the zip file. + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} project - Project ID or project name + * @param {string} filename + */ + getBlobsZip(blobIds, repositoryId, project, filename) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + filename: filename, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "7b28e929-2c99-405d-9c5c-6167a06e6816", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a single blob. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} sha1 - SHA1 hash of the file. You can get the SHA1 of a file using the "Git/Items/Get Item" endpoint. + * @param {string} project - Project ID or project name + * @param {boolean} download - If true, prompt for a download rather than rendering in a browser. Note: this value defaults to true if $format is zip + * @param {string} fileName - Provide a fileName to use for a download. + * @param {boolean} resolveLfs - If true, try to resolve a blob to its LFS contents, if it's an LFS pointer file. Only compatible with octet-stream Accept headers or $format types + */ + getBlobZip(repositoryId, sha1, project, download, fileName, resolveLfs) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + sha1: sha1 + }; + let queryValues = { + download: download, + fileName: fileName, + resolveLfs: resolveLfs, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "7b28e929-2c99-405d-9c5c-6167a06e6816", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve statistics about a single branch. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} name - Name of the branch. + * @param {string} project - Project ID or project name + * @param {GitInterfaces.GitVersionDescriptor} baseVersionDescriptor - Identifies the commit or branch to use as the base. + */ + getBranch(repositoryId, name, project, baseVersionDescriptor) { + return __awaiter(this, void 0, void 0, function* () { + if (name == null) { + throw new TypeError('name can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + name: name, + baseVersionDescriptor: baseVersionDescriptor, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "d5b216de-d8d5-4d32-ae76-51df755b16d3", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitBranchStats, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve statistics about all branches within a repository. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} project - Project ID or project name + * @param {GitInterfaces.GitVersionDescriptor} baseVersionDescriptor - Identifies the commit or branch to use as the base. + */ + getBranches(repositoryId, project, baseVersionDescriptor) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + baseVersionDescriptor: baseVersionDescriptor, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "d5b216de-d8d5-4d32-ae76-51df755b16d3", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitBranchStats, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {GitInterfaces.GitQueryBranchStatsCriteria} searchCriteria + * @param {string} repositoryId + * @param {string} project - Project ID or project name + */ + getBranchStatsBatch(searchCriteria, repositoryId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "d5b216de-d8d5-4d32-ae76-51df755b16d3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, searchCriteria, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitBranchStats, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve changes for a particular commit. + * + * @param {string} commitId - The id of the commit. + * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified. + * @param {string} project - Project ID or project name + * @param {number} top - The maximum number of changes to return. + * @param {number} skip - The number of changes to skip. + */ + getChanges(commitId, repositoryId, project, top, skip) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + commitId: commitId, + repositoryId: repositoryId + }; + let queryValues = { + top: top, + skip: skip, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "5bf884f5-3e07-42e9-afb8-1b872267bf16", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitChanges, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve one conflict for a cherry pick by ID + * + * @param {string} repositoryId + * @param {number} cherryPickId + * @param {number} conflictId + * @param {string} project - Project ID or project name + */ + getCherryPickConflict(repositoryId, cherryPickId, conflictId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + cherryPickId: cherryPickId, + conflictId: conflictId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "1fe5aab2-d4c0-4b2f-a030-f3831e7aca26", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve all conflicts for a cherry pick + * + * @param {string} repositoryId + * @param {number} cherryPickId + * @param {string} project - Project ID or project name + * @param {string} continuationToken + * @param {number} top + * @param {boolean} excludeResolved + * @param {boolean} onlyResolved + * @param {boolean} includeObsolete + */ + getCherryPickConflicts(repositoryId, cherryPickId, project, continuationToken, top, excludeResolved, onlyResolved, includeObsolete) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + cherryPickId: cherryPickId + }; + let queryValues = { + continuationToken: continuationToken, + '$top': top, + excludeResolved: excludeResolved, + onlyResolved: onlyResolved, + includeObsolete: includeObsolete, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "1fe5aab2-d4c0-4b2f-a030-f3831e7aca26", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update merge conflict resolution + * + * @param {GitInterfaces.GitConflict} conflict + * @param {string} repositoryId + * @param {number} cherryPickId + * @param {number} conflictId + * @param {string} project - Project ID or project name + */ + updateCherryPickConflict(conflict, repositoryId, cherryPickId, conflictId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + cherryPickId: cherryPickId, + conflictId: conflictId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "1fe5aab2-d4c0-4b2f-a030-f3831e7aca26", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, conflict, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update multiple merge conflict resolutions + * + * @param {GitInterfaces.GitConflict[]} conflictUpdates + * @param {string} repositoryId + * @param {number} cherryPickId + * @param {string} project - Project ID or project name + */ + updateCherryPickConflicts(conflictUpdates, repositoryId, cherryPickId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + cherryPickId: cherryPickId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "1fe5aab2-d4c0-4b2f-a030-f3831e7aca26", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, conflictUpdates, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflictUpdateResult, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Given a commitId, returns a list of commits that are in the same cherry-pick family. + * + * @param {string} repositoryNameOrId + * @param {string} commitId + * @param {string} project - Project ID or project name + * @param {boolean} includeLinks + */ + getCherryPickRelationships(repositoryNameOrId, commitId, project, includeLinks) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryNameOrId: repositoryNameOrId, + commitId: commitId + }; + let queryValues = { + includeLinks: includeLinks, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "8af142a4-27c2-4168-9e82-46b8629aaa0d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Cherry pick a specific commit or commits that are associated to a pull request into a new branch. + * + * @param {GitInterfaces.GitAsyncRefOperationParameters} cherryPickToCreate + * @param {string} project - Project ID or project name + * @param {string} repositoryId - ID of the repository. + */ + createCherryPick(cherryPickToCreate, project, repositoryId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "033bad68-9a14-43d1-90e0-59cb8856fef6", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, cherryPickToCreate, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCherryPick, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve information about a cherry pick operation by cherry pick Id. + * + * @param {string} project - Project ID or project name + * @param {number} cherryPickId - ID of the cherry pick. + * @param {string} repositoryId - ID of the repository. + */ + getCherryPick(project, cherryPickId, repositoryId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + cherryPickId: cherryPickId, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "033bad68-9a14-43d1-90e0-59cb8856fef6", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCherryPick, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve information about a cherry pick operation for a specific branch. This operation is expensive due to the underlying object structure, so this API only looks at the 1000 most recent cherry pick operations. + * + * @param {string} project - Project ID or project name + * @param {string} repositoryId - ID of the repository. + * @param {string} refName - The GitAsyncRefOperationParameters generatedRefName used for the cherry pick operation. + */ + getCherryPickForRefName(project, repositoryId, refName) { + return __awaiter(this, void 0, void 0, function* () { + if (refName == null) { + throw new TypeError('refName can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + refName: refName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "033bad68-9a14-43d1-90e0-59cb8856fef6", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCherryPick, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Find the closest common commit (the merge base) between base and target commits, and get the diff between either the base and target commits or common and target commits. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} project - Project ID or project name + * @param {boolean} diffCommonCommit - If true, diff between common and target commits. If false, diff between base and target commits. + * @param {number} top - Maximum number of changes to return. Defaults to 100. + * @param {number} skip - Number of changes to skip + * @param {GitInterfaces.GitBaseVersionDescriptor} baseVersionDescriptor - Descriptor for base commit. + * @param {GitInterfaces.GitTargetVersionDescriptor} targetVersionDescriptor - Descriptor for target commit. + */ + getCommitDiffs(repositoryId, project, diffCommonCommit, top, skip, baseVersionDescriptor, targetVersionDescriptor) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + diffCommonCommit: diffCommonCommit, + '$top': top, + '$skip': skip, + }; + if (baseVersionDescriptor) { + queryValues.baseVersionType = baseVersionDescriptor.versionType; + queryValues.baseVersion = baseVersionDescriptor.version; + queryValues.baseVersionOptions = baseVersionDescriptor.versionOptions; + } + if (targetVersionDescriptor) { + queryValues.targetVersionType = targetVersionDescriptor.versionType; + queryValues.targetVersion = targetVersionDescriptor.version; + queryValues.targetVersionOptions = targetVersionDescriptor.versionOptions; + } + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "615588d5-c0c7-4b88-88f8-e625306446e8", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitDiffs, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve a particular commit. + * + * @param {string} commitId - The id of the commit. + * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified. + * @param {string} project - Project ID or project name + * @param {number} changeCount - The number of changes to include in the result. + */ + getCommit(commitId, repositoryId, project, changeCount) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + commitId: commitId, + repositoryId: repositoryId + }; + let queryValues = { + changeCount: changeCount, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "c2570c3b-5b3f-41b8-98bf-5407bfde8d58", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommit, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve git commits for a project + * + * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified. + * @param {GitInterfaces.GitQueryCommitsCriteria} searchCriteria + * @param {string} project - Project ID or project name + * @param {number} skip + * @param {number} top + */ + getCommits(repositoryId, searchCriteria, project, skip, top) { + return __awaiter(this, void 0, void 0, function* () { + if (searchCriteria == null) { + throw new TypeError('searchCriteria can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + searchCriteria: searchCriteria, + '$skip': skip, + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "c2570c3b-5b3f-41b8-98bf-5407bfde8d58", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve a list of commits associated with a particular push. + * + * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified. + * @param {number} pushId - The id of the push. + * @param {string} project - Project ID or project name + * @param {number} top - The maximum number of commits to return ("get the top x commits"). + * @param {number} skip - The number of commits to skip. + * @param {boolean} includeLinks - Set to false to avoid including REST Url links for resources. Defaults to true. + */ + getPushCommits(repositoryId, pushId, project, top, skip, includeLinks) { + return __awaiter(this, void 0, void 0, function* () { + if (pushId == null) { + throw new TypeError('pushId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + pushId: pushId, + top: top, + skip: skip, + includeLinks: includeLinks, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "c2570c3b-5b3f-41b8-98bf-5407bfde8d58", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve git commits for a project matching the search criteria + * + * @param {GitInterfaces.GitQueryCommitsCriteria} searchCriteria - Search options + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} project - Project ID or project name + * @param {number} skip - Number of commits to skip. + * @param {number} top - Maximum number of commits to return. + * @param {boolean} includeStatuses - True to include additional commit status information. + */ + getCommitsBatch(searchCriteria, repositoryId, project, skip, top, includeStatuses) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + '$skip': skip, + '$top': top, + includeStatuses: includeStatuses, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "6400dfb2-0bcb-462b-b992-5a57f8f1416c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, searchCriteria, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve deleted git repositories. + * + * @param {string} project - Project ID or project name + */ + getDeletedRepositories(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "2b6869c4-cb25-42b5-b7a3-0d3e6be0a11a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitDeletedRepository, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the file diffs for each of the specified files + * + * @param {GitInterfaces.FileDiffsCriteria} fileDiffsCriteria - List of file parameters objects + * @param {string} project - Project ID or project name + * @param {string} repositoryId - The name or ID of the repository + */ + getFileDiffs(fileDiffsCriteria, project, repositoryId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "c4c5a7e6-e9f3-4730-a92b-84baacff694b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, fileDiffsCriteria, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.FileDiff, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve all forks of a repository in the collection. + * + * @param {string} repositoryNameOrId - The name or ID of the repository. + * @param {string} collectionId - Team project collection ID. + * @param {string} project - Project ID or project name + * @param {boolean} includeLinks - True to include links. + */ + getForks(repositoryNameOrId, collectionId, project, includeLinks) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryNameOrId: repositoryNameOrId, + collectionId: collectionId + }; + let queryValues = { + includeLinks: includeLinks, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "158c0340-bf6f-489c-9625-d572a1480d57", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepositoryRef, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Request that another repository's refs be fetched into this one. It syncs two existing forks. To create a fork, please see the repositories endpoint + * + * @param {GitInterfaces.GitForkSyncRequestParameters} syncParams - Source repository and ref mapping. + * @param {string} repositoryNameOrId - The name or ID of the repository. + * @param {string} project - Project ID or project name + * @param {boolean} includeLinks - True to include links + */ + createForkSyncRequest(syncParams, repositoryNameOrId, project, includeLinks) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryNameOrId: repositoryNameOrId + }; + let queryValues = { + includeLinks: includeLinks, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "1703f858-b9d1-46af-ab62-483e9e1055b5", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, syncParams, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitForkSyncRequest, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a specific fork sync operation's details. + * + * @param {string} repositoryNameOrId - The name or ID of the repository. + * @param {number} forkSyncOperationId - OperationId of the sync request. + * @param {string} project - Project ID or project name + * @param {boolean} includeLinks - True to include links. + */ + getForkSyncRequest(repositoryNameOrId, forkSyncOperationId, project, includeLinks) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryNameOrId: repositoryNameOrId, + forkSyncOperationId: forkSyncOperationId + }; + let queryValues = { + includeLinks: includeLinks, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "1703f858-b9d1-46af-ab62-483e9e1055b5", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitForkSyncRequest, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve all requested fork sync operations on this repository. + * + * @param {string} repositoryNameOrId - The name or ID of the repository. + * @param {string} project - Project ID or project name + * @param {boolean} includeAbandoned - True to include abandoned requests. + * @param {boolean} includeLinks - True to include links. + */ + getForkSyncRequests(repositoryNameOrId, project, includeAbandoned, includeLinks) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryNameOrId: repositoryNameOrId + }; + let queryValues = { + includeAbandoned: includeAbandoned, + includeLinks: includeLinks, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "1703f858-b9d1-46af-ab62-483e9e1055b5", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitForkSyncRequest, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create an import request. + * + * @param {GitInterfaces.GitImportRequest} importRequest - The import request to create. + * @param {string} project - Project ID or project name + * @param {string} repositoryId - The name or ID of the repository. + */ + createImportRequest(importRequest, project, repositoryId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "01828ddc-3600-4a41-8633-99b3a73a0eb3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, importRequest, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve a particular import request. + * + * @param {string} project - Project ID or project name + * @param {string} repositoryId - The name or ID of the repository. + * @param {number} importRequestId - The unique identifier for the import request. + */ + getImportRequest(project, repositoryId, importRequestId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + importRequestId: importRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "01828ddc-3600-4a41-8633-99b3a73a0eb3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve import requests for a repository. + * + * @param {string} project - Project ID or project name + * @param {string} repositoryId - The name or ID of the repository. + * @param {boolean} includeAbandoned - True to include abandoned import requests in the results. + */ + queryImportRequests(project, repositoryId, includeAbandoned) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + includeAbandoned: includeAbandoned, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "01828ddc-3600-4a41-8633-99b3a73a0eb3", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retry or abandon a failed import request. + * + * @param {GitInterfaces.GitImportRequest} importRequestToUpdate - The updated version of the import request. Currently, the only change allowed is setting the Status to Queued or Abandoned. + * @param {string} project - Project ID or project name + * @param {string} repositoryId - The name or ID of the repository. + * @param {number} importRequestId - The unique identifier for the import request to update. + */ + updateImportRequest(importRequestToUpdate, project, repositoryId, importRequestId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + importRequestId: importRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "01828ddc-3600-4a41-8633-99b3a73a0eb3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, importRequestToUpdate, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} path - The item path. + * @param {string} project - Project ID or project name + * @param {string} scopePath - The path scope. The default is null. + * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion. + * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false. + * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false. + * @param {boolean} download - Set to true to download the response as a file. Default is false. + * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository. + * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false. + * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false. + * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false. + */ + getItem(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) { + return __awaiter(this, void 0, void 0, function* () { + if (path == null) { + throw new TypeError('path can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + path: path, + scopePath: scopePath, + recursionLevel: recursionLevel, + includeContentMetadata: includeContentMetadata, + latestProcessedChange: latestProcessedChange, + download: download, + versionDescriptor: versionDescriptor, + includeContent: includeContent, + resolveLfs: resolveLfs, + sanitize: sanitize, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "fb93c0db-47ed-4a31-8c20-47552878fb44", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitItem, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} path - The item path. + * @param {string} project - Project ID or project name + * @param {string} scopePath - The path scope. The default is null. + * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion. + * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false. + * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false. + * @param {boolean} download - Set to true to download the response as a file. Default is false. + * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository. + * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false. + * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false. + * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false. + */ + getItemContent(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) { + return __awaiter(this, void 0, void 0, function* () { + if (path == null) { + throw new TypeError('path can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + path: path, + scopePath: scopePath, + recursionLevel: recursionLevel, + includeContentMetadata: includeContentMetadata, + latestProcessedChange: latestProcessedChange, + download: download, + versionDescriptor: versionDescriptor, + includeContent: includeContent, + resolveLfs: resolveLfs, + sanitize: sanitize, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "fb93c0db-47ed-4a31-8c20-47552878fb44", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get Item Metadata and/or Content for a collection of items. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} project - Project ID or project name + * @param {string} scopePath - The path scope. The default is null. + * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion. + * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false. + * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false. + * @param {boolean} download - Set to true to download the response as a file. Default is false. + * @param {boolean} includeLinks - Set to true to include links to items. Default is false. + * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository. + */ + getItems(repositoryId, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, includeLinks, versionDescriptor) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + scopePath: scopePath, + recursionLevel: recursionLevel, + includeContentMetadata: includeContentMetadata, + latestProcessedChange: latestProcessedChange, + download: download, + includeLinks: includeLinks, + versionDescriptor: versionDescriptor, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "fb93c0db-47ed-4a31-8c20-47552878fb44", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitItem, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} path - The item path. + * @param {string} project - Project ID or project name + * @param {string} scopePath - The path scope. The default is null. + * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion. + * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false. + * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false. + * @param {boolean} download - Set to true to download the response as a file. Default is false. + * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository. + * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false. + * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false. + * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false. + */ + getItemText(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) { + return __awaiter(this, void 0, void 0, function* () { + if (path == null) { + throw new TypeError('path can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + path: path, + scopePath: scopePath, + recursionLevel: recursionLevel, + includeContentMetadata: includeContentMetadata, + latestProcessedChange: latestProcessedChange, + download: download, + versionDescriptor: versionDescriptor, + includeContent: includeContent, + resolveLfs: resolveLfs, + sanitize: sanitize, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "fb93c0db-47ed-4a31-8c20-47552878fb44", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/plain", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} path - The item path. + * @param {string} project - Project ID or project name + * @param {string} scopePath - The path scope. The default is null. + * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion. + * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false. + * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false. + * @param {boolean} download - Set to true to download the response as a file. Default is false. + * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository. + * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false. + * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false. + * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false. + */ + getItemZip(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) { + return __awaiter(this, void 0, void 0, function* () { + if (path == null) { + throw new TypeError('path can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + path: path, + scopePath: scopePath, + recursionLevel: recursionLevel, + includeContentMetadata: includeContentMetadata, + latestProcessedChange: latestProcessedChange, + download: download, + versionDescriptor: versionDescriptor, + includeContent: includeContent, + resolveLfs: resolveLfs, + sanitize: sanitize, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "fb93c0db-47ed-4a31-8c20-47552878fb44", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Post for retrieving a creating a batch out of a set of items in a repo / project given a list of paths or a long path + * + * @param {GitInterfaces.GitItemRequestData} requestData - Request data attributes: ItemDescriptors, IncludeContentMetadata, LatestProcessedChange, IncludeLinks. ItemDescriptors: Collection of items to fetch, including path, version, and recursion level. IncludeContentMetadata: Whether to include metadata for all items LatestProcessedChange: Whether to include shallow ref to commit that last changed each item. IncludeLinks: Whether to include the _links field on the shallow references. + * @param {string} repositoryId - The name or ID of the repository + * @param {string} project - Project ID or project name + */ + getItemsBatch(requestData, repositoryId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "630fd2e4-fb88-4f85-ad21-13f3fd1fbca9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, requestData, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitItem, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Find the merge bases of two commits, optionally across forks. If otherRepositoryId is not specified, the merge bases will only be calculated within the context of the local repositoryNameOrId. + * + * @param {string} repositoryNameOrId - ID or name of the local repository. + * @param {string} commitId - First commit, usually the tip of the target branch of the potential merge. + * @param {string} otherCommitId - Other commit, usually the tip of the source branch of the potential merge. + * @param {string} project - Project ID or project name + * @param {string} otherCollectionId - The collection ID where otherCommitId lives. + * @param {string} otherRepositoryId - The repository ID where otherCommitId lives. + */ + getMergeBases(repositoryNameOrId, commitId, otherCommitId, project, otherCollectionId, otherRepositoryId) { + return __awaiter(this, void 0, void 0, function* () { + if (otherCommitId == null) { + throw new TypeError('otherCommitId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryNameOrId: repositoryNameOrId, + commitId: commitId + }; + let queryValues = { + otherCommitId: otherCommitId, + otherCollectionId: otherCollectionId, + otherRepositoryId: otherRepositoryId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "7cf2abb6-c964-4f7e-9872-f78c66e72e9c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Request a git merge operation. Currently we support merging only 2 commits. + * + * @param {GitInterfaces.GitMergeParameters} mergeParameters - Parents commitIds and merge commit messsage. + * @param {string} project - Project ID or project name + * @param {string} repositoryNameOrId - The name or ID of the repository. + * @param {boolean} includeLinks - True to include links + */ + createMergeRequest(mergeParameters, project, repositoryNameOrId, includeLinks) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryNameOrId: repositoryNameOrId + }; + let queryValues = { + includeLinks: includeLinks, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "985f7ae9-844f-4906-9897-7ef41516c0e2", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, mergeParameters, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitMerge, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a specific merge operation's details. + * + * @param {string} project - Project ID or project name + * @param {string} repositoryNameOrId - The name or ID of the repository. + * @param {number} mergeOperationId - OperationId of the merge request. + * @param {boolean} includeLinks - True to include links + */ + getMergeRequest(project, repositoryNameOrId, mergeOperationId, includeLinks) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryNameOrId: repositoryNameOrId, + mergeOperationId: mergeOperationId + }; + let queryValues = { + includeLinks: includeLinks, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "985f7ae9-844f-4906-9897-7ef41516c0e2", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitMerge, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Attach a new file to a pull request. + * + * @param {NodeJS.ReadableStream} contentStream - Content to upload + * @param {string} fileName - The name of the file. + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + createAttachment(customHeaders, contentStream, fileName, repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + fileName: fileName, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "965d9361-878b-413b-a494-45d5b5fd8ab7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("POST", url, contentStream, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Attachment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a pull request attachment. + * + * @param {string} fileName - The name of the attachment to delete. + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + deleteAttachment(fileName, repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + fileName: fileName, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "965d9361-878b-413b-a494-45d5b5fd8ab7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the file content of a pull request attachment. + * + * @param {string} fileName - The name of the attachment. + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + getAttachmentContent(fileName, repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + fileName: fileName, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "965d9361-878b-413b-a494-45d5b5fd8ab7", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of files attached to a given pull request. + * + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + getAttachments(repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "965d9361-878b-413b-a494-45d5b5fd8ab7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Attachment, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the file content of a pull request attachment. + * + * @param {string} fileName - The name of the attachment. + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + getAttachmentZip(fileName, repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + fileName: fileName, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "965d9361-878b-413b-a494-45d5b5fd8ab7", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Add a like on a comment. + * + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} threadId - The ID of the thread that contains the comment. + * @param {number} commentId - The ID of the comment. + * @param {string} project - Project ID or project name + */ + createLike(repositoryId, pullRequestId, threadId, commentId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + threadId: threadId, + commentId: commentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "5f2e2851-1389-425b-a00b-fb2adb3ef31b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a like on a comment. + * + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} threadId - The ID of the thread that contains the comment. + * @param {number} commentId - The ID of the comment. + * @param {string} project - Project ID or project name + */ + deleteLike(repositoryId, pullRequestId, threadId, commentId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + threadId: threadId, + commentId: commentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "5f2e2851-1389-425b-a00b-fb2adb3ef31b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get likes for a comment. + * + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} threadId - The ID of the thread that contains the comment. + * @param {number} commentId - The ID of the comment. + * @param {string} project - Project ID or project name + */ + getLikes(repositoryId, pullRequestId, threadId, commentId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + threadId: threadId, + commentId: commentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "5f2e2851-1389-425b-a00b-fb2adb3ef31b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the commits for the specified iteration of a pull request. + * + * @param {string} repositoryId - ID or name of the repository. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} iterationId - ID of the iteration from which to get the commits. + * @param {string} project - Project ID or project name + * @param {number} top - Maximum number of commits to return. The maximum number of commits that can be returned per batch is 500. + * @param {number} skip - Number of commits to skip. + */ + getPullRequestIterationCommits(repositoryId, pullRequestId, iterationId, project, top, skip) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + iterationId: iterationId + }; + let queryValues = { + top: top, + skip: skip, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "e7ea0883-095f-4926-b5fb-f24691c26fb9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the commits for the specified pull request. + * + * @param {string} repositoryId - ID or name of the repository. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + getPullRequestCommits(repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "52823034-34a8-4576-922c-8d8b77e9e4c4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve one conflict for a pull request by ID + * + * @param {string} repositoryId + * @param {number} pullRequestId + * @param {number} conflictId + * @param {string} project - Project ID or project name + */ + getPullRequestConflict(repositoryId, pullRequestId, conflictId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + conflictId: conflictId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "d840fb74-bbef-42d3-b250-564604c054a4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve all conflicts for a pull request + * + * @param {string} repositoryId - The repository of the Pull Request. + * @param {number} pullRequestId - The pull request ID. + * @param {string} project - Project ID or project name + * @param {number} skip - Conflicts to skip. + * @param {number} top - Conflicts to return after skip. + * @param {boolean} includeObsolete - Includes obsolete conflicts. + * @param {boolean} excludeResolved - Excludes conflicts already resolved. + * @param {boolean} onlyResolved - Returns only the conflicts that are resolved. + */ + getPullRequestConflicts(repositoryId, pullRequestId, project, skip, top, includeObsolete, excludeResolved, onlyResolved) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + let queryValues = { + '$skip': skip, + '$top': top, + includeObsolete: includeObsolete, + excludeResolved: excludeResolved, + onlyResolved: onlyResolved, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "d840fb74-bbef-42d3-b250-564604c054a4", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update merge conflict resolution + * + * @param {GitInterfaces.GitConflict} conflict + * @param {string} repositoryId + * @param {number} pullRequestId + * @param {number} conflictId + * @param {string} project - Project ID or project name + */ + updatePullRequestConflict(conflict, repositoryId, pullRequestId, conflictId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + conflictId: conflictId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "d840fb74-bbef-42d3-b250-564604c054a4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, conflict, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update multiple merge conflict resolutions + * + * @param {GitInterfaces.GitConflict[]} conflictUpdates + * @param {string} repositoryId + * @param {number} pullRequestId + * @param {string} project - Project ID or project name + */ + updatePullRequestConflicts(conflictUpdates, repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "d840fb74-bbef-42d3-b250-564604c054a4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, conflictUpdates, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflictUpdateResult, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve the changes made in a pull request between two iterations. + * + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} iterationId - ID of the pull request iteration.
Iteration one is the head of the source branch at the time the pull request is created and subsequent iterations are created when there are pushes to the source branch. Allowed values are between 1 and the maximum iteration on this pull request. + * @param {string} project - Project ID or project name + * @param {number} top - Optional. The number of changes to retrieve. The default value is 100 and the maximum value is 2000. + * @param {number} skip - Optional. The number of changes to ignore. For example, to retrieve changes 101-150, set top 50 and skip to 100. + * @param {number} compareTo - ID of the pull request iteration to compare against. The default value is zero which indicates the comparison is made against the common commit between the source and target branches + */ + getPullRequestIterationChanges(repositoryId, pullRequestId, iterationId, project, top, skip, compareTo) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + iterationId: iterationId + }; + let queryValues = { + '$top': top, + '$skip': skip, + '$compareTo': compareTo, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "4216bdcf-b6b1-4d59-8b82-c34cc183fc8b", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestIterationChanges, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the specified iteration for a pull request. + * + * @param {string} repositoryId - ID or name of the repository. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} iterationId - ID of the pull request iteration to return. + * @param {string} project - Project ID or project name + */ + getPullRequestIteration(repositoryId, pullRequestId, iterationId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + iterationId: iterationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "d43911ee-6958-46b0-a42b-8445b8a0d004", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestIteration, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the list of iterations for the specified pull request. + * + * @param {string} repositoryId - ID or name of the repository. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + * @param {boolean} includeCommits - If true, include the commits associated with each iteration in the response. + */ + getPullRequestIterations(repositoryId, pullRequestId, project, includeCommits) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + let queryValues = { + includeCommits: includeCommits, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "d43911ee-6958-46b0-a42b-8445b8a0d004", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestIteration, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a pull request status on the iteration. This operation will have the same result as Create status on pull request with specified iteration ID in the request body. + * + * @param {GitInterfaces.GitPullRequestStatus} status - Pull request status to create. + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} iterationId - ID of the pull request iteration. + * @param {string} project - Project ID or project name + */ + createPullRequestIterationStatus(status, repositoryId, pullRequestId, iterationId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + iterationId: iterationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "75cf11c5-979f-4038-a76e-058a06adf2bf", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, status, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete pull request iteration status. + * + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} iterationId - ID of the pull request iteration. + * @param {number} statusId - ID of the pull request status. + * @param {string} project - Project ID or project name + */ + deletePullRequestIterationStatus(repositoryId, pullRequestId, iterationId, statusId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + iterationId: iterationId, + statusId: statusId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "75cf11c5-979f-4038-a76e-058a06adf2bf", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the specific pull request iteration status by ID. The status ID is unique within the pull request across all iterations. + * + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} iterationId - ID of the pull request iteration. + * @param {number} statusId - ID of the pull request status. + * @param {string} project - Project ID or project name + */ + getPullRequestIterationStatus(repositoryId, pullRequestId, iterationId, statusId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + iterationId: iterationId, + statusId: statusId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "75cf11c5-979f-4038-a76e-058a06adf2bf", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get all the statuses associated with a pull request iteration. + * + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} iterationId - ID of the pull request iteration. + * @param {string} project - Project ID or project name + */ + getPullRequestIterationStatuses(repositoryId, pullRequestId, iterationId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + iterationId: iterationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "75cf11c5-979f-4038-a76e-058a06adf2bf", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update pull request iteration statuses collection. The only supported operation type is `remove`. + * + * @param {VSSInterfaces.JsonPatchDocument} patchDocument - Operations to apply to the pull request statuses in JSON Patch format. + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} iterationId - ID of the pull request iteration. + * @param {string} project - Project ID or project name + */ + updatePullRequestIterationStatuses(customHeaders, patchDocument, repositoryId, pullRequestId, iterationId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + iterationId: iterationId + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/json-patch+json"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "75cf11c5-979f-4038-a76e-058a06adf2bf", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.update(url, patchDocument, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a label for a specified pull request. The only required field is the name of the new label. + * + * @param {TfsCoreInterfaces.WebApiCreateTagRequestData} label - Label to assign to the pull request. + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + * @param {string} projectId - Project ID or project name. + */ + createPullRequestLabel(label, repositoryId, pullRequestId, project, projectId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + let queryValues = { + projectId: projectId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "f22387e3-984e-4c52-9c6d-fbb8f14c812d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, label, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a label from the set of those assigned to the pull request. + * + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} labelIdOrName - The name or ID of the label requested. + * @param {string} project - Project ID or project name + * @param {string} projectId - Project ID or project name. + */ + deletePullRequestLabels(repositoryId, pullRequestId, labelIdOrName, project, projectId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + labelIdOrName: labelIdOrName + }; + let queryValues = { + projectId: projectId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "f22387e3-984e-4c52-9c6d-fbb8f14c812d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieves a single label that has been assigned to a pull request. + * + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} labelIdOrName - The name or ID of the label requested. + * @param {string} project - Project ID or project name + * @param {string} projectId - Project ID or project name. + */ + getPullRequestLabel(repositoryId, pullRequestId, labelIdOrName, project, projectId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + labelIdOrName: labelIdOrName + }; + let queryValues = { + projectId: projectId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "f22387e3-984e-4c52-9c6d-fbb8f14c812d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get all the labels assigned to a pull request. + * + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + * @param {string} projectId - Project ID or project name. + */ + getPullRequestLabels(repositoryId, pullRequestId, project, projectId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + let queryValues = { + projectId: projectId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "f22387e3-984e-4c52-9c6d-fbb8f14c812d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get external properties of the pull request. + * + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + getPullRequestProperties(repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "48a52185-5b9e-4736-9dc1-bb1e2feac80b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create or update pull request external properties. The patch operation can be `add`, `replace` or `remove`. For `add` operation, the path can be empty. If the path is empty, the value must be a list of key value pairs. For `replace` operation, the path cannot be empty. If the path does not exist, the property will be added to the collection. For `remove` operation, the path cannot be empty. If the path does not exist, no action will be performed. + * + * @param {VSSInterfaces.JsonPatchDocument} patchDocument - Properties to add, replace or remove in JSON Patch format. + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + updatePullRequestProperties(customHeaders, patchDocument, repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/json-patch+json"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "48a52185-5b9e-4736-9dc1-bb1e2feac80b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.update(url, patchDocument, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * This API is used to find what pull requests are related to a given commit. It can be used to either find the pull request that created a particular merge commit or it can be used to find all pull requests that have ever merged a particular commit. The input is a list of queries which each contain a list of commits. For each commit that you search against, you will get back a dictionary of commit -> pull requests. + * + * @param {GitInterfaces.GitPullRequestQuery} queries - The list of queries to perform. + * @param {string} repositoryId - ID of the repository. + * @param {string} project - Project ID or project name + */ + getPullRequestQuery(queries, repositoryId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "b3a6eebe-9cf0-49ea-b6cb-1a4c5f5007b0", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, queries, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestQuery, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Add a reviewer to a pull request or cast a vote. + * + * @param {GitInterfaces.IdentityRefWithVote} reviewer - Reviewer's vote.
If the reviewer's ID is included here, it must match the reviewerID parameter.
Reviewers can set their own vote with this method. When adding other reviewers, vote must be set to zero. + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} reviewerId - ID of the reviewer. + * @param {string} project - Project ID or project name + */ + createPullRequestReviewer(reviewer, repositoryId, pullRequestId, reviewerId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + reviewerId: reviewerId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "4b6702c7-aa35-4b89-9c96-b9abf6d3e540", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, reviewer, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Add reviewers to a pull request. + * + * @param {VSSInterfaces.IdentityRef[]} reviewers - Reviewers to add to the pull request. + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + createPullRequestReviewers(reviewers, repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "4b6702c7-aa35-4b89-9c96-b9abf6d3e540", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, reviewers, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Add an unmaterialized identity to the reviewers of a pull request. + * + * @param {GitInterfaces.IdentityRefWithVote} reviewer - Reviewer to add to the pull request. + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + createUnmaterializedPullRequestReviewer(reviewer, repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "4b6702c7-aa35-4b89-9c96-b9abf6d3e540", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, reviewer, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Remove a reviewer from a pull request. + * + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} reviewerId - ID of the reviewer to remove. + * @param {string} project - Project ID or project name + */ + deletePullRequestReviewer(repositoryId, pullRequestId, reviewerId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + reviewerId: reviewerId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "4b6702c7-aa35-4b89-9c96-b9abf6d3e540", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve information about a particular reviewer on a pull request + * + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} reviewerId - ID of the reviewer. + * @param {string} project - Project ID or project name + */ + getPullRequestReviewer(repositoryId, pullRequestId, reviewerId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + reviewerId: reviewerId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "4b6702c7-aa35-4b89-9c96-b9abf6d3e540", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve the reviewers for a pull request + * + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + getPullRequestReviewers(repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "4b6702c7-aa35-4b89-9c96-b9abf6d3e540", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Edit a reviewer entry. These fields are patchable: isFlagged, hasDeclined + * + * @param {GitInterfaces.IdentityRefWithVote} reviewer - Reviewer data.
If the reviewer's ID is included here, it must match the reviewerID parameter. + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} reviewerId - ID of the reviewer. + * @param {string} project - Project ID or project name + */ + updatePullRequestReviewer(reviewer, repositoryId, pullRequestId, reviewerId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + reviewerId: reviewerId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "4b6702c7-aa35-4b89-9c96-b9abf6d3e540", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, reviewer, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Reset the votes of multiple reviewers on a pull request. NOTE: This endpoint only supports updating votes, but does not support updating required reviewers (use policy) or display names. + * + * @param {GitInterfaces.IdentityRefWithVote[]} patchVotes - IDs of the reviewers whose votes will be reset to zero + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request + * @param {string} project - Project ID or project name + */ + updatePullRequestReviewers(patchVotes, repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "4b6702c7-aa35-4b89-9c96-b9abf6d3e540", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, patchVotes, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve a pull request. + * + * @param {number} pullRequestId - The ID of the pull request to retrieve. + * @param {string} project - Project ID or project name + */ + getPullRequestById(pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "01a46dea-7d46-4d40-bc84-319e7c260d99", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve all pull requests matching a specified criteria. + * + * @param {string} project - Project ID or project name + * @param {GitInterfaces.GitPullRequestSearchCriteria} searchCriteria - Pull requests will be returned that match this search criteria. + * @param {number} maxCommentLength - Not used. + * @param {number} skip - The number of pull requests to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100. + * @param {number} top - The number of pull requests to retrieve. + */ + getPullRequestsByProject(project, searchCriteria, maxCommentLength, skip, top) { + return __awaiter(this, void 0, void 0, function* () { + if (searchCriteria == null) { + throw new TypeError('searchCriteria can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + searchCriteria: searchCriteria, + maxCommentLength: maxCommentLength, + '$skip': skip, + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "a5d28130-9cd2-40fa-9f08-902e7daa9efb", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a pull request. + * + * @param {GitInterfaces.GitPullRequest} gitPullRequestToCreate - The pull request to create. + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {string} project - Project ID or project name + * @param {boolean} supportsIterations - If true, subsequent pushes to the pull request will be individually reviewable. Set this to false for large pull requests for performance reasons if this functionality is not needed. + */ + createPullRequest(gitPullRequestToCreate, repositoryId, project, supportsIterations) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + supportsIterations: supportsIterations, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "9946fd70-0d40-406e-b686-b4744cbbcc37", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, gitPullRequestToCreate, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve a pull request. + * + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - The ID of the pull request to retrieve. + * @param {string} project - Project ID or project name + * @param {number} maxCommentLength - Not used. + * @param {number} skip - Not used. + * @param {number} top - Not used. + * @param {boolean} includeCommits - If true, the pull request will be returned with the associated commits. + * @param {boolean} includeWorkItemRefs - If true, the pull request will be returned with the associated work item references. + */ + getPullRequest(repositoryId, pullRequestId, project, maxCommentLength, skip, top, includeCommits, includeWorkItemRefs) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + let queryValues = { + maxCommentLength: maxCommentLength, + '$skip': skip, + '$top': top, + includeCommits: includeCommits, + includeWorkItemRefs: includeWorkItemRefs, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "9946fd70-0d40-406e-b686-b4744cbbcc37", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve all pull requests matching a specified criteria. + * + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {GitInterfaces.GitPullRequestSearchCriteria} searchCriteria - Pull requests will be returned that match this search criteria. + * @param {string} project - Project ID or project name + * @param {number} maxCommentLength - Not used. + * @param {number} skip - The number of pull requests to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100. + * @param {number} top - The number of pull requests to retrieve. + */ + getPullRequests(repositoryId, searchCriteria, project, maxCommentLength, skip, top) { + return __awaiter(this, void 0, void 0, function* () { + if (searchCriteria == null) { + throw new TypeError('searchCriteria can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + searchCriteria: searchCriteria, + maxCommentLength: maxCommentLength, + '$skip': skip, + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "9946fd70-0d40-406e-b686-b4744cbbcc37", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a pull request + * + * @param {GitInterfaces.GitPullRequest} gitPullRequestToUpdate - The pull request content that should be updated. + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request to update. + * @param {string} project - Project ID or project name + */ + updatePullRequest(gitPullRequestToUpdate, repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "9946fd70-0d40-406e-b686-b4744cbbcc37", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, gitPullRequestToUpdate, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Sends an e-mail notification about a specific pull request to a set of recipients + * + * @param {GitInterfaces.ShareNotificationContext} userMessage + * @param {string} repositoryId - ID of the git repository. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + sharePullRequest(userMessage, repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "696f3a82-47c9-487f-9117-b9d00972ca84", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, userMessage, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a pull request status. + * + * @param {GitInterfaces.GitPullRequestStatus} status - Pull request status to create. + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + createPullRequestStatus(status, repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, status, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete pull request status. + * + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} statusId - ID of the pull request status. + * @param {string} project - Project ID or project name + */ + deletePullRequestStatus(repositoryId, pullRequestId, statusId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + statusId: statusId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the specific pull request status by ID. The status ID is unique within the pull request across all iterations. + * + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} statusId - ID of the pull request status. + * @param {string} project - Project ID or project name + */ + getPullRequestStatus(repositoryId, pullRequestId, statusId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + statusId: statusId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get all the statuses associated with a pull request. + * + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + getPullRequestStatuses(repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update pull request statuses collection. The only supported operation type is `remove`. + * + * @param {VSSInterfaces.JsonPatchDocument} patchDocument - Operations to apply to the pull request statuses in JSON Patch format. + * @param {string} repositoryId - The repository ID of the pull request’s target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + updatePullRequestStatuses(customHeaders, patchDocument, repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/json-patch+json"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.update(url, patchDocument, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a comment on a specific thread in a pull request (up to 500 comments can be created per thread). + * + * @param {GitInterfaces.Comment} comment - The comment to create. Comments can be up to 150,000 characters. + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} threadId - ID of the thread that the desired comment is in. + * @param {string} project - Project ID or project name + */ + createComment(comment, repositoryId, pullRequestId, threadId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + threadId: threadId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, comment, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a comment associated with a specific thread in a pull request. + * + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} threadId - ID of the thread that the desired comment is in. + * @param {number} commentId - ID of the comment. + * @param {string} project - Project ID or project name + */ + deleteComment(repositoryId, pullRequestId, threadId, commentId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + threadId: threadId, + commentId: commentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve a comment associated with a specific thread in a pull request. + * + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} threadId - ID of the thread that the desired comment is in. + * @param {number} commentId - ID of the comment. + * @param {string} project - Project ID or project name + */ + getComment(repositoryId, pullRequestId, threadId, commentId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + threadId: threadId, + commentId: commentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve all comments associated with a specific thread in a pull request. + * + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} threadId - ID of the thread. + * @param {string} project - Project ID or project name + */ + getComments(repositoryId, pullRequestId, threadId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + threadId: threadId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a comment associated with a specific thread in a pull request. + * + * @param {GitInterfaces.Comment} comment - The comment content that should be updated. Comments can be up to 150,000 characters. + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} threadId - ID of the thread that the desired comment is in. + * @param {number} commentId - ID of the comment to update. + * @param {string} project - Project ID or project name + */ + updateComment(comment, repositoryId, pullRequestId, threadId, commentId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + threadId: threadId, + commentId: commentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, comment, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a thread in a pull request. + * + * @param {GitInterfaces.GitPullRequestCommentThread} commentThread - The thread to create. Thread must contain at least one comment. + * @param {string} repositoryId - Repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + createThread(commentThread, repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "ab6e2e5d-a0b7-4153-b64a-a4efe0d49449", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, commentThread, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve a thread in a pull request. + * + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} threadId - ID of the thread. + * @param {string} project - Project ID or project name + * @param {number} iteration - If specified, thread position will be tracked using this iteration as the right side of the diff. + * @param {number} baseIteration - If specified, thread position will be tracked using this iteration as the left side of the diff. + */ + getPullRequestThread(repositoryId, pullRequestId, threadId, project, iteration, baseIteration) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + threadId: threadId + }; + let queryValues = { + '$iteration': iteration, + '$baseIteration': baseIteration, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "ab6e2e5d-a0b7-4153-b64a-a4efe0d49449", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve all threads in a pull request. + * + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + * @param {number} iteration - If specified, thread positions will be tracked using this iteration as the right side of the diff. + * @param {number} baseIteration - If specified, thread positions will be tracked using this iteration as the left side of the diff. + */ + getThreads(repositoryId, pullRequestId, project, iteration, baseIteration) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + let queryValues = { + '$iteration': iteration, + '$baseIteration': baseIteration, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "ab6e2e5d-a0b7-4153-b64a-a4efe0d49449", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a thread in a pull request. + * + * @param {GitInterfaces.GitPullRequestCommentThread} commentThread - The thread content that should be updated. + * @param {string} repositoryId - The repository ID of the pull request's target branch. + * @param {number} pullRequestId - ID of the pull request. + * @param {number} threadId - ID of the thread to update. + * @param {string} project - Project ID or project name + */ + updateThread(commentThread, repositoryId, pullRequestId, threadId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId, + threadId: threadId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "ab6e2e5d-a0b7-4153-b64a-a4efe0d49449", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, commentThread, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve a list of work items associated with a pull request. + * + * @param {string} repositoryId - ID or name of the repository. + * @param {number} pullRequestId - ID of the pull request. + * @param {string} project - Project ID or project name + */ + getPullRequestWorkItemRefs(repositoryId, pullRequestId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pullRequestId: pullRequestId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "0a637fcc-5370-4ce8-b0e8-98091f5f9482", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Push changes to the repository. + * + * @param {GitInterfaces.GitPush} push + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} project - Project ID or project name + */ + createPush(push, repositoryId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "git", "ea98d07b-3c87-4971-8ede-a613694ffb55", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, push, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPush, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieves a particular push. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {number} pushId - ID of the push. + * @param {string} project - Project ID or project name + * @param {number} includeCommits - The number of commits to include in the result. + * @param {boolean} includeRefUpdates - If true, include the list of refs that were updated by the push. + */ + getPush(repositoryId, pushId, project, includeCommits, includeRefUpdates) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + pushId: pushId + }; + let queryValues = { + includeCommits: includeCommits, + includeRefUpdates: includeRefUpdates, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "git", "ea98d07b-3c87-4971-8ede-a613694ffb55", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPush, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieves pushes associated with the specified repository. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} project - Project ID or project name + * @param {number} skip - Number of pushes to skip. + * @param {number} top - Number of pushes to return. + * @param {GitInterfaces.GitPushSearchCriteria} searchCriteria - Search criteria attributes: fromDate, toDate, pusherId, refName, includeRefUpdates or includeLinks. fromDate: Start date to search from. toDate: End date to search to. pusherId: Identity of the person who submitted the push. refName: Branch name to consider. includeRefUpdates: If true, include the list of refs that were updated by the push. includeLinks: Whether to include the _links field on the shallow references. + */ + getPushes(repositoryId, project, skip, top, searchCriteria) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + '$skip': skip, + '$top': top, + searchCriteria: searchCriteria, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "git", "ea98d07b-3c87-4971-8ede-a613694ffb55", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPush, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Destroy (hard delete) a soft-deleted Git repository. + * + * @param {string} project - Project ID or project name + * @param {string} repositoryId - The ID of the repository. + */ + deleteRepositoryFromRecycleBin(project, repositoryId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "a663da97-81db-4eb3-8b83-287670f63073", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve soft-deleted git repositories from the recycle bin. + * + * @param {string} project - Project ID or project name + */ + getRecycleBinRepositories(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "a663da97-81db-4eb3-8b83-287670f63073", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitDeletedRepository, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Recover a soft-deleted Git repository. Recently deleted repositories go into a soft-delete state for a period of time before they are hard deleted and become unrecoverable. + * + * @param {GitInterfaces.GitRecycleBinRepositoryDetails} repositoryDetails + * @param {string} project - Project ID or project name + * @param {string} repositoryId - The ID of the repository. + */ + restoreRepositoryFromRecycleBin(repositoryDetails, project, repositoryId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "a663da97-81db-4eb3-8b83-287670f63073", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, repositoryDetails, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Queries the provided repository for its refs and returns them. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} project - Project ID or project name + * @param {string} filter - [optional] A filter to apply to the refs (starts with). + * @param {boolean} includeLinks - [optional] Specifies if referenceLinks should be included in the result. default is false. + * @param {boolean} includeStatuses - [optional] Includes up to the first 1000 commit statuses for each ref. The default value is false. + * @param {boolean} includeMyBranches - [optional] Includes only branches that the user owns, the branches the user favorites, and the default branch. The default value is false. Cannot be combined with the filter parameter. + * @param {boolean} latestStatusesOnly - [optional] True to include only the tip commit status for each ref. This option requires `includeStatuses` to be true. The default value is false. + * @param {boolean} peelTags - [optional] Annotated tags will populate the PeeledObjectId property. default is false. + * @param {string} filterContains - [optional] A filter to apply to the refs (contains). + */ + getRefs(repositoryId, project, filter, includeLinks, includeStatuses, includeMyBranches, latestStatusesOnly, peelTags, filterContains) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + filter: filter, + includeLinks: includeLinks, + includeStatuses: includeStatuses, + includeMyBranches: includeMyBranches, + latestStatusesOnly: latestStatusesOnly, + peelTags: peelTags, + filterContains: filterContains, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "2d874a60-a811-4f62-9c9f-963a6ea0a55b", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRef, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Lock or Unlock a branch. + * + * @param {GitInterfaces.GitRefUpdate} newRefInfo - The ref update action (lock/unlock) to perform + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} filter - The name of the branch to lock/unlock + * @param {string} project - Project ID or project name + * @param {string} projectId - ID or name of the team project. Optional if specifying an ID for repository. + */ + updateRef(newRefInfo, repositoryId, filter, project, projectId) { + return __awaiter(this, void 0, void 0, function* () { + if (filter == null) { + throw new TypeError('filter can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + filter: filter, + projectId: projectId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "2d874a60-a811-4f62-9c9f-963a6ea0a55b", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, newRefInfo, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRef, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creating, updating, or deleting refs(branches). + * + * @param {GitInterfaces.GitRefUpdate[]} refUpdates - List of ref updates to attempt to perform + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} project - Project ID or project name + * @param {string} projectId - ID or name of the team project. Optional if specifying an ID for repository. + */ + updateRefs(refUpdates, repositoryId, project, projectId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + projectId: projectId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "2d874a60-a811-4f62-9c9f-963a6ea0a55b", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, refUpdates, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefUpdateResult, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a ref favorite + * + * @param {GitInterfaces.GitRefFavorite} favorite - The ref favorite to create. + * @param {string} project - Project ID or project name + */ + createFavorite(favorite, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "876f70af-5792-485a-a1c7-d0a7b2f42bbb", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, favorite, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefFavorite, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes the refs favorite specified + * + * @param {string} project - Project ID or project name + * @param {number} favoriteId - The Id of the ref favorite to delete. + */ + deleteRefFavorite(project, favoriteId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + favoriteId: favoriteId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "876f70af-5792-485a-a1c7-d0a7b2f42bbb", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the refs favorite for a favorite Id. + * + * @param {string} project - Project ID or project name + * @param {number} favoriteId - The Id of the requested ref favorite. + */ + getRefFavorite(project, favoriteId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + favoriteId: favoriteId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "876f70af-5792-485a-a1c7-d0a7b2f42bbb", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefFavorite, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the refs favorites for a repo and an identity. + * + * @param {string} project - Project ID or project name + * @param {string} repositoryId - The id of the repository. + * @param {string} identityId - The id of the identity whose favorites are to be retrieved. If null, the requesting identity is used. + */ + getRefFavorites(project, repositoryId, identityId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + repositoryId: repositoryId, + identityId: identityId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "876f70af-5792-485a-a1c7-d0a7b2f42bbb", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefFavorite, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a git repository in a team project. + * + * @param {GitInterfaces.GitRepositoryCreateOptions} gitRepositoryToCreate - Specify the repo name, team project and/or parent repository. Team project information can be omitted from gitRepositoryToCreate if the request is project-scoped (i.e., includes project Id). + * @param {string} project - Project ID or project name + * @param {string} sourceRef - [optional] Specify the source refs to use while creating a fork repo + */ + createRepository(gitRepositoryToCreate, project, sourceRef) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + sourceRef: sourceRef, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "225f7195-f9c7-4d14-ab28-a83f7ff77e1f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, gitRepositoryToCreate, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a git repository + * + * @param {string} repositoryId - The ID of the repository. + * @param {string} project - Project ID or project name + */ + deleteRepository(repositoryId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "225f7195-f9c7-4d14-ab28-a83f7ff77e1f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve git repositories. + * + * @param {string} project - Project ID or project name + * @param {boolean} includeLinks - [optional] True to include reference links. The default value is false. + * @param {boolean} includeAllUrls - [optional] True to include all remote URLs. The default value is false. + * @param {boolean} includeHidden - [optional] True to include hidden repositories. The default value is false. + */ + getRepositories(project, includeLinks, includeAllUrls, includeHidden) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + includeLinks: includeLinks, + includeAllUrls: includeAllUrls, + includeHidden: includeHidden, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "225f7195-f9c7-4d14-ab28-a83f7ff77e1f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve a git repository. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {string} project - Project ID or project name + */ + getRepository(repositoryId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "225f7195-f9c7-4d14-ab28-a83f7ff77e1f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve a git repository. + * + * @param {string} repositoryId - The name or ID of the repository. + * @param {boolean} includeParent - True to include parent repository. Only available in authenticated calls. + * @param {string} project - Project ID or project name + */ + getRepositoryWithParent(repositoryId, includeParent, project) { + return __awaiter(this, void 0, void 0, function* () { + if (includeParent == null) { + throw new TypeError('includeParent can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + includeParent: includeParent, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "225f7195-f9c7-4d14-ab28-a83f7ff77e1f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates the Git repository with either a new repo name or a new default branch. + * + * @param {GitInterfaces.GitRepository} newRepositoryInfo - Specify a new repo name or a new default branch of the repository + * @param {string} repositoryId - The ID of the repository. + * @param {string} project - Project ID or project name + */ + updateRepository(newRepositoryInfo, repositoryId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "225f7195-f9c7-4d14-ab28-a83f7ff77e1f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, newRepositoryInfo, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve one conflict for a revert by ID + * + * @param {string} repositoryId + * @param {number} revertId + * @param {number} conflictId + * @param {string} project - Project ID or project name + */ + getRevertConflict(repositoryId, revertId, conflictId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + revertId: revertId, + conflictId: conflictId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "10d7ae6d-1050-446d-852a-bd5d99f834bf", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve all conflicts for a revert + * + * @param {string} repositoryId + * @param {number} revertId + * @param {string} project - Project ID or project name + * @param {string} continuationToken + * @param {number} top + * @param {boolean} excludeResolved + * @param {boolean} onlyResolved + * @param {boolean} includeObsolete + */ + getRevertConflicts(repositoryId, revertId, project, continuationToken, top, excludeResolved, onlyResolved, includeObsolete) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + revertId: revertId + }; + let queryValues = { + continuationToken: continuationToken, + '$top': top, + excludeResolved: excludeResolved, + onlyResolved: onlyResolved, + includeObsolete: includeObsolete, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "10d7ae6d-1050-446d-852a-bd5d99f834bf", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update merge conflict resolution + * + * @param {GitInterfaces.GitConflict} conflict + * @param {string} repositoryId + * @param {number} revertId + * @param {number} conflictId + * @param {string} project - Project ID or project name + */ + updateRevertConflict(conflict, repositoryId, revertId, conflictId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + revertId: revertId, + conflictId: conflictId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "10d7ae6d-1050-446d-852a-bd5d99f834bf", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, conflict, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update multiple merge conflict resolutions + * + * @param {GitInterfaces.GitConflict[]} conflictUpdates + * @param {string} repositoryId + * @param {number} revertId + * @param {string} project - Project ID or project name + */ + updateRevertConflicts(conflictUpdates, repositoryId, revertId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + revertId: revertId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "10d7ae6d-1050-446d-852a-bd5d99f834bf", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, conflictUpdates, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflictUpdateResult, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Starts the operation to create a new branch which reverts changes introduced by either a specific commit or commits that are associated to a pull request. + * + * @param {GitInterfaces.GitAsyncRefOperationParameters} revertToCreate + * @param {string} project - Project ID or project name + * @param {string} repositoryId - ID of the repository. + */ + createRevert(revertToCreate, project, repositoryId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "bc866058-5449-4715-9cf1-a510b6ff193c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, revertToCreate, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRevert, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve information about a revert operation by revert Id. + * + * @param {string} project - Project ID or project name + * @param {number} revertId - ID of the revert operation. + * @param {string} repositoryId - ID of the repository. + */ + getRevert(project, revertId, repositoryId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + revertId: revertId, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "bc866058-5449-4715-9cf1-a510b6ff193c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRevert, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve information about a revert operation for a specific branch. + * + * @param {string} project - Project ID or project name + * @param {string} repositoryId - ID of the repository. + * @param {string} refName - The GitAsyncRefOperationParameters generatedRefName used for the revert operation. + */ + getRevertForRefName(project, repositoryId, refName) { + return __awaiter(this, void 0, void 0, function* () { + if (refName == null) { + throw new TypeError('refName can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + refName: refName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "bc866058-5449-4715-9cf1-a510b6ff193c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRevert, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create Git commit status. + * + * @param {GitInterfaces.GitStatus} gitCommitStatusToCreate - Git commit status object to create. + * @param {string} commitId - ID of the Git commit. + * @param {string} repositoryId - ID of the repository. + * @param {string} project - Project ID or project name + */ + createCommitStatus(gitCommitStatusToCreate, commitId, repositoryId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + commitId: commitId, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "428dd4fb-fda5-4722-af02-9313b80305da", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, gitCommitStatusToCreate, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitStatus, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get statuses associated with the Git commit. + * + * @param {string} commitId - ID of the Git commit. + * @param {string} repositoryId - ID of the repository. + * @param {string} project - Project ID or project name + * @param {number} top - Optional. The number of statuses to retrieve. Default is 1000. + * @param {number} skip - Optional. The number of statuses to ignore. Default is 0. For example, to retrieve results 101-150, set top to 50 and skip to 100. + * @param {boolean} latestOnly - The flag indicates whether to get only latest statuses grouped by `Context.Name` and `Context.Genre`. + */ + getStatuses(commitId, repositoryId, project, top, skip, latestOnly) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + commitId: commitId, + repositoryId: repositoryId + }; + let queryValues = { + top: top, + skip: skip, + latestOnly: latestOnly, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "428dd4fb-fda5-4722-af02-9313b80305da", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitStatus, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve a pull request suggestion for a particular repository or team project. + * + * @param {string} repositoryId - ID of the git repository. + * @param {string} project - Project ID or project name + */ + getSuggestions(repositoryId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "9393b4fb-4445-4919-972b-9ad16f442d83", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * The Tree endpoint returns the collection of objects underneath the specified tree. Trees are folders in a Git repository. + * + * @param {string} repositoryId - Repository Id. + * @param {string} sha1 - SHA1 hash of the tree object. + * @param {string} project - Project ID or project name + * @param {string} projectId - Project Id. + * @param {boolean} recursive - Search recursively. Include trees underneath this tree. Default is false. + * @param {string} fileName - Name to use if a .zip file is returned. Default is the object ID. + */ + getTree(repositoryId, sha1, project, projectId, recursive, fileName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + sha1: sha1 + }; + let queryValues = { + projectId: projectId, + recursive: recursive, + fileName: fileName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "729f6437-6f92-44ec-8bee-273a7111063c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitTreeRef, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * The Tree endpoint returns the collection of objects underneath the specified tree. Trees are folders in a Git repository. + * + * @param {string} repositoryId - Repository Id. + * @param {string} sha1 - SHA1 hash of the tree object. + * @param {string} project - Project ID or project name + * @param {string} projectId - Project Id. + * @param {boolean} recursive - Search recursively. Include trees underneath this tree. Default is false. + * @param {string} fileName - Name to use if a .zip file is returned. Default is the object ID. + */ + getTreeZip(repositoryId, sha1, project, projectId, recursive, fileName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId, + sha1: sha1 + }; + let queryValues = { + projectId: projectId, + recursive: recursive, + fileName: fileName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "git", "729f6437-6f92-44ec-8bee-273a7111063c", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } +} +GitApi.RESOURCE_AREA_ID = "4e080c62-fa21-4fbc-8fef-2a10a2b38049"; +exports.GitApi = GitApi; + + +/***/ }), + +/***/ 4771: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const LocationsInterfaces = __nccwpck_require__(3215); +class LocationsApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-Locations-api', options); + } + /** + * This was copied and adapted from TeamFoundationConnectionService.Connect() + * + * @param {VSSInterfaces.ConnectOptions} connectOptions + * @param {number} lastChangeId - Obsolete 32-bit LastChangeId + * @param {number} lastChangeId64 - Non-truncated 64-bit LastChangeId + */ + getConnectionData(connectOptions, lastChangeId, lastChangeId64) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + connectOptions: connectOptions, + lastChangeId: lastChangeId, + lastChangeId64: lastChangeId64, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Location", "00d9565f-ed9c-4a06-9a50-00e7896ccab4", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, LocationsInterfaces.TypeInfo.ConnectionData, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} areaId + * @param {string} enterpriseName + * @param {string} organizationName + */ + getResourceArea(areaId, enterpriseName, organizationName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + areaId: areaId + }; + let queryValues = { + enterpriseName: enterpriseName, + organizationName: organizationName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Location", "e81700f7-3be2-46de-8624-2eb35882fcaa", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} areaId + * @param {string} hostId + */ + getResourceAreaByHost(areaId, hostId) { + return __awaiter(this, void 0, void 0, function* () { + if (hostId == null) { + throw new TypeError('hostId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + areaId: areaId + }; + let queryValues = { + hostId: hostId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Location", "e81700f7-3be2-46de-8624-2eb35882fcaa", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} enterpriseName + * @param {string} organizationName + */ + getResourceAreas(enterpriseName, organizationName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + enterpriseName: enterpriseName, + organizationName: organizationName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Location", "e81700f7-3be2-46de-8624-2eb35882fcaa", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} hostId + */ + getResourceAreasByHost(hostId) { + return __awaiter(this, void 0, void 0, function* () { + if (hostId == null) { + throw new TypeError('hostId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + hostId: hostId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Location", "e81700f7-3be2-46de-8624-2eb35882fcaa", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} serviceType + * @param {string} identifier + */ + deleteServiceDefinition(serviceType, identifier) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + serviceType: serviceType, + identifier: identifier + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Location", "d810a47d-f4f4-4a62-a03f-fa1860585c4c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Finds a given service definition. + * + * @param {string} serviceType + * @param {string} identifier + * @param {boolean} allowFaultIn - If true, we will attempt to fault in a host instance mapping if in SPS. + * @param {boolean} previewFaultIn - If true, we will calculate and return a host instance mapping, but not persist it. + */ + getServiceDefinition(serviceType, identifier, allowFaultIn, previewFaultIn) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + serviceType: serviceType, + identifier: identifier + }; + let queryValues = { + allowFaultIn: allowFaultIn, + previewFaultIn: previewFaultIn, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Location", "d810a47d-f4f4-4a62-a03f-fa1860585c4c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, LocationsInterfaces.TypeInfo.ServiceDefinition, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} serviceType + */ + getServiceDefinitions(serviceType) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + serviceType: serviceType + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Location", "d810a47d-f4f4-4a62-a03f-fa1860585c4c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, LocationsInterfaces.TypeInfo.ServiceDefinition, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {VSSInterfaces.VssJsonCollectionWrapperV} serviceDefinitions + */ + updateServiceDefinitions(serviceDefinitions) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Location", "d810a47d-f4f4-4a62-a03f-fa1860585c4c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, serviceDefinitions, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +exports.LocationsApi = LocationsApi; + + +/***/ }), + +/***/ 8221: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const NotificationInterfaces = __nccwpck_require__(269); +const VSSInterfaces = __nccwpck_require__(4498); +class NotificationApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-Notification-api', options); + } + /** + * @param {NotificationInterfaces.BatchNotificationOperation} operation + */ + performBatchNotificationOperations(operation) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "8f3c6ab2-5bae-4537-b16e-f84e0955599e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, operation, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of diagnostic logs for this service. + * + * @param {string} source - ID specifying which type of logs to check diagnostics for. + * @param {string} entryId - The ID of the specific log to query for. + * @param {Date} startTime - Start time for the time range to query in. + * @param {Date} endTime - End time for the time range to query in. + */ + listLogs(source, entryId, startTime, endTime) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + source: source, + entryId: entryId + }; + let queryValues = { + startTime: startTime, + endTime: endTime, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "991842f3-eb16-4aea-ac81-81353ef2b75c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.INotificationDiagnosticLog, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the diagnostics settings for a subscription. + * + * @param {string} subscriptionId - The id of the notifications subscription. + */ + getSubscriptionDiagnostics(subscriptionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + subscriptionId: subscriptionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "20f1929d-4be7-4c2e-a74e-d47640ff3418", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.SubscriptionDiagnostics, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update the diagnostics settings for a subscription. + * + * @param {NotificationInterfaces.UpdateSubscripitonDiagnosticsParameters} updateParameters + * @param {string} subscriptionId - The id of the notifications subscription. + */ + updateSubscriptionDiagnostics(updateParameters, subscriptionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + subscriptionId: subscriptionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "20f1929d-4be7-4c2e-a74e-d47640ff3418", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, updateParameters, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.SubscriptionDiagnostics, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Publish an event. This request must be directed to the service "extmgmt". + * + * @param {VSSInterfaces.VssNotificationEvent} notificationEvent + */ + publishEvent(notificationEvent) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "14c57b7a-c0e6-4555-9f51-e067188fdd8e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, notificationEvent, options); + let ret = this.formatResponse(res.result, VSSInterfaces.TypeInfo.VssNotificationEvent, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Tranform a notification event. + * + * @param {NotificationInterfaces.EventTransformRequest} transformRequest - Object to be transformed. + */ + transformEvent(transformRequest) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "9463a800-1b44-450e-9083-f948ea174b45", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, transformRequest, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {NotificationInterfaces.FieldValuesQuery} inputValuesQuery + * @param {string} eventType + */ + queryEventTypes(inputValuesQuery, eventType) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + eventType: eventType + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "b5bbdd21-c178-4398-b6db-0166d910028a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, inputValuesQuery, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationEventField, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a specific event type. + * + * @param {string} eventType - The ID of the event type. + */ + getEventType(eventType) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + eventType: eventType + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "cc84fb5f-6247-4c7a-aeae-e5a3c3fddb21", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationEventType, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * List available event types for this service. Optionally filter by only event types for the specified publisher. + * + * @param {string} publisherId - Limit to event types for this publisher + */ + listEventTypes(publisherId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + publisherId: publisherId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "cc84fb5f-6247-4c7a-aeae-e5a3c3fddb21", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationEventType, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} notificationId + */ + getNotificationReasons(notificationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + notificationId: notificationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "19824fa9-1c76-40e6-9cce-cf0b9ca1cb60", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationReason, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} notificationIds + */ + listNotificationReasons(notificationIds) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + notificationIds: notificationIds, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "19824fa9-1c76-40e6-9cce-cf0b9ca1cb60", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationReason, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + */ + getSettings() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "cbe076d8-2803-45ff-8d8d-44653686ea2a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationAdminSettings, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {NotificationInterfaces.NotificationAdminSettingsUpdateParameters} updateParameters + */ + updateSettings(updateParameters) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "cbe076d8-2803-45ff-8d8d-44653686ea2a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, updateParameters, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationAdminSettings, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get delivery preferences of a notifications subscriber. + * + * @param {string} subscriberId - ID of the user or group. + */ + getSubscriber(subscriberId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + subscriberId: subscriberId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "4d5caff1-25ba-430b-b808-7a1f352cc197", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscriber, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update delivery preferences of a notifications subscriber. + * + * @param {NotificationInterfaces.NotificationSubscriberUpdateParameters} updateParameters + * @param {string} subscriberId - ID of the user or group. + */ + updateSubscriber(updateParameters, subscriberId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + subscriberId: subscriberId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "4d5caff1-25ba-430b-b808-7a1f352cc197", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, updateParameters, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscriber, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Query for subscriptions. A subscription is returned if it matches one or more of the specified conditions. + * + * @param {NotificationInterfaces.SubscriptionQuery} subscriptionQuery + */ + querySubscriptions(subscriptionQuery) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "6864db85-08c0-4006-8e8e-cc1bebe31675", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, subscriptionQuery, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a new subscription. + * + * @param {NotificationInterfaces.NotificationSubscriptionCreateParameters} createParameters + */ + createSubscription(createParameters) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "70f911d6-abac-488c-85b3-a206bf57e165", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, createParameters, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a subscription. + * + * @param {string} subscriptionId + */ + deleteSubscription(subscriptionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + subscriptionId: subscriptionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "70f911d6-abac-488c-85b3-a206bf57e165", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a notification subscription by its ID. + * + * @param {string} subscriptionId + * @param {NotificationInterfaces.SubscriptionQueryFlags} queryFlags + */ + getSubscription(subscriptionId, queryFlags) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + subscriptionId: subscriptionId + }; + let queryValues = { + queryFlags: queryFlags, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "70f911d6-abac-488c-85b3-a206bf57e165", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of notification subscriptions, either by subscription IDs or by all subscriptions for a given user or group. + * + * @param {string} targetId - User or Group ID + * @param {string[]} ids - List of subscription IDs + * @param {NotificationInterfaces.SubscriptionQueryFlags} queryFlags + */ + listSubscriptions(targetId, ids, queryFlags) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + targetId: targetId, + ids: ids && ids.join(","), + queryFlags: queryFlags, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "70f911d6-abac-488c-85b3-a206bf57e165", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update an existing subscription. Depending on the type of subscription and permissions, the caller can update the description, filter settings, channel (delivery) settings and more. + * + * @param {NotificationInterfaces.NotificationSubscriptionUpdateParameters} updateParameters + * @param {string} subscriptionId + */ + updateSubscription(updateParameters, subscriptionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + subscriptionId: subscriptionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "70f911d6-abac-488c-85b3-a206bf57e165", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, updateParameters, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get available subscription templates. + * + */ + getSubscriptionTemplates() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "fa5d24ba-7484-4f3d-888d-4ec6b1974082", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscriptionTemplate, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update the specified user's settings for the specified subscription. This API is typically used to opt in or out of a shared subscription. User settings can only be applied to shared subscriptions, like team subscriptions or default subscriptions. + * + * @param {NotificationInterfaces.SubscriptionUserSettings} userSettings + * @param {string} subscriptionId + * @param {string} userId - ID of the user + */ + updateSubscriptionUserSettings(userSettings, subscriptionId, userId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + subscriptionId: subscriptionId, + userId: userId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "notification", "ed5a3dff-aeb5-41b1-b4f7-89e66e58b62e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, userSettings, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +exports.NotificationApi = NotificationApi; + + +/***/ }), + +/***/ 266: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const PolicyInterfaces = __nccwpck_require__(8555); +class PolicyApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-Policy-api', options); + } + /** + * Create a policy configuration of a given policy type. + * + * @param {PolicyInterfaces.PolicyConfiguration} configuration - The policy configuration to create. + * @param {string} project - Project ID or project name + * @param {number} configurationId + */ + createPolicyConfiguration(configuration, project, configurationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + configurationId: configurationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "policy", "dad91cbe-d183-45f8-9c6e-9c1164472121", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, configuration, options); + let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a policy configuration by its ID. + * + * @param {string} project - Project ID or project name + * @param {number} configurationId - ID of the policy configuration to delete. + */ + deletePolicyConfiguration(project, configurationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + configurationId: configurationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "policy", "dad91cbe-d183-45f8-9c6e-9c1164472121", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a policy configuration by its ID. + * + * @param {string} project - Project ID or project name + * @param {number} configurationId - ID of the policy configuration + */ + getPolicyConfiguration(project, configurationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + configurationId: configurationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "policy", "dad91cbe-d183-45f8-9c6e-9c1164472121", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of policy configurations in a project. + * + * @param {string} project - Project ID or project name + * @param {string} scope - [Provided for legacy reasons] The scope on which a subset of policies is defined. + * @param {string} policyType - Filter returned policies to only this type + */ + getPolicyConfigurations(project, scope, policyType) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + scope: scope, + policyType: policyType, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "policy", "dad91cbe-d183-45f8-9c6e-9c1164472121", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a policy configuration by its ID. + * + * @param {PolicyInterfaces.PolicyConfiguration} configuration - The policy configuration to update. + * @param {string} project - Project ID or project name + * @param {number} configurationId - ID of the existing policy configuration to be updated. + */ + updatePolicyConfiguration(configuration, project, configurationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + configurationId: configurationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "policy", "dad91cbe-d183-45f8-9c6e-9c1164472121", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, configuration, options); + let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the present evaluation state of a policy. + * + * @param {string} project - Project ID or project name + * @param {string} evaluationId - ID of the policy evaluation to be retrieved. + */ + getPolicyEvaluation(project, evaluationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + evaluationId: evaluationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "policy", "46aecb7a-5d2c-4647-897b-0209505a9fe4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyEvaluationRecord, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Requeue the policy evaluation. + * + * @param {string} project - Project ID or project name + * @param {string} evaluationId - ID of the policy evaluation to be retrieved. + */ + requeuePolicyEvaluation(project, evaluationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + evaluationId: evaluationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "policy", "46aecb7a-5d2c-4647-897b-0209505a9fe4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, null, options); + let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyEvaluationRecord, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieves a list of all the policy evaluation statuses for a specific pull request. + * + * @param {string} project - Project ID or project name + * @param {string} artifactId - A string which uniquely identifies the target of a policy evaluation. + * @param {boolean} includeNotApplicable - Some policies might determine that they do not apply to a specific pull request. Setting this parameter to true will return evaluation records even for policies which don't apply to this pull request. + * @param {number} top - The number of policy evaluation records to retrieve. + * @param {number} skip - The number of policy evaluation records to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100. + */ + getPolicyEvaluations(project, artifactId, includeNotApplicable, top, skip) { + return __awaiter(this, void 0, void 0, function* () { + if (artifactId == null) { + throw new TypeError('artifactId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + artifactId: artifactId, + includeNotApplicable: includeNotApplicable, + '$top': top, + '$skip': skip, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "policy", "c23ddff5-229c-4d04-a80b-0fdce9f360c8", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyEvaluationRecord, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve a specific revision of a given policy by ID. + * + * @param {string} project - Project ID or project name + * @param {number} configurationId - The policy configuration ID. + * @param {number} revisionId - The revision ID. + */ + getPolicyConfigurationRevision(project, configurationId, revisionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + configurationId: configurationId, + revisionId: revisionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "policy", "fe1e68a2-60d3-43cb-855b-85e41ae97c95", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve all revisions for a given policy. + * + * @param {string} project - Project ID or project name + * @param {number} configurationId - The policy configuration ID. + * @param {number} top - The number of revisions to retrieve. + * @param {number} skip - The number of revisions to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100. + */ + getPolicyConfigurationRevisions(project, configurationId, top, skip) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + configurationId: configurationId + }; + let queryValues = { + '$top': top, + '$skip': skip, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "policy", "fe1e68a2-60d3-43cb-855b-85e41ae97c95", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve a specific policy type by ID. + * + * @param {string} project - Project ID or project name + * @param {string} typeId - The policy ID. + */ + getPolicyType(project, typeId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + typeId: typeId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "policy", "44096322-2d3d-466a-bb30-d1b7de69f61f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve all available policy types. + * + * @param {string} project - Project ID or project name + */ + getPolicyTypes(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "policy", "44096322-2d3d-466a-bb30-d1b7de69f61f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +PolicyApi.RESOURCE_AREA_ID = "fb13a388-40dd-4a04-b530-013a739c72ef"; +exports.PolicyApi = PolicyApi; + + +/***/ }), + +/***/ 8101: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* +* --------------------------------------------------------- +* Copyright(C) Microsoft Corporation. All rights reserved. +* --------------------------------------------------------- +* +* --------------------------------------------------------- +* Generated file, DO NOT EDIT +* --------------------------------------------------------- +*/ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const ProfileInterfaces = __nccwpck_require__(879); +class ProfileApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-Profile-api', options); + } + /** + * @param {string} id + * @param {string} descriptor + */ + deleteProfileAttribute(id, descriptor) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + id: id + }; + let queryValues = { + descriptor: descriptor, + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.2", "Profile", "1392b6ac-d511-492e-af5b-2263e5545a5d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} id + * @param {string} descriptor + */ + getProfileAttribute(id, descriptor) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + id: id + }; + let queryValues = { + descriptor: descriptor, + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.2", "Profile", "1392b6ac-d511-492e-af5b-2263e5545a5d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.ProfileAttribute, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} id + * @param {string} partition + * @param {string} modifiedSince + * @param {string} modifiedAfterRevision + * @param {boolean} withCoreAttributes + * @param {string} coreAttributes + */ + getProfileAttributes(id, partition, modifiedSince, modifiedAfterRevision, withCoreAttributes, coreAttributes) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + id: id + }; + let queryValues = { + partition: partition, + modifiedSince: modifiedSince, + modifiedAfterRevision: modifiedAfterRevision, + withCoreAttributes: withCoreAttributes, + coreAttributes: coreAttributes, + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.2", "Profile", "1392b6ac-d511-492e-af5b-2263e5545a5d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.ProfileAttribute, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {any} container + * @param {string} id + * @param {string} descriptor + */ + setProfileAttribute(container, id, descriptor) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + id: id + }; + let queryValues = { + descriptor: descriptor, + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.2", "Profile", "1392b6ac-d511-492e-af5b-2263e5545a5d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, container, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {VSSInterfaces.VssJsonCollectionWrapperV[]>} attributesCollection + * @param {string} id + */ + setProfileAttributes(attributesCollection, id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.2", "Profile", "1392b6ac-d511-492e-af5b-2263e5545a5d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, attributesCollection, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} id + * @param {string} size + * @param {string} format + */ + getAvatar(id, size, format) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + id: id + }; + let queryValues = { + size: size, + format: format, + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.1", "Profile", "67436615-b382-462a-b659-5367a492fb3c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Avatar, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {any} container + * @param {string} id + * @param {string} size + * @param {string} format + * @param {string} displayName + */ + getAvatarPreview(container, id, size, format, displayName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + id: id + }; + let queryValues = { + size: size, + format: format, + displayName: displayName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.1", "Profile", "67436615-b382-462a-b659-5367a492fb3c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, container, options); + let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Avatar, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} id + */ + resetAvatar(id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.1", "Profile", "67436615-b382-462a-b659-5367a492fb3c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {any} container + * @param {string} id + */ + setAvatar(container, id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.1", "Profile", "67436615-b382-462a-b659-5367a492fb3c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, container, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Lookup up country/region based on provided IPv4, null if using the remote IPv4 address. + * + * @param {string} ipaddress - IPv4 address to be used for reverse lookup, null if using RemoteIPAddress in request context + */ + getGeoRegion(ipaddress) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + ipaddress: ipaddress, + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.1", "Profile", "3bcda9c0-3078-48a5-a1e0-83bd05931ad0", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create profile + * + * @param {ProfileInterfaces.CreateProfileContext} createProfileContext - Context for profile creation + * @param {boolean} autoCreate - Create profile automatically + */ + createProfile(createProfileContext, autoCreate) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + autoCreate: autoCreate, + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.3", "Profile", "f83735dc-483f-4238-a291-d45f6080a9af", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, createProfileContext, options); + let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} id + * @param {boolean} details + * @param {boolean} withAttributes + * @param {string} partition + * @param {string} coreAttributes + * @param {boolean} forceRefresh + */ + getProfile(id, details, withAttributes, partition, coreAttributes, forceRefresh) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + id: id + }; + let queryValues = { + details: details, + withAttributes: withAttributes, + partition: partition, + coreAttributes: coreAttributes, + forceRefresh: forceRefresh, + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.3", "Profile", "f83735dc-483f-4238-a291-d45f6080a9af", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update profile + * + * @param {ProfileInterfaces.Profile} profile - Update profile + * @param {string} id - Profile ID + */ + updateProfile(profile, id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.3", "Profile", "f83735dc-483f-4238-a291-d45f6080a9af", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, profile, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + */ + getRegions() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.1", "Profile", "92d8d1c9-26b8-4774-a929-d640a73da524", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + */ + getSupportedLcids() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.1", "Profile", "d5bd1aa6-c269-4bcd-ad32-75fa17475584", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {boolean} includeAvatar + */ + getUserDefaults(includeAvatar) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + includeAvatar: includeAvatar, + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.1", "Profile", "b583a356-1da7-4237-9f4c-1deb2edbc7e8", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} id + */ + refreshUserDefaults(id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.1", "Profile", "b583a356-1da7-4237-9f4c-1deb2edbc7e8", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, options); + let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +exports.ProfileApi = ProfileApi; + + +/***/ }), + +/***/ 1682: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const ProjectAnalysisInterfaces = __nccwpck_require__(4323); +class ProjectAnalysisApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-ProjectAnalysis-api', options); + } + /** + * @param {string} project - Project ID or project name + */ + getProjectLanguageAnalytics(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "projectanalysis", "5b02a779-1867-433f-90b7-d23ed5e33e57", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.ProjectLanguageAnalytics, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {Date} fromDate + * @param {ProjectAnalysisInterfaces.AggregationType} aggregationType + */ + getProjectActivityMetrics(project, fromDate, aggregationType) { + return __awaiter(this, void 0, void 0, function* () { + if (fromDate == null) { + throw new TypeError('fromDate can not be null or undefined'); + } + if (aggregationType == null) { + throw new TypeError('aggregationType can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + fromDate: fromDate, + aggregationType: aggregationType, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "projectanalysis", "e40ae584-9ea6-4f06-a7c7-6284651b466b", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.ProjectActivityMetrics, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieves git activity metrics for repositories matching a specified criteria. + * + * @param {string} project - Project ID or project name + * @param {Date} fromDate - Date from which, the trends are to be fetched. + * @param {ProjectAnalysisInterfaces.AggregationType} aggregationType - Bucket size on which, trends are to be aggregated. + * @param {number} skip - The number of repositories to ignore. + * @param {number} top - The number of repositories for which activity metrics are to be retrieved. + */ + getGitRepositoriesActivityMetrics(project, fromDate, aggregationType, skip, top) { + return __awaiter(this, void 0, void 0, function* () { + if (fromDate == null) { + throw new TypeError('fromDate can not be null or undefined'); + } + if (aggregationType == null) { + throw new TypeError('aggregationType can not be null or undefined'); + } + if (skip == null) { + throw new TypeError('skip can not be null or undefined'); + } + if (top == null) { + throw new TypeError('top can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + fromDate: fromDate, + aggregationType: aggregationType, + '$skip': skip, + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "projectanalysis", "df7fbbca-630a-40e3-8aa3-7a3faf66947e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.RepositoryActivityMetrics, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {string} repositoryId + * @param {Date} fromDate + * @param {ProjectAnalysisInterfaces.AggregationType} aggregationType + */ + getRepositoryActivityMetrics(project, repositoryId, fromDate, aggregationType) { + return __awaiter(this, void 0, void 0, function* () { + if (fromDate == null) { + throw new TypeError('fromDate can not be null or undefined'); + } + if (aggregationType == null) { + throw new TypeError('aggregationType can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + repositoryId: repositoryId + }; + let queryValues = { + fromDate: fromDate, + aggregationType: aggregationType, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "projectanalysis", "df7fbbca-630a-40e3-8aa3-7a3faf66947e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.RepositoryActivityMetrics, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +ProjectAnalysisApi.RESOURCE_AREA_ID = "7658fa33-b1bf-4580-990f-fac5896773d3"; +exports.ProjectAnalysisApi = ProjectAnalysisApi; + + +/***/ }), + +/***/ 3075: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const ReleaseInterfaces = __nccwpck_require__(7421); +class ReleaseApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-Release-api', options); + } + /** + * Returns the artifact details that automation agent requires + * + * @param {string} project - Project ID or project name + * @param {number} releaseId + */ + getAgentArtifactDefinitions(project, releaseId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "f2571c27-bf50-4938-b396-32d109ddef26", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.AgentArtifactDefinition, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of approvals + * + * @param {string} project - Project ID or project name + * @param {string} assignedToFilter - Approvals assigned to this user. + * @param {ReleaseInterfaces.ApprovalStatus} statusFilter - Approvals with this status. Default is 'pending'. + * @param {number[]} releaseIdsFilter - Approvals for release id(s) mentioned in the filter. Multiple releases can be mentioned by separating them with ',' e.g. releaseIdsFilter=1,2,3,4. + * @param {ReleaseInterfaces.ApprovalType} typeFilter - Approval with this type. + * @param {number} top - Number of approvals to get. Default is 50. + * @param {number} continuationToken - Gets the approvals after the continuation token provided. + * @param {ReleaseInterfaces.ReleaseQueryOrder} queryOrder - Gets the results in the defined order of created approvals. Default is 'descending'. + * @param {boolean} includeMyGroupApprovals - 'true' to include my group approvals. Default is 'false'. + */ + getApprovals(project, assignedToFilter, statusFilter, releaseIdsFilter, typeFilter, top, continuationToken, queryOrder, includeMyGroupApprovals) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + assignedToFilter: assignedToFilter, + statusFilter: statusFilter, + releaseIdsFilter: releaseIdsFilter && releaseIdsFilter.join(","), + typeFilter: typeFilter, + top: top, + continuationToken: continuationToken, + queryOrder: queryOrder, + includeMyGroupApprovals: includeMyGroupApprovals, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Release", "b47c6458-e73b-47cb-a770-4df1e8813a91", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get approval history. + * + * @param {string} project - Project ID or project name + * @param {number} approvalStepId - Id of the approval. + */ + getApprovalHistory(project, approvalStepId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + approvalStepId: approvalStepId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Release", "250c7158-852e-4130-a00f-a0cce9b72d05", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get an approval. + * + * @param {string} project - Project ID or project name + * @param {number} approvalId - Id of the approval. + * @param {boolean} includeHistory - 'true' to include history of the approval. Default is 'false'. + */ + getApproval(project, approvalId, includeHistory) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + approvalId: approvalId + }; + let queryValues = { + includeHistory: includeHistory, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Release", "9328e074-59fb-465a-89d9-b09c82ee5109", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update status of an approval + * + * @param {ReleaseInterfaces.ReleaseApproval} approval - ReleaseApproval object having status, approver and comments. + * @param {string} project - Project ID or project name + * @param {number} approvalId - Id of the approval. + */ + updateReleaseApproval(approval, project, approvalId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + approvalId: approvalId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Release", "9328e074-59fb-465a-89d9-b09c82ee5109", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, approval, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {ReleaseInterfaces.ReleaseApproval[]} approvals + * @param {string} project - Project ID or project name + */ + updateReleaseApprovals(approvals, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Release", "c957584a-82aa-4131-8222-6d47f78bfa7a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, approvals, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a task attachment. + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + * @param {number} environmentId - Id of the release environment. + * @param {number} attemptId - Attempt number of deployment. + * @param {string} timelineId - Timeline Id of the task. + * @param {string} recordId - Record Id of attachment. + * @param {string} type - Type of the attachment. + * @param {string} name - Name of the attachment. + */ + getTaskAttachmentContent(project, releaseId, environmentId, attemptId, timelineId, recordId, type, name) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + environmentId: environmentId, + attemptId: attemptId, + timelineId: timelineId, + recordId: recordId, + type: type, + name: name + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "c4071f6d-3697-46ca-858e-8b10ff09e52f", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a release task attachment. + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + * @param {number} environmentId - Id of the release environment. + * @param {number} attemptId - Attempt number of deployment. + * @param {string} planId - Plan Id of the deploy phase. + * @param {string} timelineId - Timeline Id of the task. + * @param {string} recordId - Record Id of attachment. + * @param {string} type - Type of the attachment. + * @param {string} name - Name of the attachment. + */ + getReleaseTaskAttachmentContent(project, releaseId, environmentId, attemptId, planId, timelineId, recordId, type, name) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + environmentId: environmentId, + attemptId: attemptId, + planId: planId, + timelineId: timelineId, + recordId: recordId, + type: type, + name: name + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "60b86efb-7b8c-4853-8f9f-aa142b77b479", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the task attachments. + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + * @param {number} environmentId - Id of the release environment. + * @param {number} attemptId - Attempt number of deployment. + * @param {string} timelineId - Timeline Id of the task. + * @param {string} type - Type of the attachment. + */ + getTaskAttachments(project, releaseId, environmentId, attemptId, timelineId, type) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + environmentId: environmentId, + attemptId: attemptId, + timelineId: timelineId, + type: type + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "214111ee-2415-4df2-8ed2-74417f7d61f9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTaskAttachment, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the release task attachments. + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + * @param {number} environmentId - Id of the release environment. + * @param {number} attemptId - Attempt number of deployment. + * @param {string} planId - Plan Id of the deploy phase. + * @param {string} type - Type of the attachment. + */ + getReleaseTaskAttachments(project, releaseId, environmentId, attemptId, planId, type) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + environmentId: environmentId, + attemptId: attemptId, + planId: planId, + type: type + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "a4d06688-0dfa-4895-82a5-f43ec9452306", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTaskAttachment, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} artifactType + * @param {string} sourceId + * @param {string} artifactVersionId + * @param {string} project - Project ID or project name + */ + getAutoTriggerIssues(artifactType, sourceId, artifactVersionId, project) { + return __awaiter(this, void 0, void 0, function* () { + if (artifactType == null) { + throw new TypeError('artifactType can not be null or undefined'); + } + if (sourceId == null) { + throw new TypeError('sourceId can not be null or undefined'); + } + if (artifactVersionId == null) { + throw new TypeError('artifactVersionId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + artifactType: artifactType, + sourceId: sourceId, + artifactVersionId: artifactVersionId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "c1a68497-69da-40fb-9423-cab19cfeeca9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.AutoTriggerIssue, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a badge that indicates the status of the most recent deployment for an environment. + * + * @param {string} projectId - The ID of the Project. + * @param {number} releaseDefinitionId - The ID of the Release Definition. + * @param {number} environmentId - The ID of the Environment. + * @param {string} branchName - The name of the branch. + */ + getDeploymentBadge(projectId, releaseDefinitionId, environmentId, branchName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + projectId: projectId, + releaseDefinitionId: releaseDefinitionId, + environmentId: environmentId, + branchName: branchName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "1a60a35d-b8c9-45fb-bf67-da0829711147", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} releaseId + * @param {number} baseReleaseId + * @param {number} top + * @param {string} artifactAlias + */ + getReleaseChanges(project, releaseId, baseReleaseId, top, artifactAlias) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + let queryValues = { + baseReleaseId: baseReleaseId, + '$top': top, + artifactAlias: artifactAlias, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "8dcf9fe9-ca37-4113-8ee1-37928e98407c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Change, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {string} taskGroupId + * @param {string[]} propertyFilters + */ + getDefinitionEnvironments(project, taskGroupId, propertyFilters) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + taskGroupId: taskGroupId, + propertyFilters: propertyFilters && propertyFilters.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "12b5d21a-f54c-430e-a8c1-7515d196890e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a release definition + * + * @param {ReleaseInterfaces.ReleaseDefinition} releaseDefinition - release definition object to create. + * @param {string} project - Project ID or project name + */ + createReleaseDefinition(releaseDefinition, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Release", "d8f96f24-8ea7-4cb6-baab-2df8fc515665", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, releaseDefinition, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a release definition. + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - Id of the release definition. + * @param {string} comment - Comment for deleting a release definition. + * @param {boolean} forceDelete - 'true' to automatically cancel any in-progress release deployments and proceed with release definition deletion . Default is 'false'. + */ + deleteReleaseDefinition(project, definitionId, comment, forceDelete) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + let queryValues = { + comment: comment, + forceDelete: forceDelete, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Release", "d8f96f24-8ea7-4cb6-baab-2df8fc515665", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a release definition. + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - Id of the release definition. + * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Release Definition will contain values for the specified property Ids (if they exist). If not set, properties will not be included. + */ + getReleaseDefinition(project, definitionId, propertyFilters) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + let queryValues = { + propertyFilters: propertyFilters && propertyFilters.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Release", "d8f96f24-8ea7-4cb6-baab-2df8fc515665", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get release definition of a given revision. + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - Id of the release definition. + * @param {number} revision - Revision number of the release definition. + */ + getReleaseDefinitionRevision(project, definitionId, revision) { + return __awaiter(this, void 0, void 0, function* () { + if (revision == null) { + throw new TypeError('revision can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + let queryValues = { + revision: revision, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Release", "d8f96f24-8ea7-4cb6-baab-2df8fc515665", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/plain", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of release definitions. + * + * @param {string} project - Project ID or project name + * @param {string} searchText - Get release definitions with names containing searchText. + * @param {ReleaseInterfaces.ReleaseDefinitionExpands} expand - The properties that should be expanded in the list of Release definitions. + * @param {string} artifactType - Release definitions with given artifactType will be returned. Values can be Build, Jenkins, GitHub, Nuget, Team Build (external), ExternalTFSBuild, Git, TFVC, ExternalTfsXamlBuild. + * @param {string} artifactSourceId - Release definitions with given artifactSourceId will be returned. e.g. For build it would be {projectGuid}:{BuildDefinitionId}, for Jenkins it would be {JenkinsConnectionId}:{JenkinsDefinitionId}, for TfsOnPrem it would be {TfsOnPremConnectionId}:{ProjectName}:{TfsOnPremDefinitionId}. For third-party artifacts e.g. TeamCity, BitBucket you may refer 'uniqueSourceIdentifier' inside vss-extension.json at https://github.com/Microsoft/vsts-rm-extensions/blob/master/Extensions. + * @param {number} top - Number of release definitions to get. + * @param {string} continuationToken - Gets the release definitions after the continuation token provided. + * @param {ReleaseInterfaces.ReleaseDefinitionQueryOrder} queryOrder - Gets the results in the defined order. Default is 'IdAscending'. + * @param {string} path - Gets the release definitions under the specified path. + * @param {boolean} isExactNameMatch - 'true'to gets the release definitions with exact match as specified in searchText. Default is 'false'. + * @param {string[]} tagFilter - A comma-delimited list of tags. Only release definitions with these tags will be returned. + * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Release Definitions will contain values for the specified property Ids (if they exist). If not set, properties will not be included. Note that this will not filter out any Release Definition from results irrespective of whether it has property set or not. + * @param {string[]} definitionIdFilter - A comma-delimited list of release definitions to retrieve. + * @param {boolean} isDeleted - 'true' to get release definitions that has been deleted. Default is 'false' + * @param {boolean} searchTextContainsFolderName - 'true' to get the release definitions under the folder with name as specified in searchText. Default is 'false'. + */ + getReleaseDefinitions(project, searchText, expand, artifactType, artifactSourceId, top, continuationToken, queryOrder, path, isExactNameMatch, tagFilter, propertyFilters, definitionIdFilter, isDeleted, searchTextContainsFolderName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + searchText: searchText, + '$expand': expand, + artifactType: artifactType, + artifactSourceId: artifactSourceId, + '$top': top, + continuationToken: continuationToken, + queryOrder: queryOrder, + path: path, + isExactNameMatch: isExactNameMatch, + tagFilter: tagFilter && tagFilter.join(","), + propertyFilters: propertyFilters && propertyFilters.join(","), + definitionIdFilter: definitionIdFilter && definitionIdFilter.join(","), + isDeleted: isDeleted, + searchTextContainsFolderName: searchTextContainsFolderName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Release", "d8f96f24-8ea7-4cb6-baab-2df8fc515665", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Undelete a release definition. + * + * @param {ReleaseInterfaces.ReleaseDefinitionUndeleteParameter} releaseDefinitionUndeleteParameter - Object for undelete release definition. + * @param {string} project - Project ID or project name + * @param {number} definitionId - Id of the release definition to be undeleted + */ + undeleteReleaseDefinition(releaseDefinitionUndeleteParameter, project, definitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Release", "d8f96f24-8ea7-4cb6-baab-2df8fc515665", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, releaseDefinitionUndeleteParameter, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a release definition. + * + * @param {ReleaseInterfaces.ReleaseDefinition} releaseDefinition - Release definition object to update. + * @param {string} project - Project ID or project name + */ + updateReleaseDefinition(releaseDefinition, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Release", "d8f96f24-8ea7-4cb6-baab-2df8fc515665", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, releaseDefinition, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} definitionId + * @param {number} definitionEnvironmentId + * @param {string} createdBy + * @param {Date} minModifiedTime + * @param {Date} maxModifiedTime + * @param {ReleaseInterfaces.DeploymentStatus} deploymentStatus + * @param {ReleaseInterfaces.DeploymentOperationStatus} operationStatus + * @param {boolean} latestAttemptsOnly + * @param {ReleaseInterfaces.ReleaseQueryOrder} queryOrder + * @param {number} top + * @param {number} continuationToken + * @param {string} createdFor + * @param {Date} minStartedTime + * @param {Date} maxStartedTime + * @param {string} sourceBranch + */ + getDeployments(project, definitionId, definitionEnvironmentId, createdBy, minModifiedTime, maxModifiedTime, deploymentStatus, operationStatus, latestAttemptsOnly, queryOrder, top, continuationToken, createdFor, minStartedTime, maxStartedTime, sourceBranch) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + definitionId: definitionId, + definitionEnvironmentId: definitionEnvironmentId, + createdBy: createdBy, + minModifiedTime: minModifiedTime, + maxModifiedTime: maxModifiedTime, + deploymentStatus: deploymentStatus, + operationStatus: operationStatus, + latestAttemptsOnly: latestAttemptsOnly, + queryOrder: queryOrder, + '$top': top, + continuationToken: continuationToken, + createdFor: createdFor, + minStartedTime: minStartedTime, + maxStartedTime: maxStartedTime, + sourceBranch: sourceBranch, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Release", "b005ef73-cddc-448e-9ba2-5193bf36b19f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Deployment, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {ReleaseInterfaces.DeploymentQueryParameters} queryParameters + * @param {string} project - Project ID or project name + */ + getDeploymentsForMultipleEnvironments(queryParameters, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Release", "b005ef73-cddc-448e-9ba2-5193bf36b19f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, queryParameters, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Deployment, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a release environment. + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + * @param {number} environmentId - Id of the release environment. + * @param {ReleaseInterfaces.ReleaseEnvironmentExpands} expand - A property that should be expanded in the environment. + */ + getReleaseEnvironment(project, releaseId, environmentId, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + environmentId: environmentId + }; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.7", "Release", "a7e426b1-03dc-48af-9dfe-c98bac612dcb", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseEnvironment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update the status of a release environment + * + * @param {ReleaseInterfaces.ReleaseEnvironmentUpdateMetadata} environmentUpdateData - Environment update meta data. + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + * @param {number} environmentId - Id of release environment. + */ + updateReleaseEnvironment(environmentUpdateData, project, releaseId, environmentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + environmentId: environmentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.7", "Release", "a7e426b1-03dc-48af-9dfe-c98bac612dcb", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, environmentUpdateData, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseEnvironment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a definition environment template + * + * @param {ReleaseInterfaces.ReleaseDefinitionEnvironmentTemplate} template - Definition environment template to create + * @param {string} project - Project ID or project name + */ + createDefinitionEnvironmentTemplate(template, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Release", "6b03b696-824e-4479-8eb2-6644a51aba89", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, template, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a definition environment template + * + * @param {string} project - Project ID or project name + * @param {string} templateId - Id of the definition environment template + */ + deleteDefinitionEnvironmentTemplate(project, templateId) { + return __awaiter(this, void 0, void 0, function* () { + if (templateId == null) { + throw new TypeError('templateId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + templateId: templateId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Release", "6b03b696-824e-4479-8eb2-6644a51aba89", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a definition environment template + * + * @param {string} project - Project ID or project name + * @param {string} templateId - Id of the definition environment template + */ + getDefinitionEnvironmentTemplate(project, templateId) { + return __awaiter(this, void 0, void 0, function* () { + if (templateId == null) { + throw new TypeError('templateId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + templateId: templateId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Release", "6b03b696-824e-4479-8eb2-6644a51aba89", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a list of definition environment templates + * + * @param {string} project - Project ID or project name + * @param {boolean} isDeleted - 'true' to get definition environment templates that have been deleted. Default is 'false' + */ + listDefinitionEnvironmentTemplates(project, isDeleted) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + isDeleted: isDeleted, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Release", "6b03b696-824e-4479-8eb2-6644a51aba89", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Undelete a release definition environment template. + * + * @param {string} project - Project ID or project name + * @param {string} templateId - Id of the definition environment template to be undeleted + */ + undeleteReleaseDefinitionEnvironmentTemplate(project, templateId) { + return __awaiter(this, void 0, void 0, function* () { + if (templateId == null) { + throw new TypeError('templateId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + templateId: templateId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.4", "Release", "6b03b696-824e-4479-8eb2-6644a51aba89", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, null, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {ReleaseInterfaces.FavoriteItem[]} favoriteItems + * @param {string} project - Project ID or project name + * @param {string} scope + * @param {string} identityId + */ + createFavorites(favoriteItems, project, scope, identityId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + scope: scope + }; + let queryValues = { + identityId: identityId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "938f7222-9acb-48fe-b8a3-4eda04597171", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, favoriteItems, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {string} scope + * @param {string} identityId + * @param {string} favoriteItemIds + */ + deleteFavorites(project, scope, identityId, favoriteItemIds) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + scope: scope + }; + let queryValues = { + identityId: identityId, + favoriteItemIds: favoriteItemIds, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "938f7222-9acb-48fe-b8a3-4eda04597171", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {string} scope + * @param {string} identityId + */ + getFavorites(project, scope, identityId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + scope: scope + }; + let queryValues = { + identityId: identityId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "938f7222-9acb-48fe-b8a3-4eda04597171", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} flightName + */ + getFlightAssignments(flightName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + flightName: flightName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "409d301f-3046-46f3-beb9-4357fbce0a8c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a new folder. + * + * @param {ReleaseInterfaces.Folder} folder - folder. + * @param {string} project - Project ID or project name + * @param {string} path - Path of the folder. + */ + createFolder(folder, project, path) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + path: path + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Release", "f7ddf76d-ce0c-4d68-94ff-becaec5d9dea", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, folder, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Folder, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes a definition folder for given folder name and path and all it's existing definitions. + * + * @param {string} project - Project ID or project name + * @param {string} path - Path of the folder to delete. + */ + deleteFolder(project, path) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + path: path + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Release", "f7ddf76d-ce0c-4d68-94ff-becaec5d9dea", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets folders. + * + * @param {string} project - Project ID or project name + * @param {string} path - Path of the folder. + * @param {ReleaseInterfaces.FolderPathQueryOrder} queryOrder - Gets the results in the defined order. Default is 'None'. + */ + getFolders(project, path, queryOrder) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + path: path + }; + let queryValues = { + queryOrder: queryOrder, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Release", "f7ddf76d-ce0c-4d68-94ff-becaec5d9dea", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Folder, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates an existing folder at given existing path. + * + * @param {ReleaseInterfaces.Folder} folder - folder. + * @param {string} project - Project ID or project name + * @param {string} path - Path of the folder to update. + */ + updateFolder(folder, project, path) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + path: path + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Release", "f7ddf76d-ce0c-4d68-94ff-becaec5d9dea", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, folder, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Folder, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates the gate for a deployment. + * + * @param {ReleaseInterfaces.GateUpdateMetadata} gateUpdateMetadata - Metadata to patch the Release Gates. + * @param {string} project - Project ID or project name + * @param {number} gateStepId - Gate step Id. + */ + updateGates(gateUpdateMetadata, project, gateStepId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + gateStepId: gateStepId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "2666a539-2001-4f80-bcc7-0379956749d4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, gateUpdateMetadata, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseGates, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} releaseId + */ + getReleaseHistory(project, releaseId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "23f461c8-629a-4144-a076-3054fa5f268a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseRevision, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {FormInputInterfaces.InputValuesQuery} query + * @param {string} project - Project ID or project name + */ + getInputValues(query, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "71dd499b-317d-45ea-9134-140ea1932b5e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, query, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} buildId + * @param {string} sourceId + */ + getIssues(project, buildId, sourceId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + buildId: buildId + }; + let queryValues = { + sourceId: sourceId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "cd42261a-f5c6-41c8-9259-f078989b9f25", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.AutoTriggerIssue, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets gate logs + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + * @param {number} environmentId - Id of release environment. + * @param {number} gateId - Id of the gate. + * @param {number} taskId - ReleaseTask Id for the log. + */ + getGateLog(project, releaseId, environmentId, gateId, taskId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + environmentId: environmentId, + gateId: gateId, + taskId: taskId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Release", "dec7ca5a-7f7f-4797-8bf1-8efc0dc93b28", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/plain", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get logs for a release Id. + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + */ + getLogs(project, releaseId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Release", "c37fbab5-214b-48e4-a55b-cb6b4f6e4038", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets logs + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + * @param {number} environmentId - Id of release environment. + * @param {number} taskId - ReleaseTask Id for the log. + * @param {number} attemptId - Id of the attempt. + */ + getLog(project, releaseId, environmentId, taskId, attemptId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + environmentId: environmentId, + taskId: taskId + }; + let queryValues = { + attemptId: attemptId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Release", "e71ba1ed-c0a4-4a28-a61f-2dd5f68cf3fd", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/plain", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the task log of a release as a plain text file. + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + * @param {number} environmentId - Id of release environment. + * @param {number} attemptId + * @param {string} timelineId + * @param {number} taskId - ReleaseTask Id for the log. + * @param {number} startLine - Starting line number for logs + * @param {number} endLine - Ending line number for logs + */ + getTaskLog2(project, releaseId, environmentId, attemptId, timelineId, taskId, startLine, endLine) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + environmentId: environmentId, + attemptId: attemptId, + timelineId: timelineId, + taskId: taskId + }; + let queryValues = { + startLine: startLine, + endLine: endLine, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Release", "2577e6c3-6999-4400-bc69-fe1d837755fe", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/plain", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the task log of a release as a plain text file. + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + * @param {number} environmentId - Id of release environment. + * @param {number} releaseDeployPhaseId - Release deploy phase Id. + * @param {number} taskId - ReleaseTask Id for the log. + * @param {number} startLine - Starting line number for logs + * @param {number} endLine - Ending line number for logs + */ + getTaskLog(project, releaseId, environmentId, releaseDeployPhaseId, taskId, startLine, endLine) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + environmentId: environmentId, + releaseDeployPhaseId: releaseDeployPhaseId, + taskId: taskId + }; + let queryValues = { + startLine: startLine, + endLine: endLine, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Release", "17c91af7-09fd-4256-bff1-c24ee4f73bc0", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/plain", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get manual intervention for a given release and manual intervention id. + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + * @param {number} manualInterventionId - Id of the manual intervention. + */ + getManualIntervention(project, releaseId, manualInterventionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + manualInterventionId: manualInterventionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "616c46e4-f370-4456-adaa-fbaf79c7b79e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ManualIntervention, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * List all manual interventions for a given release. + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + */ + getManualInterventions(project, releaseId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "616c46e4-f370-4456-adaa-fbaf79c7b79e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ManualIntervention, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update manual intervention. + * + * @param {ReleaseInterfaces.ManualInterventionUpdateMetadata} manualInterventionUpdateMetadata - Meta data to update manual intervention. + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + * @param {number} manualInterventionId - Id of the manual intervention. + */ + updateManualIntervention(manualInterventionUpdateMetadata, project, releaseId, manualInterventionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + manualInterventionId: manualInterventionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "616c46e4-f370-4456-adaa-fbaf79c7b79e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, manualInterventionUpdateMetadata, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ManualIntervention, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {Date} minMetricsTime + */ + getMetrics(project, minMetricsTime) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + minMetricsTime: minMetricsTime, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "cd1502bb-3c73-4e11-80a6-d11308dceae5", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets Org pipeline release settings + * + */ + getOrgPipelineReleaseSettings() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "d156c759-ca4e-492b-90d4-db03971796ea", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates Org pipeline release settings + * + * @param {ReleaseInterfaces.OrgPipelineReleaseSettingsUpdateParameters} newSettings + */ + updateOrgPipelineReleaseSettings(newSettings) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "d156c759-ca4e-492b-90d4-db03971796ea", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, newSettings, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets pipeline release settings + * + * @param {string} project - Project ID or project name + */ + getPipelineReleaseSettings(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "e816b9f4-f9fe-46ba-bdcc-a9af6abf3144", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates pipeline release settings + * + * @param {ReleaseInterfaces.ProjectPipelineReleaseSettingsUpdateParameters} newSettings + * @param {string} project - Project ID or project name + */ + updatePipelineReleaseSettings(newSettings, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "e816b9f4-f9fe-46ba-bdcc-a9af6abf3144", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, newSettings, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} artifactType + * @param {string} artifactSourceId + */ + getReleaseProjects(artifactType, artifactSourceId) { + return __awaiter(this, void 0, void 0, function* () { + if (artifactType == null) { + throw new TypeError('artifactType can not be null or undefined'); + } + if (artifactSourceId == null) { + throw new TypeError('artifactSourceId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + artifactType: artifactType, + artifactSourceId: artifactSourceId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "917ace4a-79d1-45a7-987c-7be4db4268fa", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of releases + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - Releases from this release definition Id. + * @param {number} definitionEnvironmentId + * @param {string} searchText - Releases with names containing searchText. + * @param {string} createdBy - Releases created by this user. + * @param {ReleaseInterfaces.ReleaseStatus} statusFilter - Releases that have this status. + * @param {number} environmentStatusFilter + * @param {Date} minCreatedTime - Releases that were created after this time. + * @param {Date} maxCreatedTime - Releases that were created before this time. + * @param {ReleaseInterfaces.ReleaseQueryOrder} queryOrder - Gets the results in the defined order of created date for releases. Default is descending. + * @param {number} top - Number of releases to get. Default is 50. + * @param {number} continuationToken - Gets the releases after the continuation token provided. + * @param {ReleaseInterfaces.ReleaseExpands} expand - The property that should be expanded in the list of releases. + * @param {string} artifactTypeId - Releases with given artifactTypeId will be returned. Values can be Build, Jenkins, GitHub, Nuget, Team Build (external), ExternalTFSBuild, Git, TFVC, ExternalTfsXamlBuild. + * @param {string} sourceId - Unique identifier of the artifact used. e.g. For build it would be {projectGuid}:{BuildDefinitionId}, for Jenkins it would be {JenkinsConnectionId}:{JenkinsDefinitionId}, for TfsOnPrem it would be {TfsOnPremConnectionId}:{ProjectName}:{TfsOnPremDefinitionId}. For third-party artifacts e.g. TeamCity, BitBucket you may refer 'uniqueSourceIdentifier' inside vss-extension.json https://github.com/Microsoft/vsts-rm-extensions/blob/master/Extensions. + * @param {string} artifactVersionId - Releases with given artifactVersionId will be returned. E.g. in case of Build artifactType, it is buildId. + * @param {string} sourceBranchFilter - Releases with given sourceBranchFilter will be returned. + * @param {boolean} isDeleted - Gets the soft deleted releases, if true. + * @param {string[]} tagFilter - A comma-delimited list of tags. Only releases with these tags will be returned. + * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Releases will contain values for the specified property Ids (if they exist). If not set, properties will not be included. Note that this will not filter out any Release from results irrespective of whether it has property set or not. + * @param {number[]} releaseIdFilter - A comma-delimited list of releases Ids. Only releases with these Ids will be returned. + * @param {string} path - Releases under this folder path will be returned + */ + getReleases(project, definitionId, definitionEnvironmentId, searchText, createdBy, statusFilter, environmentStatusFilter, minCreatedTime, maxCreatedTime, queryOrder, top, continuationToken, expand, artifactTypeId, sourceId, artifactVersionId, sourceBranchFilter, isDeleted, tagFilter, propertyFilters, releaseIdFilter, path) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + definitionId: definitionId, + definitionEnvironmentId: definitionEnvironmentId, + searchText: searchText, + createdBy: createdBy, + statusFilter: statusFilter, + environmentStatusFilter: environmentStatusFilter, + minCreatedTime: minCreatedTime, + maxCreatedTime: maxCreatedTime, + queryOrder: queryOrder, + '$top': top, + continuationToken: continuationToken, + '$expand': expand, + artifactTypeId: artifactTypeId, + sourceId: sourceId, + artifactVersionId: artifactVersionId, + sourceBranchFilter: sourceBranchFilter, + isDeleted: isDeleted, + tagFilter: tagFilter && tagFilter.join(","), + propertyFilters: propertyFilters && propertyFilters.join(","), + releaseIdFilter: releaseIdFilter && releaseIdFilter.join(","), + path: path, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.8", "Release", "a166fde7-27ad-408e-ba75-703c2cc9d500", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a release. + * + * @param {ReleaseInterfaces.ReleaseStartMetadata} releaseStartMetadata - Metadata to create a release. + * @param {string} project - Project ID or project name + */ + createRelease(releaseStartMetadata, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.8", "Release", "a166fde7-27ad-408e-ba75-703c2cc9d500", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, releaseStartMetadata, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Soft delete a release + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + * @param {string} comment - Comment for deleting a release. + */ + deleteRelease(project, releaseId, comment) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + let queryValues = { + comment: comment, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.8", "Release", "a166fde7-27ad-408e-ba75-703c2cc9d500", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a Release + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + * @param {ReleaseInterfaces.ApprovalFilters} approvalFilters - A filter which would allow fetching approval steps selectively based on whether it is automated, or manual. This would also decide whether we should fetch pre and post approval snapshots. Assumes All by default + * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Release will contain values for the specified property Ids (if they exist). If not set, properties will not be included. + * @param {ReleaseInterfaces.SingleReleaseExpands} expand - A property that should be expanded in the release. + * @param {number} topGateRecords - Number of release gate records to get. Default is 5. + */ + getRelease(project, releaseId, approvalFilters, propertyFilters, expand, topGateRecords) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + let queryValues = { + approvalFilters: approvalFilters, + propertyFilters: propertyFilters && propertyFilters.join(","), + '$expand': expand, + '$topGateRecords': topGateRecords, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.8", "Release", "a166fde7-27ad-408e-ba75-703c2cc9d500", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get release summary of a given definition Id. + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - Id of the definition to get release summary. + * @param {number} releaseCount - Count of releases to be included in summary. + * @param {boolean} includeArtifact - Include artifact details.Default is 'false'. + * @param {number[]} definitionEnvironmentIdsFilter + */ + getReleaseDefinitionSummary(project, definitionId, releaseCount, includeArtifact, definitionEnvironmentIdsFilter) { + return __awaiter(this, void 0, void 0, function* () { + if (definitionId == null) { + throw new TypeError('definitionId can not be null or undefined'); + } + if (releaseCount == null) { + throw new TypeError('releaseCount can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + definitionId: definitionId, + releaseCount: releaseCount, + includeArtifact: includeArtifact, + definitionEnvironmentIdsFilter: definitionEnvironmentIdsFilter && definitionEnvironmentIdsFilter.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.8", "Release", "a166fde7-27ad-408e-ba75-703c2cc9d500", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionSummary, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get release for a given revision number. + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release. + * @param {number} definitionSnapshotRevision - Definition snapshot revision number. + */ + getReleaseRevision(project, releaseId, definitionSnapshotRevision) { + return __awaiter(this, void 0, void 0, function* () { + if (definitionSnapshotRevision == null) { + throw new TypeError('definitionSnapshotRevision can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + let queryValues = { + definitionSnapshotRevision: definitionSnapshotRevision, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.8", "Release", "a166fde7-27ad-408e-ba75-703c2cc9d500", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/plain", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Undelete a soft deleted release. + * + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of release to be undeleted. + * @param {string} comment - Any comment for undeleting. + */ + undeleteRelease(project, releaseId, comment) { + return __awaiter(this, void 0, void 0, function* () { + if (comment == null) { + throw new TypeError('comment can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + let queryValues = { + comment: comment, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.8", "Release", "a166fde7-27ad-408e-ba75-703c2cc9d500", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a complete release object. + * + * @param {ReleaseInterfaces.Release} release - Release object for update. + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release to update. + */ + updateRelease(release, project, releaseId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.8", "Release", "a166fde7-27ad-408e-ba75-703c2cc9d500", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, release, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update few properties of a release. + * + * @param {ReleaseInterfaces.ReleaseUpdateMetadata} releaseUpdateMetadata - Properties of release to update. + * @param {string} project - Project ID or project name + * @param {number} releaseId - Id of the release to update. + */ + updateReleaseResource(releaseUpdateMetadata, project, releaseId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.8", "Release", "a166fde7-27ad-408e-ba75-703c2cc9d500", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, releaseUpdateMetadata, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the release settings + * + * @param {string} project - Project ID or project name + */ + getReleaseSettings(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "c63c3718-7cfd-41e0-b89b-81c1ca143437", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates the release settings + * + * @param {ReleaseInterfaces.ReleaseSettings} releaseSettings + * @param {string} project - Project ID or project name + */ + updateReleaseSettings(releaseSettings, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "c63c3718-7cfd-41e0-b89b-81c1ca143437", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, releaseSettings, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get release definition for a given definitionId and revision + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - Id of the definition. + * @param {number} revision - Id of the revision. + */ + getDefinitionRevision(project, definitionId, revision) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId, + revision: revision + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "258b82e0-9d41-43f3-86d6-fef14ddd44bc", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/plain", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get revision history for a release definition + * + * @param {string} project - Project ID or project name + * @param {number} definitionId - Id of the definition. + */ + getReleaseDefinitionHistory(project, definitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "258b82e0-9d41-43f3-86d6-fef14ddd44bc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionRevision, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} releaseId + */ + getSummaryMailSections(project, releaseId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "224e92b2-8d13-4c14-b120-13d877c516f8", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.SummaryMailSection, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {ReleaseInterfaces.MailMessage} mailMessage + * @param {string} project - Project ID or project name + * @param {number} releaseId + */ + sendSummaryMail(mailMessage, project, releaseId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "224e92b2-8d13-4c14-b120-13d877c516f8", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, mailMessage, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} definitionId + */ + getSourceBranches(project, definitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + definitionId: definitionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "0e5def23-78b3-461f-8198-1558f25041c8", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds a tag to a definition + * + * @param {string} project - Project ID or project name + * @param {number} releaseDefinitionId + * @param {string} tag + */ + addDefinitionTag(project, releaseDefinitionId, tag) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseDefinitionId: releaseDefinitionId, + tag: tag + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "3d21b4c8-c32e-45b2-a7cb-770a369012f4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, null, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds multiple tags to a definition + * + * @param {string[]} tags + * @param {string} project - Project ID or project name + * @param {number} releaseDefinitionId + */ + addDefinitionTags(tags, project, releaseDefinitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseDefinitionId: releaseDefinitionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "3d21b4c8-c32e-45b2-a7cb-770a369012f4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, tags, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes a tag from a definition + * + * @param {string} project - Project ID or project name + * @param {number} releaseDefinitionId + * @param {string} tag + */ + deleteDefinitionTag(project, releaseDefinitionId, tag) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseDefinitionId: releaseDefinitionId, + tag: tag + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "3d21b4c8-c32e-45b2-a7cb-770a369012f4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the tags for a definition + * + * @param {string} project - Project ID or project name + * @param {number} releaseDefinitionId + */ + getDefinitionTags(project, releaseDefinitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseDefinitionId: releaseDefinitionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "3d21b4c8-c32e-45b2-a7cb-770a369012f4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds a tag to a releaseId + * + * @param {string} project - Project ID or project name + * @param {number} releaseId + * @param {string} tag + */ + addReleaseTag(project, releaseId, tag) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + tag: tag + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "c5b602b6-d1b3-4363-8a51-94384f78068f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, null, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds tag to a release + * + * @param {string[]} tags + * @param {string} project - Project ID or project name + * @param {number} releaseId + */ + addReleaseTags(tags, project, releaseId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "c5b602b6-d1b3-4363-8a51-94384f78068f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, tags, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes a tag from a release + * + * @param {string} project - Project ID or project name + * @param {number} releaseId + * @param {string} tag + */ + deleteReleaseTag(project, releaseId, tag) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + tag: tag + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "c5b602b6-d1b3-4363-8a51-94384f78068f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the tags for a release + * + * @param {string} project - Project ID or project name + * @param {number} releaseId + */ + getReleaseTags(project, releaseId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "c5b602b6-d1b3-4363-8a51-94384f78068f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + */ + getTags(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "86cee25a-68ba-4ba3-9171-8ad6ffc6df93", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} releaseId + * @param {number} environmentId + * @param {number} releaseDeployPhaseId + */ + getTasksForTaskGroup(project, releaseId, environmentId, releaseDeployPhaseId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + environmentId: environmentId, + releaseDeployPhaseId: releaseDeployPhaseId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Release", "4259191d-4b0a-4409-9fb3-09f22ab9bc47", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTask, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} releaseId + * @param {number} environmentId + * @param {number} attemptId + * @param {string} timelineId + */ + getTasks2(project, releaseId, environmentId, attemptId, timelineId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + environmentId: environmentId, + attemptId: attemptId, + timelineId: timelineId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Release", "4259291d-4b0a-4409-9fb3-04f22ab9bc47", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTask, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} releaseId + * @param {number} environmentId + * @param {number} attemptId + */ + getTasks(project, releaseId, environmentId, attemptId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId, + environmentId: environmentId + }; + let queryValues = { + attemptId: attemptId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Release", "36b276e0-3c70-4320-a63c-1a2e1466a0d1", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTask, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + */ + getArtifactTypeDefinitions(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "8efc2a3c-1fc8-4f6d-9822-75e98cecb48f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ArtifactTypeDefinition, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} releaseDefinitionId + */ + getArtifactVersions(project, releaseDefinitionId) { + return __awaiter(this, void 0, void 0, function* () { + if (releaseDefinitionId == null) { + throw new TypeError('releaseDefinitionId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + releaseDefinitionId: releaseDefinitionId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "30fc787e-a9e0-4a07-9fbc-3e903aa051d2", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ArtifactVersionQueryResult, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {ReleaseInterfaces.Artifact[]} artifacts + * @param {string} project - Project ID or project name + */ + getArtifactVersionsForSources(artifacts, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "30fc787e-a9e0-4a07-9fbc-3e903aa051d2", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, artifacts, options); + let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ArtifactVersionQueryResult, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} releaseId + * @param {number} baseReleaseId + * @param {number} top + * @param {string} artifactAlias + */ + getReleaseWorkItemsRefs(project, releaseId, baseReleaseId, top, artifactAlias) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + releaseId: releaseId + }; + let queryValues = { + baseReleaseId: baseReleaseId, + '$top': top, + artifactAlias: artifactAlias, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Release", "4f165cc0-875c-4768-b148-f12f78769fab", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +ReleaseApi.RESOURCE_AREA_ID = "efc2f575-36ef-48e9-b672-0c6fb4a48ac5"; +exports.ReleaseApi = ReleaseApi; + + +/***/ }), + +/***/ 806: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const SecurityRolesInterfaces = __nccwpck_require__(6573); +class SecurityRolesApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-SecurityRoles-api', options); + } + /** + * @param {string} scopeId + * @param {string} resourceId + */ + getRoleAssignments(scopeId, resourceId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeId: scopeId, + resourceId: resourceId + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.1", "securityroles", "9461c234-c84c-4ed2-b918-2f0f92ad0a35", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, SecurityRolesInterfaces.TypeInfo.RoleAssignment, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeId + * @param {string} resourceId + * @param {string} identityId + */ + removeRoleAssignment(scopeId, resourceId, identityId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeId: scopeId, + resourceId: resourceId, + identityId: identityId + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.1", "securityroles", "9461c234-c84c-4ed2-b918-2f0f92ad0a35", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string[]} identityIds + * @param {string} scopeId + * @param {string} resourceId + */ + removeRoleAssignments(identityIds, scopeId, resourceId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeId: scopeId, + resourceId: resourceId + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.1", "securityroles", "9461c234-c84c-4ed2-b918-2f0f92ad0a35", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, identityIds, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {SecurityRolesInterfaces.UserRoleAssignmentRef} roleAssignment + * @param {string} scopeId + * @param {string} resourceId + * @param {string} identityId + */ + setRoleAssignment(roleAssignment, scopeId, resourceId, identityId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeId: scopeId, + resourceId: resourceId, + identityId: identityId + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.1", "securityroles", "9461c234-c84c-4ed2-b918-2f0f92ad0a35", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, roleAssignment, options); + let ret = this.formatResponse(res.result, SecurityRolesInterfaces.TypeInfo.RoleAssignment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {SecurityRolesInterfaces.UserRoleAssignmentRef[]} roleAssignments + * @param {string} scopeId + * @param {string} resourceId + */ + setRoleAssignments(roleAssignments, scopeId, resourceId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeId: scopeId, + resourceId: resourceId + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.1", "securityroles", "9461c234-c84c-4ed2-b918-2f0f92ad0a35", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, roleAssignments, options); + let ret = this.formatResponse(res.result, SecurityRolesInterfaces.TypeInfo.RoleAssignment, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeId + */ + getRoleDefinitions(scopeId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeId: scopeId + }; + try { + let verData = yield this.vsoClient.getVersioningData("3.2-preview.1", "securityroles", "f4cc9a86-453c-48d2-b44d-d3bd5c105f4f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +exports.SecurityRolesApi = SecurityRolesApi; + + +/***/ }), + +/***/ 5817: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +/** +* Module for handling serialization and deserialization of data contracts +* (contracts sent from the server using the VSO default REST api serialization settings) +*/ +var ContractSerializer; +(function (ContractSerializer) { + var _legacyDateRegExp; + /** + * Process a contract in its raw form (e.g. date fields are Dates, and Enums are numbers) and + * return a pure JSON object that can be posted to REST endpoint. + * + * @param data The object to serialize + * @param contractMetadata The type info/metadata for the contract type being serialized + * @param preserveOriginal If true, don't modify the original object. False modifies the original object (the return value points to the data argument). + */ + function serialize(data, contractMetadata, preserveOriginal) { + if (data && contractMetadata) { + if (Array.isArray(data)) { + return _getTranslatedArray(data, contractMetadata, true, preserveOriginal); + } + else { + return _getTranslatedObject(data, contractMetadata, true, preserveOriginal); + } + } + else { + return data; + } + } + ContractSerializer.serialize = serialize; + /** + * Process a pure JSON object (e.g. that came from a REST call) and transform it into a JS object + * where date strings are converted to Date objects and enum values are converted from strings into + * their numerical value. + * + * @param data The object to deserialize + * @param contractMetadata The type info/metadata for the contract type being deserialize + * @param preserveOriginal If true, don't modify the original object. False modifies the original object (the return value points to the data argument). + * @param unwrapWrappedCollections If true check for wrapped arrays (REST apis will not return arrays directly as the root result but will instead wrap them in a { values: [], count: 0 } object. + */ + function deserialize(data, contractMetadata, preserveOriginal, unwrapWrappedCollections) { + if (data) { + if (unwrapWrappedCollections && Array.isArray(data.value)) { + // Wrapped json array - unwrap it and send the array as the result + data = data.value; + } + if (contractMetadata) { + if (Array.isArray(data)) { + data = _getTranslatedArray(data, contractMetadata, false, preserveOriginal); + } + else { + data = _getTranslatedObject(data, contractMetadata, false, preserveOriginal); + } + } + } + return data; + } + ContractSerializer.deserialize = deserialize; + function _getTranslatedArray(array, typeMetadata, serialize, preserveOriginal) { + var resultArray = array; + var arrayCopy = []; + var i; + for (i = 0; i < array.length; i++) { + var item = array[i]; + var processedItem; + // handle arrays of arrays + if (Array.isArray(item)) { + processedItem = _getTranslatedArray(item, typeMetadata, serialize, preserveOriginal); + } + else { + processedItem = _getTranslatedObject(item, typeMetadata, serialize, preserveOriginal); + } + if (preserveOriginal) { + arrayCopy.push(processedItem); + if (processedItem !== item) { + resultArray = arrayCopy; + } + } + else { + array[i] = processedItem; + } + } + return resultArray; + } + function _getTranslatedObject(typeObject, typeMetadata, serialize, preserveOriginal) { + var processedItem = typeObject, copiedItem = false; + if (typeObject && typeMetadata.fields) { + for (var fieldName in typeMetadata.fields) { + var fieldMetadata = typeMetadata.fields[fieldName]; + var fieldValue = typeObject[fieldName]; + var translatedValue = _getTranslatedField(fieldValue, fieldMetadata, serialize, preserveOriginal); + if (fieldValue !== translatedValue) { + if (preserveOriginal && !copiedItem) { + processedItem = this._extend({}, typeObject); + copiedItem = true; + } + processedItem[fieldName] = translatedValue; + } + } + } + return processedItem; + } + function _getTranslatedField(fieldValue, fieldMetadata, serialize, preserveOriginal) { + if (!fieldValue) { + return fieldValue; + } + if (fieldMetadata.isArray) { + if (Array.isArray(fieldValue)) { + var newArray = [], processedArray = fieldValue; + for (var index = 0; index < fieldValue.length; index++) { + var arrayValue = fieldValue[index]; + var processedValue = arrayValue; + if (fieldMetadata.isDate) { + processedValue = _getTranslatedDateValue(arrayValue, serialize); + } + else if (fieldMetadata.enumType) { + processedValue = _getTranslatedEnumValue(fieldMetadata.enumType, arrayValue, serialize); + } + else if (fieldMetadata.typeInfo) { + if (Array.isArray(arrayValue)) { + processedValue = _getTranslatedArray(arrayValue, fieldMetadata.typeInfo, serialize, preserveOriginal); + } + else { + processedValue = _getTranslatedObject(arrayValue, fieldMetadata.typeInfo, serialize, preserveOriginal); + } + } + if (preserveOriginal) { + newArray.push(processedValue); + if (processedValue !== arrayValue) { + processedArray = newArray; + } + } + else { + fieldValue[index] = processedValue; + } + } + return processedArray; + } + else { + return fieldValue; + } + } + else if (fieldMetadata.isDictionary) { + var dictionaryModified = false; + var newDictionary = {}; + for (var key in fieldValue) { + var dictionaryValue = fieldValue[key]; + var newKey = key, newValue = dictionaryValue; + if (fieldMetadata.dictionaryKeyIsDate) { + newKey = _getTranslatedDateValue(key, serialize); + } + else if (fieldMetadata.dictionaryKeyEnumType) { + newKey = _getTranslatedEnumValue(fieldMetadata.dictionaryKeyEnumType, key, serialize); + } + if (fieldMetadata.dictionaryValueIsDate) { + newValue = _getTranslatedDateValue(dictionaryValue, serialize); + } + else if (fieldMetadata.dictionaryValueEnumType) { + newValue = _getTranslatedEnumValue(fieldMetadata.dictionaryValueEnumType, dictionaryValue, serialize); + } + else if (fieldMetadata.dictionaryValueTypeInfo) { + newValue = _getTranslatedObject(newValue, fieldMetadata.dictionaryValueTypeInfo, serialize, preserveOriginal); + } + else if (fieldMetadata.dictionaryValueFieldInfo) { + newValue = _getTranslatedField(dictionaryValue, fieldMetadata.dictionaryValueFieldInfo, serialize, preserveOriginal); + } + newDictionary[newKey] = newValue; + if (key !== newKey || dictionaryValue !== newValue) { + dictionaryModified = true; + } + } + return dictionaryModified ? newDictionary : fieldValue; + } + else { + if (fieldMetadata.isDate) { + return _getTranslatedDateValue(fieldValue, serialize); + } + else if (fieldMetadata.enumType) { + return _getTranslatedEnumValue(fieldMetadata.enumType, fieldValue, serialize); + } + else if (fieldMetadata.typeInfo) { + return _getTranslatedObject(fieldValue, fieldMetadata.typeInfo, serialize, preserveOriginal); + } + else { + return fieldValue; + } + } + } + function _getTranslatedEnumValue(enumType, valueToConvert, serialize) { + if (serialize && typeof valueToConvert === "number") { + // Serialize: number --> String + // Because webapi handles the numerical value for enums, there is no need to convert to string. + // Let this fall through to return the numerical value. + } + else if (!serialize && typeof valueToConvert === "string") { + // Deserialize: String --> number + var result = 0; + if (valueToConvert) { + var splitValue = valueToConvert.split(","); + for (var i = 0; i < splitValue.length; i++) { + var valuePart = splitValue[i]; + //equivalent to jquery trim + //copied from https://github.com/HubSpot/youmightnotneedjquery/blob/ef987223c20e480fcbfb5924d96c11cd928e1226/comparisons/utils/trim/ie8.js + var enumName = valuePart.replace(/^\s+|\s+$/g, '') || ""; + if (enumName) { + var resultPart = enumType.enumValues[enumName]; + if (!resultPart) { + // No matching enum value. Try again but case insensitive + var lowerCaseEnumName = enumName.toLowerCase(); + if (lowerCaseEnumName !== enumName) { + for (var name in enumType.enumValues) { + var value = enumType.enumValues[name]; + if (name.toLowerCase() === lowerCaseEnumName) { + resultPart = value; + break; + } + } + } + } + if (resultPart) { + result |= resultPart; + } + } + } + } + return result; + } + return valueToConvert; + } + function _getTranslatedDateValue(valueToConvert, serialize) { + if (!serialize && typeof valueToConvert === "string") { + // Deserialize: String --> Date + var dateValue = new Date(valueToConvert); + if (isNaN(dateValue) && navigator.userAgent && /msie/i.test(navigator.userAgent)) { + dateValue = _convertLegacyIEDate(valueToConvert); + } + return dateValue; + } + return valueToConvert; + } + function _convertLegacyIEDate(dateStringValue) { + // IE 8/9 does not handle parsing dates in ISO form like: + // 2013-05-13T14:26:54.397Z + var match; + if (!_legacyDateRegExp) { + _legacyDateRegExp = new RegExp("(\\d+)-(\\d+)-(\\d+)T(\\d+):(\\d+):(\\d+).(\\d+)Z"); + } + match = _legacyDateRegExp.exec(dateStringValue); + if (match) { + return new Date(Date.UTC(parseInt(match[1]), parseInt(match[2]) - 1, parseInt(match[3]), parseInt(match[4]), parseInt(match[5]), parseInt(match[6]), parseInt(match[7]))); + } + else { + return null; + } + } + // jquery extend method in native javascript (used to clone objects) + // copied from https://github.com/HubSpot/youmightnotneedjquery/blob/ef987223c20e480fcbfb5924d96c11cd928e1226/comparisons/utils/extend/ie8.js + var _extend = function (out) { + out = out || {}; + for (var i = 1; i < arguments.length; i++) { + if (!arguments[i]) + continue; + for (var key in arguments[i]) { + if (arguments[i].hasOwnProperty(key)) + out[key] = arguments[i][key]; + } + } + return out; + }; +})(ContractSerializer = exports.ContractSerializer || (exports.ContractSerializer = {})); + + +/***/ }), + +/***/ 5899: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const taskagentbasem = __nccwpck_require__(3390); +const url = __nccwpck_require__(8835); +class TaskAgentApi extends taskagentbasem.TaskAgentApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, options); + // hang on to the handlers in case we need to fall back to an account-level client + this._handlers = handlers; + this._options = options; + } + /** + * @param {string} taskId + * @param onResult callback function + */ + deleteTaskDefinition(taskId) { + let promise = this.vsoClient.beginGetLocation("distributedtask", "60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd") + .then((location) => { + if (location) { + // the resource exists at the url we were given. go! + return super.deleteTaskDefinition(taskId); + } + else { + // this is the case when the server doesn't support collection-level task definitions + var fallbackClient = this._getFallbackClient(this.baseUrl); + if (!fallbackClient) { + // couldn't convert + throw new Error("Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd"); + } + else { + // use the fallback client + return fallbackClient.deleteTaskDefinition(taskId); + } + } + }); + return promise; + } + /** + * @param {string} taskId + * @param {string} versionString + * @param {string[]} visibility + * @param {boolean} scopeLocal + * @param onResult callback function with the resulting ArrayBuffer + */ + getTaskContentZip(taskId, versionString, visibility, scopeLocal) { + let promise = this.vsoClient.beginGetLocation("distributedtask", "60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd") + .then((location) => { + if (location) { + // the resource exists at the url we were given. go! + return super.getTaskContentZip(taskId, versionString, visibility, scopeLocal); + } + else { + // this is the case when the server doesn't support collection-level task definitions + var fallbackClient = this._getFallbackClient(this.baseUrl); + if (!fallbackClient) { + // couldn't convert + throw new Error("Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd"); + } + else { + // use the fallback client + return fallbackClient.getTaskContentZip(taskId, versionString, visibility, scopeLocal); + } + } + }); + return promise; + } + /** + * @param {string} taskId + * @param {string} versionString + * @param {string[]} visibility + * @param {boolean} scopeLocal + * @param onResult callback function with the resulting TaskAgentInterfaces.TaskDefinition + */ + getTaskDefinition(taskId, versionString, visibility, scopeLocal) { + let promise = this.vsoClient.beginGetLocation("distributedtask", "60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd") + .then((location) => { + if (location) { + // the resource exists at the url we were given. go! + return super.getTaskDefinition(taskId, versionString, visibility, scopeLocal); + } + else { + // this is the case when the server doesn't support collection-level task definitions + var fallbackClient = this._getFallbackClient(this.baseUrl); + if (!fallbackClient) { + // couldn't convert + throw new Error("Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd"); + } + else { + // use the fallback client + return fallbackClient.getTaskDefinition(taskId, versionString, visibility, scopeLocal); + } + } + }); + return promise; + } + /** + * @param {string} taskId + * @param {string[]} visibility + * @param {boolean} scopeLocal + * @param onResult callback function with the resulting TaskAgentInterfaces.TaskDefinition[] + */ + getTaskDefinitions(taskId, visibility, scopeLocal) { + let promise = this.vsoClient.beginGetLocation("distributedtask", "60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd") + .then((location) => { + if (location) { + // the resource exists at the url we were given. go! + return super.getTaskDefinitions(taskId, visibility, scopeLocal); + } + else { + // this is the case when the server doesn't support collection-level task definitions + var fallbackClient = this._getFallbackClient(this.baseUrl); + if (!fallbackClient) { + // couldn't convert + throw new Error("Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd"); + } + else { + // use the fallback client + return fallbackClient.getTaskDefinitions(taskId, visibility, scopeLocal); + } + } + }); + return promise; + } + /** + * @param {NodeJS.ReadableStream} contentStream + * @param {string} taskId + * @param {boolean} overwrite + * @param onResult callback function + */ + uploadTaskDefinition(customHeaders, contentStream, taskId, overwrite) { + return __awaiter(this, void 0, void 0, function* () { + let routeValues = { + taskId: taskId + }; + let queryValues = { + overwrite: overwrite, + }; + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + try { + let verData = yield this.vsoClient.getVersioningData("3.0-preview.1", "distributedtask", "60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("PUT", url, contentStream, options); + resolve(res.result); + } + catch (err) { + reject(err); + } + })); + }); + } + _getFallbackClient(baseUrl) { + if (!this._fallbackClient) { + var accountUrl = this._getAccountUrl(baseUrl); + if (accountUrl) { + this._fallbackClient = new TaskAgentApi(accountUrl, this._handlers, this._options); + } + } + return this._fallbackClient; + } + _getAccountUrl(collectionUrl) { + // converts a collection URL to an account URL + // returns null if the conversion can't be made + var purl = url.parse(collectionUrl); + if (!purl.protocol || !purl.host) { + return null; + } + var accountUrl = purl.protocol + '//' + purl.host; + // purl.path is something like /DefaultCollection or /tfs/DefaultCollection or /DefaultCollection/ + var splitPath = purl.path.split('/').slice(1); + if (splitPath.length === 0 || (splitPath.length === 1 && splitPath[0] === '')) { + return null; + } + // if the first segment of the path is tfs, the second is the collection. if the url ends in / there will be a third, empty entry + if (splitPath[0] === 'tfs' && (splitPath.length === 2 || (splitPath.length === 3 && splitPath[2].length === 0))) { + //on prem + accountUrl += '/' + 'tfs'; + } + else if (splitPath.length === 2 && splitPath[0] === '') { + // /DefaultCollection/ + return accountUrl; + } + else if (splitPath.length > 1) { + return null; + } + return accountUrl; + } +} +exports.TaskAgentApi = TaskAgentApi; + + +/***/ }), + +/***/ 3390: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const TaskAgentInterfaces = __nccwpck_require__(9565); +class TaskAgentApiBase extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-TaskAgent-api', options); + } + /** + * @param {TaskAgentInterfaces.TaskAgentCloud} agentCloud + */ + addAgentCloud(agentCloud) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "bfa72b3d-0fc6-43fb-932b-a7f6559f93b9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, agentCloud, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} agentCloudId + */ + deleteAgentCloud(agentCloudId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + agentCloudId: agentCloudId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "bfa72b3d-0fc6-43fb-932b-a7f6559f93b9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} agentCloudId + */ + getAgentCloud(agentCloudId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + agentCloudId: agentCloudId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "bfa72b3d-0fc6-43fb-932b-a7f6559f93b9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + */ + getAgentClouds() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "bfa72b3d-0fc6-43fb-932b-a7f6559f93b9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.TaskAgentCloud} updatedCloud + * @param {number} agentCloudId + */ + updateAgentCloud(updatedCloud, agentCloudId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + agentCloudId: agentCloudId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "bfa72b3d-0fc6-43fb-932b-a7f6559f93b9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, updatedCloud, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get agent cloud types. + * + */ + getAgentCloudTypes() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "5932e193-f376-469d-9c3e-e5588ce12cb5", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentCloudType, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} queueId + * @param {number} top + * @param {string} continuationToken + */ + getAgentRequestsForQueue(project, queueId, top, continuationToken) { + return __awaiter(this, void 0, void 0, function* () { + if (top == null) { + throw new TypeError('top can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + queueId: queueId + }; + let queryValues = { + '$top': top, + continuationToken: continuationToken, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "f5f81ffb-f396-498d-85b1-5ada145e648a", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.TaskAgentJobRequest} request + * @param {string} project - Project ID or project name + * @param {number} queueId + */ + queueAgentRequest(request, project, queueId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + queueId: queueId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "f5f81ffb-f396-498d-85b1-5ada145e648a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, request, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds an agent to a pool. You probably don't want to call this endpoint directly. Instead, [configure an agent](https://docs.microsoft.com/azure/devops/pipelines/agents/agents) using the agent download package. + * + * @param {TaskAgentInterfaces.TaskAgent} agent - Details about the agent being added + * @param {number} poolId - The agent pool in which to add the agent + */ + addAgent(agent, poolId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "e298ef32-5878-4cab-993c-043836571f42", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, agent, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete an agent. You probably don't want to call this endpoint directly. Instead, [use the agent configuration script](https://docs.microsoft.com/azure/devops/pipelines/agents/agents) to remove an agent from your organization. + * + * @param {number} poolId - The pool ID to remove the agent from + * @param {number} agentId - The agent ID to remove + */ + deleteAgent(poolId, agentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + agentId: agentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "e298ef32-5878-4cab-993c-043836571f42", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get information about an agent. + * + * @param {number} poolId - The agent pool containing the agent + * @param {number} agentId - The agent ID to get information about + * @param {boolean} includeCapabilities - Whether to include the agent's capabilities in the response + * @param {boolean} includeAssignedRequest - Whether to include details about the agent's current work + * @param {boolean} includeLastCompletedRequest - Whether to include details about the agents' most recent completed work + * @param {string[]} propertyFilters - Filter which custom properties will be returned + */ + getAgent(poolId, agentId, includeCapabilities, includeAssignedRequest, includeLastCompletedRequest, propertyFilters) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + agentId: agentId + }; + let queryValues = { + includeCapabilities: includeCapabilities, + includeAssignedRequest: includeAssignedRequest, + includeLastCompletedRequest: includeLastCompletedRequest, + propertyFilters: propertyFilters && propertyFilters.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "e298ef32-5878-4cab-993c-043836571f42", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of agents. + * + * @param {number} poolId - The agent pool containing the agents + * @param {string} agentName - Filter on agent name + * @param {boolean} includeCapabilities - Whether to include the agents' capabilities in the response + * @param {boolean} includeAssignedRequest - Whether to include details about the agents' current work + * @param {boolean} includeLastCompletedRequest - Whether to include details about the agents' most recent completed work + * @param {string[]} propertyFilters - Filter which custom properties will be returned + * @param {string[]} demands - Filter by demands the agents can satisfy + */ + getAgents(poolId, agentName, includeCapabilities, includeAssignedRequest, includeLastCompletedRequest, propertyFilters, demands) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + let queryValues = { + agentName: agentName, + includeCapabilities: includeCapabilities, + includeAssignedRequest: includeAssignedRequest, + includeLastCompletedRequest: includeLastCompletedRequest, + propertyFilters: propertyFilters && propertyFilters.join(","), + demands: demands && demands.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "e298ef32-5878-4cab-993c-043836571f42", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Replace an agent. You probably don't want to call this endpoint directly. Instead, [use the agent configuration script](https://docs.microsoft.com/azure/devops/pipelines/agents/agents) to remove and reconfigure an agent from your organization. + * + * @param {TaskAgentInterfaces.TaskAgent} agent - Updated details about the replacing agent + * @param {number} poolId - The agent pool to use + * @param {number} agentId - The agent to replace + */ + replaceAgent(agent, poolId, agentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + agentId: agentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "e298ef32-5878-4cab-993c-043836571f42", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, agent, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update agent details. + * + * @param {TaskAgentInterfaces.TaskAgent} agent - Updated details about the agent + * @param {number} poolId - The agent pool to use + * @param {number} agentId - The agent to update + */ + updateAgent(agent, poolId, agentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + agentId: agentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "e298ef32-5878-4cab-993c-043836571f42", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, agent, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns list of azure subscriptions + * + */ + getAzureManagementGroups() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "39fe3bf2-7ee0-4198-a469-4a29929afa9c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns list of azure subscriptions + * + */ + getAzureSubscriptions() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "bcd6189c-0303-471f-a8e1-acb22b74d700", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * GET a PAT token for managing (configuring, removing, tagging) deployment targets in a deployment group. + * + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId - ID of the deployment group in which deployment targets are managed. + */ + generateDeploymentGroupAccessToken(project, deploymentGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "3d197ba2-c3e9-4253-882f-0ee2440f8174", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a deployment group. + * + * @param {TaskAgentInterfaces.DeploymentGroupCreateParameter} deploymentGroup - Deployment group to create. + * @param {string} project - Project ID or project name + */ + addDeploymentGroup(deploymentGroup, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "083c4d89-ab35-45af-aa11-7cf66895c53e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, deploymentGroup, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a deployment group. + * + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId - ID of the deployment group to be deleted. + */ + deleteDeploymentGroup(project, deploymentGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "083c4d89-ab35-45af-aa11-7cf66895c53e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a deployment group by its ID. + * + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId - ID of the deployment group. + * @param {TaskAgentInterfaces.DeploymentGroupActionFilter} actionFilter - Get the deployment group only if this action can be performed on it. + * @param {TaskAgentInterfaces.DeploymentGroupExpands} expand - Include these additional details in the returned object. + */ + getDeploymentGroup(project, deploymentGroupId, actionFilter, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + let queryValues = { + actionFilter: actionFilter, + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "083c4d89-ab35-45af-aa11-7cf66895c53e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of deployment groups by name or IDs. + * + * @param {string} project - Project ID or project name + * @param {string} name - Name of the deployment group. + * @param {TaskAgentInterfaces.DeploymentGroupActionFilter} actionFilter - Get only deployment groups on which this action can be performed. + * @param {TaskAgentInterfaces.DeploymentGroupExpands} expand - Include these additional details in the returned objects. + * @param {string} continuationToken - Get deployment groups with names greater than this continuationToken lexicographically. + * @param {number} top - Maximum number of deployment groups to return. Default is **1000**. + * @param {number[]} ids - Comma separated list of IDs of the deployment groups. + */ + getDeploymentGroups(project, name, actionFilter, expand, continuationToken, top, ids) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + name: name, + actionFilter: actionFilter, + '$expand': expand, + continuationToken: continuationToken, + '$top': top, + ids: ids && ids.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "083c4d89-ab35-45af-aa11-7cf66895c53e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a deployment group. + * + * @param {TaskAgentInterfaces.DeploymentGroupUpdateParameter} deploymentGroup - Deployment group to update. + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId - ID of the deployment group. + */ + updateDeploymentGroup(deploymentGroup, project, deploymentGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "083c4d89-ab35-45af-aa11-7cf66895c53e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, deploymentGroup, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of deployment group metrics. + * + * @param {string} project - Project ID or project name + * @param {string} deploymentGroupName - Name of the deployment group. + * @param {string} continuationToken - Get metrics for deployment groups with names greater than this continuationToken lexicographically. + * @param {number} top - Maximum number of deployment group metrics to return. Default is **50**. + */ + getDeploymentGroupsMetrics(project, deploymentGroupName, continuationToken, top) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + deploymentGroupName: deploymentGroupName, + continuationToken: continuationToken, + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "281c6308-427a-49e1-b83a-dac0f4862189", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroupMetrics, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId + * @param {number} machineId + * @param {number} completedRequestCount + */ + getAgentRequestsForDeploymentMachine(project, deploymentGroupId, machineId, completedRequestCount) { + return __awaiter(this, void 0, void 0, function* () { + if (machineId == null) { + throw new TypeError('machineId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + let queryValues = { + machineId: machineId, + completedRequestCount: completedRequestCount, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "a3540e5b-f0dc-4668-963b-b752459be545", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId + * @param {number[]} machineIds + * @param {number} completedRequestCount + */ + getAgentRequestsForDeploymentMachines(project, deploymentGroupId, machineIds, completedRequestCount) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + let queryValues = { + machineIds: machineIds && machineIds.join(","), + completedRequestCount: completedRequestCount, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "a3540e5b-f0dc-4668-963b-b752459be545", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId + */ + refreshDeploymentMachines(project, deploymentGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "91006ac4-0f68-4d82-a2bc-540676bd73ce", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * GET a PAT token for managing (configuring, removing, tagging) deployment agents in a deployment pool. + * + * @param {number} poolId - ID of the deployment pool in which deployment agents are managed. + */ + generateDeploymentPoolAccessToken(poolId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "e077ee4a-399b-420b-841f-c43fbc058e0b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of deployment pool summaries. + * + * @param {string} poolName - Name of the deployment pool. + * @param {TaskAgentInterfaces.DeploymentPoolSummaryExpands} expands - Include these additional details in the returned objects. + * @param {number[]} poolIds - List of deployment pool ids. + */ + getDeploymentPoolsSummary(poolName, expands, poolIds) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + poolName: poolName, + expands: expands, + poolIds: poolIds && poolIds.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6525d6c6-258f-40e0-a1a9-8a24a3957625", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentPoolSummary, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get agent requests for a deployment target. + * + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId - ID of the deployment group to which the target belongs. + * @param {number} targetId - ID of the deployment target. + * @param {number} completedRequestCount - Maximum number of completed requests to return. Default is **50** + */ + getAgentRequestsForDeploymentTarget(project, deploymentGroupId, targetId, completedRequestCount) { + return __awaiter(this, void 0, void 0, function* () { + if (targetId == null) { + throw new TypeError('targetId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + let queryValues = { + targetId: targetId, + completedRequestCount: completedRequestCount, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "2fac0be3-8c8f-4473-ab93-c1389b08a2c9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get agent requests for a list deployment targets. + * + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId - ID of the deployment group to which the targets belong. + * @param {number[]} targetIds - Comma separated list of IDs of the deployment targets. + * @param {number} ownerId - Id of owner of agent job request. + * @param {Date} completedOn - Datetime to return request after this time. + * @param {number} completedRequestCount - Maximum number of completed requests to return for each target. Default is **50** + */ + getAgentRequestsForDeploymentTargets(project, deploymentGroupId, targetIds, ownerId, completedOn, completedRequestCount) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + let queryValues = { + targetIds: targetIds && targetIds.join(","), + ownerId: ownerId, + completedOn: completedOn, + completedRequestCount: completedRequestCount, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "2fac0be3-8c8f-4473-ab93-c1389b08a2c9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Upgrade the deployment targets in a deployment group. + * + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId - ID of the deployment group. + */ + refreshDeploymentTargets(project, deploymentGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "1c1a817f-f23d-41c6-bf8d-14b638f64152", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Proxy for a GET request defined by an 'endpoint'. The request is authorized using a service connection. The response is filtered using an XPath/Json based selector. + * + * @param {TaskAgentInterfaces.TaskDefinitionEndpoint} endpoint - Describes the URL to fetch. + */ + queryEndpoint(endpoint) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "f223b809-8c33-4b7d-b53f-07232569b5d6", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, endpoint, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get environment deployment execution history + * + * @param {string} project - Project ID or project name + * @param {number} environmentId + * @param {string} continuationToken + * @param {number} top + */ + getEnvironmentDeploymentExecutionRecords(project, environmentId, continuationToken, top) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + environmentId: environmentId + }; + let queryValues = { + continuationToken: continuationToken, + top: top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "51bb5d21-4305-4ea6-9dbb-b7488af73334", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentDeploymentExecutionRecord, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create an environment. + * + * @param {TaskAgentInterfaces.EnvironmentCreateParameter} environmentCreateParameter - Environment to create. + * @param {string} project - Project ID or project name + */ + addEnvironment(environmentCreateParameter, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "8572b1fc-2482-47fa-8f74-7e3ed53ee54b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, environmentCreateParameter, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete the specified environment. + * + * @param {string} project - Project ID or project name + * @param {number} environmentId - ID of the environment. + */ + deleteEnvironment(project, environmentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + environmentId: environmentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "8572b1fc-2482-47fa-8f74-7e3ed53ee54b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get an environment by its ID. + * + * @param {string} project - Project ID or project name + * @param {number} environmentId - ID of the environment. + * @param {TaskAgentInterfaces.EnvironmentExpands} expands - Include these additional details in the returned objects. + */ + getEnvironmentById(project, environmentId, expands) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + environmentId: environmentId + }; + let queryValues = { + expands: expands, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "8572b1fc-2482-47fa-8f74-7e3ed53ee54b", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get all environments. + * + * @param {string} project - Project ID or project name + * @param {string} name + * @param {string} continuationToken + * @param {number} top + */ + getEnvironments(project, name, continuationToken, top) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + name: name, + continuationToken: continuationToken, + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "8572b1fc-2482-47fa-8f74-7e3ed53ee54b", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update the specified environment. + * + * @param {TaskAgentInterfaces.EnvironmentUpdateParameter} environmentUpdateParameter - Environment data to update. + * @param {string} project - Project ID or project name + * @param {number} environmentId - ID of the environment. + */ + updateEnvironment(environmentUpdateParameter, project, environmentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + environmentId: environmentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "8572b1fc-2482-47fa-8f74-7e3ed53ee54b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, environmentUpdateParameter, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} hubName + * @param {boolean} includeEnterpriseUsersCount + * @param {boolean} includeHostedAgentMinutesCount + */ + getTaskHubLicenseDetails(hubName, includeEnterpriseUsersCount, includeHostedAgentMinutesCount) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + hubName: hubName + }; + let queryValues = { + includeEnterpriseUsersCount: includeEnterpriseUsersCount, + includeHostedAgentMinutesCount: includeHostedAgentMinutesCount, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "distributedtask", "f9f0f436-b8a1-4475-9041-1ccdbf8f0128", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.TaskHubLicenseDetails} taskHubLicenseDetails + * @param {string} hubName + */ + updateTaskHubLicenseDetails(taskHubLicenseDetails, hubName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + hubName: hubName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "distributedtask", "f9f0f436-b8a1-4475-9041-1ccdbf8f0128", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, taskHubLicenseDetails, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.InputValidationRequest} inputValidationRequest + */ + validateInputs(inputValidationRequest) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "58475b1e-adaf-4155-9bc1-e04bf1fff4c2", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, inputValidationRequest, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {number} requestId + * @param {string} lockToken + * @param {TaskAgentInterfaces.TaskResult} result + * @param {boolean} agentShuttingDown + */ + deleteAgentRequest(poolId, requestId, lockToken, result, agentShuttingDown) { + return __awaiter(this, void 0, void 0, function* () { + if (lockToken == null) { + throw new TypeError('lockToken can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + requestId: requestId + }; + let queryValues = { + lockToken: lockToken, + result: result, + agentShuttingDown: agentShuttingDown, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "fc825784-c92a-4299-9221-998a02d1b54f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {number} requestId + * @param {boolean} includeStatus + */ + getAgentRequest(poolId, requestId, includeStatus) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + requestId: requestId + }; + let queryValues = { + includeStatus: includeStatus, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "fc825784-c92a-4299-9221-998a02d1b54f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {number} top + * @param {string} continuationToken + */ + getAgentRequests(poolId, top, continuationToken) { + return __awaiter(this, void 0, void 0, function* () { + if (top == null) { + throw new TypeError('top can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + let queryValues = { + '$top': top, + continuationToken: continuationToken, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "fc825784-c92a-4299-9221-998a02d1b54f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {number} agentId + * @param {number} completedRequestCount + */ + getAgentRequestsForAgent(poolId, agentId, completedRequestCount) { + return __awaiter(this, void 0, void 0, function* () { + if (agentId == null) { + throw new TypeError('agentId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + let queryValues = { + agentId: agentId, + completedRequestCount: completedRequestCount, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "fc825784-c92a-4299-9221-998a02d1b54f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {number[]} agentIds + * @param {number} completedRequestCount + */ + getAgentRequestsForAgents(poolId, agentIds, completedRequestCount) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + let queryValues = { + agentIds: agentIds && agentIds.join(","), + completedRequestCount: completedRequestCount, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "fc825784-c92a-4299-9221-998a02d1b54f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {string} planId + * @param {string} jobId + */ + getAgentRequestsForPlan(poolId, planId, jobId) { + return __awaiter(this, void 0, void 0, function* () { + if (planId == null) { + throw new TypeError('planId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + let queryValues = { + planId: planId, + jobId: jobId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "fc825784-c92a-4299-9221-998a02d1b54f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.TaskAgentJobRequest} request + * @param {number} poolId + */ + queueAgentRequestByPool(request, poolId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "fc825784-c92a-4299-9221-998a02d1b54f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, request, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.TaskAgentJobRequest} request + * @param {number} poolId + * @param {number} requestId + * @param {string} lockToken + * @param {TaskAgentInterfaces.TaskAgentRequestUpdateOptions} updateOptions + */ + updateAgentRequest(request, poolId, requestId, lockToken, updateOptions) { + return __awaiter(this, void 0, void 0, function* () { + if (lockToken == null) { + throw new TypeError('lockToken can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + requestId: requestId + }; + let queryValues = { + lockToken: lockToken, + updateOptions: updateOptions, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "fc825784-c92a-4299-9221-998a02d1b54f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, request, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.KubernetesResourceCreateParameters} createParameters + * @param {string} project - Project ID or project name + * @param {number} environmentId + */ + addKubernetesResource(createParameters, project, environmentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + environmentId: environmentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "73fba52f-15ab-42b3-a538-ce67a9223a04", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, createParameters, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.KubernetesResource, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} environmentId + * @param {number} resourceId + */ + deleteKubernetesResource(project, environmentId, resourceId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + environmentId: environmentId, + resourceId: resourceId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "73fba52f-15ab-42b3-a538-ce67a9223a04", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} environmentId + * @param {number} resourceId + */ + getKubernetesResource(project, environmentId, resourceId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + environmentId: environmentId, + resourceId: resourceId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "73fba52f-15ab-42b3-a538-ce67a9223a04", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.KubernetesResource, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} machineGroupId + */ + generateDeploymentMachineGroupAccessToken(project, machineGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + machineGroupId: machineGroupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "f8c7c0de-ac0d-469b-9cb1-c21f72d67693", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.DeploymentMachineGroup} machineGroup + * @param {string} project - Project ID or project name + */ + addDeploymentMachineGroup(machineGroup, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "d4adf50f-80c6-4ac8-9ca1-6e4e544286e9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, machineGroup, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} machineGroupId + */ + deleteDeploymentMachineGroup(project, machineGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + machineGroupId: machineGroupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "d4adf50f-80c6-4ac8-9ca1-6e4e544286e9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} machineGroupId + * @param {TaskAgentInterfaces.MachineGroupActionFilter} actionFilter + */ + getDeploymentMachineGroup(project, machineGroupId, actionFilter) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + machineGroupId: machineGroupId + }; + let queryValues = { + actionFilter: actionFilter, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "d4adf50f-80c6-4ac8-9ca1-6e4e544286e9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {string} machineGroupName + * @param {TaskAgentInterfaces.MachineGroupActionFilter} actionFilter + */ + getDeploymentMachineGroups(project, machineGroupName, actionFilter) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + machineGroupName: machineGroupName, + actionFilter: actionFilter, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "d4adf50f-80c6-4ac8-9ca1-6e4e544286e9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.DeploymentMachineGroup} machineGroup + * @param {string} project - Project ID or project name + * @param {number} machineGroupId + */ + updateDeploymentMachineGroup(machineGroup, project, machineGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + machineGroupId: machineGroupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "d4adf50f-80c6-4ac8-9ca1-6e4e544286e9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, machineGroup, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} machineGroupId + * @param {string[]} tagFilters + */ + getDeploymentMachineGroupMachines(project, machineGroupId, tagFilters) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + machineGroupId: machineGroupId + }; + let queryValues = { + tagFilters: tagFilters && tagFilters.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "966c3874-c347-4b18-a90c-d509116717fd", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.DeploymentMachine[]} deploymentMachines + * @param {string} project - Project ID or project name + * @param {number} machineGroupId + */ + updateDeploymentMachineGroupMachines(deploymentMachines, project, machineGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + machineGroupId: machineGroupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "966c3874-c347-4b18-a90c-d509116717fd", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, deploymentMachines, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.DeploymentMachine} machine + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId + */ + addDeploymentMachine(machine, project, deploymentGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6f6d406f-cfe6-409c-9327-7009928077e7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, machine, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId + * @param {number} machineId + */ + deleteDeploymentMachine(project, deploymentGroupId, machineId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId, + machineId: machineId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6f6d406f-cfe6-409c-9327-7009928077e7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId + * @param {number} machineId + * @param {TaskAgentInterfaces.DeploymentMachineExpands} expand + */ + getDeploymentMachine(project, deploymentGroupId, machineId, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId, + machineId: machineId + }; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6f6d406f-cfe6-409c-9327-7009928077e7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId + * @param {string[]} tags + * @param {string} name + * @param {TaskAgentInterfaces.DeploymentMachineExpands} expand + */ + getDeploymentMachines(project, deploymentGroupId, tags, name, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + let queryValues = { + tags: tags && tags.join(","), + name: name, + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6f6d406f-cfe6-409c-9327-7009928077e7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.DeploymentMachine} machine + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId + * @param {number} machineId + */ + replaceDeploymentMachine(machine, project, deploymentGroupId, machineId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId, + machineId: machineId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6f6d406f-cfe6-409c-9327-7009928077e7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, machine, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.DeploymentMachine} machine + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId + * @param {number} machineId + */ + updateDeploymentMachine(machine, project, deploymentGroupId, machineId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId, + machineId: machineId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6f6d406f-cfe6-409c-9327-7009928077e7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, machine, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.DeploymentMachine[]} machines + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId + */ + updateDeploymentMachines(machines, project, deploymentGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6f6d406f-cfe6-409c-9327-7009928077e7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, machines, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceDefinition} definition + * @param {number} poolId + */ + createAgentPoolMaintenanceDefinition(definition, poolId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "80572e16-58f0-4419-ac07-d19fde32195c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, definition, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {number} definitionId + */ + deleteAgentPoolMaintenanceDefinition(poolId, definitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + definitionId: definitionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "80572e16-58f0-4419-ac07-d19fde32195c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {number} definitionId + */ + getAgentPoolMaintenanceDefinition(poolId, definitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + definitionId: definitionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "80572e16-58f0-4419-ac07-d19fde32195c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + */ + getAgentPoolMaintenanceDefinitions(poolId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "80572e16-58f0-4419-ac07-d19fde32195c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceDefinition} definition + * @param {number} poolId + * @param {number} definitionId + */ + updateAgentPoolMaintenanceDefinition(definition, poolId, definitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + definitionId: definitionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "80572e16-58f0-4419-ac07-d19fde32195c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, definition, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {number} jobId + */ + deleteAgentPoolMaintenanceJob(poolId, jobId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + jobId: jobId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "15e7ab6e-abce-4601-a6d8-e111fe148f46", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {number} jobId + */ + getAgentPoolMaintenanceJob(poolId, jobId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + jobId: jobId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "15e7ab6e-abce-4601-a6d8-e111fe148f46", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {number} jobId + */ + getAgentPoolMaintenanceJobLogs(poolId, jobId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + jobId: jobId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "15e7ab6e-abce-4601-a6d8-e111fe148f46", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {number} definitionId + */ + getAgentPoolMaintenanceJobs(poolId, definitionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + let queryValues = { + definitionId: definitionId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "15e7ab6e-abce-4601-a6d8-e111fe148f46", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceJob} job + * @param {number} poolId + */ + queueAgentPoolMaintenanceJob(job, poolId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "15e7ab6e-abce-4601-a6d8-e111fe148f46", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, job, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceJob} job + * @param {number} poolId + * @param {number} jobId + */ + updateAgentPoolMaintenanceJob(job, poolId, jobId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + jobId: jobId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "15e7ab6e-abce-4601-a6d8-e111fe148f46", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, job, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {number} messageId + * @param {string} sessionId + */ + deleteMessage(poolId, messageId, sessionId) { + return __awaiter(this, void 0, void 0, function* () { + if (sessionId == null) { + throw new TypeError('sessionId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + messageId: messageId + }; + let queryValues = { + sessionId: sessionId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {string} sessionId + * @param {number} lastMessageId + */ + getMessage(poolId, sessionId, lastMessageId) { + return __awaiter(this, void 0, void 0, function* () { + if (sessionId == null) { + throw new TypeError('sessionId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + let queryValues = { + sessionId: sessionId, + lastMessageId: lastMessageId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {number} agentId + */ + refreshAgent(poolId, agentId) { + return __awaiter(this, void 0, void 0, function* () { + if (agentId == null) { + throw new TypeError('agentId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + let queryValues = { + agentId: agentId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + */ + refreshAgents(poolId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.TaskAgentMessage} message + * @param {number} poolId + * @param {number} requestId + */ + sendMessage(message, poolId, requestId) { + return __awaiter(this, void 0, void 0, function* () { + if (requestId == null) { + throw new TypeError('requestId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + let queryValues = { + requestId: requestId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, message, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} packageType + * @param {string} platform + * @param {string} version + */ + getPackage(packageType, platform, version) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + packageType: packageType, + platform: platform, + version: version + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "distributedtask", "8ffcd551-079c-493a-9c02-54346299d144", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.PackageMetadata, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} packageType + * @param {string} platform + * @param {number} top + */ + getPackages(packageType, platform, top) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + packageType: packageType, + platform: platform + }; + let queryValues = { + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "distributedtask", "8ffcd551-079c-493a-9c02-54346299d144", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.PackageMetadata, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + */ + getAgentPoolMetadata(poolId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "0d62f887-9f53-48b9-9161-4c35d5735b0f", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/plain", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {any} agentPoolMetadata + * @param {number} poolId + */ + setAgentPoolMetadata(customHeaders, agentPoolMetadata, poolId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "0d62f887-9f53-48b9-9161-4c35d5735b0f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.replace(url, agentPoolMetadata, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create an agent pool. + * + * @param {TaskAgentInterfaces.TaskAgentPool} pool - Details about the new agent pool + */ + addAgentPool(pool) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "a8c47e17-4d56-4a56-92bb-de7ea7dc65be", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, pool, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete an agent pool. + * + * @param {number} poolId - ID of the agent pool to delete + */ + deleteAgentPool(poolId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "a8c47e17-4d56-4a56-92bb-de7ea7dc65be", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get information about an agent pool. + * + * @param {number} poolId - An agent pool ID + * @param {string[]} properties - Agent pool properties (comma-separated) + * @param {TaskAgentInterfaces.TaskAgentPoolActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions + */ + getAgentPool(poolId, properties, actionFilter) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + let queryValues = { + properties: properties && properties.join(","), + actionFilter: actionFilter, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "a8c47e17-4d56-4a56-92bb-de7ea7dc65be", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of agent pools. + * + * @param {string} poolName - Filter by name + * @param {string[]} properties - Filter by agent pool properties (comma-separated) + * @param {TaskAgentInterfaces.TaskAgentPoolType} poolType - Filter by pool type + * @param {TaskAgentInterfaces.TaskAgentPoolActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions + */ + getAgentPools(poolName, properties, poolType, actionFilter) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + poolName: poolName, + properties: properties && properties.join(","), + poolType: poolType, + actionFilter: actionFilter, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "a8c47e17-4d56-4a56-92bb-de7ea7dc65be", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of agent pools. + * + * @param {number[]} poolIds - pool Ids to fetch + * @param {TaskAgentInterfaces.TaskAgentPoolActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions + */ + getAgentPoolsByIds(poolIds, actionFilter) { + return __awaiter(this, void 0, void 0, function* () { + if (poolIds == null) { + throw new TypeError('poolIds can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + poolIds: poolIds && poolIds.join(","), + actionFilter: actionFilter, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "a8c47e17-4d56-4a56-92bb-de7ea7dc65be", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update properties on an agent pool + * + * @param {TaskAgentInterfaces.TaskAgentPool} pool - Updated agent pool details + * @param {number} poolId - The agent pool to update + */ + updateAgentPool(pool, poolId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "a8c47e17-4d56-4a56-92bb-de7ea7dc65be", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, pool, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a new agent queue to connect a project to an agent pool. + * + * @param {TaskAgentInterfaces.TaskAgentQueue} queue - Details about the queue to create + * @param {string} project - Project ID or project name + * @param {boolean} authorizePipelines - Automatically authorize this queue when using YAML + */ + addAgentQueue(queue, project, authorizePipelines) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + authorizePipelines: authorizePipelines, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "900fa995-c559-4923-aae7-f8424fe4fbea", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, queue, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a new team project. + * + * @param {string} project - Project ID or project name + */ + createTeamProject(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "900fa995-c559-4923-aae7-f8424fe4fbea", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes an agent queue from a project. + * + * @param {number} queueId - The agent queue to remove + * @param {string} project - Project ID or project name + */ + deleteAgentQueue(queueId, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + queueId: queueId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "900fa995-c559-4923-aae7-f8424fe4fbea", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get information about an agent queue. + * + * @param {number} queueId - The agent queue to get information about + * @param {string} project - Project ID or project name + * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions + */ + getAgentQueue(queueId, project, actionFilter) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + queueId: queueId + }; + let queryValues = { + actionFilter: actionFilter, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "900fa995-c559-4923-aae7-f8424fe4fbea", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of agent queues. + * + * @param {string} project - Project ID or project name + * @param {string} queueName - Filter on the agent queue name + * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions + */ + getAgentQueues(project, queueName, actionFilter) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + queueName: queueName, + actionFilter: actionFilter, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "900fa995-c559-4923-aae7-f8424fe4fbea", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of agent queues by their IDs + * + * @param {number[]} queueIds - A comma-separated list of agent queue IDs to retrieve + * @param {string} project - Project ID or project name + * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions + */ + getAgentQueuesByIds(queueIds, project, actionFilter) { + return __awaiter(this, void 0, void 0, function* () { + if (queueIds == null) { + throw new TypeError('queueIds can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + queueIds: queueIds && queueIds.join(","), + actionFilter: actionFilter, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "900fa995-c559-4923-aae7-f8424fe4fbea", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of agent queues by their names + * + * @param {string[]} queueNames - A comma-separated list of agent names to retrieve + * @param {string} project - Project ID or project name + * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions + */ + getAgentQueuesByNames(queueNames, project, actionFilter) { + return __awaiter(this, void 0, void 0, function* () { + if (queueNames == null) { + throw new TypeError('queueNames can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + queueNames: queueNames && queueNames.join(","), + actionFilter: actionFilter, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "900fa995-c559-4923-aae7-f8424fe4fbea", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of agent queues by pool ids + * + * @param {number[]} poolIds - A comma-separated list of pool ids to get the corresponding queues for + * @param {string} project - Project ID or project name + * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions + */ + getAgentQueuesForPools(poolIds, project, actionFilter) { + return __awaiter(this, void 0, void 0, function* () { + if (poolIds == null) { + throw new TypeError('poolIds can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + poolIds: poolIds && poolIds.join(","), + actionFilter: actionFilter, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "900fa995-c559-4923-aae7-f8424fe4fbea", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} agentCloudId + */ + getAgentCloudRequests(agentCloudId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + agentCloudId: agentCloudId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "20189bd7-5134-49c2-b8e9-f9e856eea2b2", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentCloudRequest, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + */ + getResourceLimits() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "1f1f0557-c445-42a6-b4a0-0df605a3a0f8", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} parallelismTag + * @param {boolean} poolIsHosted + * @param {boolean} includeRunningRequests + */ + getResourceUsage(parallelismTag, poolIsHosted, includeRunningRequests) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + parallelismTag: parallelismTag, + poolIsHosted: poolIsHosted, + includeRunningRequests: includeRunningRequests, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "distributedtask", "eae1d376-a8b1-4475-9041-1dfdbe8f0143", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.ResourceUsage, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {string} taskGroupId + */ + getTaskGroupHistory(project, taskGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + taskGroupId: taskGroupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "100cc92a-b255-47fa-9ab3-e44a2985a3ac", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroupRevision, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a secure file + * + * @param {string} project - Project ID or project name + * @param {string} secureFileId - The unique secure file Id + */ + deleteSecureFile(project, secureFileId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + secureFileId: secureFileId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "adcfd8bc-b184-43ba-bd84-7c8c6a2ff421", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Download a secure file by Id + * + * @param {string} project - Project ID or project name + * @param {string} secureFileId - The unique secure file Id + * @param {string} ticket - A valid download ticket + * @param {boolean} download - If download is true, the file is sent as attachement in the response body. If download is false, the response body contains the file stream. + */ + downloadSecureFile(project, secureFileId, ticket, download) { + return __awaiter(this, void 0, void 0, function* () { + if (ticket == null) { + throw new TypeError('ticket can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + secureFileId: secureFileId + }; + let queryValues = { + ticket: ticket, + download: download, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "adcfd8bc-b184-43ba-bd84-7c8c6a2ff421", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a secure file + * + * @param {string} project - Project ID or project name + * @param {string} secureFileId - The unique secure file Id + * @param {boolean} includeDownloadTicket - If includeDownloadTicket is true and the caller has permissions, a download ticket is included in the response. + * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter + */ + getSecureFile(project, secureFileId, includeDownloadTicket, actionFilter) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + secureFileId: secureFileId + }; + let queryValues = { + includeDownloadTicket: includeDownloadTicket, + actionFilter: actionFilter, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "adcfd8bc-b184-43ba-bd84-7c8c6a2ff421", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get secure files + * + * @param {string} project - Project ID or project name + * @param {string} namePattern - Name of the secure file to match. Can include wildcards to match multiple files. + * @param {boolean} includeDownloadTickets - If includeDownloadTickets is true and the caller has permissions, a download ticket for each secure file is included in the response. + * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter - Filter by secure file permissions for View, Manage or Use action. Defaults to View. + */ + getSecureFiles(project, namePattern, includeDownloadTickets, actionFilter) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + namePattern: namePattern, + includeDownloadTickets: includeDownloadTickets, + actionFilter: actionFilter, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "adcfd8bc-b184-43ba-bd84-7c8c6a2ff421", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get secure files + * + * @param {string} project - Project ID or project name + * @param {string[]} secureFileIds - A list of secure file Ids + * @param {boolean} includeDownloadTickets - If includeDownloadTickets is true and the caller has permissions, a download ticket for each secure file is included in the response. + * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter + */ + getSecureFilesByIds(project, secureFileIds, includeDownloadTickets, actionFilter) { + return __awaiter(this, void 0, void 0, function* () { + if (secureFileIds == null) { + throw new TypeError('secureFileIds can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + secureFileIds: secureFileIds && secureFileIds.join(","), + includeDownloadTickets: includeDownloadTickets, + actionFilter: actionFilter, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "adcfd8bc-b184-43ba-bd84-7c8c6a2ff421", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get secure files + * + * @param {string} project - Project ID or project name + * @param {string[]} secureFileNames - A list of secure file Ids + * @param {boolean} includeDownloadTickets - If includeDownloadTickets is true and the caller has permissions, a download ticket for each secure file is included in the response. + * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter + */ + getSecureFilesByNames(project, secureFileNames, includeDownloadTickets, actionFilter) { + return __awaiter(this, void 0, void 0, function* () { + if (secureFileNames == null) { + throw new TypeError('secureFileNames can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + secureFileNames: secureFileNames && secureFileNames.join(","), + includeDownloadTickets: includeDownloadTickets, + actionFilter: actionFilter, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "adcfd8bc-b184-43ba-bd84-7c8c6a2ff421", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Query secure files using a name pattern and a condition on file properties. + * + * @param {string} condition - The main condition syntax is described [here](https://go.microsoft.com/fwlink/?linkid=842996). Use the *property('property-name')* function to access the value of the specified property of a secure file. It returns null if the property is not set. E.g. ``` and( eq( property('devices'), '2' ), in( property('provisioning profile type'), 'ad hoc', 'development' ) ) ``` + * @param {string} project - Project ID or project name + * @param {string} namePattern - Name of the secure file to match. Can include wildcards to match multiple files. + */ + querySecureFilesByProperties(condition, project, namePattern) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + namePattern: namePattern, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "adcfd8bc-b184-43ba-bd84-7c8c6a2ff421", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, condition, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update the name or properties of an existing secure file + * + * @param {TaskAgentInterfaces.SecureFile} secureFile - The secure file with updated name and/or properties + * @param {string} project - Project ID or project name + * @param {string} secureFileId - The unique secure file Id + */ + updateSecureFile(secureFile, project, secureFileId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + secureFileId: secureFileId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "adcfd8bc-b184-43ba-bd84-7c8c6a2ff421", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, secureFile, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update properties and/or names of a set of secure files. Files are identified by their IDs. Properties provided override the existing one entirely, i.e. do not merge. + * + * @param {TaskAgentInterfaces.SecureFile[]} secureFiles - A list of secure file objects. Only three field must be populated Id, Name, and Properties. The rest of fields in the object are ignored. + * @param {string} project - Project ID or project name + */ + updateSecureFiles(secureFiles, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "adcfd8bc-b184-43ba-bd84-7c8c6a2ff421", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, secureFiles, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Upload a secure file, include the file stream in the request body + * + * @param {NodeJS.ReadableStream} contentStream - Content to upload + * @param {string} project - Project ID or project name + * @param {string} name - Name of the file to upload + * @param {boolean} authorizePipelines - If authorizePipelines is true, then the secure file is authorized for use by all pipelines in the project. + */ + uploadSecureFile(customHeaders, contentStream, project, name, authorizePipelines) { + return __awaiter(this, void 0, void 0, function* () { + if (name == null) { + throw new TypeError('name can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + name: name, + authorizePipelines: authorizePipelines, + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "adcfd8bc-b184-43ba-bd84-7c8c6a2ff421", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("POST", url, contentStream, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.TaskAgentSession} session + * @param {number} poolId + */ + createAgentSession(session, poolId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "134e239e-2df3-4794-a6f6-24f1f19ec8dc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, session, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentSession, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {string} sessionId + */ + deleteAgentSession(poolId, sessionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + sessionId: sessionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "134e239e-2df3-4794-a6f6-24f1f19ec8dc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Register a deployment target to a deployment group. Generally this is called by agent configuration tool. + * + * @param {TaskAgentInterfaces.DeploymentMachine} machine - Deployment target to register. + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId - ID of the deployment group to which the deployment target is registered. + */ + addDeploymentTarget(machine, project, deploymentGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "2f0aa599-c121-4256-a5fd-ba370e0ae7b6", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, machine, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a deployment target in a deployment group. This deletes the agent from associated deployment pool too. + * + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId - ID of the deployment group in which deployment target is deleted. + * @param {number} targetId - ID of the deployment target to delete. + */ + deleteDeploymentTarget(project, deploymentGroupId, targetId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId, + targetId: targetId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "2f0aa599-c121-4256-a5fd-ba370e0ae7b6", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a deployment target by its ID in a deployment group + * + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId - ID of the deployment group to which deployment target belongs. + * @param {number} targetId - ID of the deployment target to return. + * @param {TaskAgentInterfaces.DeploymentTargetExpands} expand - Include these additional details in the returned objects. + */ + getDeploymentTarget(project, deploymentGroupId, targetId, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId, + targetId: targetId + }; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "2f0aa599-c121-4256-a5fd-ba370e0ae7b6", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of deployment targets in a deployment group. + * + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId - ID of the deployment group. + * @param {string[]} tags - Get only the deployment targets that contain all these comma separted list of tags. + * @param {string} name - Name pattern of the deployment targets to return. + * @param {boolean} partialNameMatch - When set to true, treats **name** as pattern. Else treats it as absolute match. Default is **false**. + * @param {TaskAgentInterfaces.DeploymentTargetExpands} expand - Include these additional details in the returned objects. + * @param {TaskAgentInterfaces.TaskAgentStatusFilter} agentStatus - Get only deployment targets that have this status. + * @param {TaskAgentInterfaces.TaskAgentJobResultFilter} agentJobResult - Get only deployment targets that have this last job result. + * @param {string} continuationToken - Get deployment targets with names greater than this continuationToken lexicographically. + * @param {number} top - Maximum number of deployment targets to return. Default is **1000**. + * @param {boolean} enabled - Get only deployment targets that are enabled or disabled. Default is 'null' which returns all the targets. + * @param {string[]} propertyFilters + */ + getDeploymentTargets(project, deploymentGroupId, tags, name, partialNameMatch, expand, agentStatus, agentJobResult, continuationToken, top, enabled, propertyFilters) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + let queryValues = { + tags: tags && tags.join(","), + name: name, + partialNameMatch: partialNameMatch, + '$expand': expand, + agentStatus: agentStatus, + agentJobResult: agentJobResult, + continuationToken: continuationToken, + '$top': top, + enabled: enabled, + propertyFilters: propertyFilters && propertyFilters.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "2f0aa599-c121-4256-a5fd-ba370e0ae7b6", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Replace a deployment target in a deployment group. Generally this is called by agent configuration tool. + * + * @param {TaskAgentInterfaces.DeploymentMachine} machine - New deployment target. + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId - ID of the deployment group in which deployment target is replaced. + * @param {number} targetId - ID of the deployment target to replace. + */ + replaceDeploymentTarget(machine, project, deploymentGroupId, targetId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId, + targetId: targetId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "2f0aa599-c121-4256-a5fd-ba370e0ae7b6", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, machine, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a deployment target and its agent properties in a deployment group. Generally this is called by agent configuration tool. + * + * @param {TaskAgentInterfaces.DeploymentMachine} machine - Deployment target to update. + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId - ID of the deployment group in which deployment target is updated. + * @param {number} targetId - ID of the deployment target to update. + */ + updateDeploymentTarget(machine, project, deploymentGroupId, targetId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId, + targetId: targetId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "2f0aa599-c121-4256-a5fd-ba370e0ae7b6", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, machine, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update tags of a list of deployment targets in a deployment group. + * + * @param {TaskAgentInterfaces.DeploymentTargetUpdateParameter[]} machines - Deployment targets with tags to udpdate. + * @param {string} project - Project ID or project name + * @param {number} deploymentGroupId - ID of the deployment group in which deployment targets are updated. + */ + updateDeploymentTargets(machines, project, deploymentGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + deploymentGroupId: deploymentGroupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "2f0aa599-c121-4256-a5fd-ba370e0ae7b6", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, machines, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a task group. + * + * @param {TaskAgentInterfaces.TaskGroupCreateParameter} taskGroup - Task group object to create. + * @param {string} project - Project ID or project name + */ + addTaskGroup(taskGroup, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, taskGroup, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a task group. + * + * @param {string} project - Project ID or project name + * @param {string} taskGroupId - Id of the task group to be deleted. + * @param {string} comment - Comments to delete. + */ + deleteTaskGroup(project, taskGroupId, comment) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + taskGroupId: taskGroupId + }; + let queryValues = { + comment: comment, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get task group. + * + * @param {string} project - Project ID or project name + * @param {string} taskGroupId - Id of the task group. + * @param {string} versionSpec - version specification of the task group. examples: 1, 1.0. + * @param {TaskAgentInterfaces.TaskGroupExpands} expand - The properties that should be expanded. example $expand=Tasks will expand nested task groups. + */ + getTaskGroup(project, taskGroupId, versionSpec, expand) { + return __awaiter(this, void 0, void 0, function* () { + if (versionSpec == null) { + throw new TypeError('versionSpec can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + taskGroupId: taskGroupId + }; + let queryValues = { + versionSpec: versionSpec, + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {string} taskGroupId + * @param {number} revision + */ + getTaskGroupRevision(project, taskGroupId, revision) { + return __awaiter(this, void 0, void 0, function* () { + if (revision == null) { + throw new TypeError('revision can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + taskGroupId: taskGroupId + }; + let queryValues = { + revision: revision, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/plain", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * List task groups. + * + * @param {string} project - Project ID or project name + * @param {string} taskGroupId - Id of the task group. + * @param {boolean} expanded - 'true' to recursively expand task groups. Default is 'false'. + * @param {string} taskIdFilter - Guid of the taskId to filter. + * @param {boolean} deleted - 'true'to include deleted task groups. Default is 'false'. + * @param {number} top - Number of task groups to get. + * @param {Date} continuationToken - Gets the task groups after the continuation token provided. + * @param {TaskAgentInterfaces.TaskGroupQueryOrder} queryOrder - Gets the results in the defined order. Default is 'CreatedOnDescending'. + */ + getTaskGroups(project, taskGroupId, expanded, taskIdFilter, deleted, top, continuationToken, queryOrder) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + taskGroupId: taskGroupId + }; + let queryValues = { + expanded: expanded, + taskIdFilter: taskIdFilter, + deleted: deleted, + '$top': top, + continuationToken: continuationToken, + queryOrder: queryOrder, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.PublishTaskGroupMetadata} taskGroupMetadata + * @param {string} project - Project ID or project name + * @param {string} parentTaskGroupId + */ + publishTaskGroup(taskGroupMetadata, project, parentTaskGroupId) { + return __awaiter(this, void 0, void 0, function* () { + if (parentTaskGroupId == null) { + throw new TypeError('parentTaskGroupId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + parentTaskGroupId: parentTaskGroupId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, taskGroupMetadata, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.TaskGroup} taskGroup + * @param {string} project - Project ID or project name + */ + undeleteTaskGroup(taskGroup, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, taskGroup, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a task group. + * + * @param {TaskAgentInterfaces.TaskGroupUpdateParameter} taskGroup - Task group to update. + * @param {string} project - Project ID or project name + * @param {string} taskGroupId - Id of the task group to update. + */ + updateTaskGroup(taskGroup, project, taskGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + taskGroupId: taskGroupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, taskGroup, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.TaskGroupUpdatePropertiesBase} taskGroupUpdateProperties + * @param {string} project - Project ID or project name + * @param {string} taskGroupId + * @param {boolean} disablePriorVersions + */ + updateTaskGroupProperties(taskGroupUpdateProperties, project, taskGroupId, disablePriorVersions) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + taskGroupId: taskGroupId + }; + let queryValues = { + disablePriorVersions: disablePriorVersions, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, taskGroupUpdateProperties, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} taskId + */ + deleteTaskDefinition(taskId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + taskId: taskId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} taskId + * @param {string} versionString + * @param {string[]} visibility + * @param {boolean} scopeLocal + */ + getTaskContentZip(taskId, versionString, visibility, scopeLocal) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + taskId: taskId, + versionString: versionString + }; + let queryValues = { + visibility: visibility, + scopeLocal: scopeLocal, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} taskId + * @param {string} versionString + * @param {string[]} visibility + * @param {boolean} scopeLocal + */ + getTaskDefinition(taskId, versionString, visibility, scopeLocal) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + taskId: taskId, + versionString: versionString + }; + let queryValues = { + visibility: visibility, + scopeLocal: scopeLocal, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskDefinition, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} taskId + * @param {string[]} visibility + * @param {boolean} scopeLocal + * @param {boolean} allVersions + */ + getTaskDefinitions(taskId, visibility, scopeLocal, allVersions) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + taskId: taskId + }; + let queryValues = { + visibility: visibility, + scopeLocal: scopeLocal, + allVersions: allVersions, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskDefinition, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {number} poolId + * @param {number} agentId + * @param {string} currentState + */ + updateAgentUpdateState(poolId, agentId, currentState) { + return __awaiter(this, void 0, void 0, function* () { + if (currentState == null) { + throw new TypeError('currentState can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + agentId: agentId + }; + let queryValues = { + currentState: currentState, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "8cc1b02b-ae49-4516-b5ad-4f9b29967c30", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, null, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {{ [key: string] : string; }} userCapabilities + * @param {number} poolId + * @param {number} agentId + */ + updateAgentUserCapabilities(userCapabilities, poolId, agentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + poolId: poolId, + agentId: agentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "30ba3ada-fedf-4da8-bbb5-dacf2f82e176", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, userCapabilities, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Add a variable group. + * + * @param {TaskAgentInterfaces.VariableGroupParameters} variableGroupParameters + */ + addVariableGroup(variableGroupParameters) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "distributedtask", "ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, variableGroupParameters, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a variable group + * + * @param {number} groupId - Id of the variable group. + * @param {string[]} projectIds + */ + deleteVariableGroup(groupId, projectIds) { + return __awaiter(this, void 0, void 0, function* () { + if (projectIds == null) { + throw new TypeError('projectIds can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + groupId: groupId + }; + let queryValues = { + projectIds: projectIds && projectIds.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "distributedtask", "ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Add a variable group. + * + * @param {TaskAgentInterfaces.VariableGroupProjectReference[]} variableGroupProjectReferences + * @param {number} variableGroupId + */ + shareVariableGroup(variableGroupProjectReferences, variableGroupId) { + return __awaiter(this, void 0, void 0, function* () { + if (variableGroupId == null) { + throw new TypeError('variableGroupId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + variableGroupId: variableGroupId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "distributedtask", "ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, variableGroupProjectReferences, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a variable group. + * + * @param {TaskAgentInterfaces.VariableGroupParameters} variableGroupParameters + * @param {number} groupId - Id of the variable group to update. + */ + updateVariableGroup(variableGroupParameters, groupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + groupId: groupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "distributedtask", "ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, variableGroupParameters, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a variable group. + * + * @param {string} project - Project ID or project name + * @param {number} groupId - Id of the variable group. + */ + getVariableGroup(project, groupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + groupId: groupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "distributedtask", "f5b09dd5-9d54-45a1-8b5a-1c8287d634cc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get variable groups. + * + * @param {string} project - Project ID or project name + * @param {string} groupName - Name of variable group. + * @param {TaskAgentInterfaces.VariableGroupActionFilter} actionFilter - Action filter for the variable group. It specifies the action which can be performed on the variable groups. + * @param {number} top - Number of variable groups to get. + * @param {number} continuationToken - Gets the variable groups after the continuation token provided. + * @param {TaskAgentInterfaces.VariableGroupQueryOrder} queryOrder - Gets the results in the defined order. Default is 'IdDescending'. + */ + getVariableGroups(project, groupName, actionFilter, top, continuationToken, queryOrder) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + groupName: groupName, + actionFilter: actionFilter, + '$top': top, + continuationToken: continuationToken, + queryOrder: queryOrder, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "distributedtask", "f5b09dd5-9d54-45a1-8b5a-1c8287d634cc", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get variable groups by ids. + * + * @param {string} project - Project ID or project name + * @param {number[]} groupIds - Comma separated list of Ids of variable groups. + */ + getVariableGroupsById(project, groupIds) { + return __awaiter(this, void 0, void 0, function* () { + if (groupIds == null) { + throw new TypeError('groupIds can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + groupIds: groupIds && groupIds.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "distributedtask", "f5b09dd5-9d54-45a1-8b5a-1c8287d634cc", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.VirtualMachineGroupCreateParameters} createParameters + * @param {string} project - Project ID or project name + * @param {number} environmentId + */ + addVirtualMachineGroup(createParameters, project, environmentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + environmentId: environmentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "9e597901-4af7-4cc3-8d92-47d54db8ebfb", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, createParameters, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachineGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} environmentId + * @param {number} resourceId + */ + deleteVirtualMachineGroup(project, environmentId, resourceId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + environmentId: environmentId, + resourceId: resourceId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "9e597901-4af7-4cc3-8d92-47d54db8ebfb", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} environmentId + * @param {number} resourceId + */ + getVirtualMachineGroup(project, environmentId, resourceId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + environmentId: environmentId, + resourceId: resourceId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "9e597901-4af7-4cc3-8d92-47d54db8ebfb", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachineGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.VirtualMachineGroup} resource + * @param {string} project - Project ID or project name + * @param {number} environmentId + */ + updateVirtualMachineGroup(resource, project, environmentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + environmentId: environmentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "9e597901-4af7-4cc3-8d92-47d54db8ebfb", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, resource, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachineGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} environmentId + * @param {number} resourceId + * @param {string} continuationToken + * @param {string} name + * @param {boolean} partialNameMatch + * @param {string[]} tags + * @param {number} top + */ + getVirtualMachines(project, environmentId, resourceId, continuationToken, name, partialNameMatch, tags, top) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + environmentId: environmentId, + resourceId: resourceId + }; + let queryValues = { + continuationToken: continuationToken, + name: name, + partialNameMatch: partialNameMatch, + tags: tags && tags.join(","), + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "48700676-2ba5-4282-8ec8-083280d169c7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachine, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.VirtualMachine[]} machines + * @param {string} project - Project ID or project name + * @param {number} environmentId + * @param {number} resourceId + */ + updateVirtualMachines(machines, project, environmentId, resourceId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + environmentId: environmentId, + resourceId: resourceId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "48700676-2ba5-4282-8ec8-083280d169c7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, machines, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachine, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.AadOauthTokenRequest} authenticationRequest + */ + acquireAccessToken(authenticationRequest) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "9c63205e-3a0f-42a0-ad88-095200f13607", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, authenticationRequest, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} tenantId + * @param {string} redirectUri + * @param {TaskAgentInterfaces.AadLoginPromptOption} promptOption + * @param {string} completeCallbackPayload + * @param {boolean} completeCallbackByAuthCode + */ + createAadOAuthRequest(tenantId, redirectUri, promptOption, completeCallbackPayload, completeCallbackByAuthCode) { + return __awaiter(this, void 0, void 0, function* () { + if (tenantId == null) { + throw new TypeError('tenantId can not be null or undefined'); + } + if (redirectUri == null) { + throw new TypeError('redirectUri can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + tenantId: tenantId, + redirectUri: redirectUri, + promptOption: promptOption, + completeCallbackPayload: completeCallbackPayload, + completeCallbackByAuthCode: completeCallbackByAuthCode, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "9c63205e-3a0f-42a0-ad88-095200f13607", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + */ + getVstsAadTenantId() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "9c63205e-3a0f-42a0-ad88-095200f13607", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * GET the Yaml schema used for Yaml file validation. + * + * @param {boolean} validateTaskNames - Whether the schema should validate that tasks are actually installed (useful for offline tools where you don't want validation). + */ + getYamlSchema(validateTaskNames) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + validateTaskNames: validateTaskNames, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "1f9990b9-1dba-441f-9c2e-6485888c42b6", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +TaskAgentApiBase.RESOURCE_AREA_ID = "a85b8835-c1a1-4aac-ae97-1c3d0ba72dbd"; +exports.TaskAgentApiBase = TaskAgentApiBase; + + +/***/ }), + +/***/ 2354: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const TaskAgentInterfaces = __nccwpck_require__(9565); +class TaskApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-Task-api', options); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + * @param {string} type + */ + getPlanAttachments(scopeIdentifier, hubName, planId, type) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + type: type + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "eb55e5d6-2f30-4295-b5ed-38da50b1fc52", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {NodeJS.ReadableStream} contentStream - Content to upload + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + * @param {string} timelineId + * @param {string} recordId + * @param {string} type + * @param {string} name + */ + createAttachment(customHeaders, contentStream, scopeIdentifier, hubName, planId, timelineId, recordId, type, name) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + timelineId: timelineId, + recordId: recordId, + type: type, + name: name + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "7898f959-9cdf-4096-b29e-7f293031629e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("PUT", url, contentStream, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + * @param {string} timelineId + * @param {string} recordId + * @param {string} type + * @param {string} name + * @param {string} artifactHash + * @param {number} length + */ + createAttachmentFromArtifact(scopeIdentifier, hubName, planId, timelineId, recordId, type, name, artifactHash, length) { + return __awaiter(this, void 0, void 0, function* () { + if (artifactHash == null) { + throw new TypeError('artifactHash can not be null or undefined'); + } + if (length == null) { + throw new TypeError('length can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + timelineId: timelineId, + recordId: recordId, + type: type, + name: name + }; + let queryValues = { + artifactHash: artifactHash, + length: length, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "7898f959-9cdf-4096-b29e-7f293031629e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, null, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + * @param {string} timelineId + * @param {string} recordId + * @param {string} type + * @param {string} name + */ + getAttachment(scopeIdentifier, hubName, planId, timelineId, recordId, type, name) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + timelineId: timelineId, + recordId: recordId, + type: type, + name: name + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "7898f959-9cdf-4096-b29e-7f293031629e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + * @param {string} timelineId + * @param {string} recordId + * @param {string} type + * @param {string} name + */ + getAttachmentContent(scopeIdentifier, hubName, planId, timelineId, recordId, type, name) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + timelineId: timelineId, + recordId: recordId, + type: type, + name: name + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "7898f959-9cdf-4096-b29e-7f293031629e", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + * @param {string} timelineId + * @param {string} recordId + * @param {string} type + */ + getAttachments(scopeIdentifier, hubName, planId, timelineId, recordId, type) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + timelineId: timelineId, + recordId: recordId, + type: type + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "7898f959-9cdf-4096-b29e-7f293031629e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.TimelineRecordFeedLinesWrapper} lines + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + * @param {string} timelineId + * @param {string} recordId + */ + appendTimelineRecordFeed(lines, scopeIdentifier, hubName, planId, timelineId, recordId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + timelineId: timelineId, + recordId: recordId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "858983e4-19bd-4c5e-864c-507b59b58b12", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, lines, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + * @param {string} timelineId + * @param {string} recordId + * @param {string} stepId + * @param {number} endLine + * @param {number} takeCount + * @param {string} continuationToken + */ + getLines(scopeIdentifier, hubName, planId, timelineId, recordId, stepId, endLine, takeCount, continuationToken) { + return __awaiter(this, void 0, void 0, function* () { + if (stepId == null) { + throw new TypeError('stepId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + timelineId: timelineId, + recordId: recordId + }; + let queryValues = { + stepId: stepId, + endLine: endLine, + takeCount: takeCount, + continuationToken: continuationToken, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "858983e4-19bd-4c5e-864c-507b59b58b12", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} orchestrationId + */ + getJobInstance(scopeIdentifier, hubName, orchestrationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + orchestrationId: orchestrationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "0a1efd25-abda-43bd-9629-6c7bdd2e0d60", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJob, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {NodeJS.ReadableStream} contentStream - Content to upload + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + * @param {number} logId + */ + appendLogContent(customHeaders, contentStream, scopeIdentifier, hubName, planId, logId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + logId: logId + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "46f5667d-263a-4684-91b1-dff7fdcf64e2", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("POST", url, contentStream, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + * @param {number} logId + * @param {string} serializedBlobId + * @param {number} lineCount + */ + associateLog(scopeIdentifier, hubName, planId, logId, serializedBlobId, lineCount) { + return __awaiter(this, void 0, void 0, function* () { + if (serializedBlobId == null) { + throw new TypeError('serializedBlobId can not be null or undefined'); + } + if (lineCount == null) { + throw new TypeError('lineCount can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + logId: logId + }; + let queryValues = { + serializedBlobId: serializedBlobId, + lineCount: lineCount, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "46f5667d-263a-4684-91b1-dff7fdcf64e2", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.TaskLog} log + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + */ + createLog(log, scopeIdentifier, hubName, planId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "46f5667d-263a-4684-91b1-dff7fdcf64e2", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, log, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + * @param {number} logId + * @param {number} startLine + * @param {number} endLine + */ + getLog(scopeIdentifier, hubName, planId, logId, startLine, endLine) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + logId: logId + }; + let queryValues = { + startLine: startLine, + endLine: endLine, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "46f5667d-263a-4684-91b1-dff7fdcf64e2", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + */ + getLogs(scopeIdentifier, hubName, planId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "46f5667d-263a-4684-91b1-dff7fdcf64e2", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + */ + getPlanGroupsQueueMetrics(scopeIdentifier, hubName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "038fd4d5-cda7-44ca-92c0-935843fee1a7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationPlanGroupsQueueMetrics, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {TaskAgentInterfaces.PlanGroupStatus} statusFilter + * @param {number} count + */ + getQueuedPlanGroups(scopeIdentifier, hubName, statusFilter, count) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName + }; + let queryValues = { + statusFilter: statusFilter, + count: count, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "0dd73091-3e36-4f43-b443-1b76dd426d84", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationQueuedPlanGroup, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planGroup + */ + getQueuedPlanGroup(scopeIdentifier, hubName, planGroup) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planGroup: planGroup + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "65fd0708-bc1e-447b-a731-0587c5464e5b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationQueuedPlanGroup, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + */ + getPlan(scopeIdentifier, hubName, planId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "distributedtask", "5cecd946-d704-471e-a45f-3b4064fcfaba", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationPlan, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + * @param {string} timelineId + * @param {number} changeId + */ + getRecords(scopeIdentifier, hubName, planId, timelineId, changeId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + timelineId: timelineId + }; + let queryValues = { + changeId: changeId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "8893bc5b-35b2-4be7-83cb-99e683551db4", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TimelineRecord, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {VSSInterfaces.VssJsonCollectionWrapperV} records + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + * @param {string} timelineId + */ + updateRecords(records, scopeIdentifier, hubName, planId, timelineId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + timelineId: timelineId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "8893bc5b-35b2-4be7-83cb-99e683551db4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, records, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TimelineRecord, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TaskAgentInterfaces.Timeline} timeline + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + */ + createTimeline(timeline, scopeIdentifier, hubName, planId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "83597576-cc2c-453c-bea6-2882ae6a1653", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, timeline, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.Timeline, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + * @param {string} timelineId + */ + deleteTimeline(scopeIdentifier, hubName, planId, timelineId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + timelineId: timelineId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "83597576-cc2c-453c-bea6-2882ae6a1653", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + * @param {string} timelineId + * @param {number} changeId + * @param {boolean} includeRecords + */ + getTimeline(scopeIdentifier, hubName, planId, timelineId, changeId, includeRecords) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId, + timelineId: timelineId + }; + let queryValues = { + changeId: changeId, + includeRecords: includeRecords, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "83597576-cc2c-453c-bea6-2882ae6a1653", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.Timeline, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} scopeIdentifier - The project GUID to scope the request + * @param {string} hubName - The name of the server hub: "build" for the Build server or "rm" for the Release Management server + * @param {string} planId + */ + getTimelines(scopeIdentifier, hubName, planId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + scopeIdentifier: scopeIdentifier, + hubName: hubName, + planId: planId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "distributedtask", "83597576-cc2c-453c-bea6-2882ae6a1653", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.Timeline, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +exports.TaskApi = TaskApi; + + +/***/ }), + +/***/ 5742: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const TestInterfaces = __nccwpck_require__(3047); +class TestApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-Test-api', options); + } + /** + * Attach a file to test step result + * + * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment details TestAttachmentRequestModel + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run that contains the result. + * @param {number} testCaseResultId - ID of the test result that contains the iteration + * @param {number} iterationId - ID of the test result iteration. + * @param {string} actionPath - Hex value of test result action path. + */ + createTestIterationResultAttachment(attachmentRequestModel, project, runId, testCaseResultId, iterationId, actionPath) { + return __awaiter(this, void 0, void 0, function* () { + if (iterationId == null) { + throw new TypeError('iterationId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId, + testCaseResultId: testCaseResultId + }; + let queryValues = { + iterationId: iterationId, + actionPath: actionPath, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "2bffebe9-2f0f-4639-9af8-56129e9fed2d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, attachmentRequestModel, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Attach a file to a test result. + * + * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment details TestAttachmentRequestModel + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run that contains the result. + * @param {number} testCaseResultId - ID of the test result against which attachment has to be uploaded. + */ + createTestResultAttachment(attachmentRequestModel, project, runId, testCaseResultId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId, + testCaseResultId: testCaseResultId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "2bffebe9-2f0f-4639-9af8-56129e9fed2d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, attachmentRequestModel, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Attach a file to a test result + * + * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment Request Model. + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run that contains the result. + * @param {number} testCaseResultId - ID of the test results that contains sub result. + * @param {number} testSubResultId - ID of the test sub results against which attachment has to be uploaded. + */ + createTestSubResultAttachment(attachmentRequestModel, project, runId, testCaseResultId, testSubResultId) { + return __awaiter(this, void 0, void 0, function* () { + if (testSubResultId == null) { + throw new TypeError('testSubResultId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId, + testCaseResultId: testCaseResultId + }; + let queryValues = { + testSubResultId: testSubResultId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "2bffebe9-2f0f-4639-9af8-56129e9fed2d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, attachmentRequestModel, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Download a test result attachment by its ID. + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run that contains the testCaseResultId. + * @param {number} testCaseResultId - ID of the test result whose attachment has to be downloaded. + * @param {number} attachmentId - ID of the test result attachment to be downloaded. + */ + getTestResultAttachmentContent(project, runId, testCaseResultId, attachmentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId, + testCaseResultId: testCaseResultId, + attachmentId: attachmentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "2bffebe9-2f0f-4639-9af8-56129e9fed2d", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get list of test result attachments reference. + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run that contains the result. + * @param {number} testCaseResultId - ID of the test result. + */ + getTestResultAttachments(project, runId, testCaseResultId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId, + testCaseResultId: testCaseResultId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "2bffebe9-2f0f-4639-9af8-56129e9fed2d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestAttachment, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Download a test result attachment by its ID. + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run that contains the testCaseResultId. + * @param {number} testCaseResultId - ID of the test result whose attachment has to be downloaded. + * @param {number} attachmentId - ID of the test result attachment to be downloaded. + */ + getTestResultAttachmentZip(project, runId, testCaseResultId, attachmentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId, + testCaseResultId: testCaseResultId, + attachmentId: attachmentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "2bffebe9-2f0f-4639-9af8-56129e9fed2d", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Download a test sub result attachment + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run that contains the result. + * @param {number} testCaseResultId - ID of the test results that contains sub result. + * @param {number} attachmentId - ID of the test result attachment to be downloaded + * @param {number} testSubResultId - ID of the test sub result whose attachment has to be downloaded + */ + getTestSubResultAttachmentContent(project, runId, testCaseResultId, attachmentId, testSubResultId) { + return __awaiter(this, void 0, void 0, function* () { + if (testSubResultId == null) { + throw new TypeError('testSubResultId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId, + testCaseResultId: testCaseResultId, + attachmentId: attachmentId + }; + let queryValues = { + testSubResultId: testSubResultId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "2bffebe9-2f0f-4639-9af8-56129e9fed2d", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get list of test sub result attachments + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run that contains the result. + * @param {number} testCaseResultId - ID of the test results that contains sub result. + * @param {number} testSubResultId - ID of the test sub result whose attachment has to be downloaded + */ + getTestSubResultAttachments(project, runId, testCaseResultId, testSubResultId) { + return __awaiter(this, void 0, void 0, function* () { + if (testSubResultId == null) { + throw new TypeError('testSubResultId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId, + testCaseResultId: testCaseResultId + }; + let queryValues = { + testSubResultId: testSubResultId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "2bffebe9-2f0f-4639-9af8-56129e9fed2d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestAttachment, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Download a test sub result attachment + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run that contains the result. + * @param {number} testCaseResultId - ID of the test results that contains sub result. + * @param {number} attachmentId - ID of the test result attachment to be downloaded + * @param {number} testSubResultId - ID of the test sub result whose attachment has to be downloaded + */ + getTestSubResultAttachmentZip(project, runId, testCaseResultId, attachmentId, testSubResultId) { + return __awaiter(this, void 0, void 0, function* () { + if (testSubResultId == null) { + throw new TypeError('testSubResultId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId, + testCaseResultId: testCaseResultId, + attachmentId: attachmentId + }; + let queryValues = { + testSubResultId: testSubResultId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "2bffebe9-2f0f-4639-9af8-56129e9fed2d", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Attach a file to a test run. + * + * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment details TestAttachmentRequestModel + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run against which attachment has to be uploaded. + */ + createTestRunAttachment(attachmentRequestModel, project, runId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "4f004af4-a507-489c-9b13-cb62060beb11", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, attachmentRequestModel, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Download a test run attachment by its ID. + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run whose attachment has to be downloaded. + * @param {number} attachmentId - ID of the test run attachment to be downloaded. + */ + getTestRunAttachmentContent(project, runId, attachmentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId, + attachmentId: attachmentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "4f004af4-a507-489c-9b13-cb62060beb11", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get list of test run attachments reference. + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run. + */ + getTestRunAttachments(project, runId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "4f004af4-a507-489c-9b13-cb62060beb11", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestAttachment, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Download a test run attachment by its ID. + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run whose attachment has to be downloaded. + * @param {number} attachmentId - ID of the test run attachment to be downloaded. + */ + getTestRunAttachmentZip(project, runId, attachmentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId, + attachmentId: attachmentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "4f004af4-a507-489c-9b13-cb62060beb11", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} runId + * @param {number} testCaseResultId + */ + getBugsLinkedToTestResult(project, runId, testCaseResultId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId, + testCaseResultId: testCaseResultId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "6de20ca2-67de-4faf-97fa-38c5d585eb00", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get code coverage data for a build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - ID of the build for which code coverage data needs to be fetched. + * @param {number} flags - Value of flags determine the level of code coverage details to be fetched. Flags are additive. Expected Values are 1 for Modules, 2 for Functions, 4 for BlockData. + */ + getBuildCodeCoverage(project, buildId, flags) { + return __awaiter(this, void 0, void 0, function* () { + if (buildId == null) { + throw new TypeError('buildId can not be null or undefined'); + } + if (flags == null) { + throw new TypeError('flags can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + buildId: buildId, + flags: flags, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "77560e8a-4e8c-4d59-894e-a5f264c24444", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.BuildCoverage, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get Code Coverage Summary for Build. + * + * @param {string} project - Project ID or project name + * @param {number} buildId - ID of the build for which code coverage data needs to be fetched. + * @param {number} deltaBuildId - Delta Build id (optional) + */ + getCodeCoverageSummary(project, buildId, deltaBuildId) { + return __awaiter(this, void 0, void 0, function* () { + if (buildId == null) { + throw new TypeError('buildId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + buildId: buildId, + deltaBuildId: deltaBuildId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "77560e8a-4e8c-4d59-894e-a5f264c24444", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.CodeCoverageSummary, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * http://(tfsserver):8080/tfs/DefaultCollection/_apis/test/CodeCoverage?buildId=10 Request: Json of code coverage summary + * + * @param {TestInterfaces.CodeCoverageData} coverageData + * @param {string} project - Project ID or project name + * @param {number} buildId + */ + updateCodeCoverageSummary(coverageData, project, buildId) { + return __awaiter(this, void 0, void 0, function* () { + if (buildId == null) { + throw new TypeError('buildId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + buildId: buildId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "77560e8a-4e8c-4d59-894e-a5f264c24444", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, coverageData, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get code coverage data for a test run + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run for which code coverage data needs to be fetched. + * @param {number} flags - Value of flags determine the level of code coverage details to be fetched. Flags are additive. Expected Values are 1 for Modules, 2 for Functions, 4 for BlockData. + */ + getTestRunCodeCoverage(project, runId, flags) { + return __awaiter(this, void 0, void 0, function* () { + if (flags == null) { + throw new TypeError('flags can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId + }; + let queryValues = { + flags: flags, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "9629116f-3b89-4ed8-b358-d4694efda160", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TestInterfaces.CustomTestFieldDefinition[]} newFields + * @param {string} project - Project ID or project name + */ + addCustomFields(newFields, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "8ce1923b-f4c7-4e22-b93b-f6284e525ec2", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, newFields, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.CustomTestFieldDefinition, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {TestInterfaces.CustomTestFieldScope} scopeFilter + */ + queryCustomFields(project, scopeFilter) { + return __awaiter(this, void 0, void 0, function* () { + if (scopeFilter == null) { + throw new TypeError('scopeFilter can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + scopeFilter: scopeFilter, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "8ce1923b-f4c7-4e22-b93b-f6284e525ec2", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.CustomTestFieldDefinition, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TestInterfaces.ResultsFilter} filter + * @param {string} project - Project ID or project name + */ + queryTestResultHistory(filter, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "234616f5-429c-4e7b-9192-affd76731dfd", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, filter, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultHistory, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get iteration for a result + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run that contains the result. + * @param {number} testCaseResultId - ID of the test result that contains the iterations. + * @param {number} iterationId - Id of the test results Iteration. + * @param {boolean} includeActionResults - Include result details for each action performed in the test iteration. ActionResults refer to outcome (pass/fail) of test steps that are executed as part of a running a manual test. Including the ActionResults flag gets the outcome of test steps in the actionResults section and test parameters in the parameters section for each test iteration. + */ + getTestIteration(project, runId, testCaseResultId, iterationId, includeActionResults) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId, + testCaseResultId: testCaseResultId, + iterationId: iterationId + }; + let queryValues = { + includeActionResults: includeActionResults, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "73eb9074-3446-4c44-8296-2f811950ff8d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestIterationDetailsModel, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get iterations for a result + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the test run that contains the result. + * @param {number} testCaseResultId - ID of the test result that contains the iterations. + * @param {boolean} includeActionResults - Include result details for each action performed in the test iteration. ActionResults refer to outcome (pass/fail) of test steps that are executed as part of a running a manual test. Including the ActionResults flag gets the outcome of test steps in the actionResults section and test parameters in the parameters section for each test iteration. + */ + getTestIterations(project, runId, testCaseResultId, includeActionResults) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId, + testCaseResultId: testCaseResultId + }; + let queryValues = { + includeActionResults: includeActionResults, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "73eb9074-3446-4c44-8296-2f811950ff8d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestIterationDetailsModel, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TestInterfaces.LinkedWorkItemsQuery} workItemQuery + * @param {string} project - Project ID or project name + */ + getLinkedWorkItemsByQuery(workItemQuery, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "a4dcb25b-9878-49ea-abfd-e440bd9b1dcd", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, workItemQuery, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get test run message logs + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the run to get. + */ + getTestRunLogs(project, runId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "a1e55200-637e-42e9-a7c0-7e5bfdedb1b3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestMessageLogDetails, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a test point. + * + * @param {string} project - Project ID or project name + * @param {number} planId - ID of the test plan. + * @param {number} suiteId - ID of the suite that contains the point. + * @param {number} pointIds - ID of the test point to get. + * @param {string} witFields - Comma-separated list of work item field names. + */ + getPoint(project, planId, suiteId, pointIds, witFields) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + planId: planId, + suiteId: suiteId, + pointIds: pointIds + }; + let queryValues = { + witFields: witFields, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Test", "3bcfd5c8-be62-488e-b1da-b8289ce9299c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPoint, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of test points. + * + * @param {string} project - Project ID or project name + * @param {number} planId - ID of the test plan. + * @param {number} suiteId - ID of the suite that contains the points. + * @param {string} witFields - Comma-separated list of work item field names. + * @param {string} configurationId - Get test points for specific configuration. + * @param {string} testCaseId - Get test points for a specific test case, valid when configurationId is not set. + * @param {string} testPointIds - Get test points for comma-separated list of test point IDs, valid only when configurationId and testCaseId are not set. + * @param {boolean} includePointDetails - Include all properties for the test point. + * @param {number} skip - Number of test points to skip.. + * @param {number} top - Number of test points to return. + */ + getPoints(project, planId, suiteId, witFields, configurationId, testCaseId, testPointIds, includePointDetails, skip, top) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + planId: planId, + suiteId: suiteId + }; + let queryValues = { + witFields: witFields, + configurationId: configurationId, + testCaseId: testCaseId, + testPointIds: testPointIds, + includePointDetails: includePointDetails, + '$skip': skip, + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Test", "3bcfd5c8-be62-488e-b1da-b8289ce9299c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPoint, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update test points. + * + * @param {TestInterfaces.PointUpdateModel} pointUpdateModel - Data to update. + * @param {string} project - Project ID or project name + * @param {number} planId - ID of the test plan. + * @param {number} suiteId - ID of the suite that contains the points. + * @param {string} pointIds - ID of the test point to get. Use a comma-separated list of IDs to update multiple test points. + */ + updateTestPoints(pointUpdateModel, project, planId, suiteId, pointIds) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + planId: planId, + suiteId: suiteId, + pointIds: pointIds + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Test", "3bcfd5c8-be62-488e-b1da-b8289ce9299c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, pointUpdateModel, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPoint, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get test points using query. + * + * @param {TestInterfaces.TestPointsQuery} query - TestPointsQuery to get test points. + * @param {string} project - Project ID or project name + * @param {number} skip - Number of test points to skip.. + * @param {number} top - Number of test points to return. + */ + getPointsByQuery(query, project, skip, top) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + '$skip': skip, + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Test", "b4264fd0-a5d1-43e2-82a5-b9c46b7da9ce", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, query, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPointsQuery, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} buildId + * @param {string} publishContext + * @param {string} groupBy + * @param {string} filter + * @param {string} orderby + * @param {boolean} shouldIncludeResults + * @param {boolean} queryRunSummaryForInProgress + */ + getTestResultDetailsForBuild(project, buildId, publishContext, groupBy, filter, orderby, shouldIncludeResults, queryRunSummaryForInProgress) { + return __awaiter(this, void 0, void 0, function* () { + if (buildId == null) { + throw new TypeError('buildId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + buildId: buildId, + publishContext: publishContext, + groupBy: groupBy, + '$filter': filter, + '$orderby': orderby, + shouldIncludeResults: shouldIncludeResults, + queryRunSummaryForInProgress: queryRunSummaryForInProgress, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Test", "efb387b0-10d5-42e7-be40-95e06ee9430f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultsDetails, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} releaseId + * @param {number} releaseEnvId + * @param {string} publishContext + * @param {string} groupBy + * @param {string} filter + * @param {string} orderby + * @param {boolean} shouldIncludeResults + * @param {boolean} queryRunSummaryForInProgress + */ + getTestResultDetailsForRelease(project, releaseId, releaseEnvId, publishContext, groupBy, filter, orderby, shouldIncludeResults, queryRunSummaryForInProgress) { + return __awaiter(this, void 0, void 0, function* () { + if (releaseId == null) { + throw new TypeError('releaseId can not be null or undefined'); + } + if (releaseEnvId == null) { + throw new TypeError('releaseEnvId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + releaseId: releaseId, + releaseEnvId: releaseEnvId, + publishContext: publishContext, + groupBy: groupBy, + '$filter': filter, + '$orderby': orderby, + shouldIncludeResults: shouldIncludeResults, + queryRunSummaryForInProgress: queryRunSummaryForInProgress, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Test", "b834ec7e-35bb-450f-a3c8-802e70ca40dd", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultsDetails, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TestInterfaces.TestResultDocument} document + * @param {string} project - Project ID or project name + * @param {number} runId + */ + publishTestResultDocument(document, project, runId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "370ca04b-8eec-4ca8-8ba3-d24dca228791", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, document, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} buildId + * @param {string} publishContext + * @param {string[]} fields + * @param {string} continuationToken + */ + getResultGroupsByBuild(project, buildId, publishContext, fields, continuationToken) { + return __awaiter(this, void 0, void 0, function* () { + if (buildId == null) { + throw new TypeError('buildId can not be null or undefined'); + } + if (publishContext == null) { + throw new TypeError('publishContext can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + buildId: buildId, + publishContext: publishContext, + fields: fields && fields.join(","), + continuationToken: continuationToken, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Test", "d279d052-c55a-4204-b913-42f733b52958", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} releaseId + * @param {string} publishContext + * @param {number} releaseEnvId + * @param {string[]} fields + * @param {string} continuationToken + */ + getResultGroupsByRelease(project, releaseId, publishContext, releaseEnvId, fields, continuationToken) { + return __awaiter(this, void 0, void 0, function* () { + if (releaseId == null) { + throw new TypeError('releaseId can not be null or undefined'); + } + if (publishContext == null) { + throw new TypeError('publishContext can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + releaseId: releaseId, + publishContext: publishContext, + releaseEnvId: releaseEnvId, + fields: fields && fields.join(","), + continuationToken: continuationToken, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Test", "ef5ce5d4-a4e5-47ee-804c-354518f8d03f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get list of test Result meta data details for corresponding testcasereferenceId + * + * @param {string[]} testReferenceIds - TestCaseReference Ids of the test Result to be queried, comma separated list of valid ids (limit no. of ids 200). + * @param {string} project - Project ID or project name + */ + queryTestResultsMetaData(testReferenceIds, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Test", "afa7830e-67a7-4336-8090-2b448ca80295", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, testReferenceIds, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get test result retention settings + * + * @param {string} project - Project ID or project name + */ + getResultRetentionSettings(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "a3206d9e-fa8d-42d3-88cb-f75c51e69cde", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.ResultRetentionSettings, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update test result retention settings + * + * @param {TestInterfaces.ResultRetentionSettings} retentionSettings - Test result retention settings details to be updated + * @param {string} project - Project ID or project name + */ + updateResultRetentionSettings(retentionSettings, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "a3206d9e-fa8d-42d3-88cb-f75c51e69cde", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, retentionSettings, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.ResultRetentionSettings, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Add test results to a test run. + * + * @param {TestInterfaces.TestCaseResult[]} results - List of test results to add. + * @param {string} project - Project ID or project name + * @param {number} runId - Test run ID into which test results to add. + */ + addTestResultsToTestRun(results, project, runId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.6", "Test", "4637d869-3a76-4468-8057-0bb02aa385cf", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, results, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a test result for a test run. + * + * @param {string} project - Project ID or project name + * @param {number} runId - Test run ID of a test result to fetch. + * @param {number} testCaseResultId - Test result ID. + * @param {TestInterfaces.ResultDetails} detailsToInclude - Details to include with test results. Default is None. Other values are Iterations, WorkItems and SubResults. + */ + getTestResultById(project, runId, testCaseResultId, detailsToInclude) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId, + testCaseResultId: testCaseResultId + }; + let queryValues = { + detailsToInclude: detailsToInclude, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.6", "Test", "4637d869-3a76-4468-8057-0bb02aa385cf", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get test results for a test run. + * + * @param {string} project - Project ID or project name + * @param {number} runId - Test run ID of test results to fetch. + * @param {TestInterfaces.ResultDetails} detailsToInclude - Details to include with test results. Default is None. Other values are Iterations and WorkItems. + * @param {number} skip - Number of test results to skip from beginning. + * @param {number} top - Number of test results to return. Maximum is 1000 when detailsToInclude is None and 200 otherwise. + * @param {TestInterfaces.TestOutcome[]} outcomes - Comma separated list of test outcomes to filter test results. + */ + getTestResults(project, runId, detailsToInclude, skip, top, outcomes) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId + }; + let queryValues = { + detailsToInclude: detailsToInclude, + '$skip': skip, + '$top': top, + outcomes: outcomes && outcomes.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.6", "Test", "4637d869-3a76-4468-8057-0bb02aa385cf", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update test results in a test run. + * + * @param {TestInterfaces.TestCaseResult[]} results - List of test results to update. + * @param {string} project - Project ID or project name + * @param {number} runId - Test run ID whose test results to update. + */ + updateTestResults(results, project, runId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.6", "Test", "4637d869-3a76-4468-8057-0bb02aa385cf", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, results, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * This API will return results by Ids with fields specified/trend for particular automated test method. We are still improving this API and have not finalized proper signature and contract. + * + * @param {TestInterfaces.TestResultsQuery} query + * @param {string} project - Project ID or project name + */ + getTestResultsByQuery(query, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.6", "Test", "6711da49-8e6f-4d35-9f73-cef7a3c81a5b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, query, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultsQuery, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} buildId + * @param {string} publishContext + * @param {TestInterfaces.TestOutcome[]} outcomes + * @param {number} top + * @param {string} continuationToken + */ + getTestResultsByBuild(project, buildId, publishContext, outcomes, top, continuationToken) { + return __awaiter(this, void 0, void 0, function* () { + if (buildId == null) { + throw new TypeError('buildId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + buildId: buildId, + publishContext: publishContext, + outcomes: outcomes && outcomes.join(","), + '$top': top, + continuationToken: continuationToken, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "3c191b88-615b-4be2-b7d9-5ff9141e91d4", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} releaseId + * @param {number} releaseEnvid + * @param {string} publishContext + * @param {TestInterfaces.TestOutcome[]} outcomes + * @param {number} top + * @param {string} continuationToken + */ + getTestResultsByRelease(project, releaseId, releaseEnvid, publishContext, outcomes, top, continuationToken) { + return __awaiter(this, void 0, void 0, function* () { + if (releaseId == null) { + throw new TypeError('releaseId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + releaseId: releaseId, + releaseEnvid: releaseEnvid, + publishContext: publishContext, + outcomes: outcomes && outcomes.join(","), + '$top': top, + continuationToken: continuationToken, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "ce01820b-83f3-4c15-a583-697a43292c4e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} buildId + * @param {string} publishContext + * @param {boolean} includeFailureDetails + * @param {TestInterfaces.BuildReference} buildToCompare + */ + queryTestResultsReportForBuild(project, buildId, publishContext, includeFailureDetails, buildToCompare) { + return __awaiter(this, void 0, void 0, function* () { + if (buildId == null) { + throw new TypeError('buildId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + buildId: buildId, + publishContext: publishContext, + includeFailureDetails: includeFailureDetails, + buildToCompare: buildToCompare, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "000ef77b-fea2-498d-a10d-ad1a037f559f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultSummary, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} releaseId + * @param {number} releaseEnvId + * @param {string} publishContext + * @param {boolean} includeFailureDetails + * @param {TestInterfaces.ReleaseReference} releaseToCompare + */ + queryTestResultsReportForRelease(project, releaseId, releaseEnvId, publishContext, includeFailureDetails, releaseToCompare) { + return __awaiter(this, void 0, void 0, function* () { + if (releaseId == null) { + throw new TypeError('releaseId can not be null or undefined'); + } + if (releaseEnvId == null) { + throw new TypeError('releaseEnvId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + releaseId: releaseId, + releaseEnvId: releaseEnvId, + publishContext: publishContext, + includeFailureDetails: includeFailureDetails, + releaseToCompare: releaseToCompare, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "85765790-ac68-494e-b268-af36c3929744", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultSummary, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TestInterfaces.ReleaseReference[]} releases + * @param {string} project - Project ID or project name + */ + queryTestResultsSummaryForReleases(releases, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "85765790-ac68-494e-b268-af36c3929744", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, releases, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultSummary, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TestInterfaces.TestResultsContext} resultsContext + * @param {string} project - Project ID or project name + * @param {number[]} workItemIds + */ + queryTestSummaryByRequirement(resultsContext, project, workItemIds) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + workItemIds: workItemIds && workItemIds.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "cd08294e-308d-4460-a46e-4cfdefba0b4b", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, resultsContext, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSummaryForWorkItem, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TestInterfaces.TestResultTrendFilter} filter + * @param {string} project - Project ID or project name + */ + queryResultTrendForBuild(filter, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "fbc82a85-0786-4442-88bb-eb0fda6b01b0", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, filter, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.AggregatedDataForResultTrend, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TestInterfaces.TestResultTrendFilter} filter + * @param {string} project - Project ID or project name + */ + queryResultTrendForRelease(filter, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "dd178e93-d8dd-4887-9635-d6b9560b7b6e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, filter, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.AggregatedDataForResultTrend, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get test run statistics , used when we want to get summary of a run by outcome. + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the run to get. + */ + getTestRunStatistics(project, runId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "0a42c424-d764-4a16-a2d5-5c85f87d0ae8", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRunStatistic, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create new test run. + * + * @param {TestInterfaces.RunCreateModel} testRun - Run details RunCreateModel + * @param {string} project - Project ID or project name + */ + createTestRun(testRun, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "cadb3810-d47d-4a3c-a234-fe5f3be50138", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, testRun, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a test run by its ID. + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the run to delete. + */ + deleteTestRun(project, runId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "cadb3810-d47d-4a3c-a234-fe5f3be50138", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a test run by its ID. + * + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the run to get. + * @param {boolean} includeDetails - Default value is true. It includes details like run statistics, release, build, test environment, post process state, and more. + */ + getTestRunById(project, runId, includeDetails) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId + }; + let queryValues = { + includeDetails: includeDetails, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "cadb3810-d47d-4a3c-a234-fe5f3be50138", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of test runs. + * + * @param {string} project - Project ID or project name + * @param {string} buildUri - URI of the build that the runs used. + * @param {string} owner - Team foundation ID of the owner of the runs. + * @param {string} tmiRunId + * @param {number} planId - ID of the test plan that the runs are a part of. + * @param {boolean} includeRunDetails - If true, include all the properties of the runs. + * @param {boolean} automated - If true, only returns automated runs. + * @param {number} skip - Number of test runs to skip. + * @param {number} top - Number of test runs to return. + */ + getTestRuns(project, buildUri, owner, tmiRunId, planId, includeRunDetails, automated, skip, top) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + buildUri: buildUri, + owner: owner, + tmiRunId: tmiRunId, + planId: planId, + includeRunDetails: includeRunDetails, + automated: automated, + '$skip': skip, + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "cadb3810-d47d-4a3c-a234-fe5f3be50138", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Query Test Runs based on filters. Mandatory fields are minLastUpdatedDate and maxLastUpdatedDate. + * + * @param {string} project - Project ID or project name + * @param {Date} minLastUpdatedDate - Minimum Last Modified Date of run to be queried (Mandatory). + * @param {Date} maxLastUpdatedDate - Maximum Last Modified Date of run to be queried (Mandatory, difference between min and max date can be atmost 7 days). + * @param {TestInterfaces.TestRunState} state - Current state of the Runs to be queried. + * @param {number[]} planIds - Plan Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10). + * @param {boolean} isAutomated - Automation type of the Runs to be queried. + * @param {TestInterfaces.TestRunPublishContext} publishContext - PublishContext of the Runs to be queried. + * @param {number[]} buildIds - Build Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10). + * @param {number[]} buildDefIds - Build Definition Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10). + * @param {string} branchName - Source Branch name of the Runs to be queried. + * @param {number[]} releaseIds - Release Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10). + * @param {number[]} releaseDefIds - Release Definition Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10). + * @param {number[]} releaseEnvIds - Release Environment Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10). + * @param {number[]} releaseEnvDefIds - Release Environment Definition Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10). + * @param {string} runTitle - Run Title of the Runs to be queried. + * @param {number} top - Number of runs to be queried. Limit is 100 + * @param {string} continuationToken - continuationToken received from previous batch or null for first batch. It is not supposed to be created (or altered, if received from last batch) by user. + */ + queryTestRuns(project, minLastUpdatedDate, maxLastUpdatedDate, state, planIds, isAutomated, publishContext, buildIds, buildDefIds, branchName, releaseIds, releaseDefIds, releaseEnvIds, releaseEnvDefIds, runTitle, top, continuationToken) { + return __awaiter(this, void 0, void 0, function* () { + if (minLastUpdatedDate == null) { + throw new TypeError('minLastUpdatedDate can not be null or undefined'); + } + if (maxLastUpdatedDate == null) { + throw new TypeError('maxLastUpdatedDate can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + minLastUpdatedDate: minLastUpdatedDate, + maxLastUpdatedDate: maxLastUpdatedDate, + state: state, + planIds: planIds && planIds.join(","), + isAutomated: isAutomated, + publishContext: publishContext, + buildIds: buildIds && buildIds.join(","), + buildDefIds: buildDefIds && buildDefIds.join(","), + branchName: branchName, + releaseIds: releaseIds && releaseIds.join(","), + releaseDefIds: releaseDefIds && releaseDefIds.join(","), + releaseEnvIds: releaseEnvIds && releaseEnvIds.join(","), + releaseEnvDefIds: releaseEnvDefIds && releaseEnvDefIds.join(","), + runTitle: runTitle, + '$top': top, + continuationToken: continuationToken, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "cadb3810-d47d-4a3c-a234-fe5f3be50138", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update test run by its ID. + * + * @param {TestInterfaces.RunUpdateModel} runUpdateModel - Run details RunUpdateModel + * @param {string} project - Project ID or project name + * @param {number} runId - ID of the run to update. + */ + updateTestRun(runUpdateModel, project, runId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + runId: runId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "cadb3810-d47d-4a3c-a234-fe5f3be50138", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, runUpdateModel, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a test session + * + * @param {TestInterfaces.TestSession} testSession - Test session details for creation + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + createTestSession(testSession, teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, testSession, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSession, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of test sessions + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {number} period - Period in days from now, for which test sessions are fetched. + * @param {boolean} allSessions - If false, returns test sessions for current user. Otherwise, it returns test sessions for all users + * @param {boolean} includeAllProperties - If true, it returns all properties of the test sessions. Otherwise, it returns the skinny version. + * @param {TestInterfaces.TestSessionSource} source - Source of the test session. + * @param {boolean} includeOnlyCompletedSessions - If true, it returns test sessions in completed state. Otherwise, it returns test sessions for all states + */ + getTestSessions(teamContext, period, allSessions, includeAllProperties, source, includeOnlyCompletedSessions) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + let queryValues = { + period: period, + allSessions: allSessions, + includeAllProperties: includeAllProperties, + source: source, + includeOnlyCompletedSessions: includeOnlyCompletedSessions, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSession, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a test session + * + * @param {TestInterfaces.TestSession} testSession - Test session details for update + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + updateTestSession(testSession, teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, testSession, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSession, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} sharedParameterId + */ + deleteSharedParameter(project, sharedParameterId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + sharedParameterId: sharedParameterId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "8300eeca-0f8c-4eff-a089-d2dda409c41f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} sharedStepId + */ + deleteSharedStep(project, sharedStepId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + sharedStepId: sharedStepId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "fabb3cc9-e3f8-40b7-8b62-24cc4b73fccf", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Add test cases to suite. + * + * @param {string} project - Project ID or project name + * @param {number} planId - ID of the test plan that contains the suite. + * @param {number} suiteId - ID of the test suite to which the test cases must be added. + * @param {string} testCaseIds - IDs of the test cases to add to the suite. Ids are specified in comma separated format. + */ + addTestCasesToSuite(project, planId, suiteId, testCaseIds) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + action: "TestCases", + project: project, + planId: planId, + suiteId: suiteId, + testCaseIds: testCaseIds + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "a4a1ec1c-b03f-41ca-8857-704594ecf58e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a specific test case in a test suite with test case id. + * + * @param {string} project - Project ID or project name + * @param {number} planId - ID of the test plan that contains the suites. + * @param {number} suiteId - ID of the suite that contains the test case. + * @param {number} testCaseIds - ID of the test case to get. + */ + getTestCaseById(project, planId, suiteId, testCaseIds) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + action: "TestCases", + project: project, + planId: planId, + suiteId: suiteId, + testCaseIds: testCaseIds + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "a4a1ec1c-b03f-41ca-8857-704594ecf58e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get all test cases in a suite. + * + * @param {string} project - Project ID or project name + * @param {number} planId - ID of the test plan that contains the suites. + * @param {number} suiteId - ID of the suite to get. + */ + getTestCases(project, planId, suiteId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + action: "TestCases", + project: project, + planId: planId, + suiteId: suiteId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "a4a1ec1c-b03f-41ca-8857-704594ecf58e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * The test points associated with the test cases are removed from the test suite. The test case work item is not deleted from the system. See test cases resource to delete a test case permanently. + * + * @param {string} project - Project ID or project name + * @param {number} planId - ID of the test plan that contains the suite. + * @param {number} suiteId - ID of the suite to get. + * @param {string} testCaseIds - IDs of the test cases to remove from the suite. + */ + removeTestCasesFromSuiteUrl(project, planId, suiteId, testCaseIds) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + action: "TestCases", + project: project, + planId: planId, + suiteId: suiteId, + testCaseIds: testCaseIds + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "a4a1ec1c-b03f-41ca-8857-704594ecf58e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates the properties of the test case association in a suite. + * + * @param {TestInterfaces.SuiteTestCaseUpdateModel} suiteTestCaseUpdateModel - Model for updation of the properties of test case suite association. + * @param {string} project - Project ID or project name + * @param {number} planId - ID of the test plan that contains the suite. + * @param {number} suiteId - ID of the test suite to which the test cases must be added. + * @param {string} testCaseIds - IDs of the test cases to add to the suite. Ids are specified in comma separated format. + */ + updateSuiteTestCases(suiteTestCaseUpdateModel, project, planId, suiteId, testCaseIds) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + action: "TestCases", + project: project, + planId: planId, + suiteId: suiteId, + testCaseIds: testCaseIds + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "Test", "a4a1ec1c-b03f-41ca-8857-704594ecf58e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, suiteTestCaseUpdateModel, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a test case. + * + * @param {string} project - Project ID or project name + * @param {number} testCaseId - Id of test case to delete. + */ + deleteTestCase(project, testCaseId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + testCaseId: testCaseId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "4d472e0f-e32c-4ef8-adf4-a4078772889c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get history of a test method using TestHistoryQuery + * + * @param {TestInterfaces.TestHistoryQuery} filter - TestHistoryQuery to get history + * @param {string} project - Project ID or project name + */ + queryTestHistory(filter, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "Test", "929fd86c-3e38-4d8c-b4b6-90df256e5971", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, filter, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestHistoryQuery, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TestInterfaces.TestSettings} testSettings + * @param {string} project - Project ID or project name + */ + createTestSettings(testSettings, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "8133ce14-962f-42af-a5f9-6aa9defcb9c8", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, testSettings, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} testSettingsId + */ + deleteTestSettings(project, testSettingsId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + testSettingsId: testSettingsId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "8133ce14-962f-42af-a5f9-6aa9defcb9c8", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} testSettingsId + */ + getTestSettingsById(project, testSettingsId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + testSettingsId: testSettingsId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "8133ce14-962f-42af-a5f9-6aa9defcb9c8", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TestInterfaces.WorkItemToTestLinks} workItemToTestLinks + * @param {string} project - Project ID or project name + */ + addWorkItemToTestLinks(workItemToTestLinks, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "371b1655-ce05-412e-a113-64cc77bb78d2", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, workItemToTestLinks, options); + let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.WorkItemToTestLinks, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {string} testName + * @param {number} workItemId + */ + deleteTestMethodToWorkItemLink(project, testName, workItemId) { + return __awaiter(this, void 0, void 0, function* () { + if (testName == null) { + throw new TypeError('testName can not be null or undefined'); + } + if (workItemId == null) { + throw new TypeError('workItemId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + testName: testName, + workItemId: workItemId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "7b0bdee3-a354-47f9-a42c-89018d7808d5", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {string} testName + */ + queryTestMethodLinkedWorkItems(project, testName) { + return __awaiter(this, void 0, void 0, function* () { + if (testName == null) { + throw new TypeError('testName can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + testName: testName, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "7b0bdee3-a354-47f9-a42c-89018d7808d5", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {string} workItemCategory + * @param {string} automatedTestName + * @param {number} testCaseId + * @param {Date} maxCompleteDate + * @param {number} days + * @param {number} workItemCount + */ + queryTestResultWorkItems(project, workItemCategory, automatedTestName, testCaseId, maxCompleteDate, days, workItemCount) { + return __awaiter(this, void 0, void 0, function* () { + if (workItemCategory == null) { + throw new TypeError('workItemCategory can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + workItemCategory: workItemCategory, + automatedTestName: automatedTestName, + testCaseId: testCaseId, + maxCompleteDate: maxCompleteDate, + days: days, + '$workItemCount': workItemCount, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "Test", "926ff5dc-137f-45f0-bd51-9412fa9810ce", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +TestApi.RESOURCE_AREA_ID = "c2aa639c-3ccc-4740-b3b6-ce2a1e1d984e"; +exports.TestApi = TestApi; + + +/***/ }), + +/***/ 5417: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const TfvcInterfaces = __nccwpck_require__(9003); +class TfvcApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-Tfvc-api', options); + } + /** + * Get a single branch hierarchy at the given path with parents or children as specified. + * + * @param {string} path - Full path to the branch. Default: $/ Examples: $/, $/MyProject, $/MyProject/SomeFolder. + * @param {string} project - Project ID or project name + * @param {boolean} includeParent - Return the parent branch, if there is one. Default: False + * @param {boolean} includeChildren - Return child branches, if there are any. Default: False + */ + getBranch(path, project, includeParent, includeChildren) { + return __awaiter(this, void 0, void 0, function* () { + if (path == null) { + throw new TypeError('path can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + path: path, + includeParent: includeParent, + includeChildren: includeChildren, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "bc1f417e-239d-42e7-85e1-76e80cb2d6eb", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcBranch, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a collection of branch roots -- first-level children, branches with no parents. + * + * @param {string} project - Project ID or project name + * @param {boolean} includeParent - Return the parent branch, if there is one. Default: False + * @param {boolean} includeChildren - Return the child branches for each root branch. Default: False + * @param {boolean} includeDeleted - Return deleted branches. Default: False + * @param {boolean} includeLinks - Return links. Default: False + */ + getBranches(project, includeParent, includeChildren, includeDeleted, includeLinks) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + includeParent: includeParent, + includeChildren: includeChildren, + includeDeleted: includeDeleted, + includeLinks: includeLinks, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "bc1f417e-239d-42e7-85e1-76e80cb2d6eb", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcBranch, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get branch hierarchies below the specified scopePath + * + * @param {string} scopePath - Full path to the branch. Default: $/ Examples: $/, $/MyProject, $/MyProject/SomeFolder. + * @param {string} project - Project ID or project name + * @param {boolean} includeDeleted - Return deleted branches. Default: False + * @param {boolean} includeLinks - Return links. Default: False + */ + getBranchRefs(scopePath, project, includeDeleted, includeLinks) { + return __awaiter(this, void 0, void 0, function* () { + if (scopePath == null) { + throw new TypeError('scopePath can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + scopePath: scopePath, + includeDeleted: includeDeleted, + includeLinks: includeLinks, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "bc1f417e-239d-42e7-85e1-76e80cb2d6eb", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcBranchRef, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve Tfvc changes for a given changeset. + * + * @param {number} id - ID of the changeset. Default: null + * @param {number} skip - Number of results to skip. Default: null + * @param {number} top - The maximum number of results to return. Default: null + */ + getChangesetChanges(id, skip, top) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + id: id + }; + let queryValues = { + '$skip': skip, + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "f32b86f2-15b9-4fe6-81b1-6f8938617ee5", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChange, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a new changeset. + * + * @param {TfvcInterfaces.TfvcChangeset} changeset + * @param {string} project - Project ID or project name + */ + createChangeset(changeset, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "tfvc", "0bc8f0a4-6bfb-42a9-ba84-139da7b99c49", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, changeset, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangesetRef, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve a Tfvc Changeset + * + * @param {number} id - Changeset Id to retrieve. + * @param {string} project - Project ID or project name + * @param {number} maxChangeCount - Number of changes to return (maximum 100 changes) Default: 0 + * @param {boolean} includeDetails - Include policy details and check-in notes in the response. Default: false + * @param {boolean} includeWorkItems - Include workitems. Default: false + * @param {number} maxCommentLength - Include details about associated work items in the response. Default: null + * @param {boolean} includeSourceRename - Include renames. Default: false + * @param {number} skip - Number of results to skip. Default: null + * @param {number} top - The maximum number of results to return. Default: null + * @param {string} orderby - Results are sorted by ID in descending order by default. Use id asc to sort by ID in ascending order. + * @param {TfvcInterfaces.TfvcChangesetSearchCriteria} searchCriteria - Following criteria available (.itemPath, .version, .versionType, .versionOption, .author, .fromId, .toId, .fromDate, .toDate) Default: null + */ + getChangeset(id, project, maxChangeCount, includeDetails, includeWorkItems, maxCommentLength, includeSourceRename, skip, top, orderby, searchCriteria) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id + }; + let queryValues = { + maxChangeCount: maxChangeCount, + includeDetails: includeDetails, + includeWorkItems: includeWorkItems, + maxCommentLength: maxCommentLength, + includeSourceRename: includeSourceRename, + '$skip': skip, + '$top': top, + '$orderby': orderby, + searchCriteria: searchCriteria, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "tfvc", "0bc8f0a4-6bfb-42a9-ba84-139da7b99c49", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangeset, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieve Tfvc Changesets + * + * @param {string} project - Project ID or project name + * @param {number} maxCommentLength - Include details about associated work items in the response. Default: null + * @param {number} skip - Number of results to skip. Default: null + * @param {number} top - The maximum number of results to return. Default: null + * @param {string} orderby - Results are sorted by ID in descending order by default. Use id asc to sort by ID in ascending order. + * @param {TfvcInterfaces.TfvcChangesetSearchCriteria} searchCriteria - Following criteria available (.itemPath, .version, .versionType, .versionOption, .author, .fromId, .toId, .fromDate, .toDate) Default: null + */ + getChangesets(project, maxCommentLength, skip, top, orderby, searchCriteria) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + maxCommentLength: maxCommentLength, + '$skip': skip, + '$top': top, + '$orderby': orderby, + searchCriteria: searchCriteria, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "tfvc", "0bc8f0a4-6bfb-42a9-ba84-139da7b99c49", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangesetRef, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns changesets for a given list of changeset Ids. + * + * @param {TfvcInterfaces.TfvcChangesetsRequestData} changesetsRequestData - List of changeset IDs. + */ + getBatchedChangesets(changesetsRequestData) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "b7e7c173-803c-4fea-9ec8-31ee35c5502a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, changesetsRequestData, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangesetRef, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieves the work items associated with a particular changeset. + * + * @param {number} id - ID of the changeset. + */ + getChangesetWorkItems(id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "64ae0bea-1d71-47c9-a9e5-fe73f5ea0ff4", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Post for retrieving a set of items given a list of paths or a long path. Allows for specifying the recursionLevel and version descriptors for each path. + * + * @param {TfvcInterfaces.TfvcItemRequestData} itemRequestData + * @param {string} project - Project ID or project name + */ + getItemsBatch(itemRequestData, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "fe6f827b-5f64-480f-b8af-1eca3b80e833", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, itemRequestData, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Post for retrieving a set of items given a list of paths or a long path. Allows for specifying the recursionLevel and version descriptors for each path. + * + * @param {TfvcInterfaces.TfvcItemRequestData} itemRequestData + * @param {string} project - Project ID or project name + */ + getItemsBatchZip(itemRequestData, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "fe6f827b-5f64-480f-b8af-1eca3b80e833", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download. + * + * @param {string} path - Version control path of an individual item to return. + * @param {string} project - Project ID or project name + * @param {string} fileName - file name of item returned. + * @param {boolean} download - If true, create a downloadable attachment. + * @param {string} scopePath - Version control path of a folder to return multiple items. + * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder). + * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null. + * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false. + */ + getItem(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) { + return __awaiter(this, void 0, void 0, function* () { + if (path == null) { + throw new TypeError('path can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + path: path, + fileName: fileName, + download: download, + scopePath: scopePath, + recursionLevel: recursionLevel, + versionDescriptor: versionDescriptor, + includeContent: includeContent, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "ba9fc436-9a38-4578-89d6-e4f3241f5040", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download. + * + * @param {string} path - Version control path of an individual item to return. + * @param {string} project - Project ID or project name + * @param {string} fileName - file name of item returned. + * @param {boolean} download - If true, create a downloadable attachment. + * @param {string} scopePath - Version control path of a folder to return multiple items. + * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder). + * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null. + * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false. + */ + getItemContent(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) { + return __awaiter(this, void 0, void 0, function* () { + if (path == null) { + throw new TypeError('path can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + path: path, + fileName: fileName, + download: download, + scopePath: scopePath, + recursionLevel: recursionLevel, + versionDescriptor: versionDescriptor, + includeContent: includeContent, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "ba9fc436-9a38-4578-89d6-e4f3241f5040", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of Tfvc items + * + * @param {string} project - Project ID or project name + * @param {string} scopePath - Version control path of a folder to return multiple items. + * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder). + * @param {boolean} includeLinks - True to include links. + * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor + */ + getItems(project, scopePath, recursionLevel, includeLinks, versionDescriptor) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + scopePath: scopePath, + recursionLevel: recursionLevel, + includeLinks: includeLinks, + versionDescriptor: versionDescriptor, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "ba9fc436-9a38-4578-89d6-e4f3241f5040", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download. + * + * @param {string} path - Version control path of an individual item to return. + * @param {string} project - Project ID or project name + * @param {string} fileName - file name of item returned. + * @param {boolean} download - If true, create a downloadable attachment. + * @param {string} scopePath - Version control path of a folder to return multiple items. + * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder). + * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null. + * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false. + */ + getItemText(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) { + return __awaiter(this, void 0, void 0, function* () { + if (path == null) { + throw new TypeError('path can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + path: path, + fileName: fileName, + download: download, + scopePath: scopePath, + recursionLevel: recursionLevel, + versionDescriptor: versionDescriptor, + includeContent: includeContent, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "ba9fc436-9a38-4578-89d6-e4f3241f5040", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/plain", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download. + * + * @param {string} path - Version control path of an individual item to return. + * @param {string} project - Project ID or project name + * @param {string} fileName - file name of item returned. + * @param {boolean} download - If true, create a downloadable attachment. + * @param {string} scopePath - Version control path of a folder to return multiple items. + * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder). + * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null. + * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false. + */ + getItemZip(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) { + return __awaiter(this, void 0, void 0, function* () { + if (path == null) { + throw new TypeError('path can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + path: path, + fileName: fileName, + download: download, + scopePath: scopePath, + recursionLevel: recursionLevel, + versionDescriptor: versionDescriptor, + includeContent: includeContent, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "ba9fc436-9a38-4578-89d6-e4f3241f5040", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get items under a label. + * + * @param {string} labelId - Unique identifier of label + * @param {number} top - Max number of items to return + * @param {number} skip - Number of items to skip + */ + getLabelItems(labelId, top, skip) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + labelId: labelId + }; + let queryValues = { + '$top': top, + '$skip': skip, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "06166e34-de17-4b60-8cd1-23182a346fda", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a single deep label. + * + * @param {string} labelId - Unique identifier of label + * @param {TfvcInterfaces.TfvcLabelRequestData} requestData - maxItemCount + * @param {string} project - Project ID or project name + */ + getLabel(labelId, requestData, project) { + return __awaiter(this, void 0, void 0, function* () { + if (requestData == null) { + throw new TypeError('requestData can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + labelId: labelId + }; + let queryValues = { + requestData: requestData, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "a5d9bd7f-b661-4d0e-b9be-d9c16affae54", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcLabel, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a collection of shallow label references. + * + * @param {TfvcInterfaces.TfvcLabelRequestData} requestData - labelScope, name, owner, and itemLabelFilter + * @param {string} project - Project ID or project name + * @param {number} top - Max number of labels to return, defaults to 100 when undefined + * @param {number} skip - Number of labels to skip + */ + getLabels(requestData, project, top, skip) { + return __awaiter(this, void 0, void 0, function* () { + if (requestData == null) { + throw new TypeError('requestData can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + requestData: requestData, + '$top': top, + '$skip': skip, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "a5d9bd7f-b661-4d0e-b9be-d9c16affae54", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcLabelRef, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get changes included in a shelveset. + * + * @param {string} shelvesetId - Shelveset's unique ID + * @param {number} top - Max number of changes to return + * @param {number} skip - Number of changes to skip + */ + getShelvesetChanges(shelvesetId, top, skip) { + return __awaiter(this, void 0, void 0, function* () { + if (shelvesetId == null) { + throw new TypeError('shelvesetId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + shelvesetId: shelvesetId, + '$top': top, + '$skip': skip, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "dbaf075b-0445-4c34-9e5b-82292f856522", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChange, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a single deep shelveset. + * + * @param {string} shelvesetId - Shelveset's unique ID + * @param {TfvcInterfaces.TfvcShelvesetRequestData} requestData - includeDetails, includeWorkItems, maxChangeCount, and maxCommentLength + */ + getShelveset(shelvesetId, requestData) { + return __awaiter(this, void 0, void 0, function* () { + if (shelvesetId == null) { + throw new TypeError('shelvesetId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + shelvesetId: shelvesetId, + requestData: requestData, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "e36d44fb-e907-4b0a-b194-f83f1ed32ad3", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcShelveset, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Return a collection of shallow shelveset references. + * + * @param {TfvcInterfaces.TfvcShelvesetRequestData} requestData - name, owner, and maxCommentLength + * @param {number} top - Max number of shelvesets to return + * @param {number} skip - Number of shelvesets to skip + */ + getShelvesets(requestData, top, skip) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + requestData: requestData, + '$top': top, + '$skip': skip, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "e36d44fb-e907-4b0a-b194-f83f1ed32ad3", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcShelvesetRef, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get work items associated with a shelveset. + * + * @param {string} shelvesetId - Shelveset's unique ID + */ + getShelvesetWorkItems(shelvesetId) { + return __awaiter(this, void 0, void 0, function* () { + if (shelvesetId == null) { + throw new TypeError('shelvesetId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + shelvesetId: shelvesetId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "a7a0c1c1-373e-425a-b031-a519474d743d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Provides File Count and Uncompressed Bytes for a Collection/Project at a particular scope for TFVC. + * + * @param {string} project - Project ID or project name + * @param {string} scopePath - '$/' for collection, '$/project' for specific project + */ + getTfvcStatistics(project, scopePath) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + scopePath: scopePath, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "tfvc", "e15c74c0-3605-40e0-aed4-4cc61e549ed8", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +TfvcApi.RESOURCE_AREA_ID = "8aa40520-446d-40e6-89f6-9c9f9ce44c48"; +exports.TfvcApi = TfvcApi; + + +/***/ }), + +/***/ 9686: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +//******************************************************************************************************* +// significant portions of this file copied from: VSO\src\Vssf\WebPlatform\Platform\Scripts\VSS\WebApi\RestClient.ts +//******************************************************************************************************* +Object.defineProperty(exports, "__esModule", ({ value: true })); +/// Imports of 3rd Party /// +const url = __nccwpck_require__(8835); +const path = __nccwpck_require__(5622); +class InvalidApiResourceVersionError { + constructor(message) { + this.name = "Invalid resource version"; + this.message = message; + } +} +exports.InvalidApiResourceVersionError = InvalidApiResourceVersionError; +/** + * Base class that should be used (derived from) to make requests to VSS REST apis + */ +class VsoClient { + constructor(baseUrl, restClient) { + this.baseUrl = baseUrl; + this.basePath = url.parse(baseUrl).pathname; + this.restClient = restClient; + this._locationsByAreaPromises = {}; + this._initializationPromise = Promise.resolve(true); + } + autoNegotiateApiVersion(location, requestedVersion) { + let negotiatedVersion; + let apiVersion; + let apiVersionString; + if (requestedVersion) { + let apiVersionRegEx = new RegExp('(\\d+(\\.\\d+)?)(-preview(\\.(\\d+))?)?'); + // Need to handle 3 types of api versions + invalid apiversion + // '2.1-preview.1' = ["2.1-preview.1", "2.1", ".1", -preview.1", ".1", "1"] + // '2.1-preview' = ["2.1-preview", "2.1", ".1", "-preview", undefined, undefined] + // '2.1' = ["2.1", "2.1", ".1", undefined, undefined, undefined] + let isPreview = false; + let resourceVersion; + let regExExecArray = apiVersionRegEx.exec(requestedVersion); + if (regExExecArray) { + if (regExExecArray[1]) { + // we have an api version + apiVersion = +regExExecArray[1]; + apiVersionString = regExExecArray[1]; + if (regExExecArray[3]) { + // requesting preview + isPreview = true; + if (regExExecArray[5]) { + // we have a resource version + resourceVersion = +regExExecArray[5]; + } + } + // compare the location version and requestedversion + if (apiVersion <= +location.releasedVersion + || (!resourceVersion && apiVersion <= +location.maxVersion && isPreview) + || (resourceVersion && apiVersion <= +location.maxVersion && resourceVersion <= +location.resourceVersion)) { + negotiatedVersion = requestedVersion; + } + // else fall back to latest version of the resource from location + } + } + } + if (!negotiatedVersion) { + // Use the latest version of the resource if the api version was not specified in the request or if the requested version is higher then the location's supported version + if (apiVersion < +location.maxVersion) { + negotiatedVersion = apiVersionString + "-preview"; + } + else if (location.maxVersion === location.releasedVersion) { + negotiatedVersion = location.maxVersion; + } + else { + negotiatedVersion = location.maxVersion + "-preview." + location.resourceVersion; + } + } + return negotiatedVersion; + } + /** + * Gets the route template for a resource based on its location ID and negotiates the api version + */ + getVersioningData(apiVersion, area, locationId, routeValues, queryParams) { + let requestUrl; + return this.beginGetLocation(area, locationId) + .then((location) => { + if (!location) { + throw new Error("Failed to find api location for area: " + area + " id: " + locationId); + } + apiVersion = this.autoNegotiateApiVersion(location, apiVersion); + requestUrl = this.getRequestUrl(location.routeTemplate, location.area, location.resourceName, routeValues, queryParams); + return { + apiVersion: apiVersion, + requestUrl: requestUrl + }; + }); + } + /** + * Sets a promise that is waited on before any requests are issued. Can be used to asynchronously + * set the request url and auth token manager. + */ + _setInitializationPromise(promise) { + if (promise) { + this._initializationPromise = promise; + } + } + /** + * Gets information about an API resource location (route template, supported versions, etc.) + * + * @param area resource area name + * @param locationId Guid of the location to get + */ + beginGetLocation(area, locationId) { + return this._initializationPromise.then(() => { + return this.beginGetAreaLocations(area); + }).then((areaLocations) => { + return areaLocations[(locationId || "").toLowerCase()]; + }); + } + beginGetAreaLocations(area) { + let areaLocationsPromise = this._locationsByAreaPromises[area]; + if (!areaLocationsPromise) { + let requestUrl = this.resolveUrl(VsoClient.APIS_RELATIVE_PATH + "/" + area); + areaLocationsPromise = this.restClient.options(requestUrl) + .then((res) => { + let locationsLookup = {}; + let resourceLocations = res.result.value; + let i; + for (i = 0; i < resourceLocations.length; i++) { + let resourceLocation = resourceLocations[i]; + locationsLookup[resourceLocation.id.toLowerCase()] = resourceLocation; + } + // If we have completed successfully, cache the response. + this._locationsByAreaPromises[area] = areaLocationsPromise; + return locationsLookup; + }); + } + return areaLocationsPromise; + } + resolveUrl(relativeUrl) { + return url.resolve(this.baseUrl, path.join(this.basePath, relativeUrl)); + } + queryParamsToStringHelper(queryParams, prefix) { + if (!queryParams) { + return ''; + } + let queryString = ''; + if (typeof (queryParams) !== 'string') { + for (let property in queryParams) { + if (queryParams.hasOwnProperty(property)) { + const prop = queryParams[property]; + const newPrefix = prefix + encodeURIComponent(property.toString()) + '.'; + queryString += this.queryParamsToStringHelper(prop, newPrefix); + } + } + } + if (queryString === '' && prefix.length > 0) { + // Date.prototype.toString() returns a string that is not valid for the REST API. + // Need to specially call `toUTCString()` instead for such cases + const queryValue = typeof queryParams === 'object' && 'toUTCString' in queryParams ? queryParams.toUTCString() : queryParams.toString(); + // Will always need to chop period off of end of prefix + queryString = prefix.slice(0, -1) + '=' + encodeURIComponent(queryValue) + '&'; + } + return queryString; + } + queryParamsToString(queryParams) { + const queryString = '?' + this.queryParamsToStringHelper(queryParams, ''); + // Will always need to slice either a ? or & off of the end + return queryString.slice(0, -1); + } + getRequestUrl(routeTemplate, area, resource, routeValues, queryParams) { + // Add area/resource route values (based on the location) + routeValues = routeValues || {}; + if (!routeValues.area) { + routeValues.area = area; + } + if (!routeValues.resource) { + routeValues.resource = resource; + } + // Replace templated route values + let relativeUrl = this.replaceRouteValues(routeTemplate, routeValues); + // Append query parameters to the end + if (queryParams) { + relativeUrl += this.queryParamsToString(queryParams); + } + // Resolve the relative url with the base + return url.resolve(this.baseUrl, path.join(this.basePath, relativeUrl)); + } + // helper method copied directly from VSS\WebAPI\restclient.ts + replaceRouteValues(routeTemplate, routeValues) { + let result = "", currentPathPart = "", paramName = "", insideParam = false, charIndex, routeTemplateLength = routeTemplate.length, c; + for (charIndex = 0; charIndex < routeTemplateLength; charIndex++) { + c = routeTemplate[charIndex]; + if (insideParam) { + if (c == "}") { + insideParam = false; + if (routeValues[paramName]) { + currentPathPart += encodeURIComponent(routeValues[paramName]); + } + else { + // Normalize param name in order to capture wild-card routes + let strippedParamName = paramName.replace(/[^a-z0-9]/ig, ''); + if (routeValues[strippedParamName]) { + currentPathPart += encodeURIComponent(routeValues[strippedParamName]); + } + } + paramName = ""; + } + else { + paramName += c; + } + } + else { + if (c == "/") { + if (currentPathPart) { + if (result) { + result += "/"; + } + result += currentPathPart; + currentPathPart = ""; + } + } + else if (c == "{") { + if ((charIndex + 1) < routeTemplateLength && routeTemplate[charIndex + 1] == "{") { + // Escaped '{' + currentPathPart += c; + charIndex++; + } + else { + insideParam = true; + } + } + else if (c == '}') { + currentPathPart += c; + if ((charIndex + 1) < routeTemplateLength && routeTemplate[charIndex + 1] == "}") { + // Escaped '}' + charIndex++; + } + } + else { + currentPathPart += c; + } + } + } + if (currentPathPart) { + if (result) { + result += "/"; + } + result += currentPathPart; + } + return result; + } +} +VsoClient.APIS_RELATIVE_PATH = "_apis"; +VsoClient.PREVIEW_INDICATOR = "-preview."; +exports.VsoClient = VsoClient; + + +/***/ }), + +/***/ 7967: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const buildm = __nccwpck_require__(9893); +const corem = __nccwpck_require__(4020); +const dashboardm = __nccwpck_require__(7539); +const extmgmtm = __nccwpck_require__(4605); +const featuremgmtm = __nccwpck_require__(3193); +const filecontainerm = __nccwpck_require__(7558); +const gallerym = __nccwpck_require__(1939); +const gitm = __nccwpck_require__(4996); +const locationsm = __nccwpck_require__(4771); +const notificationm = __nccwpck_require__(8221); +const policym = __nccwpck_require__(266); +const profilem = __nccwpck_require__(8101); +const projectm = __nccwpck_require__(1682); +const releasem = __nccwpck_require__(3075); +const securityrolesm = __nccwpck_require__(806); +const taskagentm = __nccwpck_require__(5899); +const taskm = __nccwpck_require__(2354); +const testm = __nccwpck_require__(5742); +const tfvcm = __nccwpck_require__(5417); +const wikim = __nccwpck_require__(6391); +const workm = __nccwpck_require__(8186); +const workitemtrackingm = __nccwpck_require__(8409); +const workitemtrackingprocessm = __nccwpck_require__(1178); +const workitemtrackingprocessdefinitionm = __nccwpck_require__(3333); +const basicm = __nccwpck_require__(6456); +const bearm = __nccwpck_require__(1141); +const ntlmm = __nccwpck_require__(3450); +const patm = __nccwpck_require__(4551); +const rm = __nccwpck_require__(7405); +const vsom = __nccwpck_require__(9686); +const crypto = __nccwpck_require__(6417); +const fs = __nccwpck_require__(5747); +const os = __nccwpck_require__(2087); +const url = __nccwpck_require__(8835); +const path = __nccwpck_require__(5622); +const isBrowser = typeof window !== 'undefined'; +/** + * Methods to return handler objects (see handlers folder) + */ +function getBasicHandler(username, password, allowCrossOriginAuthentication) { + return new basicm.BasicCredentialHandler(username, password, allowCrossOriginAuthentication); +} +exports.getBasicHandler = getBasicHandler; +function getNtlmHandler(username, password, workstation, domain) { + return new ntlmm.NtlmCredentialHandler(username, password, workstation, domain); +} +exports.getNtlmHandler = getNtlmHandler; +function getBearerHandler(token, allowCrossOriginAuthentication) { + return new bearm.BearerCredentialHandler(token, allowCrossOriginAuthentication); +} +exports.getBearerHandler = getBearerHandler; +function getPersonalAccessTokenHandler(token, allowCrossOriginAuthentication) { + return new patm.PersonalAccessTokenCredentialHandler(token, allowCrossOriginAuthentication); +} +exports.getPersonalAccessTokenHandler = getPersonalAccessTokenHandler; +function getHandlerFromToken(token, allowCrossOriginAuthentication) { + if (token.length === 52) { + return getPersonalAccessTokenHandler(token, allowCrossOriginAuthentication); + } + else { + return getBearerHandler(token, allowCrossOriginAuthentication); + } +} +exports.getHandlerFromToken = getHandlerFromToken; +; +// --------------------------------------------------------------------------- +// Factory to return client apis +// When new APIs are added, a method must be added here to instantiate the API +//---------------------------------------------------------------------------- +class WebApi { + /* + * Factory to return client apis and handlers + * @param defaultUrl default server url to use when creating new apis from factory methods + * @param authHandler default authentication credentials to use when creating new apis from factory methods + */ + constructor(defaultUrl, authHandler, options, requestSettings) { + /** + * Determines if the domain is exluded for proxy via the no_proxy env var + * @param url: the server url + */ + this.isNoProxyHost = function (_url) { + if (!process.env.no_proxy) { + return false; + } + const noProxyDomains = (process.env.no_proxy || '') + .split(',') + .map(v => v.toLowerCase()); + const serverUrl = url.parse(_url).host.toLowerCase(); + // return true if the no_proxy includes the host + return noProxyDomains.indexOf(serverUrl) !== -1; + }; + this.serverUrl = defaultUrl; + this.authHandler = authHandler; + this.options = options || {}; + if (!this.isNoProxyHost(this.serverUrl)) { + // try to get proxy setting from environment variable set by VSTS-Task-Lib if there is no proxy setting in the options + if (!this.options.proxy || !this.options.proxy.proxyUrl) { + if (global['_vsts_task_lib_proxy']) { + let proxyFromEnv = { + proxyUrl: global['_vsts_task_lib_proxy_url'], + proxyUsername: global['_vsts_task_lib_proxy_username'], + proxyPassword: this._readTaskLibSecrets(global['_vsts_task_lib_proxy_password']), + proxyBypassHosts: JSON.parse(global['_vsts_task_lib_proxy_bypass'] || "[]"), + }; + this.options.proxy = proxyFromEnv; + } + } + } + // try get cert setting from environment variable set by VSTS-Task-Lib if there is no cert setting in the options + if (!this.options.cert) { + if (global['_vsts_task_lib_cert']) { + let certFromEnv = { + caFile: global['_vsts_task_lib_cert_ca'], + certFile: global['_vsts_task_lib_cert_clientcert'], + keyFile: global['_vsts_task_lib_cert_key'], + passphrase: this._readTaskLibSecrets(global['_vsts_task_lib_cert_passphrase']), + }; + this.options.cert = certFromEnv; + } + } + // try get ignore SSL error setting from environment variable set by VSTS-Task-Lib if there is no ignore SSL error setting in the options + if (!this.options.ignoreSslError) { + this.options.ignoreSslError = !!global['_vsts_task_lib_skip_cert_validation']; + } + let userAgent; + const nodeApiName = 'azure-devops-node-api'; + if (isBrowser) { + if (requestSettings) { + userAgent = `${requestSettings.productName}/${requestSettings.productVersion} (${nodeApiName}; ${window.navigator.userAgent})`; + } + else { + userAgent = `${nodeApiName} (${window.navigator.userAgent})`; + } + } + else { + let nodeApiVersion = 'unknown'; + const packageJsonPath = __nccwpck_require__.ab + "package.json"; + if (fs.existsSync(__nccwpck_require__.ab + "package.json")) { + nodeApiVersion = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')).version; + } + const osName = os.platform(); + const osVersion = os.release(); + if (requestSettings) { + userAgent = `${requestSettings.productName}/${requestSettings.productVersion} (${nodeApiName} ${nodeApiVersion}; ${osName} ${osVersion})`; + } + else { + userAgent = `${nodeApiName}/${nodeApiVersion} (${osName} ${osVersion})`; + } + } + this.rest = new rm.RestClient(userAgent, null, [this.authHandler], this.options); + this.vsoClient = new vsom.VsoClient(defaultUrl, this.rest); + } + /** + * Convenience factory to create with a bearer token. + * @param defaultServerUrl default server url to use when creating new apis from factory methods + * @param defaultAuthHandler default authentication credentials to use when creating new apis from factory methods + */ + static createWithBearerToken(defaultUrl, token, options) { + let bearerHandler = getBearerHandler(token); + return new this(defaultUrl, bearerHandler, options); + } + connect() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + try { + let res; + res = yield this.rest.get(this.vsoClient.resolveUrl('/_apis/connectionData')); + resolve(res.result); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Each factory method can take a serverUrl and a list of handlers + * if these aren't provided, the default url and auth handler given to the constructor for this class will be used + */ + getBuildApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, buildm.BuildApi.RESOURCE_AREA_ID); + handlers = handlers || [this.authHandler]; + return new buildm.BuildApi(serverUrl, handlers, this.options); + }); + } + getCoreApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, "79134c72-4a58-4b42-976c-04e7115f32bf"); + handlers = handlers || [this.authHandler]; + return new corem.CoreApi(serverUrl, handlers, this.options); + }); + } + getDashboardApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, "31c84e0a-3ece-48fd-a29d-100849af99ba"); + handlers = handlers || [this.authHandler]; + return new dashboardm.DashboardApi(serverUrl, handlers, this.options); + }); + } + getExtensionManagementApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, "6c2b0933-3600-42ae-bf8b-93d4f7e83594"); + handlers = handlers || [this.authHandler]; + return new extmgmtm.ExtensionManagementApi(serverUrl, handlers, this.options); + }); + } + getFeatureManagementApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, ""); + handlers = handlers || [this.authHandler]; + return new featuremgmtm.FeatureManagementApi(serverUrl, handlers, this.options); + }); + } + getFileContainerApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, ""); + handlers = handlers || [this.authHandler]; + return new filecontainerm.FileContainerApi(serverUrl, handlers, this.options); + }); + } + getGalleryApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, gallerym.GalleryApi.RESOURCE_AREA_ID); + handlers = handlers || [this.authHandler]; + return new gallerym.GalleryApi(serverUrl, handlers, this.options); + }); + } + getGitApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, gitm.GitApi.RESOURCE_AREA_ID); + handlers = handlers || [this.authHandler]; + return new gitm.GitApi(serverUrl, handlers, this.options); + }); + } + // TODO: Don't call resource area here? Will cause infinite loop? + getLocationsApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + let optionsClone = Object.assign({}, this.options); + optionsClone.allowRetries = true; + optionsClone.maxRetries = 5; + serverUrl = (yield serverUrl) || this.serverUrl; + handlers = handlers || [this.authHandler]; + return new locationsm.LocationsApi(serverUrl, handlers, optionsClone); + }); + } + getNotificationApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, ""); + handlers = handlers || [this.authHandler]; + return new notificationm.NotificationApi(serverUrl, handlers, this.options); + }); + } + getPolicyApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, "fb13a388-40dd-4a04-b530-013a739c72ef"); + handlers = handlers || [this.authHandler]; + return new policym.PolicyApi(serverUrl, handlers, this.options); + }); + } + getProfileApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, "8ccfef3d-2b87-4e99-8ccb-66e343d2daa8"); + handlers = handlers || [this.authHandler]; + return new profilem.ProfileApi(serverUrl, handlers, this.options); + }); + } + getProjectAnalysisApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, "7658fa33-b1bf-4580-990f-fac5896773d3"); + handlers = handlers || [this.authHandler]; + return new projectm.ProjectAnalysisApi(serverUrl, handlers, this.options); + }); + } + getSecurityRolesApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, ""); + handlers = handlers || [this.authHandler]; + return new securityrolesm.SecurityRolesApi(serverUrl, handlers, this.options); + }); + } + getReleaseApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, "efc2f575-36ef-48e9-b672-0c6fb4a48ac5"); + handlers = handlers || [this.authHandler]; + return new releasem.ReleaseApi(serverUrl, handlers, this.options); + }); + } + getTaskApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, ""); + handlers = handlers || [this.authHandler]; + return new taskm.TaskApi(serverUrl, handlers, this.options); + }); + } + getTaskAgentApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, "a85b8835-c1a1-4aac-ae97-1c3d0ba72dbd"); + handlers = handlers || [this.authHandler]; + return new taskagentm.TaskAgentApi(serverUrl, handlers, this.options); + }); + } + getTestApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, "c2aa639c-3ccc-4740-b3b6-ce2a1e1d984e"); + handlers = handlers || [this.authHandler]; + return new testm.TestApi(serverUrl, handlers, this.options); + }); + } + getTfvcApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, "8aa40520-446d-40e6-89f6-9c9f9ce44c48"); + handlers = handlers || [this.authHandler]; + return new tfvcm.TfvcApi(serverUrl, handlers, this.options); + }); + } + getWikiApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, "bf7d82a0-8aa5-4613-94ef-6172a5ea01f3"); + handlers = handlers || [this.authHandler]; + return new wikim.WikiApi(serverUrl, handlers, this.options); + }); + } + getWorkApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, "1d4f49f9-02b9-4e26-b826-2cdb6195f2a9"); + handlers = handlers || [this.authHandler]; + return new workm.WorkApi(serverUrl, handlers, this.options); + }); + } + getWorkItemTrackingApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, workitemtrackingm.WorkItemTrackingApi.RESOURCE_AREA_ID); + handlers = handlers || [this.authHandler]; + return new workitemtrackingm.WorkItemTrackingApi(serverUrl, handlers, this.options); + }); + } + getWorkItemTrackingProcessApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, "5264459e-e5e0-4bd8-b118-0985e68a4ec5"); + handlers = handlers || [this.authHandler]; + return new workitemtrackingprocessm.WorkItemTrackingProcessApi(serverUrl, handlers, this.options); + }); + } + getWorkItemTrackingProcessDefinitionApi(serverUrl, handlers) { + return __awaiter(this, void 0, void 0, function* () { + // TODO: Load RESOURCE_AREA_ID correctly. + serverUrl = yield this._getResourceAreaUrl(serverUrl || this.serverUrl, "5264459e-e5e0-4bd8-b118-0985e68a4ec5"); + handlers = handlers || [this.authHandler]; + return new workitemtrackingprocessdefinitionm.WorkItemTrackingProcessDefinitionsApi(serverUrl, handlers, this.options); + }); + } + _getResourceAreaUrl(serverUrl, resourceId) { + return __awaiter(this, void 0, void 0, function* () { + if (!resourceId) { + return serverUrl; + } + // This must be of type any, see comment just below. + const resourceAreas = yield this._getResourceAreas(); + if (resourceAreas === undefined) { + throw new Error((`Failed to retrieve resource areas ' + 'from server: ${serverUrl}`)); + } + // The response type differs based on whether or not there are resource areas. When we are on prem we get: + // {"count":0,"value":null} and when we are on VSTS we get an array of resource areas. + // Due to this strangeness the type of resourceAreas needs to be any and we need to check .count + // When going against vsts count will be undefined. On prem it will be 0 + if (!resourceAreas || resourceAreas.length === 0 || resourceAreas.count === 0) { + // For on prem environments we get an empty list + return serverUrl; + } + for (var resourceArea of resourceAreas) { + if (resourceArea.id.toLowerCase() === resourceId.toLowerCase()) { + return resourceArea.locationUrl; + } + } + throw new Error((`Could not find information for resource area ${resourceId} ' + 'from server: ${serverUrl}`)); + }); + } + _getResourceAreas() { + return __awaiter(this, void 0, void 0, function* () { + if (!this._resourceAreas) { + const locationClient = yield this.getLocationsApi(); + this._resourceAreas = yield locationClient.getResourceAreas(); + } + return this._resourceAreas; + }); + } + _readTaskLibSecrets(lookupKey) { + if (isBrowser) { + throw new Error("Browsers can't securely keep secrets"); + } + // the lookupKey should has following format + // base64encoded:base64encoded + if (lookupKey && lookupKey.indexOf(':') > 0) { + let lookupInfo = lookupKey.split(':', 2); + // file contains encryption key + let keyFile = new Buffer(lookupInfo[0], 'base64').toString('utf8'); + let encryptKey = new Buffer(fs.readFileSync(keyFile, 'utf8'), 'base64'); + let encryptedContent = new Buffer(lookupInfo[1], 'base64').toString('utf8'); + let decipher = crypto.createDecipher("aes-256-ctr", encryptKey); + let decryptedContent = decipher.update(encryptedContent, 'hex', 'utf8'); + decryptedContent += decipher.final('utf8'); + return decryptedContent; + } + } +} +exports.WebApi = WebApi; + + +/***/ }), + +/***/ 6391: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const Comments_Contracts = __nccwpck_require__(4743); +const WikiInterfaces = __nccwpck_require__(5787); +class WikiApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-Wiki-api', options); + } + /** + * Uploads an attachment on a comment on a wiki page. + * + * @param {NodeJS.ReadableStream} contentStream - Content to upload + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or wiki name. + * @param {number} pageId - Wiki page ID. + */ + createCommentAttachment(customHeaders, contentStream, project, wikiIdentifier, pageId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier, + pageId: pageId + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "5100d976-363d-42e7-a19d-4171ecb44782", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("POST", url, contentStream, options); + let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentAttachment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Downloads an attachment on a comment on a wiki page. + * + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or wiki name. + * @param {number} pageId - Wiki page ID. + * @param {string} attachmentId - Attachment ID. + */ + getAttachmentContent(project, wikiIdentifier, pageId, attachmentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier, + pageId: pageId, + attachmentId: attachmentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "5100d976-363d-42e7-a19d-4171ecb44782", routeValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Add a reaction on a wiki page comment. + * + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or wiki name + * @param {number} pageId - Wiki page ID + * @param {number} commentId - ID of the associated comment + * @param {Comments_Contracts.CommentReactionType} type - Type of the reaction being added + */ + addCommentReaction(project, wikiIdentifier, pageId, commentId, type) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier, + pageId: pageId, + commentId: commentId, + type: type + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "7a5bc693-aab7-4d48-8f34-36f373022063", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, null, options); + let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentReaction, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a reaction on a wiki page comment. + * + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or name + * @param {number} pageId - Wiki page ID + * @param {number} commentId - ID of the associated comment + * @param {Comments_Contracts.CommentReactionType} type - Type of the reaction being deleted + */ + deleteCommentReaction(project, wikiIdentifier, pageId, commentId, type) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier, + pageId: pageId, + commentId: commentId, + type: type + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "7a5bc693-aab7-4d48-8f34-36f373022063", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentReaction, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a list of users who have reacted for the given wiki comment with a given reaction type. Supports paging, with a default page size of 100 users at a time. + * + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or wiki name. + * @param {number} pageId - Wiki page ID. + * @param {number} commentId - ID of the associated comment + * @param {Comments_Contracts.CommentReactionType} type - Type of the reaction for which the engaged users are being requested + * @param {number} top - Number of enagaged users to be returned in a given page. Optional, defaults to 100 + * @param {number} skip - Number of engaged users to be skipped to page the next set of engaged users, defaults to 0 + */ + getEngagedUsers(project, wikiIdentifier, pageId, commentId, type, top, skip) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier, + pageId: pageId, + commentId: commentId, + type: type + }; + let queryValues = { + '$top': top, + '$skip': skip, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "598a5268-41a7-4162-b7dc-344131e4d1fa", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Add a comment on a wiki page. + * + * @param {Comments_Contracts.CommentCreateParameters} request - Comment create request. + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or wiki name. + * @param {number} pageId - Wiki page ID. + */ + addComment(request, project, wikiIdentifier, pageId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier, + pageId: pageId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "9b394e93-7db5-46cb-9c26-09a36aa5c895", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, request, options); + let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.Comment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a comment on a wiki page. + * + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or name. + * @param {number} pageId - Wiki page ID. + * @param {number} id - Comment ID. + */ + deleteComment(project, wikiIdentifier, pageId, id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier, + pageId: pageId, + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "9b394e93-7db5-46cb-9c26-09a36aa5c895", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a comment associated with the Wiki Page. + * + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or wiki name. + * @param {number} pageId - Wiki page ID. + * @param {number} id - ID of the comment to return. + * @param {boolean} excludeDeleted - Specify if the deleted comment should be skipped. + * @param {Comments_Contracts.CommentExpandOptions} expand - Specifies the additional data retrieval options for comments. + */ + getComment(project, wikiIdentifier, pageId, id, excludeDeleted, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier, + pageId: pageId, + id: id + }; + let queryValues = { + excludeDeleted: excludeDeleted, + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "9b394e93-7db5-46cb-9c26-09a36aa5c895", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.Comment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a pageable list of comments. + * + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or wiki name. + * @param {number} pageId - Wiki page ID. + * @param {number} top - Max number of comments to return. + * @param {string} continuationToken - Used to query for the next page of comments. + * @param {boolean} excludeDeleted - Specify if the deleted comments should be skipped. + * @param {Comments_Contracts.CommentExpandOptions} expand - Specifies the additional data retrieval options for comments. + * @param {Comments_Contracts.CommentSortOrder} order - Order in which the comments should be returned. + * @param {number} parentId - CommentId of the parent comment. + */ + listComments(project, wikiIdentifier, pageId, top, continuationToken, excludeDeleted, expand, order, parentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier, + pageId: pageId + }; + let queryValues = { + '$top': top, + continuationToken: continuationToken, + excludeDeleted: excludeDeleted, + '$expand': expand, + order: order, + parentId: parentId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "9b394e93-7db5-46cb-9c26-09a36aa5c895", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentList, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a comment on a wiki page. + * + * @param {Comments_Contracts.CommentUpdateParameters} comment - Comment update request. + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or wiki name. + * @param {number} pageId - Wiki page ID. + * @param {number} id - Comment ID. + */ + updateComment(comment, project, wikiIdentifier, pageId, id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier, + pageId: pageId, + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "9b394e93-7db5-46cb-9c26-09a36aa5c895", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, comment, options); + let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.Comment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets metadata or content of the wiki page for the provided path. Content negotiation is done based on the `Accept` header sent in the request. + * + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or wiki name. + * @param {string} path - Wiki page path. + * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional). + * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - GitVersionDescriptor for the page. Defaults to the default branch (Optional). + * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional) + */ + getPageText(project, wikiIdentifier, path, recursionLevel, versionDescriptor, includeContent) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier + }; + let queryValues = { + path: path, + recursionLevel: recursionLevel, + versionDescriptor: versionDescriptor, + includeContent: includeContent, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "25d3fbc7-fe3d-46cb-b5a5-0b6f79caf27b", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/plain", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets metadata or content of the wiki page for the provided path. Content negotiation is done based on the `Accept` header sent in the request. + * + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or wiki name. + * @param {string} path - Wiki page path. + * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional). + * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - GitVersionDescriptor for the page. Defaults to the default branch (Optional). + * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional) + */ + getPageZip(project, wikiIdentifier, path, recursionLevel, versionDescriptor, includeContent) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier + }; + let queryValues = { + path: path, + recursionLevel: recursionLevel, + versionDescriptor: versionDescriptor, + includeContent: includeContent, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "25d3fbc7-fe3d-46cb-b5a5-0b6f79caf27b", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets metadata or content of the wiki page for the provided page id. Content negotiation is done based on the `Accept` header sent in the request. + * + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or wiki name.. + * @param {number} id - Wiki page ID. + * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional). + * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional) + */ + getPageByIdText(project, wikiIdentifier, id, recursionLevel, includeContent) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier, + id: id + }; + let queryValues = { + recursionLevel: recursionLevel, + includeContent: includeContent, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "ceddcf75-1068-452d-8b13-2d4d76e1f970", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("text/plain", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets metadata or content of the wiki page for the provided page id. Content negotiation is done based on the `Accept` header sent in the request. + * + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or wiki name.. + * @param {number} id - Wiki page ID. + * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional). + * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional) + */ + getPageByIdZip(project, wikiIdentifier, id, recursionLevel, includeContent) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier, + id: id + }; + let queryValues = { + recursionLevel: recursionLevel, + includeContent: includeContent, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "ceddcf75-1068-452d-8b13-2d4d76e1f970", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns pageable list of Wiki Pages + * + * @param {WikiInterfaces.WikiPagesBatchRequest} pagesBatchRequest - Wiki batch page request. + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or wiki name. + * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - GitVersionDescriptor for the page. (Optional in case of ProjectWiki). + */ + getPagesBatch(pagesBatchRequest, project, wikiIdentifier, versionDescriptor) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier + }; + let queryValues = { + versionDescriptor: versionDescriptor, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "71323c46-2592-4398-8771-ced73dd87207", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, pagesBatchRequest, options); + let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiPageDetail, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns page detail corresponding to Page ID. + * + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or wiki name. + * @param {number} pageId - Wiki page ID. + * @param {number} pageViewsForDays - last N days from the current day for which page views is to be returned. It's inclusive of current day. + */ + getPageData(project, wikiIdentifier, pageId, pageViewsForDays) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier, + pageId: pageId + }; + let queryValues = { + pageViewsForDays: pageViewsForDays, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "81c4e0fe-7663-4d62-ad46-6ab78459f274", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiPageDetail, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a new page view stats resource or updates an existing page view stats resource. + * + * @param {string} project - Project ID or project name + * @param {string} wikiIdentifier - Wiki ID or wiki name. + * @param {GitInterfaces.GitVersionDescriptor} wikiVersion - Wiki version. + * @param {string} path - Wiki page path. + * @param {string} oldPath - Old page path. This is optional and required to rename path in existing page view stats. + */ + createOrUpdatePageViewStats(project, wikiIdentifier, wikiVersion, path, oldPath) { + return __awaiter(this, void 0, void 0, function* () { + if (wikiVersion == null) { + throw new TypeError('wikiVersion can not be null or undefined'); + } + if (path == null) { + throw new TypeError('path can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier + }; + let queryValues = { + wikiVersion: wikiVersion, + path: path, + oldPath: oldPath, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wiki", "1087b746-5d15-41b9-bea6-14e325e7f880", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, null, options); + let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiPageViewStats, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates the wiki resource. + * + * @param {WikiInterfaces.WikiCreateParametersV2} wikiCreateParams - Parameters for the wiki creation. + * @param {string} project - Project ID or project name + */ + createWiki(wikiCreateParams, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wiki", "288d122c-dbd4-451d-aa5f-7dbbba070728", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, wikiCreateParams, options); + let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes the wiki corresponding to the wiki ID or wiki name provided. + * + * @param {string} wikiIdentifier - Wiki ID or wiki name. + * @param {string} project - Project ID or project name + */ + deleteWiki(wikiIdentifier, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wiki", "288d122c-dbd4-451d-aa5f-7dbbba070728", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets all wikis in a project or collection. + * + * @param {string} project - Project ID or project name + */ + getAllWikis(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wiki", "288d122c-dbd4-451d-aa5f-7dbbba070728", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the wiki corresponding to the wiki ID or wiki name provided. + * + * @param {string} wikiIdentifier - Wiki ID or wiki name. + * @param {string} project - Project ID or project name + */ + getWiki(wikiIdentifier, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wiki", "288d122c-dbd4-451d-aa5f-7dbbba070728", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates the wiki corresponding to the wiki ID or wiki name provided using the update parameters. + * + * @param {WikiInterfaces.WikiUpdateParameters} updateParameters - Update parameters. + * @param {string} wikiIdentifier - Wiki ID or wiki name. + * @param {string} project - Project ID or project name + */ + updateWiki(updateParameters, wikiIdentifier, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + wikiIdentifier: wikiIdentifier + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wiki", "288d122c-dbd4-451d-aa5f-7dbbba070728", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, updateParameters, options); + let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +WikiApi.RESOURCE_AREA_ID = "bf7d82a0-8aa5-4613-94ef-6172a5ea01f3"; +exports.WikiApi = WikiApi; + + +/***/ }), + +/***/ 8186: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const WorkInterfaces = __nccwpck_require__(7480); +class WorkApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-Work-api', options); + } + /** + * Gets backlog configuration for a team + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + getBacklogConfigurations(teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "7799f497-3cb5-4f16-ad4f-5cd06012db64", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BacklogConfiguration, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of work items within a backlog level + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} backlogId + */ + getBacklogLevelWorkItems(teamContext, backlogId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + backlogId: backlogId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "7c468d96-ab1d-4294-a360-92f07e9ccd98", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a backlog level + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} id - The id of the backlog level + */ + getBacklog(teamContext, id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "a93726f9-7867-4e38-b4f2-0bfafc2f6a94", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BacklogLevelConfiguration, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * List all backlog levels + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + getBacklogs(teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "a93726f9-7867-4e38-b4f2-0bfafc2f6a94", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BacklogLevelConfiguration, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a badge that displays the status of columns on the board. + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} id - The id of the board. + * @param {WorkInterfaces.BoardBadgeColumnOptions} columnOptions - Determines what columns to show. + * @param {string[]} columns - If columnOptions is set to custom, specify the list of column names. + */ + getBoardBadge(teamContext, id, columnOptions, columns) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + id: id + }; + let queryValues = { + columnOptions: columnOptions, + columns: columns && columns.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "0120b002-ab6c-4ca0-98cf-a8d7492f865c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a badge that displays the status of columns on the board. + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} id - The id of the board. + * @param {WorkInterfaces.BoardBadgeColumnOptions} columnOptions - Determines what columns to show. + * @param {string[]} columns - If columnOptions is set to custom, specify the list of column names. + */ + getBoardBadgeData(teamContext, id, columnOptions, columns) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + id: id + }; + let queryValues = { + columnOptions: columnOptions, + columns: columns && columns.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "0120b002-ab6c-4ca0-98cf-a8d7492f865c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get available board columns in a project + * + * @param {string} project - Project ID or project name + */ + getColumnSuggestedValues(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "eb7ec5a3-1ba3-4fd1-b834-49a5a387e57d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns the list of parent field filter model for the given list of workitem ids + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} childBacklogContextCategoryRefName + * @param {number[]} workitemIds + */ + getBoardMappingParentItems(teamContext, childBacklogContextCategoryRefName, workitemIds) { + return __awaiter(this, void 0, void 0, function* () { + if (childBacklogContextCategoryRefName == null) { + throw new TypeError('childBacklogContextCategoryRefName can not be null or undefined'); + } + if (workitemIds == null) { + throw new TypeError('workitemIds can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + let queryValues = { + childBacklogContextCategoryRefName: childBacklogContextCategoryRefName, + workitemIds: workitemIds && workitemIds.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "186abea3-5c35-432f-9e28-7a15b4312a0e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get available board rows in a project + * + * @param {string} project - Project ID or project name + */ + getRowSuggestedValues(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "bb494cc6-a0f5-4c6c-8dca-ea6912e79eb9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get board + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} id - identifier for board, either board's backlog level name (Eg:"Stories") or Id + */ + getBoard(teamContext, id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "23ad19fc-3b8e-4877-8462-b3f92bc06b40", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Board, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get boards + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + getBoards(teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "23ad19fc-3b8e-4877-8462-b3f92bc06b40", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update board options + * + * @param {{ [key: string] : string; }} options - options to updated + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} id - identifier for board, either category plural name (Eg:"Stories") or guid + */ + setBoardOptions(options, teamContext, id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "23ad19fc-3b8e-4877-8462-b3f92bc06b40", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, options, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get board user settings for a board id + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} board - Board ID or Name + */ + getBoardUserSettings(teamContext, board) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + board: board + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "b30d9f58-1891-4b0a-b168-c46408f919b0", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update board user settings for the board id + * + * @param {{ [key: string] : string; }} boardUserSettings + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} board + */ + updateBoardUserSettings(boardUserSettings, teamContext, board) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + board: board + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "b30d9f58-1891-4b0a-b168-c46408f919b0", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, boardUserSettings, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a team's capacity including total capacity and days off + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} iterationId - ID of the iteration + */ + getCapacitiesWithIdentityRefAndTotals(teamContext, iterationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + iterationId: iterationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "work", "74412d15-8c1a-4352-a48d-ef1ed5587d57", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamCapacity, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a team member's capacity + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} iterationId - ID of the iteration + * @param {string} teamMemberId - ID of the team member + */ + getCapacityWithIdentityRef(teamContext, iterationId, teamMemberId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + iterationId: iterationId, + teamMemberId: teamMemberId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "work", "74412d15-8c1a-4352-a48d-ef1ed5587d57", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamMemberCapacityIdentityRef, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Replace a team's capacity + * + * @param {WorkInterfaces.TeamMemberCapacityIdentityRef[]} capacities - Team capacity to replace + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} iterationId - ID of the iteration + */ + replaceCapacitiesWithIdentityRef(capacities, teamContext, iterationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + iterationId: iterationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "work", "74412d15-8c1a-4352-a48d-ef1ed5587d57", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, capacities, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamMemberCapacityIdentityRef, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a team member's capacity + * + * @param {WorkInterfaces.CapacityPatch} patch - Updated capacity + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} iterationId - ID of the iteration + * @param {string} teamMemberId - ID of the team member + */ + updateCapacityWithIdentityRef(patch, teamContext, iterationId, teamMemberId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + iterationId: iterationId, + teamMemberId: teamMemberId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "work", "74412d15-8c1a-4352-a48d-ef1ed5587d57", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, patch, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamMemberCapacityIdentityRef, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get board card Rule settings for the board id or board by name + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} board + */ + getBoardCardRuleSettings(teamContext, board) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + board: board + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "work", "b044a3d9-02ea-49c7-91a1-b730949cc896", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update board card Rule settings for the board id or board by name + * + * @param {WorkInterfaces.BoardCardRuleSettings} boardCardRuleSettings + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} board + */ + updateBoardCardRuleSettings(boardCardRuleSettings, teamContext, board) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + board: board + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "work", "b044a3d9-02ea-49c7-91a1-b730949cc896", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, boardCardRuleSettings, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update taskboard card Rule settings + * + * @param {WorkInterfaces.BoardCardRuleSettings} boardCardRuleSettings + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + updateTaskboardCardRuleSettings(boardCardRuleSettings, teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "work", "3f84a8d1-1aab-423e-a94b-6dcbdcca511f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, boardCardRuleSettings, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get board card settings for the board id or board by name + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} board + */ + getBoardCardSettings(teamContext, board) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + board: board + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "work", "07c3b467-bc60-4f05-8e34-599ce288fafc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update board card settings for the board id or board by name + * + * @param {WorkInterfaces.BoardCardSettings} boardCardSettingsToSave + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} board + */ + updateBoardCardSettings(boardCardSettingsToSave, teamContext, board) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + board: board + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "work", "07c3b467-bc60-4f05-8e34-599ce288fafc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, boardCardSettingsToSave, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update taskboard card settings + * + * @param {WorkInterfaces.BoardCardSettings} boardCardSettingsToSave + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + updateTaskboardCardSettings(boardCardSettingsToSave, teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "work", "0d63745f-31f3-4cf3-9056-2a064e567637", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, boardCardSettingsToSave, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a board chart + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} board - Identifier for board, either board's backlog level name (Eg:"Stories") or Id + * @param {string} name - The chart name + */ + getBoardChart(teamContext, board, name) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + board: board, + name: name + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "45fe888c-239e-49fd-958c-df1a1ab21d97", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get board charts + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} board - Identifier for board, either board's backlog level name (Eg:"Stories") or Id + */ + getBoardCharts(teamContext, board) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + board: board + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "45fe888c-239e-49fd-958c-df1a1ab21d97", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a board chart + * + * @param {WorkInterfaces.BoardChart} chart + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} board - Identifier for board, either board's backlog level name (Eg:"Stories") or Id + * @param {string} name - The chart name + */ + updateBoardChart(chart, teamContext, board, name) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + board: board, + name: name + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "45fe888c-239e-49fd-958c-df1a1ab21d97", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, chart, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get columns on a board + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} board - Name or ID of the specific board + */ + getBoardColumns(teamContext, board) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + board: board + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "c555d7ff-84e1-47df-9923-a3fe0cd8751b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BoardColumn, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update columns on a board + * + * @param {WorkInterfaces.BoardColumn[]} boardColumns - List of board columns to update + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} board - Name or ID of the specific board + */ + updateBoardColumns(boardColumns, teamContext, board) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + board: board + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "c555d7ff-84e1-47df-9923-a3fe0cd8751b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, boardColumns, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BoardColumn, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get Delivery View Data + * + * @param {string} project - Project ID or project name + * @param {string} id - Identifier for delivery view + * @param {number} revision - Revision of the plan for which you want data. If the current plan is a different revision you will get an ViewRevisionMismatchException exception. If you do not supply a revision you will get data for the latest revision. + * @param {Date} startDate - The start date of timeline + * @param {Date} endDate - The end date of timeline + */ + getDeliveryTimelineData(project, id, revision, startDate, endDate) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id + }; + let queryValues = { + revision: revision, + startDate: startDate, + endDate: endDate, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "bdd0834e-101f-49f0-a6ae-509f384a12b4", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.DeliveryViewData, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get an iteration's capacity for all teams in iteration + * + * @param {string} project - Project ID or project name + * @param {string} iterationId - ID of the iteration + */ + getTotalIterationCapacities(project, iterationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + iterationId: iterationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "1e385ce0-396b-4273-8171-d64562c18d37", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a team's iteration by iterationId + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} id - ID of the iteration + */ + deleteTeamIteration(teamContext, id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "c9175577-28a1-4b06-9197-8636af9f64ad", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get team's iteration by iterationId + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} id - ID of the iteration + */ + getTeamIteration(teamContext, id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "c9175577-28a1-4b06-9197-8636af9f64ad", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsIteration, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a team's iterations using timeframe filter + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} timeframe - A filter for which iterations are returned based on relative time. Only Current is supported currently. + */ + getTeamIterations(teamContext, timeframe) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + let queryValues = { + '$timeframe': timeframe, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "c9175577-28a1-4b06-9197-8636af9f64ad", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsIteration, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Add an iteration to the team + * + * @param {WorkInterfaces.TeamSettingsIteration} iteration - Iteration to add + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + postTeamIteration(iteration, teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "c9175577-28a1-4b06-9197-8636af9f64ad", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, iteration, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsIteration, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Add a new plan for the team + * + * @param {WorkInterfaces.CreatePlan} postedPlan - Plan definition + * @param {string} project - Project ID or project name + */ + createPlan(postedPlan, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "0b42cb47-cd73-4810-ac90-19c9ba147453", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, postedPlan, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete the specified plan + * + * @param {string} project - Project ID or project name + * @param {string} id - Identifier of the plan + */ + deletePlan(project, id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "0b42cb47-cd73-4810-ac90-19c9ba147453", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the information for the specified plan + * + * @param {string} project - Project ID or project name + * @param {string} id - Identifier of the plan + */ + getPlan(project, id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "0b42cb47-cd73-4810-ac90-19c9ba147453", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the information for all the plans configured for the given team + * + * @param {string} project - Project ID or project name + */ + getPlans(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "0b42cb47-cd73-4810-ac90-19c9ba147453", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update the information for the specified plan + * + * @param {WorkInterfaces.UpdatePlan} updatedPlan - Plan definition to be updated + * @param {string} project - Project ID or project name + * @param {string} id - Identifier of the plan + */ + updatePlan(updatedPlan, project, id) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "0b42cb47-cd73-4810-ac90-19c9ba147453", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, updatedPlan, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get process configuration + * + * @param {string} project - Project ID or project name + */ + getProcessConfiguration(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "f901ba42-86d2-4b0c-89c1-3f86d06daa84", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get rows on a board + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} board - Name or ID of the specific board + */ + getBoardRows(teamContext, board) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + board: board + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "0863355d-aefd-4d63-8669-984c9b7b0e78", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update rows on a board + * + * @param {WorkInterfaces.BoardRow[]} boardRows - List of board rows to update + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} board - Name or ID of the specific board + */ + updateBoardRows(boardRows, teamContext, board) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + board: board + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "0863355d-aefd-4d63-8669-984c9b7b0e78", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, boardRows, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + getColumns(teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "c6815dbe-8e7e-4ffe-9a79-e83ee712aa92", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {WorkInterfaces.UpdateTaskboardColumn[]} updateColumns + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + updateColumns(updateColumns, teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "c6815dbe-8e7e-4ffe-9a79-e83ee712aa92", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, updateColumns, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} iterationId + */ + getWorkItemColumns(teamContext, iterationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + iterationId: iterationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "1be23c36-8872-4abc-b57d-402cd6c669d9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {WorkInterfaces.UpdateTaskboardWorkItemColumn} updateColumn + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} iterationId + * @param {number} workItemId + */ + updateWorkItemColumn(updateColumn, teamContext, iterationId, workItemId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + iterationId: iterationId, + workItemId: workItemId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "1be23c36-8872-4abc-b57d-402cd6c669d9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, updateColumn, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get team's days off for an iteration + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} iterationId - ID of the iteration + */ + getTeamDaysOff(teamContext, iterationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + iterationId: iterationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "2d4faa2e-9150-4cbf-a47a-932b1b4a0773", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsDaysOff, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Set a team's days off for an iteration + * + * @param {WorkInterfaces.TeamSettingsDaysOffPatch} daysOffPatch - Team's days off patch containing a list of start and end dates + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} iterationId - ID of the iteration + */ + updateTeamDaysOff(daysOffPatch, teamContext, iterationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + iterationId: iterationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "2d4faa2e-9150-4cbf-a47a-932b1b4a0773", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, daysOffPatch, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsDaysOff, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a collection of team field values + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + getTeamFieldValues(teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "07ced576-58ed-49e6-9c1e-5cb53ab8bf2a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update team field values + * + * @param {WorkInterfaces.TeamFieldValuesPatch} patch + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + updateTeamFieldValues(patch, teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "07ced576-58ed-49e6-9c1e-5cb53ab8bf2a", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, patch, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a team's settings + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + getTeamSettings(teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "c3c1012b-bea7-49d7-b45e-1664e566f84c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSetting, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a team's settings + * + * @param {WorkInterfaces.TeamSettingsPatch} teamSettingsPatch - TeamSettings changes + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + updateTeamSettings(teamSettingsPatch, teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "c3c1012b-bea7-49d7-b45e-1664e566f84c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, teamSettingsPatch, options); + let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSetting, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get work items for iteration + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} iterationId - ID of the iteration + */ + getIterationWorkItems(teamContext, iterationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + iterationId: iterationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "5b3ef1a6-d3ab-44cd-bafd-c7f45db850fa", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Reorder Product Backlog/Boards Work Items + * + * @param {WorkInterfaces.ReorderOperation} operation + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + reorderBacklogWorkItems(operation, teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "1c22b714-e7e4-41b9-85e0-56ee13ef55ed", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, operation, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Reorder Sprint Backlog/Taskboard Work Items + * + * @param {WorkInterfaces.ReorderOperation} operation + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} iterationId - The id of the iteration + */ + reorderIterationWorkItems(operation, teamContext, iterationId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + iterationId: iterationId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "work", "47755db2-d7eb-405a-8c25-675401525fc9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, operation, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +WorkApi.RESOURCE_AREA_ID = "1d4f49f9-02b9-4e26-b826-2cdb6195f2a9"; +exports.WorkApi = WorkApi; + + +/***/ }), + +/***/ 8409: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const WorkItemTrackingInterfaces = __nccwpck_require__(6938); +class WorkItemTrackingApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-WorkItemTracking-api', options); + } + /** + * INTERNAL ONLY: USED BY ACCOUNT MY WORK PAGE. This returns Doing, Done, Follows and activity work items details. + * + * @param {WorkItemTrackingInterfaces.QueryOption} queryOption + */ + getAccountMyWorkData(queryOption) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + '$queryOption': queryOption, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "def3d688-ddf5-4096-9024-69beea15cdbd", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.AccountMyWorkResult, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets recent work item activities + * + */ + getRecentActivityData() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "1bc988f4-c15f-4072-ad35-497c87e3a909", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.AccountRecentActivityWorkItemModel2, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * INTERNAL ONLY: USED BY ACCOUNT MY WORK PAGE. + * + */ + getRecentMentions() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "d60eeb6e-e18c-4478-9e94-a0094e28f41c", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.AccountRecentMentionWorkItemModel, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get the list of work item tracking outbound artifact link types. + * + */ + getWorkArtifactLinkTypes() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "1a31de40-e318-41cd-a6c6-881077df52e3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Queries work items linked to a given list of artifact URI. + * + * @param {WorkItemTrackingInterfaces.ArtifactUriQuery} artifactUriQuery - Defines a list of artifact URI for querying work items. + * @param {string} project - Project ID or project name + */ + queryWorkItemsForArtifactUris(artifactUriQuery, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "a9a9aa7a-8c09-44d3-ad1b-46e855c1e3d3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, artifactUriQuery, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Uploads an attachment. + * + * @param {NodeJS.ReadableStream} contentStream - Content to upload + * @param {string} fileName - The name of the file + * @param {string} uploadType - Attachment upload type: Simple or Chunked + * @param {string} project - Project ID or project name + * @param {string} areaPath - Target project Area Path + */ + createAttachment(customHeaders, contentStream, fileName, uploadType, project, areaPath) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + fileName: fileName, + uploadType: uploadType, + areaPath: areaPath, + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/octet-stream"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "e07b5fa4-1499-494d-a496-64b860fd64ff", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.uploadStream("POST", url, contentStream, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Downloads an attachment. + * + * @param {string} id - Attachment ID + * @param {string} fileName - Name of the file + * @param {string} project - Project ID or project name + * @param {boolean} download - If set to true always download attachment + */ + getAttachmentContent(id, fileName, project, download) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id + }; + let queryValues = { + fileName: fileName, + download: download, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "e07b5fa4-1499-494d-a496-64b860fd64ff", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/octet-stream", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Downloads an attachment. + * + * @param {string} id - Attachment ID + * @param {string} fileName - Name of the file + * @param {string} project - Project ID or project name + * @param {boolean} download - If set to true always download attachment + */ + getAttachmentZip(id, fileName, project, download) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id + }; + let queryValues = { + fileName: fileName, + download: download, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "e07b5fa4-1499-494d-a496-64b860fd64ff", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("application/zip", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets root classification nodes or list of classification nodes for a given list of nodes ids, for a given project. In case ids parameter is supplied you will get list of classification nodes for those ids. Otherwise you will get root classification nodes for this project. + * + * @param {string} project - Project ID or project name + * @param {number[]} ids - Comma separated integer classification nodes ids. It's not required, if you want root nodes. + * @param {number} depth - Depth of children to fetch. + * @param {WorkItemTrackingInterfaces.ClassificationNodesErrorPolicy} errorPolicy - Flag to handle errors in getting some nodes. Possible options are Fail and Omit. + */ + getClassificationNodes(project, ids, depth, errorPolicy) { + return __awaiter(this, void 0, void 0, function* () { + if (ids == null) { + throw new TypeError('ids can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + ids: ids && ids.join(","), + '$depth': depth, + errorPolicy: errorPolicy, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "a70579d1-f53a-48ee-a5be-7be8659023b9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets root classification nodes under the project. + * + * @param {string} project - Project ID or project name + * @param {number} depth - Depth of children to fetch. + */ + getRootNodes(project, depth) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + '$depth': depth, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "a70579d1-f53a-48ee-a5be-7be8659023b9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create new or update an existing classification node. + * + * @param {WorkItemTrackingInterfaces.WorkItemClassificationNode} postedNode - Node to create or update. + * @param {string} project - Project ID or project name + * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration. + * @param {string} path - Path of the classification node. + */ + createOrUpdateClassificationNode(postedNode, project, structureGroup, path) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + structureGroup: structureGroup, + path: path + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "5a172953-1b41-49d3-840a-33f79c3ce89f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, postedNode, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete an existing classification node. + * + * @param {string} project - Project ID or project name + * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration. + * @param {string} path - Path of the classification node. + * @param {number} reclassifyId - Id of the target classification node for reclassification. + */ + deleteClassificationNode(project, structureGroup, path, reclassifyId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + structureGroup: structureGroup, + path: path + }; + let queryValues = { + '$reclassifyId': reclassifyId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "5a172953-1b41-49d3-840a-33f79c3ce89f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the classification node for a given node path. + * + * @param {string} project - Project ID or project name + * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration. + * @param {string} path - Path of the classification node. + * @param {number} depth - Depth of children to fetch. + */ + getClassificationNode(project, structureGroup, path, depth) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + structureGroup: structureGroup, + path: path + }; + let queryValues = { + '$depth': depth, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "5a172953-1b41-49d3-840a-33f79c3ce89f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update an existing classification node. + * + * @param {WorkItemTrackingInterfaces.WorkItemClassificationNode} postedNode - Node to create or update. + * @param {string} project - Project ID or project name + * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration. + * @param {string} path - Path of the classification node. + */ + updateClassificationNode(postedNode, project, structureGroup, path) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + structureGroup: structureGroup, + path: path + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "5a172953-1b41-49d3-840a-33f79c3ce89f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, postedNode, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get users who reacted on the comment. + * + * @param {string} project - Project ID or project name + * @param {number} workItemId - WorkItem ID. + * @param {number} commentId - Comment ID. + * @param {WorkItemTrackingInterfaces.CommentReactionType} reactionType - Type of the reaction. + * @param {number} top + * @param {number} skip + */ + getEngagedUsers(project, workItemId, commentId, reactionType, top, skip) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + workItemId: workItemId, + commentId: commentId, + reactionType: reactionType + }; + let queryValues = { + '$top': top, + '$skip': skip, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "e33ca5e0-2349-4285-af3d-d72d86781c35", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Add a comment on a work item. + * + * @param {WorkItemTrackingInterfaces.CommentCreate} request - Comment create request. + * @param {string} project - Project ID or project name + * @param {number} workItemId - Id of a work item. + */ + addComment(request, project, workItemId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + workItemId: workItemId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "608aac0a-32e1-4493-a863-b9cf4566d257", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, request, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.Comment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a comment on a work item. + * + * @param {string} project - Project ID or project name + * @param {number} workItemId - Id of a work item. + * @param {number} commentId + */ + deleteComment(project, workItemId, commentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + workItemId: workItemId, + commentId: commentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "608aac0a-32e1-4493-a863-b9cf4566d257", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a work item comment. + * + * @param {string} project - Project ID or project name + * @param {number} workItemId - Id of a work item to get the comment. + * @param {number} commentId - Id of the comment to return. + * @param {boolean} includeDeleted - Specify if the deleted comment should be retrieved. + * @param {WorkItemTrackingInterfaces.CommentExpandOptions} expand - Specifies the additional data retrieval options for work item comments. + */ + getComment(project, workItemId, commentId, includeDeleted, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + workItemId: workItemId, + commentId: commentId + }; + let queryValues = { + includeDeleted: includeDeleted, + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "608aac0a-32e1-4493-a863-b9cf4566d257", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.Comment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of work item comments, pageable. + * + * @param {string} project - Project ID or project name + * @param {number} workItemId - Id of a work item to get comments for. + * @param {number} top - Max number of comments to return. + * @param {string} continuationToken - Used to query for the next page of comments. + * @param {boolean} includeDeleted - Specify if the deleted comments should be retrieved. + * @param {WorkItemTrackingInterfaces.CommentExpandOptions} expand - Specifies the additional data retrieval options for work item comments. + * @param {WorkItemTrackingInterfaces.CommentSortOrder} order - Order in which the comments should be returned. + */ + getComments(project, workItemId, top, continuationToken, includeDeleted, expand, order) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + workItemId: workItemId + }; + let queryValues = { + '$top': top, + continuationToken: continuationToken, + includeDeleted: includeDeleted, + '$expand': expand, + order: order, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "608aac0a-32e1-4493-a863-b9cf4566d257", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentList, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of work item comments by ids. + * + * @param {string} project - Project ID or project name + * @param {number} workItemId - Id of a work item to get comments for. + * @param {number[]} ids - Comma-separated list of comment ids to return. + * @param {boolean} includeDeleted - Specify if the deleted comments should be retrieved. + * @param {WorkItemTrackingInterfaces.CommentExpandOptions} expand - Specifies the additional data retrieval options for work item comments. + */ + getCommentsBatch(project, workItemId, ids, includeDeleted, expand) { + return __awaiter(this, void 0, void 0, function* () { + if (ids == null) { + throw new TypeError('ids can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + workItemId: workItemId + }; + let queryValues = { + ids: ids && ids.join(","), + includeDeleted: includeDeleted, + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "608aac0a-32e1-4493-a863-b9cf4566d257", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentList, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a comment on a work item. + * + * @param {WorkItemTrackingInterfaces.CommentUpdate} request - Comment update request. + * @param {string} project - Project ID or project name + * @param {number} workItemId - Id of a work item. + * @param {number} commentId + */ + updateComment(request, project, workItemId, commentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + workItemId: workItemId, + commentId: commentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "608aac0a-32e1-4493-a863-b9cf4566d257", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, request, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.Comment, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds a new reaction to a comment. + * + * @param {string} project - Project ID or project name + * @param {number} workItemId - WorkItem ID + * @param {number} commentId - Comment ID + * @param {WorkItemTrackingInterfaces.CommentReactionType} reactionType - Type of the reaction + */ + createCommentReaction(project, workItemId, commentId, reactionType) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + workItemId: workItemId, + commentId: commentId, + reactionType: reactionType + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "f6cb3f27-1028-4851-af96-887e570dc21f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, null, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentReaction, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes an existing reaction on a comment. + * + * @param {string} project - Project ID or project name + * @param {number} workItemId - WorkItem ID + * @param {number} commentId - Comment ID + * @param {WorkItemTrackingInterfaces.CommentReactionType} reactionType - Type of the reaction + */ + deleteCommentReaction(project, workItemId, commentId, reactionType) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + workItemId: workItemId, + commentId: commentId, + reactionType: reactionType + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "f6cb3f27-1028-4851-af96-887e570dc21f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentReaction, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets reactions of a comment. + * + * @param {string} project - Project ID or project name + * @param {number} workItemId - WorkItem ID + * @param {number} commentId - Comment ID + */ + getCommentReactions(project, workItemId, commentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + workItemId: workItemId, + commentId: commentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "f6cb3f27-1028-4851-af96-887e570dc21f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentReaction, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} workItemId + * @param {number} commentId + * @param {number} version + */ + getCommentVersion(project, workItemId, commentId, version) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + workItemId: workItemId, + commentId: commentId, + version: version + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "49e03b34-3be0-42e3-8a5d-e8dfb88ac954", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentVersion, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {number} workItemId + * @param {number} commentId + */ + getCommentVersions(project, workItemId, commentId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + workItemId: workItemId, + commentId: commentId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "49e03b34-3be0-42e3-8a5d-e8dfb88ac954", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentVersion, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Create a new field. + * + * @param {WorkItemTrackingInterfaces.WorkItemField} workItemField - New field definition + * @param {string} project - Project ID or project name + */ + createField(workItemField, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, workItemField, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes the field. To undelete a filed, see "Update Field" API. + * + * @param {string} fieldNameOrRefName - Field simple name or reference name + * @param {string} project - Project ID or project name + */ + deleteField(fieldNameOrRefName, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + fieldNameOrRefName: fieldNameOrRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets information on a specific field. + * + * @param {string} fieldNameOrRefName - Field simple name or reference name + * @param {string} project - Project ID or project name + */ + getField(fieldNameOrRefName, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + fieldNameOrRefName: fieldNameOrRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns information for all fields. The project ID/name parameter is optional. + * + * @param {string} project - Project ID or project name + * @param {WorkItemTrackingInterfaces.GetFieldsExpand} expand - Use ExtensionFields to include extension fields, otherwise exclude them. Unless the feature flag for this parameter is enabled, extension fields are always included. + */ + getFields(project, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a field. + * + * @param {WorkItemTrackingInterfaces.UpdateWorkItemField} payload - Payload contains desired value of the field's properties + * @param {string} fieldNameOrRefName - Name/reference name of the field to be updated + * @param {string} project - Project ID or project name + */ + updateField(payload, fieldNameOrRefName, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + fieldNameOrRefName: fieldNameOrRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, payload, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Migrates a project to a different process within the same OOB type. For example, you can only migrate a project from agile/custom-agile to agile/custom-agile. + * + * @param {WorkItemTrackingInterfaces.ProcessIdModel} newProcess + * @param {string} project - Project ID or project name + */ + migrateProjectsProcess(newProcess, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "19801631-d4e5-47e9-8166-0330de0ff1e6", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, newProcess, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a query, or moves a query. + * + * @param {WorkItemTrackingInterfaces.QueryHierarchyItem} postedQuery - The query to create. + * @param {string} project - Project ID or project name + * @param {string} query - The parent id or path under which the query is to be created. + * @param {boolean} validateWiqlOnly - If you only want to validate your WIQL query without actually creating one, set it to true. Default is false. + */ + createQuery(postedQuery, project, query, validateWiqlOnly) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + query: query + }; + let queryValues = { + validateWiqlOnly: validateWiqlOnly, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "a67d190c-c41f-424b-814d-0e906f659301", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, postedQuery, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Delete a query or a folder. This deletes any permission change on the deleted query or folder and any of its descendants if it is a folder. It is important to note that the deleted permission changes cannot be recovered upon undeleting the query or folder. + * + * @param {string} project - Project ID or project name + * @param {string} query - ID or path of the query or folder to delete. + */ + deleteQuery(project, query) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + query: query + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "a67d190c-c41f-424b-814d-0e906f659301", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the root queries and their children + * + * @param {string} project - Project ID or project name + * @param {WorkItemTrackingInterfaces.QueryExpand} expand - Include the query string (wiql), clauses, query result columns, and sort options in the results. + * @param {number} depth - In the folder of queries, return child queries and folders to this depth. + * @param {boolean} includeDeleted - Include deleted queries and folders + */ + getQueries(project, expand, depth, includeDeleted) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + '$expand': expand, + '$depth': depth, + '$includeDeleted': includeDeleted, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "a67d190c-c41f-424b-814d-0e906f659301", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Retrieves an individual query and its children + * + * @param {string} project - Project ID or project name + * @param {string} query - ID or path of the query. + * @param {WorkItemTrackingInterfaces.QueryExpand} expand - Include the query string (wiql), clauses, query result columns, and sort options in the results. + * @param {number} depth - In the folder of queries, return child queries and folders to this depth. + * @param {boolean} includeDeleted - Include deleted queries and folders + */ + getQuery(project, query, expand, depth, includeDeleted) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + query: query + }; + let queryValues = { + '$expand': expand, + '$depth': depth, + '$includeDeleted': includeDeleted, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "a67d190c-c41f-424b-814d-0e906f659301", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Searches all queries the user has access to in the current project + * + * @param {string} project - Project ID or project name + * @param {string} filter - The text to filter the queries with. + * @param {number} top - The number of queries to return (Default is 50 and maximum is 200). + * @param {WorkItemTrackingInterfaces.QueryExpand} expand + * @param {boolean} includeDeleted - Include deleted queries and folders + */ + searchQueries(project, filter, top, expand, includeDeleted) { + return __awaiter(this, void 0, void 0, function* () { + if (filter == null) { + throw new TypeError('filter can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + '$filter': filter, + '$top': top, + '$expand': expand, + '$includeDeleted': includeDeleted, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "a67d190c-c41f-424b-814d-0e906f659301", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItemsResult, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Update a query or a folder. This allows you to update, rename and move queries and folders. + * + * @param {WorkItemTrackingInterfaces.QueryHierarchyItem} queryUpdate - The query to update. + * @param {string} project - Project ID or project name + * @param {string} query - The ID or path for the query to update. + * @param {boolean} undeleteDescendants - Undelete the children of this folder. It is important to note that this will not bring back the permission changes that were previously applied to the descendants. + */ + updateQuery(queryUpdate, project, query, undeleteDescendants) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + query: query + }; + let queryValues = { + '$undeleteDescendants': undeleteDescendants, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "a67d190c-c41f-424b-814d-0e906f659301", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, queryUpdate, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a list of queries by ids (Maximum 1000) + * + * @param {WorkItemTrackingInterfaces.QueryBatchGetRequest} queryGetRequest + * @param {string} project - Project ID or project name + */ + getQueriesBatch(queryGetRequest, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "549816f9-09b0-4e75-9e81-01fbfcd07426", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, queryGetRequest, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Destroys the specified work item permanently from the Recycle Bin. This action can not be undone. + * + * @param {number} id - ID of the work item to be destroyed permanently + * @param {string} project - Project ID or project name + */ + destroyWorkItem(id, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "b70d8d39-926c-465e-b927-b1bf0e5ca0e0", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a deleted work item from Recycle Bin. + * + * @param {number} id - ID of the work item to be returned + * @param {string} project - Project ID or project name + */ + getDeletedWorkItem(id, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "b70d8d39-926c-465e-b927-b1bf0e5ca0e0", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the work items from the recycle bin, whose IDs have been specified in the parameters + * + * @param {number[]} ids - Comma separated list of IDs of the deleted work items to be returned + * @param {string} project - Project ID or project name + */ + getDeletedWorkItems(ids, project) { + return __awaiter(this, void 0, void 0, function* () { + if (ids == null) { + throw new TypeError('ids can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + ids: ids && ids.join(","), + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "b70d8d39-926c-465e-b927-b1bf0e5ca0e0", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets a list of the IDs and the URLs of the deleted the work items in the Recycle Bin. + * + * @param {string} project - Project ID or project name + */ + getDeletedWorkItemShallowReferences(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "b70d8d39-926c-465e-b927-b1bf0e5ca0e0", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Restores the deleted work item from Recycle Bin. + * + * @param {WorkItemTrackingInterfaces.WorkItemDeleteUpdate} payload - Paylod with instructions to update the IsDeleted flag to false + * @param {number} id - ID of the work item to be restored + * @param {string} project - Project ID or project name + */ + restoreWorkItem(payload, id, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "b70d8d39-926c-465e-b927-b1bf0e5ca0e0", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, payload, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a fully hydrated work item for the requested revision + * + * @param {number} id + * @param {number} revisionNumber + * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand + * @param {string} project - Project ID or project name + */ + getRevision(id, revisionNumber, expand, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id, + revisionNumber: revisionNumber + }; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "a00c85a5-80fa-4565-99c3-bcd2181434bb", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns the list of fully hydrated work item revisions, paged. + * + * @param {number} id + * @param {number} top + * @param {number} skip + * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand + * @param {string} project - Project ID or project name + */ + getRevisions(id, top, skip, expand, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id + }; + let queryValues = { + '$top': top, + '$skip': skip, + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "a00c85a5-80fa-4565-99c3-bcd2181434bb", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * RESTful method to send mail for selected/queried work items. + * + * @param {WorkItemTrackingInterfaces.SendMailBody} body + * @param {string} project - Project ID or project name + */ + sendMail(body, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "12438500-2f84-4fa7-9f1a-c31871b4959d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, body, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {string} tagIdOrName + */ + deleteTag(project, tagIdOrName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + tagIdOrName: tagIdOrName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "bc15bc60-e7a8-43cb-ab01-2106be3983a1", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {string} tagIdOrName + */ + getTag(project, tagIdOrName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + tagIdOrName: tagIdOrName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "bc15bc60-e7a8-43cb-ab01-2106be3983a1", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + */ + getTags(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "bc15bc60-e7a8-43cb-ab01-2106be3983a1", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {WorkItemTrackingInterfaces.WorkItemTagDefinition} tagData + * @param {string} project - Project ID or project name + * @param {string} tagIdOrName + */ + updateTag(tagData, project, tagIdOrName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + tagIdOrName: tagIdOrName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "bc15bc60-e7a8-43cb-ab01-2106be3983a1", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, tagData, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a template + * + * @param {WorkItemTrackingInterfaces.WorkItemTemplate} template - Template contents + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + */ + createTemplate(template, teamContext) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "6a90345f-a676-4969-afce-8e163e1d5642", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, template, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets template + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} workitemtypename - Optional, When specified returns templates for given Work item type. + */ + getTemplates(teamContext, workitemtypename) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + let queryValues = { + workitemtypename: workitemtypename, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "6a90345f-a676-4969-afce-8e163e1d5642", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes the template with given id + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} templateId - Template id + */ + deleteTemplate(teamContext, templateId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + templateId: templateId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "fb10264a-8836-48a0-8033-1b0ccd2748d5", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the template with specified id + * + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} templateId - Template Id + */ + getTemplate(teamContext, templateId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + templateId: templateId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "fb10264a-8836-48a0-8033-1b0ccd2748d5", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Replace template contents + * + * @param {WorkItemTrackingInterfaces.WorkItemTemplate} templateContent - Template contents to replace with + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {string} templateId - Template id + */ + replaceTemplate(templateContent, teamContext, templateId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + templateId: templateId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "fb10264a-8836-48a0-8033-1b0ccd2748d5", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, templateContent, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a single update for a work item + * + * @param {number} id + * @param {number} updateNumber + * @param {string} project - Project ID or project name + */ + getUpdate(id, updateNumber, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id, + updateNumber: updateNumber + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "6570bf97-d02c-4a91-8d93-3abe9895b1a9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemUpdate, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a the deltas between work item revisions + * + * @param {number} id + * @param {number} top + * @param {number} skip + * @param {string} project - Project ID or project name + */ + getUpdates(id, top, skip, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id + }; + let queryValues = { + '$top': top, + '$skip': skip, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "6570bf97-d02c-4a91-8d93-3abe9895b1a9", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemUpdate, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the results of the query given its WIQL. + * + * @param {WorkItemTrackingInterfaces.Wiql} wiql - The query containing the WIQL. + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {boolean} timePrecision - Whether or not to use time precision. + * @param {number} top - The max number of results to return. + */ + queryByWiql(wiql, teamContext, timePrecision, top) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team + }; + let queryValues = { + timePrecision: timePrecision, + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "1a9c53f7-f243-4447-b110-35ef023636e4", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, wiql, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemQueryResult, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the results of the query given the query ID. + * + * @param {string} id - The query ID. + * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation + * @param {boolean} timePrecision - Whether or not to use time precision. + * @param {number} top - The max number of results to return. + */ + queryById(id, teamContext, timePrecision, top) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let project = null; + let team = null; + if (teamContext) { + project = teamContext.projectId || teamContext.project; + team = teamContext.teamId || teamContext.team; + } + let routeValues = { + project: project, + team: team, + id: id + }; + let queryValues = { + timePrecision: timePrecision, + '$top': top, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "a02355f5-5f8a-4671-8e32-369d23aac83d", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemQueryResult, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a work item icon given the friendly name and icon color. + * + * @param {string} icon - The name of the icon + * @param {string} color - The 6-digit hex color for the icon + * @param {number} v - The version of the icon (used only for cache invalidation) + */ + getWorkItemIconJson(icon, color, v) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + icon: icon + }; + let queryValues = { + color: color, + v: v, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "4e1eb4a5-1970-4228-a682-ec48eb2dca30", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of all work item icons. + * + */ + getWorkItemIcons() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "4e1eb4a5-1970-4228-a682-ec48eb2dca30", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a work item icon given the friendly name and icon color. + * + * @param {string} icon - The name of the icon + * @param {string} color - The 6-digit hex color for the icon + * @param {number} v - The version of the icon (used only for cache invalidation) + */ + getWorkItemIconSvg(icon, color, v) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + icon: icon + }; + let queryValues = { + color: color, + v: v, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "4e1eb4a5-1970-4228-a682-ec48eb2dca30", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("image/svg+xml", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a work item icon given the friendly name and icon color. + * + * @param {string} icon - The name of the icon + * @param {string} color - The 6-digit hex color for the icon + * @param {number} v - The version of the icon (used only for cache invalidation) + */ + getWorkItemIconXaml(icon, color, v) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + icon: icon + }; + let queryValues = { + color: color, + v: v, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "4e1eb4a5-1970-4228-a682-ec48eb2dca30", routeValues, queryValues); + let url = verData.requestUrl; + let apiVersion = verData.apiVersion; + let accept = this.createAcceptHeader("image/xaml+xml", apiVersion); + resolve((yield this.http.get(url, { "Accept": accept })).message); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a batch of work item links + * + * @param {string} project - Project ID or project name + * @param {string[]} linkTypes - A list of types to filter the results to specific link types. Omit this parameter to get work item links of all link types. + * @param {string[]} types - A list of types to filter the results to specific work item types. Omit this parameter to get work item links of all work item types. + * @param {string} continuationToken - Specifies the continuationToken to start the batch from. Omit this parameter to get the first batch of links. + * @param {Date} startDateTime - Date/time to use as a starting point for link changes. Only link changes that occurred after that date/time will be returned. Cannot be used in conjunction with 'watermark' parameter. + */ + getReportingLinksByLinkType(project, linkTypes, types, continuationToken, startDateTime) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + linkTypes: linkTypes && linkTypes.join(","), + types: types && types.join(","), + continuationToken: continuationToken, + startDateTime: startDateTime, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "b5b5b6d0-0308-40a1-b3f4-b9bb3c66878f", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the work item relation type definition. + * + * @param {string} relation - The relation name + */ + getRelationType(relation) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + relation: relation + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "f5d33bc9-5b49-4a3c-a9bd-f3cd46dd2165", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the work item relation types. + * + */ + getRelationTypes() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "f5d33bc9-5b49-4a3c-a9bd-f3cd46dd2165", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a batch of work item revisions with the option of including deleted items + * + * @param {string} project - Project ID or project name + * @param {string[]} fields - A list of fields to return in work item revisions. Omit this parameter to get all reportable fields. + * @param {string[]} types - A list of types to filter the results to specific work item types. Omit this parameter to get work item revisions of all work item types. + * @param {string} continuationToken - Specifies the watermark to start the batch from. Omit this parameter to get the first batch of revisions. + * @param {Date} startDateTime - Date/time to use as a starting point for revisions, all revisions will occur after this date/time. Cannot be used in conjunction with 'watermark' parameter. + * @param {boolean} includeIdentityRef - Return an identity reference instead of a string value for identity fields. + * @param {boolean} includeDeleted - Specify if the deleted item should be returned. + * @param {boolean} includeTagRef - Specify if the tag objects should be returned for System.Tags field. + * @param {boolean} includeLatestOnly - Return only the latest revisions of work items, skipping all historical revisions + * @param {WorkItemTrackingInterfaces.ReportingRevisionsExpand} expand - Return all the fields in work item revisions, including long text fields which are not returned by default + * @param {boolean} includeDiscussionChangesOnly - Return only the those revisions of work items, where only history field was changed + * @param {number} maxPageSize - The maximum number of results to return in this batch + */ + readReportingRevisionsGet(project, fields, types, continuationToken, startDateTime, includeIdentityRef, includeDeleted, includeTagRef, includeLatestOnly, expand, includeDiscussionChangesOnly, maxPageSize) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + fields: fields && fields.join(","), + types: types && types.join(","), + continuationToken: continuationToken, + startDateTime: startDateTime, + includeIdentityRef: includeIdentityRef, + includeDeleted: includeDeleted, + includeTagRef: includeTagRef, + includeLatestOnly: includeLatestOnly, + '$expand': expand, + includeDiscussionChangesOnly: includeDiscussionChangesOnly, + '$maxPageSize': maxPageSize, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "f828fe59-dd87-495d-a17c-7a8d6211ca6c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a batch of work item revisions. This request may be used if your list of fields is large enough that it may run the URL over the length limit. + * + * @param {WorkItemTrackingInterfaces.ReportingWorkItemRevisionsFilter} filter - An object that contains request settings: field filter, type filter, identity format + * @param {string} project - Project ID or project name + * @param {string} continuationToken - Specifies the watermark to start the batch from. Omit this parameter to get the first batch of revisions. + * @param {Date} startDateTime - Date/time to use as a starting point for revisions, all revisions will occur after this date/time. Cannot be used in conjunction with 'watermark' parameter. + * @param {WorkItemTrackingInterfaces.ReportingRevisionsExpand} expand + */ + readReportingRevisionsPost(filter, project, continuationToken, startDateTime, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + continuationToken: continuationToken, + startDateTime: startDateTime, + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "f828fe59-dd87-495d-a17c-7a8d6211ca6c", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, filter, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * @param {string} project - Project ID or project name + * @param {string} continuationToken + * @param {number} maxPageSize + */ + readReportingDiscussions(project, continuationToken, maxPageSize) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + continuationToken: continuationToken, + '$maxPageSize': maxPageSize, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "4a644469-90c5-4fcc-9a9f-be0827d369ec", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a single work item. + * + * @param {VSSInterfaces.JsonPatchDocument} document - The JSON Patch document representing the work item + * @param {string} project - Project ID or project name + * @param {string} type - The work item type of the work item to create + * @param {boolean} validateOnly - Indicate if you only want to validate the changes without saving the work item + * @param {boolean} bypassRules - Do not enforce the work item type rules on this update + * @param {boolean} suppressNotifications - Do not fire any notifications for this change + * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }. + */ + createWorkItem(customHeaders, document, project, type, validateOnly, bypassRules, suppressNotifications, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + type: type + }; + let queryValues = { + validateOnly: validateOnly, + bypassRules: bypassRules, + suppressNotifications: suppressNotifications, + '$expand': expand, + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/json-patch+json"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "62d3d110-0047-428c-ad3c-4fe872c91c74", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.create(url, document, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a single work item from a template. + * + * @param {string} project - Project ID or project name + * @param {string} type - The work item type name + * @param {string} fields - Comma-separated list of requested fields + * @param {Date} asOf - AsOf UTC date time string + * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }. + */ + getWorkItemTemplate(project, type, fields, asOf, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + type: type + }; + let queryValues = { + fields: fields, + asOf: asOf, + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "62d3d110-0047-428c-ad3c-4fe872c91c74", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes the specified work item and sends it to the Recycle Bin, so that it can be restored back, if required. Optionally, if the destroy parameter has been set to true, it destroys the work item permanently. WARNING: If the destroy parameter is set to true, work items deleted by this command will NOT go to recycle-bin and there is no way to restore/recover them after deletion. It is recommended NOT to use this parameter. If you do, please use this parameter with extreme caution. + * + * @param {number} id - ID of the work item to be deleted + * @param {string} project - Project ID or project name + * @param {boolean} destroy - Optional parameter, if set to true, the work item is deleted permanently. Please note: the destroy action is PERMANENT and cannot be undone. + */ + deleteWorkItem(id, project, destroy) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id + }; + let queryValues = { + destroy: destroy, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "72c7ddf8-2cdc-4f60-90cd-ab71c14a399b", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a single work item. + * + * @param {number} id - The work item id + * @param {string[]} fields - Comma-separated list of requested fields + * @param {Date} asOf - AsOf UTC date time string + * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }. + * @param {string} project - Project ID or project name + */ + getWorkItem(id, fields, asOf, expand, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id + }; + let queryValues = { + fields: fields && fields.join(","), + asOf: asOf, + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "72c7ddf8-2cdc-4f60-90cd-ab71c14a399b", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of work items (Maximum 200) + * + * @param {number[]} ids - The comma-separated list of requested work item ids. (Maximum 200 ids allowed). + * @param {string[]} fields - Comma-separated list of requested fields + * @param {Date} asOf - AsOf UTC date time string + * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }. + * @param {WorkItemTrackingInterfaces.WorkItemErrorPolicy} errorPolicy - The flag to control error policy in a bulk get work items request. Possible options are {Fail, Omit}. + * @param {string} project - Project ID or project name + */ + getWorkItems(ids, fields, asOf, expand, errorPolicy, project) { + return __awaiter(this, void 0, void 0, function* () { + if (ids == null) { + throw new TypeError('ids can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + let queryValues = { + ids: ids && ids.join(","), + fields: fields && fields.join(","), + asOf: asOf, + '$expand': expand, + errorPolicy: errorPolicy, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "72c7ddf8-2cdc-4f60-90cd-ab71c14a399b", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a single work item. + * + * @param {VSSInterfaces.JsonPatchDocument} document - The JSON Patch document representing the update + * @param {number} id - The id of the work item to update + * @param {string} project - Project ID or project name + * @param {boolean} validateOnly - Indicate if you only want to validate the changes without saving the work item + * @param {boolean} bypassRules - Do not enforce the work item type rules on this update + * @param {boolean} suppressNotifications - Do not fire any notifications for this change + * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }. + */ + updateWorkItem(customHeaders, document, id, project, validateOnly, bypassRules, suppressNotifications, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + id: id + }; + let queryValues = { + validateOnly: validateOnly, + bypassRules: bypassRules, + suppressNotifications: suppressNotifications, + '$expand': expand, + }; + customHeaders = customHeaders || {}; + customHeaders["Content-Type"] = "application/json-patch+json"; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "72c7ddf8-2cdc-4f60-90cd-ab71c14a399b", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + options.additionalHeaders = customHeaders; + let res; + res = yield this.rest.update(url, document, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets work items for a list of work item ids (Maximum 200) + * + * @param {WorkItemTrackingInterfaces.WorkItemBatchGetRequest} workItemGetRequest + * @param {string} project - Project ID or project name + */ + getWorkItemsBatch(workItemGetRequest, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "908509b6-4248-4475-a1cd-829139ba419f", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, workItemGetRequest, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * INTERNAL ONLY: It will be used for My account work experience. Get the work item type state color for multiple projects + * + * @param {string[]} projectNames + */ + getWorkItemStateColors(projectNames) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "0b83df8a-3496-4ddb-ba44-63634f4cda61", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, projectNames, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns the next state on the given work item IDs. + * + * @param {number[]} ids - list of work item ids + * @param {string} action - possible actions. Currently only supports checkin + */ + getWorkItemNextStatesOnCheckinAction(ids, action) { + return __awaiter(this, void 0, void 0, function* () { + if (ids == null) { + throw new TypeError('ids can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + ids: ids && ids.join(","), + action: action, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "afae844b-e2f6-44c2-8053-17b3bb936a40", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get all work item type categories. + * + * @param {string} project - Project ID or project name + */ + getWorkItemTypeCategories(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "9b9f5734-36c8-415e-ba67-f83b45c31408", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get specific work item type category by name. + * + * @param {string} project - Project ID or project name + * @param {string} category - The category name + */ + getWorkItemTypeCategory(project, category) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + category: category + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "9b9f5734-36c8-415e-ba67-f83b45c31408", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * INTERNAL ONLY: It will be used for My account work experience. Get the wit type color for multiple projects + * + * @param {string[]} projectNames + */ + getWorkItemTypeColors(projectNames) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "958fde80-115e-43fb-bd65-749c48057faf", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, projectNames, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * INTERNAL ONLY: It is used for color and icon providers. Get the wit type color for multiple projects + * + * @param {string[]} projectNames + */ + getWorkItemTypeColorAndIcons(projectNames) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "f0f8dc62-3975-48ce-8051-f636b68b52e3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, projectNames, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a work item type definition. + * + * @param {string} project - Project ID or project name + * @param {string} type - Work item type name + */ + getWorkItemType(project, type) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + type: type + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "7c8d7a76-4a09-43e8-b5df-bd792f4ac6aa", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns the list of work item types + * + * @param {string} project - Project ID or project name + */ + getWorkItemTypes(project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "wit", "7c8d7a76-4a09-43e8-b5df-bd792f4ac6aa", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a list of fields for a work item type with detailed references. + * + * @param {string} project - Project ID or project name + * @param {string} type - Work item type. + * @param {WorkItemTrackingInterfaces.WorkItemTypeFieldsExpandLevel} expand - Expand level for the API response. Properties: to include allowedvalues, default value, isRequired etc. as a part of response; None: to skip these properties. + */ + getWorkItemTypeFieldsWithReferences(project, type, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + type: type + }; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "bd293ce5-3d25-4192-8e67-e8092e879efb", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a field for a work item type with detailed references. + * + * @param {string} project - Project ID or project name + * @param {string} type - Work item type. + * @param {string} field + * @param {WorkItemTrackingInterfaces.WorkItemTypeFieldsExpandLevel} expand - Expand level for the API response. Properties: to include allowedvalues, default value, isRequired etc. as a part of response; None: to skip these properties. + */ + getWorkItemTypeFieldWithReferences(project, type, field, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + type: type, + field: field + }; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.3", "wit", "bd293ce5-3d25-4192-8e67-e8092e879efb", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns the state names and colors for a work item type. + * + * @param {string} project - Project ID or project name + * @param {string} type - The state name + */ + getWorkItemTypeStates(project, type) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + type: type + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "7c9d7a76-4a09-43e8-b5df-bd792f4ac6aa", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Export work item type + * + * @param {string} project - Project ID or project name + * @param {string} type + * @param {boolean} exportGlobalLists + */ + exportWorkItemTypeDefinition(project, type, exportGlobalLists) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project, + type: type + }; + let queryValues = { + exportGlobalLists: exportGlobalLists, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "8637ac8b-5eb6-4f90-b3f7-4f2ff576a459", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Add/updates a work item type + * + * @param {WorkItemTrackingInterfaces.WorkItemTypeTemplateUpdateModel} updateModel + * @param {string} project - Project ID or project name + */ + updateWorkItemTypeDefinition(updateModel, project) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + project: project + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "wit", "8637ac8b-5eb6-4f90-b3f7-4f2ff576a459", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, updateModel, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +WorkItemTrackingApi.RESOURCE_AREA_ID = "5264459e-e5e0-4bd8-b118-0985e68a4ec5"; +exports.WorkItemTrackingApi = WorkItemTrackingApi; + + +/***/ }), + +/***/ 1178: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const WorkItemTrackingProcessInterfaces = __nccwpck_require__(4524); +class WorkItemTrackingProcessApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-WorkItemTracking-api', options); + } + /** + * Creates a single behavior in the given process. + * + * @param {WorkItemTrackingProcessInterfaces.ProcessBehaviorCreateRequest} behavior + * @param {string} processId - The ID of the process + */ + createProcessBehavior(behavior, processId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "d1800200-f184-4e75-a5f2-ad0b04b4373e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, behavior, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a behavior in the process. + * + * @param {string} processId - The ID of the process + * @param {string} behaviorRefName - The reference name of the behavior + */ + deleteProcessBehavior(processId, behaviorRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + behaviorRefName: behaviorRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "d1800200-f184-4e75-a5f2-ad0b04b4373e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a behavior of the process. + * + * @param {string} processId - The ID of the process + * @param {string} behaviorRefName - The reference name of the behavior + * @param {WorkItemTrackingProcessInterfaces.GetBehaviorsExpand} expand + */ + getProcessBehavior(processId, behaviorRefName, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + behaviorRefName: behaviorRefName + }; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "d1800200-f184-4e75-a5f2-ad0b04b4373e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of all behaviors in the process. + * + * @param {string} processId - The ID of the process + * @param {WorkItemTrackingProcessInterfaces.GetBehaviorsExpand} expand + */ + getProcessBehaviors(processId, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId + }; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "d1800200-f184-4e75-a5f2-ad0b04b4373e", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Replaces a behavior in the process. + * + * @param {WorkItemTrackingProcessInterfaces.ProcessBehaviorUpdateRequest} behaviorData + * @param {string} processId - The ID of the process + * @param {string} behaviorRefName - The reference name of the behavior + */ + updateProcessBehavior(behaviorData, processId, behaviorRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + behaviorRefName: behaviorRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "d1800200-f184-4e75-a5f2-ad0b04b4373e", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, behaviorData, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a control in a group. + * + * @param {WorkItemTrackingProcessInterfaces.Control} control - The control. + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + * @param {string} groupId - The ID of the group to add the control to. + */ + createControlInGroup(control, processId, witRefName, groupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + groupId: groupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, control, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Moves a control to a specified group. + * + * @param {WorkItemTrackingProcessInterfaces.Control} control - The control. + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + * @param {string} groupId - The ID of the group to move the control to. + * @param {string} controlId - The ID of the control. + * @param {string} removeFromGroupId - The group ID to remove the control from. + */ + moveControlToGroup(control, processId, witRefName, groupId, controlId, removeFromGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + groupId: groupId, + controlId: controlId + }; + let queryValues = { + removeFromGroupId: removeFromGroupId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, control, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a control from the work item form. + * + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + * @param {string} groupId - The ID of the group. + * @param {string} controlId - The ID of the control to remove. + */ + removeControlFromGroup(processId, witRefName, groupId, controlId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + groupId: groupId, + controlId: controlId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a control on the work item form. + * + * @param {WorkItemTrackingProcessInterfaces.Control} control - The updated control. + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + * @param {string} groupId - The ID of the group. + * @param {string} controlId - The ID of the control. + */ + updateControl(control, processId, witRefName, groupId, controlId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + groupId: groupId, + controlId: controlId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, control, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds a field to a work item type. + * + * @param {WorkItemTrackingProcessInterfaces.AddProcessWorkItemTypeFieldRequest} field + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + */ + addFieldToWorkItemType(field, processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "bc0ad8dc-e3f3-46b0-b06c-5bf861793196", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, field, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of all fields in a work item type. + * + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + */ + getAllWorkItemTypeFields(processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "bc0ad8dc-e3f3-46b0-b06c-5bf861793196", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a field in a work item type. + * + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + * @param {string} fieldRefName - The reference name of the field. + * @param {WorkItemTrackingProcessInterfaces.ProcessWorkItemTypeFieldsExpandLevel} expand + */ + getWorkItemTypeField(processId, witRefName, fieldRefName, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + fieldRefName: fieldRefName + }; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "bc0ad8dc-e3f3-46b0-b06c-5bf861793196", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a field from a work item type. Does not permanently delete the field. + * + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + * @param {string} fieldRefName - The reference name of the field. + */ + removeWorkItemTypeField(processId, witRefName, fieldRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + fieldRefName: fieldRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "bc0ad8dc-e3f3-46b0-b06c-5bf861793196", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a field in a work item type. + * + * @param {WorkItemTrackingProcessInterfaces.UpdateProcessWorkItemTypeFieldRequest} field + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + * @param {string} fieldRefName - The reference name of the field. + */ + updateWorkItemTypeField(field, processId, witRefName, fieldRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + fieldRefName: fieldRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "bc0ad8dc-e3f3-46b0-b06c-5bf861793196", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, field, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds a group to the work item form. + * + * @param {WorkItemTrackingProcessInterfaces.Group} group - The group. + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + * @param {string} pageId - The ID of the page to add the group to. + * @param {string} sectionId - The ID of the section to add the group to. + */ + addGroup(group, processId, witRefName, pageId, sectionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + pageId: pageId, + sectionId: sectionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "766e44e1-36a8-41d7-9050-c343ff02f7a5", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, group, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Moves a group to a different page and section. + * + * @param {WorkItemTrackingProcessInterfaces.Group} group - The updated group. + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + * @param {string} pageId - The ID of the page the group is in. + * @param {string} sectionId - The ID of the section the group is i.n + * @param {string} groupId - The ID of the group. + * @param {string} removeFromPageId - ID of the page to remove the group from. + * @param {string} removeFromSectionId - ID of the section to remove the group from. + */ + moveGroupToPage(group, processId, witRefName, pageId, sectionId, groupId, removeFromPageId, removeFromSectionId) { + return __awaiter(this, void 0, void 0, function* () { + if (removeFromPageId == null) { + throw new TypeError('removeFromPageId can not be null or undefined'); + } + if (removeFromSectionId == null) { + throw new TypeError('removeFromSectionId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + pageId: pageId, + sectionId: sectionId, + groupId: groupId + }; + let queryValues = { + removeFromPageId: removeFromPageId, + removeFromSectionId: removeFromSectionId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "766e44e1-36a8-41d7-9050-c343ff02f7a5", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, group, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Moves a group to a different section. + * + * @param {WorkItemTrackingProcessInterfaces.Group} group - The updated group. + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + * @param {string} pageId - The ID of the page the group is in. + * @param {string} sectionId - The ID of the section the group is in. + * @param {string} groupId - The ID of the group. + * @param {string} removeFromSectionId - ID of the section to remove the group from. + */ + moveGroupToSection(group, processId, witRefName, pageId, sectionId, groupId, removeFromSectionId) { + return __awaiter(this, void 0, void 0, function* () { + if (removeFromSectionId == null) { + throw new TypeError('removeFromSectionId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + pageId: pageId, + sectionId: sectionId, + groupId: groupId + }; + let queryValues = { + removeFromSectionId: removeFromSectionId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "766e44e1-36a8-41d7-9050-c343ff02f7a5", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, group, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a group from the work item form. + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} pageId - The ID of the page the group is in + * @param {string} sectionId - The ID of the section to the group is in + * @param {string} groupId - The ID of the group + */ + removeGroup(processId, witRefName, pageId, sectionId, groupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + pageId: pageId, + sectionId: sectionId, + groupId: groupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "766e44e1-36a8-41d7-9050-c343ff02f7a5", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a group in the work item form. + * + * @param {WorkItemTrackingProcessInterfaces.Group} group - The updated group. + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + * @param {string} pageId - The ID of the page the group is in. + * @param {string} sectionId - The ID of the section the group is in. + * @param {string} groupId - The ID of the group. + */ + updateGroup(group, processId, witRefName, pageId, sectionId, groupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + pageId: pageId, + sectionId: sectionId, + groupId: groupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "766e44e1-36a8-41d7-9050-c343ff02f7a5", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, group, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the form layout. + * + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + */ + getFormLayout(processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "fa8646eb-43cd-4b71-9564-40106fd63e40", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.FormLayout, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a picklist. + * + * @param {WorkItemTrackingProcessInterfaces.PickList} picklist - Picklist + */ + createList(picklist) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "01e15468-e27c-4e20-a974-bd957dcccebc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, picklist, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a picklist. + * + * @param {string} listId - The ID of the list + */ + deleteList(listId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + listId: listId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "01e15468-e27c-4e20-a974-bd957dcccebc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a picklist. + * + * @param {string} listId - The ID of the list + */ + getList(listId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + listId: listId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "01e15468-e27c-4e20-a974-bd957dcccebc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns meta data of the picklist. + * + */ + getListsMetadata() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "01e15468-e27c-4e20-a974-bd957dcccebc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a list. + * + * @param {WorkItemTrackingProcessInterfaces.PickList} picklist + * @param {string} listId - The ID of the list + */ + updateList(picklist, listId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + listId: listId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "01e15468-e27c-4e20-a974-bd957dcccebc", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, picklist, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds a page to the work item form. + * + * @param {WorkItemTrackingProcessInterfaces.Page} page - The page. + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + */ + addPage(page, processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "1cc7b29f-6697-4d9d-b0a1-2650d3e1d584", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, page, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.Page, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a page from the work item form + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} pageId - The ID of the page + */ + removePage(processId, witRefName, pageId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + pageId: pageId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "1cc7b29f-6697-4d9d-b0a1-2650d3e1d584", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a page on the work item form + * + * @param {WorkItemTrackingProcessInterfaces.Page} page - The page + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + */ + updatePage(page, processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "1cc7b29f-6697-4d9d-b0a1-2650d3e1d584", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, page, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.Page, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a process. + * + * @param {WorkItemTrackingProcessInterfaces.CreateProcessModel} createRequest - CreateProcessModel. + */ + createNewProcess(createRequest) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "02cc6a73-5cfb-427d-8c8e-b49fb086e8af", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, createRequest, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a process of a specific ID. + * + * @param {string} processTypeId + */ + deleteProcessById(processTypeId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processTypeId: processTypeId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "02cc6a73-5cfb-427d-8c8e-b49fb086e8af", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Edit a process of a specific ID. + * + * @param {WorkItemTrackingProcessInterfaces.UpdateProcessModel} updateRequest + * @param {string} processTypeId + */ + editProcess(updateRequest, processTypeId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processTypeId: processTypeId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "02cc6a73-5cfb-427d-8c8e-b49fb086e8af", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, updateRequest, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get list of all processes including system and inherited. + * + * @param {WorkItemTrackingProcessInterfaces.GetProcessExpandLevel} expand + */ + getListOfProcesses(expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "02cc6a73-5cfb-427d-8c8e-b49fb086e8af", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Get a single process of a specified ID. + * + * @param {string} processTypeId + * @param {WorkItemTrackingProcessInterfaces.GetProcessExpandLevel} expand + */ + getProcessByItsId(processTypeId, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processTypeId: processTypeId + }; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "02cc6a73-5cfb-427d-8c8e-b49fb086e8af", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds a rule to work item type in the process. + * + * @param {WorkItemTrackingProcessInterfaces.CreateProcessRuleRequest} processRuleCreate + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + */ + addProcessWorkItemTypeRule(processRuleCreate, processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "76fe3432-d825-479d-a5f6-983bbb78b4f3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, processRuleCreate, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a rule from the work item type in the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} ruleId - The ID of the rule + */ + deleteProcessWorkItemTypeRule(processId, witRefName, ruleId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + ruleId: ruleId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "76fe3432-d825-479d-a5f6-983bbb78b4f3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a single rule in the work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} ruleId - The ID of the rule + */ + getProcessWorkItemTypeRule(processId, witRefName, ruleId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + ruleId: ruleId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "76fe3432-d825-479d-a5f6-983bbb78b4f3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of all rules in the work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + */ + getProcessWorkItemTypeRules(processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "76fe3432-d825-479d-a5f6-983bbb78b4f3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a rule in the work item type of the process. + * + * @param {WorkItemTrackingProcessInterfaces.UpdateProcessRuleRequest} processRule + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} ruleId - The ID of the rule + */ + updateProcessWorkItemTypeRule(processRule, processId, witRefName, ruleId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + ruleId: ruleId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "76fe3432-d825-479d-a5f6-983bbb78b4f3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, processRule, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a state definition in the work item type of the process. + * + * @param {WorkItemTrackingProcessInterfaces.WorkItemStateInputModel} stateModel + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + */ + createStateDefinition(stateModel, processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "31015d57-2dff-4a46-adb3-2fb4ee3dcec9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, stateModel, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a state definition in the work item type of the process. + * + * @param {string} processId - ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} stateId - ID of the state + */ + deleteStateDefinition(processId, witRefName, stateId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + stateId: stateId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "31015d57-2dff-4a46-adb3-2fb4ee3dcec9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a single state definition in a work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} stateId - The ID of the state + */ + getStateDefinition(processId, witRefName, stateId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + stateId: stateId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "31015d57-2dff-4a46-adb3-2fb4ee3dcec9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of all state definitions in a work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + */ + getStateDefinitions(processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "31015d57-2dff-4a46-adb3-2fb4ee3dcec9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Hides a state definition in the work item type of the process.Only states with customizationType:System can be hidden. + * + * @param {WorkItemTrackingProcessInterfaces.HideStateModel} hideStateModel + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} stateId - The ID of the state + */ + hideStateDefinition(hideStateModel, processId, witRefName, stateId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + stateId: stateId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "31015d57-2dff-4a46-adb3-2fb4ee3dcec9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, hideStateModel, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a given state definition in the work item type of the process. + * + * @param {WorkItemTrackingProcessInterfaces.WorkItemStateInputModel} stateModel + * @param {string} processId - ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} stateId - ID of the state + */ + updateStateDefinition(stateModel, processId, witRefName, stateId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + stateId: stateId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "31015d57-2dff-4a46-adb3-2fb4ee3dcec9", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, stateModel, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Deletes a system control modification on the work item form. + * + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + * @param {string} controlId - The ID of the control. + */ + deleteSystemControl(processId, witRefName, controlId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + controlId: controlId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "ff9a3d2c-32b7-4c6c-991c-d5a251fb9098", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets edited system controls for a work item type in a process. To get all system controls (base + edited) use layout API(s) + * + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + */ + getSystemControls(processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "ff9a3d2c-32b7-4c6c-991c-d5a251fb9098", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates/adds a system control on the work item form. + * + * @param {WorkItemTrackingProcessInterfaces.Control} control + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + * @param {string} controlId - The ID of the control. + */ + updateSystemControl(control, processId, witRefName, controlId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + controlId: controlId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "ff9a3d2c-32b7-4c6c-991c-d5a251fb9098", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, control, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a work item type in the process. + * + * @param {WorkItemTrackingProcessInterfaces.CreateProcessWorkItemTypeRequest} workItemType + * @param {string} processId - The ID of the process on which to create work item type. + */ + createProcessWorkItemType(workItemType, processId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "e2e9d1a6-432d-4062-8870-bfcb8c324ad7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, workItemType, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a work itewm type in the process. + * + * @param {string} processId - The ID of the process. + * @param {string} witRefName - The reference name of the work item type. + */ + deleteProcessWorkItemType(processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "e2e9d1a6-432d-4062-8870-bfcb8c324ad7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a single work item type in a process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {WorkItemTrackingProcessInterfaces.GetWorkItemTypeExpand} expand - Flag to determine what properties of work item type to return + */ + getProcessWorkItemType(processId, witRefName, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "e2e9d1a6-432d-4062-8870-bfcb8c324ad7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of all work item types in a process. + * + * @param {string} processId - The ID of the process + * @param {WorkItemTrackingProcessInterfaces.GetWorkItemTypeExpand} expand - Flag to determine what properties of work item type to return + */ + getProcessWorkItemTypes(processId, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId + }; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "e2e9d1a6-432d-4062-8870-bfcb8c324ad7", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a work item type of the process. + * + * @param {WorkItemTrackingProcessInterfaces.UpdateProcessWorkItemTypeRequest} workItemTypeUpdate + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + */ + updateProcessWorkItemType(workItemTypeUpdate, processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.2", "processes", "e2e9d1a6-432d-4062-8870-bfcb8c324ad7", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, workItemTypeUpdate, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds a behavior to the work item type of the process. + * + * @param {WorkItemTrackingProcessInterfaces.WorkItemTypeBehavior} behavior + * @param {string} processId - The ID of the process + * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior + */ + addBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefNameForBehaviors: witRefNameForBehaviors + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "6d765a2e-4e1b-4b11-be93-f953be676024", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, behavior, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a behavior for the work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior + * @param {string} behaviorRefName - The reference name of the behavior + */ + getBehaviorForWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefNameForBehaviors: witRefNameForBehaviors, + behaviorRefName: behaviorRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "6d765a2e-4e1b-4b11-be93-f953be676024", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of all behaviors for the work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior + */ + getBehaviorsForWorkItemType(processId, witRefNameForBehaviors) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefNameForBehaviors: witRefNameForBehaviors + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "6d765a2e-4e1b-4b11-be93-f953be676024", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a behavior for the work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior + * @param {string} behaviorRefName - The reference name of the behavior + */ + removeBehaviorFromWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefNameForBehaviors: witRefNameForBehaviors, + behaviorRefName: behaviorRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "6d765a2e-4e1b-4b11-be93-f953be676024", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a behavior for the work item type of the process. + * + * @param {WorkItemTrackingProcessInterfaces.WorkItemTypeBehavior} behavior + * @param {string} processId - The ID of the process + * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior + */ + updateBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefNameForBehaviors: witRefNameForBehaviors + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processes", "6d765a2e-4e1b-4b11-be93-f953be676024", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, behavior, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +WorkItemTrackingProcessApi.RESOURCE_AREA_ID = "5264459e-e5e0-4bd8-b118-0985e68a4ec5"; +exports.WorkItemTrackingProcessApi = WorkItemTrackingProcessApi; + + +/***/ }), + +/***/ 3333: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const basem = __nccwpck_require__(273); +const WorkItemTrackingProcessDefinitionsInterfaces = __nccwpck_require__(1655); +class WorkItemTrackingProcessDefinitionsApi extends basem.ClientApiBase { + constructor(baseUrl, handlers, options) { + super(baseUrl, handlers, 'node-WorkItemTracking-api', options); + } + /** + * Creates a single behavior in the given process. + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.BehaviorCreateModel} behavior + * @param {string} processId - The ID of the process + */ + createBehavior(behavior, processId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "47a651f4-fb70-43bf-b96b-7c0ba947142b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, behavior, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a behavior in the process. + * + * @param {string} processId - The ID of the process + * @param {string} behaviorId - The ID of the behavior + */ + deleteBehavior(processId, behaviorId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + behaviorId: behaviorId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "47a651f4-fb70-43bf-b96b-7c0ba947142b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a single behavior in the process. + * + * @param {string} processId - The ID of the process + * @param {string} behaviorId - The ID of the behavior + */ + getBehavior(processId, behaviorId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + behaviorId: behaviorId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "47a651f4-fb70-43bf-b96b-7c0ba947142b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of all behaviors in the process. + * + * @param {string} processId - The ID of the process + */ + getBehaviors(processId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "47a651f4-fb70-43bf-b96b-7c0ba947142b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Replaces a behavior in the process. + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.BehaviorReplaceModel} behaviorData + * @param {string} processId - The ID of the process + * @param {string} behaviorId - The ID of the behavior + */ + replaceBehavior(behaviorData, processId, behaviorId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + behaviorId: behaviorId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "47a651f4-fb70-43bf-b96b-7c0ba947142b", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, behaviorData, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a control in a group + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.Control} control - The control + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} groupId - The ID of the group to add the control to + */ + addControlToGroup(control, processId, witRefName, groupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + groupId: groupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "e2e3166a-627a-4e9b-85b2-d6a097bbd731", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, control, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a control on the work item form + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.Control} control - The updated control + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} groupId - The ID of the group + * @param {string} controlId - The ID of the control + */ + editControl(control, processId, witRefName, groupId, controlId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + groupId: groupId, + controlId: controlId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "e2e3166a-627a-4e9b-85b2-d6a097bbd731", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, control, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a control from the work item form + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} groupId - The ID of the group + * @param {string} controlId - The ID of the control to remove + */ + removeControlFromGroup(processId, witRefName, groupId, controlId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + groupId: groupId, + controlId: controlId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "e2e3166a-627a-4e9b-85b2-d6a097bbd731", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Moves a control to a new group + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.Control} control - The control + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} groupId - The ID of the group to move the control to + * @param {string} controlId - The id of the control + * @param {string} removeFromGroupId - The group to remove the control from + */ + setControlInGroup(control, processId, witRefName, groupId, controlId, removeFromGroupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + groupId: groupId, + controlId: controlId + }; + let queryValues = { + removeFromGroupId: removeFromGroupId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "e2e3166a-627a-4e9b-85b2-d6a097bbd731", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, control, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a single field in the process. + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.FieldModel} field + * @param {string} processId - The ID of the process + */ + createField(field, processId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "f36c66c7-911d-4163-8938-d3c5d0d7f5aa", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, field, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.FieldModel, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a given field in the process. + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.FieldUpdate} field + * @param {string} processId - The ID of the process + */ + updateField(field, processId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "f36c66c7-911d-4163-8938-d3c5d0d7f5aa", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, field, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.FieldModel, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds a group to the work item form + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The group + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} pageId - The ID of the page to add the group to + * @param {string} sectionId - The ID of the section to add the group to + */ + addGroup(group, processId, witRefName, pageId, sectionId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + pageId: pageId, + sectionId: sectionId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "2617828b-e850-4375-a92a-04855704d4c3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, group, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a group in the work item form + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The updated group + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} pageId - The ID of the page the group is in + * @param {string} sectionId - The ID of the section the group is in + * @param {string} groupId - The ID of the group + */ + editGroup(group, processId, witRefName, pageId, sectionId, groupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + pageId: pageId, + sectionId: sectionId, + groupId: groupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "2617828b-e850-4375-a92a-04855704d4c3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, group, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a group from the work item form + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} pageId - The ID of the page the group is in + * @param {string} sectionId - The ID of the section to the group is in + * @param {string} groupId - The ID of the group + */ + removeGroup(processId, witRefName, pageId, sectionId, groupId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + pageId: pageId, + sectionId: sectionId, + groupId: groupId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "2617828b-e850-4375-a92a-04855704d4c3", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Moves a group to a different page and section + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The updated group + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} pageId - The ID of the page the group is in + * @param {string} sectionId - The ID of the section the group is in + * @param {string} groupId - The ID of the group + * @param {string} removeFromPageId - ID of the page to remove the group from + * @param {string} removeFromSectionId - ID of the section to remove the group from + */ + setGroupInPage(group, processId, witRefName, pageId, sectionId, groupId, removeFromPageId, removeFromSectionId) { + return __awaiter(this, void 0, void 0, function* () { + if (removeFromPageId == null) { + throw new TypeError('removeFromPageId can not be null or undefined'); + } + if (removeFromSectionId == null) { + throw new TypeError('removeFromSectionId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + pageId: pageId, + sectionId: sectionId, + groupId: groupId + }; + let queryValues = { + removeFromPageId: removeFromPageId, + removeFromSectionId: removeFromSectionId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "2617828b-e850-4375-a92a-04855704d4c3", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, group, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Moves a group to a different section + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The updated group + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} pageId - The ID of the page the group is in + * @param {string} sectionId - The ID of the section the group is in + * @param {string} groupId - The ID of the group + * @param {string} removeFromSectionId - ID of the section to remove the group from + */ + setGroupInSection(group, processId, witRefName, pageId, sectionId, groupId, removeFromSectionId) { + return __awaiter(this, void 0, void 0, function* () { + if (removeFromSectionId == null) { + throw new TypeError('removeFromSectionId can not be null or undefined'); + } + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + pageId: pageId, + sectionId: sectionId, + groupId: groupId + }; + let queryValues = { + removeFromSectionId: removeFromSectionId, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "2617828b-e850-4375-a92a-04855704d4c3", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, group, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Gets the form layout + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + */ + getFormLayout(processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "3eacc80a-ddca-4404-857a-6331aac99063", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.FormLayout, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns meta data of the picklist. + * + */ + getListsMetadata() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "b45cc931-98e3-44a1-b1cd-2e8e9c6dc1c6", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a picklist. + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.PickListModel} picklist + */ + createList(picklist) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = {}; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "0b6179e2-23ce-46b2-b094-2ffa5ee70286", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, picklist, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a picklist. + * + * @param {string} listId - The ID of the list + */ + deleteList(listId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + listId: listId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "0b6179e2-23ce-46b2-b094-2ffa5ee70286", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a picklist. + * + * @param {string} listId - The ID of the list + */ + getList(listId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + listId: listId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "0b6179e2-23ce-46b2-b094-2ffa5ee70286", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a list. + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.PickListModel} picklist + * @param {string} listId - The ID of the list + */ + updateList(picklist, listId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + listId: listId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "0b6179e2-23ce-46b2-b094-2ffa5ee70286", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, picklist, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds a page to the work item form + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.Page} page - The page + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + */ + addPage(page, processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "1b4ac126-59b2-4f37-b4df-0a48ba807edb", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, page, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.Page, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a page on the work item form + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.Page} page - The page + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + */ + editPage(page, processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "1b4ac126-59b2-4f37-b4df-0a48ba807edb", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, page, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.Page, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a page from the work item form + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} pageId - The ID of the page + */ + removePage(processId, witRefName, pageId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + pageId: pageId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "1b4ac126-59b2-4f37-b4df-0a48ba807edb", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a state definition in the work item type of the process. + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemStateInputModel} stateModel + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + */ + createStateDefinition(stateModel, processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "4303625d-08f4-4461-b14b-32c65bba5599", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, stateModel, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a state definition in the work item type of the process. + * + * @param {string} processId - ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} stateId - ID of the state + */ + deleteStateDefinition(processId, witRefName, stateId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + stateId: stateId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "4303625d-08f4-4461-b14b-32c65bba5599", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a state definition in the work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} stateId - The ID of the state + */ + getStateDefinition(processId, witRefName, stateId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + stateId: stateId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "4303625d-08f4-4461-b14b-32c65bba5599", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of all state definitions in the work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + */ + getStateDefinitions(processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "4303625d-08f4-4461-b14b-32c65bba5599", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Hides a state definition in the work item type of the process. + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.HideStateModel} hideStateModel + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} stateId - The ID of the state + */ + hideStateDefinition(hideStateModel, processId, witRefName, stateId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + stateId: stateId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "4303625d-08f4-4461-b14b-32c65bba5599", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.replace(url, hideStateModel, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a given state definition in the work item type of the process. + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemStateInputModel} stateModel + * @param {string} processId - ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {string} stateId - ID of the state + */ + updateStateDefinition(stateModel, processId, witRefName, stateId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName, + stateId: stateId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "4303625d-08f4-4461-b14b-32c65bba5599", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, stateModel, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds a behavior to the work item type of the process. + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeBehavior} behavior + * @param {string} processId - The ID of the process + * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior + */ + addBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefNameForBehaviors: witRefNameForBehaviors + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "921dfb88-ef57-4c69-94e5-dd7da2d7031d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, behavior, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a behavior for the work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior + * @param {string} behaviorRefName - The reference name of the behavior + */ + getBehaviorForWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefNameForBehaviors: witRefNameForBehaviors, + behaviorRefName: behaviorRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "921dfb88-ef57-4c69-94e5-dd7da2d7031d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of all behaviors for the work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior + */ + getBehaviorsForWorkItemType(processId, witRefNameForBehaviors) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefNameForBehaviors: witRefNameForBehaviors + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "921dfb88-ef57-4c69-94e5-dd7da2d7031d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, null, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a behavior for the work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior + * @param {string} behaviorRefName - The reference name of the behavior + */ + removeBehaviorFromWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefNameForBehaviors: witRefNameForBehaviors, + behaviorRefName: behaviorRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "921dfb88-ef57-4c69-94e5-dd7da2d7031d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates default work item type for the behavior of the process. + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeBehavior} behavior + * @param {string} processId - The ID of the process + * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior + */ + updateBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefNameForBehaviors: witRefNameForBehaviors + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "921dfb88-ef57-4c69-94e5-dd7da2d7031d", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, behavior, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Creates a work item type in the process. + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeModel} workItemType + * @param {string} processId - The ID of the process + */ + createWorkItemType(workItemType, processId) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "1ce0acad-4638-49c3-969c-04aa65ba6bea", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, workItemType, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a work itewm type in the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + */ + deleteWorkItemType(processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "1ce0acad-4638-49c3-969c-04aa65ba6bea", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + * @param {WorkItemTrackingProcessDefinitionsInterfaces.GetWorkItemTypeExpand} expand + */ + getWorkItemType(processId, witRefName, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "1ce0acad-4638-49c3-969c-04aa65ba6bea", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of all work item types in the process. + * + * @param {string} processId - The ID of the process + * @param {WorkItemTrackingProcessDefinitionsInterfaces.GetWorkItemTypeExpand} expand + */ + getWorkItemTypes(processId, expand) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId + }; + let queryValues = { + '$expand': expand, + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "1ce0acad-4638-49c3-969c-04aa65ba6bea", routeValues, queryValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a work item type of the process. + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeUpdateModel} workItemTypeUpdate + * @param {string} processId - The ID of the process + * @param {string} witRefName - The reference name of the work item type + */ + updateWorkItemType(workItemTypeUpdate, processId, witRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefName: witRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "1ce0acad-4638-49c3-969c-04aa65ba6bea", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, workItemTypeUpdate, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Adds a field to the work item type in the process. + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeFieldModel2} field + * @param {string} processId - The ID of the process + * @param {string} witRefNameForFields - Work item type reference name for the field + */ + addFieldToWorkItemType(field, processId, witRefNameForFields) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefNameForFields: witRefNameForFields + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "976713b4-a62e-499e-94dc-eeb869ea9126", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.create(url, field, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a single field in the work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefNameForFields - Work item type reference name for fields + * @param {string} fieldRefName - The reference name of the field + */ + getWorkItemTypeField(processId, witRefNameForFields, fieldRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefNameForFields: witRefNameForFields, + fieldRefName: fieldRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "976713b4-a62e-499e-94dc-eeb869ea9126", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Returns a list of all fields in the work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefNameForFields - Work item type reference name for fields + */ + getWorkItemTypeFields(processId, witRefNameForFields) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefNameForFields: witRefNameForFields + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "976713b4-a62e-499e-94dc-eeb869ea9126", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.get(url, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, true); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Removes a field in the work item type of the process. + * + * @param {string} processId - The ID of the process + * @param {string} witRefNameForFields - Work item type reference name for fields + * @param {string} fieldRefName - The reference name of the field + */ + removeFieldFromWorkItemType(processId, witRefNameForFields, fieldRefName) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefNameForFields: witRefNameForFields, + fieldRefName: fieldRefName + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "976713b4-a62e-499e-94dc-eeb869ea9126", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.del(url, options); + let ret = this.formatResponse(res.result, null, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } + /** + * Updates a single field in the scope of the given process and work item type. + * + * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeFieldModel2} field - The model with which to update the field + * @param {string} processId - The ID of the process + * @param {string} witRefNameForFields - Work item type reference name for fields + */ + updateWorkItemTypeField(field, processId, witRefNameForFields) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let routeValues = { + processId: processId, + witRefNameForFields: witRefNameForFields + }; + try { + let verData = yield this.vsoClient.getVersioningData("6.1-preview.1", "processDefinitions", "976713b4-a62e-499e-94dc-eeb869ea9126", routeValues); + let url = verData.requestUrl; + let options = this.createRequestOptions('application/json', verData.apiVersion); + let res; + res = yield this.rest.update(url, field, options); + let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, false); + resolve(ret); + } + catch (err) { + reject(err); + } + })); + }); + } +} +WorkItemTrackingProcessDefinitionsApi.RESOURCE_AREA_ID = "5264459e-e5e0-4bd8-b118-0985e68a4ec5"; +exports.WorkItemTrackingProcessDefinitionsApi = WorkItemTrackingProcessDefinitionsApi; + + +/***/ }), + +/***/ 6456: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +Object.defineProperty(exports, "__esModule", ({ value: true })); +const resthandlers = __nccwpck_require__(4442); +class BasicCredentialHandler extends resthandlers.BasicCredentialHandler { + constructor(username, password, allowCrossOriginAuthentication = true) { + super(username, password, allowCrossOriginAuthentication); + } +} +exports.BasicCredentialHandler = BasicCredentialHandler; + + +/***/ }), + +/***/ 1141: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +Object.defineProperty(exports, "__esModule", ({ value: true })); +const resthandlers = __nccwpck_require__(4442); +class BearerCredentialHandler extends resthandlers.BearerCredentialHandler { + constructor(token, allowCrossOriginAuthentication = true) { + super(token, allowCrossOriginAuthentication); + } +} +exports.BearerCredentialHandler = BearerCredentialHandler; + + +/***/ }), + +/***/ 3450: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +Object.defineProperty(exports, "__esModule", ({ value: true })); +const resthandlers = __nccwpck_require__(4442); +class NtlmCredentialHandler extends resthandlers.NtlmCredentialHandler { + constructor(username, password, workstation, domain) { + super(username, password, workstation, domain); + } +} +exports.NtlmCredentialHandler = NtlmCredentialHandler; + + +/***/ }), + +/***/ 4551: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +Object.defineProperty(exports, "__esModule", ({ value: true })); +const resthandlers = __nccwpck_require__(4442); +class PersonalAccessTokenCredentialHandler extends resthandlers.PersonalAccessTokenCredentialHandler { + constructor(token, allowCrossOriginAuthentication = true) { + super(token, allowCrossOriginAuthentication); + } +} +exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; + + +/***/ }), + +/***/ 2167: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const TFS_TestManagement_Contracts = __nccwpck_require__(3047); +const TfsCoreInterfaces = __nccwpck_require__(3931); +var AgentStatus; +(function (AgentStatus) { + /** + * Indicates that the build agent cannot be contacted. + */ + AgentStatus[AgentStatus["Unavailable"] = 0] = "Unavailable"; + /** + * Indicates that the build agent is currently available. + */ + AgentStatus[AgentStatus["Available"] = 1] = "Available"; + /** + * Indicates that the build agent has taken itself offline. + */ + AgentStatus[AgentStatus["Offline"] = 2] = "Offline"; +})(AgentStatus = exports.AgentStatus || (exports.AgentStatus = {})); +var AuditAction; +(function (AuditAction) { + AuditAction[AuditAction["Add"] = 1] = "Add"; + AuditAction[AuditAction["Update"] = 2] = "Update"; + AuditAction[AuditAction["Delete"] = 3] = "Delete"; +})(AuditAction = exports.AuditAction || (exports.AuditAction = {})); +/** + * Represents the desired scope of authorization for a build. + */ +var BuildAuthorizationScope; +(function (BuildAuthorizationScope) { + /** + * The identity used should have build service account permissions scoped to the project collection. This is useful when resources for a single build are spread across multiple projects. + */ + BuildAuthorizationScope[BuildAuthorizationScope["ProjectCollection"] = 1] = "ProjectCollection"; + /** + * The identity used should have build service account permissions scoped to the project in which the build definition resides. This is useful for isolation of build jobs to a particular team project to avoid any unintentional escalation of privilege attacks during a build. + */ + BuildAuthorizationScope[BuildAuthorizationScope["Project"] = 2] = "Project"; +})(BuildAuthorizationScope = exports.BuildAuthorizationScope || (exports.BuildAuthorizationScope = {})); +var BuildOptionInputType; +(function (BuildOptionInputType) { + BuildOptionInputType[BuildOptionInputType["String"] = 0] = "String"; + BuildOptionInputType[BuildOptionInputType["Boolean"] = 1] = "Boolean"; + BuildOptionInputType[BuildOptionInputType["StringList"] = 2] = "StringList"; + BuildOptionInputType[BuildOptionInputType["Radio"] = 3] = "Radio"; + BuildOptionInputType[BuildOptionInputType["PickList"] = 4] = "PickList"; + BuildOptionInputType[BuildOptionInputType["MultiLine"] = 5] = "MultiLine"; + BuildOptionInputType[BuildOptionInputType["BranchFilter"] = 6] = "BranchFilter"; +})(BuildOptionInputType = exports.BuildOptionInputType || (exports.BuildOptionInputType = {})); +var BuildPhaseStatus; +(function (BuildPhaseStatus) { + /** + * The state is not known. + */ + BuildPhaseStatus[BuildPhaseStatus["Unknown"] = 0] = "Unknown"; + /** + * The build phase completed unsuccessfully. + */ + BuildPhaseStatus[BuildPhaseStatus["Failed"] = 1] = "Failed"; + /** + * The build phase completed successfully. + */ + BuildPhaseStatus[BuildPhaseStatus["Succeeded"] = 2] = "Succeeded"; +})(BuildPhaseStatus = exports.BuildPhaseStatus || (exports.BuildPhaseStatus = {})); +/** + * Specifies the desired ordering of builds. + */ +var BuildQueryOrder; +(function (BuildQueryOrder) { + /** + * Order by finish time ascending. + */ + BuildQueryOrder[BuildQueryOrder["FinishTimeAscending"] = 2] = "FinishTimeAscending"; + /** + * Order by finish time descending. + */ + BuildQueryOrder[BuildQueryOrder["FinishTimeDescending"] = 3] = "FinishTimeDescending"; + /** + * Order by queue time descending. + */ + BuildQueryOrder[BuildQueryOrder["QueueTimeDescending"] = 4] = "QueueTimeDescending"; + /** + * Order by queue time ascending. + */ + BuildQueryOrder[BuildQueryOrder["QueueTimeAscending"] = 5] = "QueueTimeAscending"; + /** + * Order by start time descending. + */ + BuildQueryOrder[BuildQueryOrder["StartTimeDescending"] = 6] = "StartTimeDescending"; + /** + * Order by start time ascending. + */ + BuildQueryOrder[BuildQueryOrder["StartTimeAscending"] = 7] = "StartTimeAscending"; +})(BuildQueryOrder = exports.BuildQueryOrder || (exports.BuildQueryOrder = {})); +var BuildReason; +(function (BuildReason) { + /** + * No reason. This value should not be used. + */ + BuildReason[BuildReason["None"] = 0] = "None"; + /** + * The build was started manually. + */ + BuildReason[BuildReason["Manual"] = 1] = "Manual"; + /** + * The build was started for the trigger TriggerType.ContinuousIntegration. + */ + BuildReason[BuildReason["IndividualCI"] = 2] = "IndividualCI"; + /** + * The build was started for the trigger TriggerType.BatchedContinuousIntegration. + */ + BuildReason[BuildReason["BatchedCI"] = 4] = "BatchedCI"; + /** + * The build was started for the trigger TriggerType.Schedule. + */ + BuildReason[BuildReason["Schedule"] = 8] = "Schedule"; + /** + * The build was started for the trigger TriggerType.ScheduleForced. + */ + BuildReason[BuildReason["ScheduleForced"] = 16] = "ScheduleForced"; + /** + * The build was created by a user. + */ + BuildReason[BuildReason["UserCreated"] = 32] = "UserCreated"; + /** + * The build was started manually for private validation. + */ + BuildReason[BuildReason["ValidateShelveset"] = 64] = "ValidateShelveset"; + /** + * The build was started for the trigger ContinuousIntegrationType.Gated. + */ + BuildReason[BuildReason["CheckInShelveset"] = 128] = "CheckInShelveset"; + /** + * The build was started by a pull request. Added in resource version 3. + */ + BuildReason[BuildReason["PullRequest"] = 256] = "PullRequest"; + /** + * The build was started when another build completed. + */ + BuildReason[BuildReason["BuildCompletion"] = 512] = "BuildCompletion"; + /** + * The build was started when resources in pipeline triggered it + */ + BuildReason[BuildReason["ResourceTrigger"] = 1024] = "ResourceTrigger"; + /** + * The build was triggered for retention policy purposes. + */ + BuildReason[BuildReason["Triggered"] = 1967] = "Triggered"; + /** + * All reasons. + */ + BuildReason[BuildReason["All"] = 2031] = "All"; +})(BuildReason = exports.BuildReason || (exports.BuildReason = {})); +/** + * This is not a Flags enum because we don't want to set multiple statuses on a build. However, when adding values, please stick to powers of 2 as if it were a Flags enum This will ensure that things that key off multiple result types (like labelling sources) continue to work + */ +var BuildResult; +(function (BuildResult) { + /** + * No result + */ + BuildResult[BuildResult["None"] = 0] = "None"; + /** + * The build completed successfully. + */ + BuildResult[BuildResult["Succeeded"] = 2] = "Succeeded"; + /** + * The build completed compilation successfully but had other errors. + */ + BuildResult[BuildResult["PartiallySucceeded"] = 4] = "PartiallySucceeded"; + /** + * The build completed unsuccessfully. + */ + BuildResult[BuildResult["Failed"] = 8] = "Failed"; + /** + * The build was canceled before starting. + */ + BuildResult[BuildResult["Canceled"] = 32] = "Canceled"; +})(BuildResult = exports.BuildResult || (exports.BuildResult = {})); +var BuildStatus; +(function (BuildStatus) { + /** + * No status. + */ + BuildStatus[BuildStatus["None"] = 0] = "None"; + /** + * The build is currently in progress. + */ + BuildStatus[BuildStatus["InProgress"] = 1] = "InProgress"; + /** + * The build has completed. + */ + BuildStatus[BuildStatus["Completed"] = 2] = "Completed"; + /** + * The build is cancelling + */ + BuildStatus[BuildStatus["Cancelling"] = 4] = "Cancelling"; + /** + * The build is inactive in the queue. + */ + BuildStatus[BuildStatus["Postponed"] = 8] = "Postponed"; + /** + * The build has not yet started. + */ + BuildStatus[BuildStatus["NotStarted"] = 32] = "NotStarted"; + /** + * All status. + */ + BuildStatus[BuildStatus["All"] = 47] = "All"; +})(BuildStatus = exports.BuildStatus || (exports.BuildStatus = {})); +var ControllerStatus; +(function (ControllerStatus) { + /** + * Indicates that the build controller cannot be contacted. + */ + ControllerStatus[ControllerStatus["Unavailable"] = 0] = "Unavailable"; + /** + * Indicates that the build controller is currently available. + */ + ControllerStatus[ControllerStatus["Available"] = 1] = "Available"; + /** + * Indicates that the build controller has taken itself offline. + */ + ControllerStatus[ControllerStatus["Offline"] = 2] = "Offline"; +})(ControllerStatus = exports.ControllerStatus || (exports.ControllerStatus = {})); +var DefinitionQuality; +(function (DefinitionQuality) { + DefinitionQuality[DefinitionQuality["Definition"] = 1] = "Definition"; + DefinitionQuality[DefinitionQuality["Draft"] = 2] = "Draft"; +})(DefinitionQuality = exports.DefinitionQuality || (exports.DefinitionQuality = {})); +/** + * Specifies the desired ordering of definitions. + */ +var DefinitionQueryOrder; +(function (DefinitionQueryOrder) { + /** + * No order + */ + DefinitionQueryOrder[DefinitionQueryOrder["None"] = 0] = "None"; + /** + * Order by created on/last modified time ascending. + */ + DefinitionQueryOrder[DefinitionQueryOrder["LastModifiedAscending"] = 1] = "LastModifiedAscending"; + /** + * Order by created on/last modified time descending. + */ + DefinitionQueryOrder[DefinitionQueryOrder["LastModifiedDescending"] = 2] = "LastModifiedDescending"; + /** + * Order by definition name ascending. + */ + DefinitionQueryOrder[DefinitionQueryOrder["DefinitionNameAscending"] = 3] = "DefinitionNameAscending"; + /** + * Order by definition name descending. + */ + DefinitionQueryOrder[DefinitionQueryOrder["DefinitionNameDescending"] = 4] = "DefinitionNameDescending"; +})(DefinitionQueryOrder = exports.DefinitionQueryOrder || (exports.DefinitionQueryOrder = {})); +var DefinitionQueueStatus; +(function (DefinitionQueueStatus) { + /** + * When enabled the definition queue allows builds to be queued by users, the system will queue scheduled, gated and continuous integration builds, and the queued builds will be started by the system. + */ + DefinitionQueueStatus[DefinitionQueueStatus["Enabled"] = 0] = "Enabled"; + /** + * When paused the definition queue allows builds to be queued by users and the system will queue scheduled, gated and continuous integration builds. Builds in the queue will not be started by the system. + */ + DefinitionQueueStatus[DefinitionQueueStatus["Paused"] = 1] = "Paused"; + /** + * When disabled the definition queue will not allow builds to be queued by users and the system will not queue scheduled, gated or continuous integration builds. Builds already in the queue will not be started by the system. + */ + DefinitionQueueStatus[DefinitionQueueStatus["Disabled"] = 2] = "Disabled"; +})(DefinitionQueueStatus = exports.DefinitionQueueStatus || (exports.DefinitionQueueStatus = {})); +var DefinitionTriggerType; +(function (DefinitionTriggerType) { + /** + * Manual builds only. + */ + DefinitionTriggerType[DefinitionTriggerType["None"] = 1] = "None"; + /** + * A build should be started for each changeset. + */ + DefinitionTriggerType[DefinitionTriggerType["ContinuousIntegration"] = 2] = "ContinuousIntegration"; + /** + * A build should be started for multiple changesets at a time at a specified interval. + */ + DefinitionTriggerType[DefinitionTriggerType["BatchedContinuousIntegration"] = 4] = "BatchedContinuousIntegration"; + /** + * A build should be started on a specified schedule whether or not changesets exist. + */ + DefinitionTriggerType[DefinitionTriggerType["Schedule"] = 8] = "Schedule"; + /** + * A validation build should be started for each check-in. + */ + DefinitionTriggerType[DefinitionTriggerType["GatedCheckIn"] = 16] = "GatedCheckIn"; + /** + * A validation build should be started for each batch of check-ins. + */ + DefinitionTriggerType[DefinitionTriggerType["BatchedGatedCheckIn"] = 32] = "BatchedGatedCheckIn"; + /** + * A build should be triggered when a GitHub pull request is created or updated. Added in resource version 3 + */ + DefinitionTriggerType[DefinitionTriggerType["PullRequest"] = 64] = "PullRequest"; + /** + * A build should be triggered when another build completes. + */ + DefinitionTriggerType[DefinitionTriggerType["BuildCompletion"] = 128] = "BuildCompletion"; + /** + * All types. + */ + DefinitionTriggerType[DefinitionTriggerType["All"] = 255] = "All"; +})(DefinitionTriggerType = exports.DefinitionTriggerType || (exports.DefinitionTriggerType = {})); +var DefinitionType; +(function (DefinitionType) { + DefinitionType[DefinitionType["Xaml"] = 1] = "Xaml"; + DefinitionType[DefinitionType["Build"] = 2] = "Build"; +})(DefinitionType = exports.DefinitionType || (exports.DefinitionType = {})); +var DeleteOptions; +(function (DeleteOptions) { + /** + * No data should be deleted. This value should not be used. + */ + DeleteOptions[DeleteOptions["None"] = 0] = "None"; + /** + * The drop location should be deleted. + */ + DeleteOptions[DeleteOptions["DropLocation"] = 1] = "DropLocation"; + /** + * The test results should be deleted. + */ + DeleteOptions[DeleteOptions["TestResults"] = 2] = "TestResults"; + /** + * The version control label should be deleted. + */ + DeleteOptions[DeleteOptions["Label"] = 4] = "Label"; + /** + * The build should be deleted. + */ + DeleteOptions[DeleteOptions["Details"] = 8] = "Details"; + /** + * Published symbols should be deleted. + */ + DeleteOptions[DeleteOptions["Symbols"] = 16] = "Symbols"; + /** + * All data should be deleted. + */ + DeleteOptions[DeleteOptions["All"] = 31] = "All"; +})(DeleteOptions = exports.DeleteOptions || (exports.DeleteOptions = {})); +/** + * Specifies the desired ordering of folders. + */ +var FolderQueryOrder; +(function (FolderQueryOrder) { + /** + * No order + */ + FolderQueryOrder[FolderQueryOrder["None"] = 0] = "None"; + /** + * Order by folder name and path ascending. + */ + FolderQueryOrder[FolderQueryOrder["FolderAscending"] = 1] = "FolderAscending"; + /** + * Order by folder name and path descending. + */ + FolderQueryOrder[FolderQueryOrder["FolderDescending"] = 2] = "FolderDescending"; +})(FolderQueryOrder = exports.FolderQueryOrder || (exports.FolderQueryOrder = {})); +var GetOption; +(function (GetOption) { + /** + * Use the latest changeset at the time the build is queued. + */ + GetOption[GetOption["LatestOnQueue"] = 0] = "LatestOnQueue"; + /** + * Use the latest changeset at the time the build is started. + */ + GetOption[GetOption["LatestOnBuild"] = 1] = "LatestOnBuild"; + /** + * A user-specified version has been supplied. + */ + GetOption[GetOption["Custom"] = 2] = "Custom"; +})(GetOption = exports.GetOption || (exports.GetOption = {})); +var IssueType; +(function (IssueType) { + IssueType[IssueType["Error"] = 1] = "Error"; + IssueType[IssueType["Warning"] = 2] = "Warning"; +})(IssueType = exports.IssueType || (exports.IssueType = {})); +var ProcessTemplateType; +(function (ProcessTemplateType) { + /** + * Indicates a custom template. + */ + ProcessTemplateType[ProcessTemplateType["Custom"] = 0] = "Custom"; + /** + * Indicates a default template. + */ + ProcessTemplateType[ProcessTemplateType["Default"] = 1] = "Default"; + /** + * Indicates an upgrade template. + */ + ProcessTemplateType[ProcessTemplateType["Upgrade"] = 2] = "Upgrade"; +})(ProcessTemplateType = exports.ProcessTemplateType || (exports.ProcessTemplateType = {})); +var QueryDeletedOption; +(function (QueryDeletedOption) { + /** + * Include only non-deleted builds. + */ + QueryDeletedOption[QueryDeletedOption["ExcludeDeleted"] = 0] = "ExcludeDeleted"; + /** + * Include deleted and non-deleted builds. + */ + QueryDeletedOption[QueryDeletedOption["IncludeDeleted"] = 1] = "IncludeDeleted"; + /** + * Include only deleted builds. + */ + QueryDeletedOption[QueryDeletedOption["OnlyDeleted"] = 2] = "OnlyDeleted"; +})(QueryDeletedOption = exports.QueryDeletedOption || (exports.QueryDeletedOption = {})); +var QueueOptions; +(function (QueueOptions) { + /** + * No queue options + */ + QueueOptions[QueueOptions["None"] = 0] = "None"; + /** + * Create a plan Id for the build, do not run it + */ + QueueOptions[QueueOptions["DoNotRun"] = 1] = "DoNotRun"; +})(QueueOptions = exports.QueueOptions || (exports.QueueOptions = {})); +var QueuePriority; +(function (QueuePriority) { + /** + * Low priority. + */ + QueuePriority[QueuePriority["Low"] = 5] = "Low"; + /** + * Below normal priority. + */ + QueuePriority[QueuePriority["BelowNormal"] = 4] = "BelowNormal"; + /** + * Normal priority. + */ + QueuePriority[QueuePriority["Normal"] = 3] = "Normal"; + /** + * Above normal priority. + */ + QueuePriority[QueuePriority["AboveNormal"] = 2] = "AboveNormal"; + /** + * High priority. + */ + QueuePriority[QueuePriority["High"] = 1] = "High"; +})(QueuePriority = exports.QueuePriority || (exports.QueuePriority = {})); +var RepositoryCleanOptions; +(function (RepositoryCleanOptions) { + RepositoryCleanOptions[RepositoryCleanOptions["Source"] = 0] = "Source"; + RepositoryCleanOptions[RepositoryCleanOptions["SourceAndOutputDir"] = 1] = "SourceAndOutputDir"; + /** + * Re-create $(build.sourcesDirectory) + */ + RepositoryCleanOptions[RepositoryCleanOptions["SourceDir"] = 2] = "SourceDir"; + /** + * Re-create $(agnet.buildDirectory) which contains $(build.sourcesDirectory), $(build.binariesDirectory) and any folders that left from previous build. + */ + RepositoryCleanOptions[RepositoryCleanOptions["AllBuildDir"] = 3] = "AllBuildDir"; +})(RepositoryCleanOptions = exports.RepositoryCleanOptions || (exports.RepositoryCleanOptions = {})); +var ResultSet; +(function (ResultSet) { + /** + * Include all repositories + */ + ResultSet[ResultSet["All"] = 0] = "All"; + /** + * Include most relevant repositories for user + */ + ResultSet[ResultSet["Top"] = 1] = "Top"; +})(ResultSet = exports.ResultSet || (exports.ResultSet = {})); +var ScheduleDays; +(function (ScheduleDays) { + /** + * Do not run. + */ + ScheduleDays[ScheduleDays["None"] = 0] = "None"; + /** + * Run on Monday. + */ + ScheduleDays[ScheduleDays["Monday"] = 1] = "Monday"; + /** + * Run on Tuesday. + */ + ScheduleDays[ScheduleDays["Tuesday"] = 2] = "Tuesday"; + /** + * Run on Wednesday. + */ + ScheduleDays[ScheduleDays["Wednesday"] = 4] = "Wednesday"; + /** + * Run on Thursday. + */ + ScheduleDays[ScheduleDays["Thursday"] = 8] = "Thursday"; + /** + * Run on Friday. + */ + ScheduleDays[ScheduleDays["Friday"] = 16] = "Friday"; + /** + * Run on Saturday. + */ + ScheduleDays[ScheduleDays["Saturday"] = 32] = "Saturday"; + /** + * Run on Sunday. + */ + ScheduleDays[ScheduleDays["Sunday"] = 64] = "Sunday"; + /** + * Run on all days of the week. + */ + ScheduleDays[ScheduleDays["All"] = 127] = "All"; +})(ScheduleDays = exports.ScheduleDays || (exports.ScheduleDays = {})); +var ServiceHostStatus; +(function (ServiceHostStatus) { + /** + * The service host is currently connected and accepting commands. + */ + ServiceHostStatus[ServiceHostStatus["Online"] = 1] = "Online"; + /** + * The service host is currently disconnected and not accepting commands. + */ + ServiceHostStatus[ServiceHostStatus["Offline"] = 2] = "Offline"; +})(ServiceHostStatus = exports.ServiceHostStatus || (exports.ServiceHostStatus = {})); +var SourceProviderAvailability; +(function (SourceProviderAvailability) { + /** + * The source provider is available in the hosted environment. + */ + SourceProviderAvailability[SourceProviderAvailability["Hosted"] = 1] = "Hosted"; + /** + * The source provider is available in the on-premises environment. + */ + SourceProviderAvailability[SourceProviderAvailability["OnPremises"] = 2] = "OnPremises"; + /** + * The source provider is available in all environments. + */ + SourceProviderAvailability[SourceProviderAvailability["All"] = 3] = "All"; +})(SourceProviderAvailability = exports.SourceProviderAvailability || (exports.SourceProviderAvailability = {})); +var StageUpdateType; +(function (StageUpdateType) { + StageUpdateType[StageUpdateType["Cancel"] = 0] = "Cancel"; + StageUpdateType[StageUpdateType["Retry"] = 1] = "Retry"; +})(StageUpdateType = exports.StageUpdateType || (exports.StageUpdateType = {})); +var SupportLevel; +(function (SupportLevel) { + /** + * The functionality is not supported. + */ + SupportLevel[SupportLevel["Unsupported"] = 0] = "Unsupported"; + /** + * The functionality is supported. + */ + SupportLevel[SupportLevel["Supported"] = 1] = "Supported"; + /** + * The functionality is required. + */ + SupportLevel[SupportLevel["Required"] = 2] = "Required"; +})(SupportLevel = exports.SupportLevel || (exports.SupportLevel = {})); +var TaskResult; +(function (TaskResult) { + TaskResult[TaskResult["Succeeded"] = 0] = "Succeeded"; + TaskResult[TaskResult["SucceededWithIssues"] = 1] = "SucceededWithIssues"; + TaskResult[TaskResult["Failed"] = 2] = "Failed"; + TaskResult[TaskResult["Canceled"] = 3] = "Canceled"; + TaskResult[TaskResult["Skipped"] = 4] = "Skipped"; + TaskResult[TaskResult["Abandoned"] = 5] = "Abandoned"; +})(TaskResult = exports.TaskResult || (exports.TaskResult = {})); +var TimelineRecordState; +(function (TimelineRecordState) { + TimelineRecordState[TimelineRecordState["Pending"] = 0] = "Pending"; + TimelineRecordState[TimelineRecordState["InProgress"] = 1] = "InProgress"; + TimelineRecordState[TimelineRecordState["Completed"] = 2] = "Completed"; +})(TimelineRecordState = exports.TimelineRecordState || (exports.TimelineRecordState = {})); +var ValidationResult; +(function (ValidationResult) { + ValidationResult[ValidationResult["OK"] = 0] = "OK"; + ValidationResult[ValidationResult["Warning"] = 1] = "Warning"; + ValidationResult[ValidationResult["Error"] = 2] = "Error"; +})(ValidationResult = exports.ValidationResult || (exports.ValidationResult = {})); +var WorkspaceMappingType; +(function (WorkspaceMappingType) { + /** + * The path is mapped in the workspace. + */ + WorkspaceMappingType[WorkspaceMappingType["Map"] = 0] = "Map"; + /** + * The path is cloaked in the workspace. + */ + WorkspaceMappingType[WorkspaceMappingType["Cloak"] = 1] = "Cloak"; +})(WorkspaceMappingType = exports.WorkspaceMappingType || (exports.WorkspaceMappingType = {})); +exports.TypeInfo = { + AgentStatus: { + enumValues: { + "unavailable": 0, + "available": 1, + "offline": 2 + } + }, + AuditAction: { + enumValues: { + "add": 1, + "update": 2, + "delete": 3 + } + }, + Build: {}, + BuildAgent: {}, + BuildAuthorizationScope: { + enumValues: { + "projectCollection": 1, + "project": 2 + } + }, + BuildCompletedEvent: {}, + BuildCompletionTrigger: {}, + BuildController: {}, + BuildDefinition: {}, + BuildDefinition3_2: {}, + BuildDefinitionReference: {}, + BuildDefinitionReference3_2: {}, + BuildDefinitionRevision: {}, + BuildDefinitionSourceProvider: {}, + BuildDefinitionTemplate: {}, + BuildDefinitionTemplate3_2: {}, + BuildDeletedEvent: {}, + BuildDeployment: {}, + BuildLog: {}, + BuildMetric: {}, + BuildOptionDefinition: {}, + BuildOptionInputDefinition: {}, + BuildOptionInputType: { + enumValues: { + "string": 0, + "boolean": 1, + "stringList": 2, + "radio": 3, + "pickList": 4, + "multiLine": 5, + "branchFilter": 6 + } + }, + BuildPhaseStatus: { + enumValues: { + "unknown": 0, + "failed": 1, + "succeeded": 2 + } + }, + BuildProcessTemplate: {}, + BuildQueryOrder: { + enumValues: { + "finishTimeAscending": 2, + "finishTimeDescending": 3, + "queueTimeDescending": 4, + "queueTimeAscending": 5, + "startTimeDescending": 6, + "startTimeAscending": 7 + } + }, + BuildQueuedEvent: {}, + BuildReason: { + enumValues: { + "none": 0, + "manual": 1, + "individualCI": 2, + "batchedCI": 4, + "schedule": 8, + "scheduleForced": 16, + "userCreated": 32, + "validateShelveset": 64, + "checkInShelveset": 128, + "pullRequest": 256, + "buildCompletion": 512, + "resourceTrigger": 1024, + "triggered": 1967, + "all": 2031 + } + }, + BuildReference: {}, + BuildRequestValidationResult: {}, + BuildResult: { + enumValues: { + "none": 0, + "succeeded": 2, + "partiallySucceeded": 4, + "failed": 8, + "canceled": 32 + } + }, + BuildRetentionHistory: {}, + BuildRetentionSample: {}, + BuildServer: {}, + BuildStatus: { + enumValues: { + "none": 0, + "inProgress": 1, + "completed": 2, + "cancelling": 4, + "postponed": 8, + "notStarted": 32, + "all": 47 + } + }, + BuildSummary: {}, + BuildTagsAddedEvent: {}, + BuildTrigger: {}, + BuildUpdatedEvent: {}, + Change: {}, + ContinuousDeploymentDefinition: {}, + ContinuousIntegrationTrigger: {}, + ControllerStatus: { + enumValues: { + "unavailable": 0, + "available": 1, + "offline": 2 + } + }, + DefinitionQuality: { + enumValues: { + "definition": 1, + "draft": 2 + } + }, + DefinitionQueryOrder: { + enumValues: { + "none": 0, + "lastModifiedAscending": 1, + "lastModifiedDescending": 2, + "definitionNameAscending": 3, + "definitionNameDescending": 4 + } + }, + DefinitionQueueStatus: { + enumValues: { + "enabled": 0, + "paused": 1, + "disabled": 2 + } + }, + DefinitionReference: {}, + DefinitionTriggerType: { + enumValues: { + "none": 1, + "continuousIntegration": 2, + "batchedContinuousIntegration": 4, + "schedule": 8, + "gatedCheckIn": 16, + "batchedGatedCheckIn": 32, + "pullRequest": 64, + "buildCompletion": 128, + "all": 255 + } + }, + DefinitionType: { + enumValues: { + "xaml": 1, + "build": 2 + } + }, + DeleteOptions: { + enumValues: { + "none": 0, + "dropLocation": 1, + "testResults": 2, + "label": 4, + "details": 8, + "symbols": 16, + "all": 31 + } + }, + DesignerProcess: {}, + Folder: {}, + FolderQueryOrder: { + enumValues: { + "none": 0, + "folderAscending": 1, + "folderDescending": 2 + } + }, + GatedCheckInTrigger: {}, + GetOption: { + enumValues: { + "latestOnQueue": 0, + "latestOnBuild": 1, + "custom": 2 + } + }, + InformationNode: {}, + Issue: {}, + IssueType: { + enumValues: { + "error": 1, + "warning": 2 + } + }, + Phase: {}, + ProcessTemplateType: { + enumValues: { + "custom": 0, + "default": 1, + "upgrade": 2 + } + }, + PullRequestTrigger: {}, + QueryDeletedOption: { + enumValues: { + "excludeDeleted": 0, + "includeDeleted": 1, + "onlyDeleted": 2 + } + }, + QueueOptions: { + enumValues: { + "none": 0, + "doNotRun": 1 + } + }, + QueuePriority: { + enumValues: { + "low": 5, + "belowNormal": 4, + "normal": 3, + "aboveNormal": 2, + "high": 1 + } + }, + RepositoryCleanOptions: { + enumValues: { + "source": 0, + "sourceAndOutputDir": 1, + "sourceDir": 2, + "allBuildDir": 3 + } + }, + RepositoryWebhook: {}, + ResultSet: { + enumValues: { + "all": 0, + "top": 1 + } + }, + RetentionLease: {}, + Schedule: {}, + ScheduleDays: { + enumValues: { + "none": 0, + "monday": 1, + "tuesday": 2, + "wednesday": 4, + "thursday": 8, + "friday": 16, + "saturday": 32, + "sunday": 64, + "all": 127 + } + }, + ScheduleTrigger: {}, + ServiceHostStatus: { + enumValues: { + "online": 1, + "offline": 2 + } + }, + SourceProviderAttributes: {}, + SourceProviderAvailability: { + enumValues: { + "hosted": 1, + "onPremises": 2, + "all": 3 + } + }, + StageUpdateType: { + enumValues: { + "cancel": 0, + "retry": 1 + } + }, + SupportedTrigger: {}, + SupportLevel: { + enumValues: { + "unsupported": 0, + "supported": 1, + "required": 2 + } + }, + TaskResult: { + enumValues: { + "succeeded": 0, + "succeededWithIssues": 1, + "failed": 2, + "canceled": 3, + "skipped": 4, + "abandoned": 5 + } + }, + Timeline: {}, + TimelineRecord: {}, + TimelineRecordState: { + enumValues: { + "pending": 0, + "inProgress": 1, + "completed": 2 + } + }, + TimelineRecordsUpdatedEvent: {}, + UpdateStageParameters: {}, + ValidationResult: { + enumValues: { + "ok": 0, + "warning": 1, + "error": 2 + } + }, + WorkspaceMapping: {}, + WorkspaceMappingType: { + enumValues: { + "map": 0, + "cloak": 1 + } + }, + WorkspaceTemplate: {}, + XamlBuildDefinition: {}, +}; +exports.TypeInfo.Build.fields = { + controller: { + typeInfo: exports.TypeInfo.BuildController + }, + definition: { + typeInfo: exports.TypeInfo.DefinitionReference + }, + deletedDate: { + isDate: true, + }, + finishTime: { + isDate: true, + }, + lastChangedDate: { + isDate: true, + }, + priority: { + enumType: exports.TypeInfo.QueuePriority + }, + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + }, + queueOptions: { + enumType: exports.TypeInfo.QueueOptions + }, + queueTime: { + isDate: true, + }, + reason: { + enumType: exports.TypeInfo.BuildReason + }, + result: { + enumType: exports.TypeInfo.BuildResult + }, + startTime: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.BuildStatus + }, + triggeredByBuild: { + typeInfo: exports.TypeInfo.Build + }, + validationResults: { + isArray: true, + typeInfo: exports.TypeInfo.BuildRequestValidationResult + } +}; +exports.TypeInfo.BuildAgent.fields = { + createdDate: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.AgentStatus + }, + updatedDate: { + isDate: true, + } +}; +exports.TypeInfo.BuildCompletedEvent.fields = { + build: { + typeInfo: exports.TypeInfo.Build + }, + changes: { + isArray: true, + typeInfo: exports.TypeInfo.Change + }, + testResults: { + typeInfo: TFS_TestManagement_Contracts.TypeInfo.AggregatedResultsAnalysis + }, + timelineRecords: { + isArray: true, + typeInfo: exports.TypeInfo.TimelineRecord + } +}; +exports.TypeInfo.BuildCompletionTrigger.fields = { + definition: { + typeInfo: exports.TypeInfo.DefinitionReference + }, + triggerType: { + enumType: exports.TypeInfo.DefinitionTriggerType + } +}; +exports.TypeInfo.BuildController.fields = { + createdDate: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.ControllerStatus + }, + updatedDate: { + isDate: true, + } +}; +exports.TypeInfo.BuildDefinition.fields = { + createdDate: { + isDate: true, + }, + draftOf: { + typeInfo: exports.TypeInfo.DefinitionReference + }, + drafts: { + isArray: true, + typeInfo: exports.TypeInfo.DefinitionReference + }, + jobAuthorizationScope: { + enumType: exports.TypeInfo.BuildAuthorizationScope + }, + latestBuild: { + typeInfo: exports.TypeInfo.Build + }, + latestCompletedBuild: { + typeInfo: exports.TypeInfo.Build + }, + metrics: { + isArray: true, + typeInfo: exports.TypeInfo.BuildMetric + }, + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + }, + quality: { + enumType: exports.TypeInfo.DefinitionQuality + }, + queueStatus: { + enumType: exports.TypeInfo.DefinitionQueueStatus + }, + triggers: { + isArray: true, + typeInfo: exports.TypeInfo.BuildTrigger + }, + type: { + enumType: exports.TypeInfo.DefinitionType + } +}; +exports.TypeInfo.BuildDefinition3_2.fields = { + createdDate: { + isDate: true, + }, + draftOf: { + typeInfo: exports.TypeInfo.DefinitionReference + }, + drafts: { + isArray: true, + typeInfo: exports.TypeInfo.DefinitionReference + }, + jobAuthorizationScope: { + enumType: exports.TypeInfo.BuildAuthorizationScope + }, + latestBuild: { + typeInfo: exports.TypeInfo.Build + }, + latestCompletedBuild: { + typeInfo: exports.TypeInfo.Build + }, + metrics: { + isArray: true, + typeInfo: exports.TypeInfo.BuildMetric + }, + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + }, + quality: { + enumType: exports.TypeInfo.DefinitionQuality + }, + queueStatus: { + enumType: exports.TypeInfo.DefinitionQueueStatus + }, + triggers: { + isArray: true, + typeInfo: exports.TypeInfo.BuildTrigger + }, + type: { + enumType: exports.TypeInfo.DefinitionType + } +}; +exports.TypeInfo.BuildDefinitionReference.fields = { + createdDate: { + isDate: true, + }, + draftOf: { + typeInfo: exports.TypeInfo.DefinitionReference + }, + drafts: { + isArray: true, + typeInfo: exports.TypeInfo.DefinitionReference + }, + latestBuild: { + typeInfo: exports.TypeInfo.Build + }, + latestCompletedBuild: { + typeInfo: exports.TypeInfo.Build + }, + metrics: { + isArray: true, + typeInfo: exports.TypeInfo.BuildMetric + }, + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + }, + quality: { + enumType: exports.TypeInfo.DefinitionQuality + }, + queueStatus: { + enumType: exports.TypeInfo.DefinitionQueueStatus + }, + type: { + enumType: exports.TypeInfo.DefinitionType + } +}; +exports.TypeInfo.BuildDefinitionReference3_2.fields = { + createdDate: { + isDate: true, + }, + draftOf: { + typeInfo: exports.TypeInfo.DefinitionReference + }, + drafts: { + isArray: true, + typeInfo: exports.TypeInfo.DefinitionReference + }, + metrics: { + isArray: true, + typeInfo: exports.TypeInfo.BuildMetric + }, + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + }, + quality: { + enumType: exports.TypeInfo.DefinitionQuality + }, + queueStatus: { + enumType: exports.TypeInfo.DefinitionQueueStatus + }, + type: { + enumType: exports.TypeInfo.DefinitionType + } +}; +exports.TypeInfo.BuildDefinitionRevision.fields = { + changedDate: { + isDate: true, + }, + changeType: { + enumType: exports.TypeInfo.AuditAction + } +}; +exports.TypeInfo.BuildDefinitionSourceProvider.fields = { + lastModified: { + isDate: true, + }, + supportedTriggerTypes: { + enumType: exports.TypeInfo.DefinitionTriggerType + } +}; +exports.TypeInfo.BuildDefinitionTemplate.fields = { + template: { + typeInfo: exports.TypeInfo.BuildDefinition + } +}; +exports.TypeInfo.BuildDefinitionTemplate3_2.fields = { + template: { + typeInfo: exports.TypeInfo.BuildDefinition3_2 + } +}; +exports.TypeInfo.BuildDeletedEvent.fields = { + build: { + typeInfo: exports.TypeInfo.Build + } +}; +exports.TypeInfo.BuildDeployment.fields = { + deployment: { + typeInfo: exports.TypeInfo.BuildSummary + } +}; +exports.TypeInfo.BuildLog.fields = { + createdOn: { + isDate: true, + }, + lastChangedOn: { + isDate: true, + } +}; +exports.TypeInfo.BuildMetric.fields = { + date: { + isDate: true, + } +}; +exports.TypeInfo.BuildOptionDefinition.fields = { + inputs: { + isArray: true, + typeInfo: exports.TypeInfo.BuildOptionInputDefinition + } +}; +exports.TypeInfo.BuildOptionInputDefinition.fields = { + type: { + enumType: exports.TypeInfo.BuildOptionInputType + } +}; +exports.TypeInfo.BuildProcessTemplate.fields = { + supportedReasons: { + enumType: exports.TypeInfo.BuildReason + }, + templateType: { + enumType: exports.TypeInfo.ProcessTemplateType + } +}; +exports.TypeInfo.BuildQueuedEvent.fields = { + build: { + typeInfo: exports.TypeInfo.Build + } +}; +exports.TypeInfo.BuildReference.fields = { + finishTime: { + isDate: true, + }, + queueTime: { + isDate: true, + }, + result: { + enumType: exports.TypeInfo.BuildResult + }, + startTime: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.BuildStatus + } +}; +exports.TypeInfo.BuildRequestValidationResult.fields = { + result: { + enumType: exports.TypeInfo.ValidationResult + } +}; +exports.TypeInfo.BuildRetentionHistory.fields = { + buildRetentionSamples: { + isArray: true, + typeInfo: exports.TypeInfo.BuildRetentionSample + } +}; +exports.TypeInfo.BuildRetentionSample.fields = { + sampleTime: { + isDate: true, + } +}; +exports.TypeInfo.BuildServer.fields = { + status: { + enumType: exports.TypeInfo.ServiceHostStatus + }, + statusChangedDate: { + isDate: true, + } +}; +exports.TypeInfo.BuildSummary.fields = { + finishTime: { + isDate: true, + }, + reason: { + enumType: exports.TypeInfo.BuildReason + }, + startTime: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.BuildStatus + } +}; +exports.TypeInfo.BuildTagsAddedEvent.fields = { + build: { + typeInfo: exports.TypeInfo.Build + } +}; +exports.TypeInfo.BuildTrigger.fields = { + triggerType: { + enumType: exports.TypeInfo.DefinitionTriggerType + } +}; +exports.TypeInfo.BuildUpdatedEvent.fields = { + build: { + typeInfo: exports.TypeInfo.Build + } +}; +exports.TypeInfo.Change.fields = { + timestamp: { + isDate: true, + } +}; +exports.TypeInfo.ContinuousDeploymentDefinition.fields = { + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + } +}; +exports.TypeInfo.ContinuousIntegrationTrigger.fields = { + triggerType: { + enumType: exports.TypeInfo.DefinitionTriggerType + } +}; +exports.TypeInfo.DefinitionReference.fields = { + createdDate: { + isDate: true, + }, + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + }, + queueStatus: { + enumType: exports.TypeInfo.DefinitionQueueStatus + }, + type: { + enumType: exports.TypeInfo.DefinitionType + } +}; +exports.TypeInfo.DesignerProcess.fields = { + phases: { + isArray: true, + typeInfo: exports.TypeInfo.Phase + } +}; +exports.TypeInfo.Folder.fields = { + createdOn: { + isDate: true, + }, + lastChangedDate: { + isDate: true, + }, + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + } +}; +exports.TypeInfo.GatedCheckInTrigger.fields = { + triggerType: { + enumType: exports.TypeInfo.DefinitionTriggerType + } +}; +exports.TypeInfo.InformationNode.fields = { + lastModifiedDate: { + isDate: true, + } +}; +exports.TypeInfo.Issue.fields = { + type: { + enumType: exports.TypeInfo.IssueType + } +}; +exports.TypeInfo.Phase.fields = { + jobAuthorizationScope: { + enumType: exports.TypeInfo.BuildAuthorizationScope + } +}; +exports.TypeInfo.PullRequestTrigger.fields = { + triggerType: { + enumType: exports.TypeInfo.DefinitionTriggerType + } +}; +exports.TypeInfo.RepositoryWebhook.fields = { + types: { + isArray: true, + enumType: exports.TypeInfo.DefinitionTriggerType + } +}; +exports.TypeInfo.RetentionLease.fields = { + createdOn: { + isDate: true, + }, + validUntil: { + isDate: true, + } +}; +exports.TypeInfo.Schedule.fields = { + daysToBuild: { + enumType: exports.TypeInfo.ScheduleDays + } +}; +exports.TypeInfo.ScheduleTrigger.fields = { + schedules: { + isArray: true, + typeInfo: exports.TypeInfo.Schedule + }, + triggerType: { + enumType: exports.TypeInfo.DefinitionTriggerType + } +}; +exports.TypeInfo.SourceProviderAttributes.fields = { + supportedTriggers: { + isArray: true, + typeInfo: exports.TypeInfo.SupportedTrigger + } +}; +exports.TypeInfo.SupportedTrigger.fields = { + supportedCapabilities: { + isDictionary: true, + dictionaryValueEnumType: exports.TypeInfo.SupportLevel + }, + type: { + enumType: exports.TypeInfo.DefinitionTriggerType + } +}; +exports.TypeInfo.Timeline.fields = { + lastChangedOn: { + isDate: true, + }, + records: { + isArray: true, + typeInfo: exports.TypeInfo.TimelineRecord + } +}; +exports.TypeInfo.TimelineRecord.fields = { + finishTime: { + isDate: true, + }, + issues: { + isArray: true, + typeInfo: exports.TypeInfo.Issue + }, + lastModified: { + isDate: true, + }, + result: { + enumType: exports.TypeInfo.TaskResult + }, + startTime: { + isDate: true, + }, + state: { + enumType: exports.TypeInfo.TimelineRecordState + } +}; +exports.TypeInfo.TimelineRecordsUpdatedEvent.fields = { + timelineRecords: { + isArray: true, + typeInfo: exports.TypeInfo.TimelineRecord + } +}; +exports.TypeInfo.UpdateStageParameters.fields = { + state: { + enumType: exports.TypeInfo.StageUpdateType + } +}; +exports.TypeInfo.WorkspaceMapping.fields = { + mappingType: { + enumType: exports.TypeInfo.WorkspaceMappingType + } +}; +exports.TypeInfo.WorkspaceTemplate.fields = { + lastModifiedDate: { + isDate: true, + }, + mappings: { + isArray: true, + typeInfo: exports.TypeInfo.WorkspaceMapping + } +}; +exports.TypeInfo.XamlBuildDefinition.fields = { + controller: { + typeInfo: exports.TypeInfo.BuildController + }, + createdDate: { + isDate: true, + }, + createdOn: { + isDate: true, + }, + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + }, + queueStatus: { + enumType: exports.TypeInfo.DefinitionQueueStatus + }, + supportedReasons: { + enumType: exports.TypeInfo.BuildReason + }, + triggerType: { + enumType: exports.TypeInfo.DefinitionTriggerType + }, + type: { + enumType: exports.TypeInfo.DefinitionType + } +}; + + +/***/ }), + +/***/ 4743: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +/** + * Specifies the additional data retrieval options for comments. + */ +var CommentExpandOptions; +(function (CommentExpandOptions) { + /** + * Include comments only, no mentions, reactions or rendered text + */ + CommentExpandOptions[CommentExpandOptions["None"] = 0] = "None"; + /** + * Include comment reactions + */ + CommentExpandOptions[CommentExpandOptions["Reactions"] = 1] = "Reactions"; + /** + * Include the rendered text (html) in addition to markdown text + */ + CommentExpandOptions[CommentExpandOptions["RenderedText"] = 8] = "RenderedText"; + CommentExpandOptions[CommentExpandOptions["RenderedTextOnly"] = 16] = "RenderedTextOnly"; + /** + * If specified, then responses will be expanded in the results + */ + CommentExpandOptions[CommentExpandOptions["Children"] = 32] = "Children"; + /** + * Expand everything including Reactions, Mentions and also include RenderedText (HTML) for markdown comments + */ + CommentExpandOptions[CommentExpandOptions["All"] = -17] = "All"; +})(CommentExpandOptions = exports.CommentExpandOptions || (exports.CommentExpandOptions = {})); +/** + * Format of the comment. Ex. Markdown, Html. + */ +var CommentFormat; +(function (CommentFormat) { + CommentFormat[CommentFormat["Markdown"] = 0] = "Markdown"; + CommentFormat[CommentFormat["Html"] = 1] = "Html"; +})(CommentFormat = exports.CommentFormat || (exports.CommentFormat = {})); +var CommentMentionType; +(function (CommentMentionType) { + /** + * An identity was mentioned by using the format @{VSID} + */ + CommentMentionType[CommentMentionType["Person"] = 0] = "Person"; + /** + * A work item was mentioned by using the format #{Work Item ID} + */ + CommentMentionType[CommentMentionType["WorkItem"] = 1] = "WorkItem"; + /** + * A Pull Request was mentioned by using the format !{PR Number} + */ + CommentMentionType[CommentMentionType["PullRequest"] = 2] = "PullRequest"; +})(CommentMentionType = exports.CommentMentionType || (exports.CommentMentionType = {})); +/** + * Represents different reaction types for a comment + */ +var CommentReactionType; +(function (CommentReactionType) { + CommentReactionType[CommentReactionType["Like"] = 0] = "Like"; + CommentReactionType[CommentReactionType["Dislike"] = 1] = "Dislike"; + CommentReactionType[CommentReactionType["Heart"] = 2] = "Heart"; + CommentReactionType[CommentReactionType["Hooray"] = 3] = "Hooray"; + CommentReactionType[CommentReactionType["Smile"] = 4] = "Smile"; + CommentReactionType[CommentReactionType["Confused"] = 5] = "Confused"; +})(CommentReactionType = exports.CommentReactionType || (exports.CommentReactionType = {})); +var CommentSortOrder; +(function (CommentSortOrder) { + /** + * The results will be sorted in Ascending order. + */ + CommentSortOrder[CommentSortOrder["Asc"] = 1] = "Asc"; + /** + * The results will be sorted in Descending order. + */ + CommentSortOrder[CommentSortOrder["Desc"] = 2] = "Desc"; +})(CommentSortOrder = exports.CommentSortOrder || (exports.CommentSortOrder = {})); +/** + * Represents the possible comment states. + */ +var CommentState; +(function (CommentState) { + CommentState[CommentState["Active"] = 0] = "Active"; + CommentState[CommentState["Resolved"] = 1] = "Resolved"; + CommentState[CommentState["Closed"] = 2] = "Closed"; +})(CommentState = exports.CommentState || (exports.CommentState = {})); +exports.TypeInfo = { + Comment: {}, + CommentAttachment: {}, + CommentExpandOptions: { + enumValues: { + "none": 0, + "reactions": 1, + "renderedText": 8, + "renderedTextOnly": 16, + "children": 32, + "all": -17 + } + }, + CommentFormat: { + enumValues: { + "markdown": 0, + "html": 1 + } + }, + CommentList: {}, + CommentMention: {}, + CommentMentionType: { + enumValues: { + "person": 0, + "workItem": 1, + "pullRequest": 2 + } + }, + CommentReaction: {}, + CommentReactionType: { + enumValues: { + "like": 0, + "dislike": 1, + "heart": 2, + "hooray": 3, + "smile": 4, + "confused": 5 + } + }, + CommentSortOrder: { + enumValues: { + "asc": 1, + "desc": 2 + } + }, + CommentState: { + enumValues: { + "active": 0, + "resolved": 1, + "closed": 2 + } + }, + CommentUpdateParameters: {}, + CommentVersion: {}, +}; +exports.TypeInfo.Comment.fields = { + createdDate: { + isDate: true, + }, + mentions: { + isArray: true, + typeInfo: exports.TypeInfo.CommentMention + }, + modifiedDate: { + isDate: true, + }, + reactions: { + isArray: true, + typeInfo: exports.TypeInfo.CommentReaction + }, + replies: { + typeInfo: exports.TypeInfo.CommentList + }, + state: { + enumType: exports.TypeInfo.CommentState + } +}; +exports.TypeInfo.CommentAttachment.fields = { + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.CommentList.fields = { + comments: { + isArray: true, + typeInfo: exports.TypeInfo.Comment + } +}; +exports.TypeInfo.CommentMention.fields = { + type: { + enumType: exports.TypeInfo.CommentMentionType + } +}; +exports.TypeInfo.CommentReaction.fields = { + type: { + enumType: exports.TypeInfo.CommentReactionType + } +}; +exports.TypeInfo.CommentUpdateParameters.fields = { + state: { + enumType: exports.TypeInfo.CommentState + } +}; +exports.TypeInfo.CommentVersion.fields = { + createdDate: { + isDate: true, + }, + modifiedDate: { + isDate: true, + }, + state: { + enumType: exports.TypeInfo.CommentState + } +}; + + +/***/ }), + +/***/ 3931: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +var ConnectedServiceKind; +(function (ConnectedServiceKind) { + /** + * Custom or unknown service + */ + ConnectedServiceKind[ConnectedServiceKind["Custom"] = 0] = "Custom"; + /** + * Azure Subscription + */ + ConnectedServiceKind[ConnectedServiceKind["AzureSubscription"] = 1] = "AzureSubscription"; + /** + * Chef Connection + */ + ConnectedServiceKind[ConnectedServiceKind["Chef"] = 2] = "Chef"; + /** + * Generic Connection + */ + ConnectedServiceKind[ConnectedServiceKind["Generic"] = 3] = "Generic"; +})(ConnectedServiceKind = exports.ConnectedServiceKind || (exports.ConnectedServiceKind = {})); +/** + * Type of process customization on a collection. + */ +var ProcessCustomizationType; +(function (ProcessCustomizationType) { + /** + * Process customization can't be computed. + */ + ProcessCustomizationType[ProcessCustomizationType["Unknown"] = -1] = "Unknown"; + /** + * Customization based on project-scoped xml customization + */ + ProcessCustomizationType[ProcessCustomizationType["Xml"] = 0] = "Xml"; + /** + * Customization based on process inheritance + */ + ProcessCustomizationType[ProcessCustomizationType["Inherited"] = 1] = "Inherited"; +})(ProcessCustomizationType = exports.ProcessCustomizationType || (exports.ProcessCustomizationType = {})); +var ProcessType; +(function (ProcessType) { + ProcessType[ProcessType["System"] = 0] = "System"; + ProcessType[ProcessType["Custom"] = 1] = "Custom"; + ProcessType[ProcessType["Inherited"] = 2] = "Inherited"; +})(ProcessType = exports.ProcessType || (exports.ProcessType = {})); +var ProjectChangeType; +(function (ProjectChangeType) { + ProjectChangeType[ProjectChangeType["Modified"] = 0] = "Modified"; + ProjectChangeType[ProjectChangeType["Deleted"] = 1] = "Deleted"; + ProjectChangeType[ProjectChangeType["Added"] = 2] = "Added"; +})(ProjectChangeType = exports.ProjectChangeType || (exports.ProjectChangeType = {})); +var ProjectVisibility; +(function (ProjectVisibility) { + ProjectVisibility[ProjectVisibility["Unchanged"] = -1] = "Unchanged"; + /** + * The project is only visible to users with explicit access. + */ + ProjectVisibility[ProjectVisibility["Private"] = 0] = "Private"; + /** + * Enterprise level project visibility + */ + ProjectVisibility[ProjectVisibility["Organization"] = 1] = "Organization"; + /** + * The project is visible to all. + */ + ProjectVisibility[ProjectVisibility["Public"] = 2] = "Public"; + ProjectVisibility[ProjectVisibility["SystemPrivate"] = 3] = "SystemPrivate"; +})(ProjectVisibility = exports.ProjectVisibility || (exports.ProjectVisibility = {})); +var SourceControlTypes; +(function (SourceControlTypes) { + SourceControlTypes[SourceControlTypes["Tfvc"] = 1] = "Tfvc"; + SourceControlTypes[SourceControlTypes["Git"] = 2] = "Git"; +})(SourceControlTypes = exports.SourceControlTypes || (exports.SourceControlTypes = {})); +exports.TypeInfo = { + ConnectedServiceKind: { + enumValues: { + "custom": 0, + "azureSubscription": 1, + "chef": 2, + "generic": 3 + } + }, + Process: {}, + ProcessCustomizationType: { + enumValues: { + "unknown": -1, + "xml": 0, + "inherited": 1 + } + }, + ProcessType: { + enumValues: { + "system": 0, + "custom": 1, + "inherited": 2 + } + }, + ProjectChangeType: { + enumValues: { + "modified": 0, + "deleted": 1, + "added": 2 + } + }, + ProjectInfo: {}, + ProjectMessage: {}, + ProjectVisibility: { + enumValues: { + "private": 0, + "organization": 1, + "public": 2 + } + }, + SourceControlTypes: { + enumValues: { + "tfvc": 1, + "git": 2 + } + }, + TeamProject: {}, + TeamProjectCollection: {}, + TeamProjectReference: {}, + TemporaryDataCreatedDTO: {}, + WebApiConnectedService: {}, + WebApiConnectedServiceDetails: {}, + WebApiProject: {}, +}; +exports.TypeInfo.Process.fields = { + type: { + enumType: exports.TypeInfo.ProcessType + } +}; +exports.TypeInfo.ProjectInfo.fields = { + lastUpdateTime: { + isDate: true, + }, + visibility: { + enumType: exports.TypeInfo.ProjectVisibility + } +}; +exports.TypeInfo.ProjectMessage.fields = { + project: { + typeInfo: exports.TypeInfo.ProjectInfo + }, + projectChangeType: { + enumType: exports.TypeInfo.ProjectChangeType + } +}; +exports.TypeInfo.TeamProject.fields = { + lastUpdateTime: { + isDate: true, + }, + visibility: { + enumType: exports.TypeInfo.ProjectVisibility + } +}; +exports.TypeInfo.TeamProjectCollection.fields = { + processCustomizationType: { + enumType: exports.TypeInfo.ProcessCustomizationType + } +}; +exports.TypeInfo.TeamProjectReference.fields = { + lastUpdateTime: { + isDate: true, + }, + visibility: { + enumType: exports.TypeInfo.ProjectVisibility + } +}; +exports.TypeInfo.TemporaryDataCreatedDTO.fields = { + expirationDate: { + isDate: true, + } +}; +exports.TypeInfo.WebApiConnectedService.fields = { + project: { + typeInfo: exports.TypeInfo.TeamProjectReference + } +}; +exports.TypeInfo.WebApiConnectedServiceDetails.fields = { + connectedServiceMetaData: { + typeInfo: exports.TypeInfo.WebApiConnectedService + } +}; +exports.TypeInfo.WebApiProject.fields = { + lastUpdateTime: { + isDate: true, + }, + visibility: { + enumType: exports.TypeInfo.ProjectVisibility + } +}; + + +/***/ }), + +/***/ 6890: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +/** + * identifies the scope of dashboard storage and permissions. + */ +var DashboardScope; +(function (DashboardScope) { + /** + * [DEPRECATED] Dashboard is scoped to the collection user. + */ + DashboardScope[DashboardScope["Collection_User"] = 0] = "Collection_User"; + /** + * Dashboard is scoped to the team. + */ + DashboardScope[DashboardScope["Project_Team"] = 1] = "Project_Team"; + /** + * Dashboard is scoped to the project. + */ + DashboardScope[DashboardScope["Project"] = 2] = "Project"; +})(DashboardScope = exports.DashboardScope || (exports.DashboardScope = {})); +var GroupMemberPermission; +(function (GroupMemberPermission) { + GroupMemberPermission[GroupMemberPermission["None"] = 0] = "None"; + GroupMemberPermission[GroupMemberPermission["Edit"] = 1] = "Edit"; + GroupMemberPermission[GroupMemberPermission["Manage"] = 2] = "Manage"; + GroupMemberPermission[GroupMemberPermission["ManagePermissions"] = 3] = "ManagePermissions"; +})(GroupMemberPermission = exports.GroupMemberPermission || (exports.GroupMemberPermission = {})); +var TeamDashboardPermission; +(function (TeamDashboardPermission) { + TeamDashboardPermission[TeamDashboardPermission["None"] = 0] = "None"; + TeamDashboardPermission[TeamDashboardPermission["Read"] = 1] = "Read"; + TeamDashboardPermission[TeamDashboardPermission["Create"] = 2] = "Create"; + TeamDashboardPermission[TeamDashboardPermission["Edit"] = 4] = "Edit"; + TeamDashboardPermission[TeamDashboardPermission["Delete"] = 8] = "Delete"; + TeamDashboardPermission[TeamDashboardPermission["ManagePermissions"] = 16] = "ManagePermissions"; +})(TeamDashboardPermission = exports.TeamDashboardPermission || (exports.TeamDashboardPermission = {})); +/** + * data contract required for the widget to function in a webaccess area or page. + */ +var WidgetScope; +(function (WidgetScope) { + WidgetScope[WidgetScope["Collection_User"] = 0] = "Collection_User"; + WidgetScope[WidgetScope["Project_Team"] = 1] = "Project_Team"; +})(WidgetScope = exports.WidgetScope || (exports.WidgetScope = {})); +exports.TypeInfo = { + Dashboard: {}, + DashboardGroup: {}, + DashboardGroupEntry: {}, + DashboardGroupEntryResponse: {}, + DashboardResponse: {}, + DashboardScope: { + enumValues: { + "collection_User": 0, + "project_Team": 1, + "project": 2 + } + }, + GroupMemberPermission: { + enumValues: { + "none": 0, + "edit": 1, + "manage": 2, + "managePermissions": 3 + } + }, + TeamDashboardPermission: { + enumValues: { + "none": 0, + "read": 1, + "create": 2, + "edit": 4, + "delete": 8, + "managePermissions": 16 + } + }, + Widget: {}, + WidgetMetadata: {}, + WidgetMetadataResponse: {}, + WidgetResponse: {}, + WidgetScope: { + enumValues: { + "collection_User": 0, + "project_Team": 1 + } + }, + WidgetsVersionedList: {}, + WidgetTypesResponse: {}, +}; +exports.TypeInfo.Dashboard.fields = { + dashboardScope: { + enumType: exports.TypeInfo.DashboardScope + }, + widgets: { + isArray: true, + typeInfo: exports.TypeInfo.Widget + } +}; +exports.TypeInfo.DashboardGroup.fields = { + dashboardEntries: { + isArray: true, + typeInfo: exports.TypeInfo.DashboardGroupEntry + }, + permission: { + enumType: exports.TypeInfo.GroupMemberPermission + }, + teamDashboardPermission: { + enumType: exports.TypeInfo.TeamDashboardPermission + } +}; +exports.TypeInfo.DashboardGroupEntry.fields = { + dashboardScope: { + enumType: exports.TypeInfo.DashboardScope + }, + widgets: { + isArray: true, + typeInfo: exports.TypeInfo.Widget + } +}; +exports.TypeInfo.DashboardGroupEntryResponse.fields = { + dashboardScope: { + enumType: exports.TypeInfo.DashboardScope + }, + widgets: { + isArray: true, + typeInfo: exports.TypeInfo.Widget + } +}; +exports.TypeInfo.DashboardResponse.fields = { + dashboardScope: { + enumType: exports.TypeInfo.DashboardScope + }, + widgets: { + isArray: true, + typeInfo: exports.TypeInfo.Widget + } +}; +exports.TypeInfo.Widget.fields = { + dashboard: { + typeInfo: exports.TypeInfo.Dashboard + } +}; +exports.TypeInfo.WidgetMetadata.fields = { + supportedScopes: { + isArray: true, + enumType: exports.TypeInfo.WidgetScope + } +}; +exports.TypeInfo.WidgetMetadataResponse.fields = { + widgetMetadata: { + typeInfo: exports.TypeInfo.WidgetMetadata + } +}; +exports.TypeInfo.WidgetResponse.fields = { + dashboard: { + typeInfo: exports.TypeInfo.Dashboard + } +}; +exports.TypeInfo.WidgetsVersionedList.fields = { + widgets: { + isArray: true, + typeInfo: exports.TypeInfo.Widget + } +}; +exports.TypeInfo.WidgetTypesResponse.fields = { + widgetTypes: { + isArray: true, + typeInfo: exports.TypeInfo.WidgetMetadata + } +}; + + +/***/ }), + +/***/ 7357: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const GalleryInterfaces = __nccwpck_require__(8905); +/** + * How the acquisition is assigned + */ +var AcquisitionAssignmentType; +(function (AcquisitionAssignmentType) { + AcquisitionAssignmentType[AcquisitionAssignmentType["None"] = 0] = "None"; + /** + * Just assign for me + */ + AcquisitionAssignmentType[AcquisitionAssignmentType["Me"] = 1] = "Me"; + /** + * Assign for all users in the account + */ + AcquisitionAssignmentType[AcquisitionAssignmentType["All"] = 2] = "All"; +})(AcquisitionAssignmentType = exports.AcquisitionAssignmentType || (exports.AcquisitionAssignmentType = {})); +var AcquisitionOperationState; +(function (AcquisitionOperationState) { + /** + * Not allowed to use this AcquisitionOperation + */ + AcquisitionOperationState[AcquisitionOperationState["Disallow"] = 0] = "Disallow"; + /** + * Allowed to use this AcquisitionOperation + */ + AcquisitionOperationState[AcquisitionOperationState["Allow"] = 1] = "Allow"; + /** + * Operation has already been completed and is no longer available + */ + AcquisitionOperationState[AcquisitionOperationState["Completed"] = 3] = "Completed"; +})(AcquisitionOperationState = exports.AcquisitionOperationState || (exports.AcquisitionOperationState = {})); +/** + * Set of different types of operations that can be requested. + */ +var AcquisitionOperationType; +(function (AcquisitionOperationType) { + /** + * Not yet used + */ + AcquisitionOperationType[AcquisitionOperationType["Get"] = 0] = "Get"; + /** + * Install this extension into the host provided + */ + AcquisitionOperationType[AcquisitionOperationType["Install"] = 1] = "Install"; + /** + * Buy licenses for this extension and install into the host provided + */ + AcquisitionOperationType[AcquisitionOperationType["Buy"] = 2] = "Buy"; + /** + * Try this extension + */ + AcquisitionOperationType[AcquisitionOperationType["Try"] = 3] = "Try"; + /** + * Request this extension for installation + */ + AcquisitionOperationType[AcquisitionOperationType["Request"] = 4] = "Request"; + /** + * No action found + */ + AcquisitionOperationType[AcquisitionOperationType["None"] = 5] = "None"; + /** + * Request admins for purchasing extension + */ + AcquisitionOperationType[AcquisitionOperationType["PurchaseRequest"] = 6] = "PurchaseRequest"; +})(AcquisitionOperationType = exports.AcquisitionOperationType || (exports.AcquisitionOperationType = {})); +/** + * Represents different ways of including contributions based on licensing + */ +var ContributionLicensingBehaviorType; +(function (ContributionLicensingBehaviorType) { + /** + * Default value - only include the contribution if the user is licensed for the extension + */ + ContributionLicensingBehaviorType[ContributionLicensingBehaviorType["OnlyIfLicensed"] = 0] = "OnlyIfLicensed"; + /** + * Only include the contribution if the user is NOT licensed for the extension + */ + ContributionLicensingBehaviorType[ContributionLicensingBehaviorType["OnlyIfUnlicensed"] = 1] = "OnlyIfUnlicensed"; + /** + * Always include the contribution regardless of whether or not the user is licensed for the extension + */ + ContributionLicensingBehaviorType[ContributionLicensingBehaviorType["AlwaysInclude"] = 2] = "AlwaysInclude"; +})(ContributionLicensingBehaviorType = exports.ContributionLicensingBehaviorType || (exports.ContributionLicensingBehaviorType = {})); +/** + * The type of value used for a property + */ +var ContributionPropertyType; +(function (ContributionPropertyType) { + /** + * Contribution type is unknown (value may be anything) + */ + ContributionPropertyType[ContributionPropertyType["Unknown"] = 0] = "Unknown"; + /** + * Value is a string + */ + ContributionPropertyType[ContributionPropertyType["String"] = 1] = "String"; + /** + * Value is a Uri + */ + ContributionPropertyType[ContributionPropertyType["Uri"] = 2] = "Uri"; + /** + * Value is a GUID + */ + ContributionPropertyType[ContributionPropertyType["Guid"] = 4] = "Guid"; + /** + * Value is True or False + */ + ContributionPropertyType[ContributionPropertyType["Boolean"] = 8] = "Boolean"; + /** + * Value is an integer + */ + ContributionPropertyType[ContributionPropertyType["Integer"] = 16] = "Integer"; + /** + * Value is a double + */ + ContributionPropertyType[ContributionPropertyType["Double"] = 32] = "Double"; + /** + * Value is a DateTime object + */ + ContributionPropertyType[ContributionPropertyType["DateTime"] = 64] = "DateTime"; + /** + * Value is a generic Dictionary/JObject/property bag + */ + ContributionPropertyType[ContributionPropertyType["Dictionary"] = 128] = "Dictionary"; + /** + * Value is an array + */ + ContributionPropertyType[ContributionPropertyType["Array"] = 256] = "Array"; + /** + * Value is an arbitrary/custom object + */ + ContributionPropertyType[ContributionPropertyType["Object"] = 512] = "Object"; +})(ContributionPropertyType = exports.ContributionPropertyType || (exports.ContributionPropertyType = {})); +/** + * Options that control the contributions to include in a query + */ +var ContributionQueryOptions; +(function (ContributionQueryOptions) { + ContributionQueryOptions[ContributionQueryOptions["None"] = 0] = "None"; + /** + * Include the direct contributions that have the ids queried. + */ + ContributionQueryOptions[ContributionQueryOptions["IncludeSelf"] = 16] = "IncludeSelf"; + /** + * Include the contributions that directly target the contributions queried. + */ + ContributionQueryOptions[ContributionQueryOptions["IncludeChildren"] = 32] = "IncludeChildren"; + /** + * Include the contributions from the entire sub-tree targeting the contributions queried. + */ + ContributionQueryOptions[ContributionQueryOptions["IncludeSubTree"] = 96] = "IncludeSubTree"; + /** + * Include the contribution being queried as well as all contributions that target them recursively. + */ + ContributionQueryOptions[ContributionQueryOptions["IncludeAll"] = 112] = "IncludeAll"; + /** + * Some callers may want the entire tree back without constraint evaluation being performed. + */ + ContributionQueryOptions[ContributionQueryOptions["IgnoreConstraints"] = 256] = "IgnoreConstraints"; +})(ContributionQueryOptions = exports.ContributionQueryOptions || (exports.ContributionQueryOptions = {})); +/** + * Set of flags applied to extensions that are relevant to contribution consumers + */ +var ExtensionFlags; +(function (ExtensionFlags) { + /** + * A built-in extension is installed for all VSTS accounts by default + */ + ExtensionFlags[ExtensionFlags["BuiltIn"] = 1] = "BuiltIn"; + /** + * The extension comes from a fully-trusted publisher + */ + ExtensionFlags[ExtensionFlags["Trusted"] = 2] = "Trusted"; +})(ExtensionFlags = exports.ExtensionFlags || (exports.ExtensionFlags = {})); +/** + * Represents the state of an extension request + */ +var ExtensionRequestState; +(function (ExtensionRequestState) { + /** + * The request has been opened, but not yet responded to + */ + ExtensionRequestState[ExtensionRequestState["Open"] = 0] = "Open"; + /** + * The request was accepted (extension installed or license assigned) + */ + ExtensionRequestState[ExtensionRequestState["Accepted"] = 1] = "Accepted"; + /** + * The request was rejected (extension not installed or license not assigned) + */ + ExtensionRequestState[ExtensionRequestState["Rejected"] = 2] = "Rejected"; +})(ExtensionRequestState = exports.ExtensionRequestState || (exports.ExtensionRequestState = {})); +var ExtensionRequestUpdateType; +(function (ExtensionRequestUpdateType) { + ExtensionRequestUpdateType[ExtensionRequestUpdateType["Created"] = 1] = "Created"; + ExtensionRequestUpdateType[ExtensionRequestUpdateType["Approved"] = 2] = "Approved"; + ExtensionRequestUpdateType[ExtensionRequestUpdateType["Rejected"] = 3] = "Rejected"; + ExtensionRequestUpdateType[ExtensionRequestUpdateType["Deleted"] = 4] = "Deleted"; +})(ExtensionRequestUpdateType = exports.ExtensionRequestUpdateType || (exports.ExtensionRequestUpdateType = {})); +/** + * States of an extension Note: If you add value to this enum, you need to do 2 other things. First add the back compat enum in value src\Vssf\Sdk\Server\Contributions\InstalledExtensionMessage.cs. Second, you can not send the new value on the message bus. You need to remove it from the message bus event prior to being sent. + */ +var ExtensionStateFlags; +(function (ExtensionStateFlags) { + /** + * No flags set + */ + ExtensionStateFlags[ExtensionStateFlags["None"] = 0] = "None"; + /** + * Extension is disabled + */ + ExtensionStateFlags[ExtensionStateFlags["Disabled"] = 1] = "Disabled"; + /** + * Extension is a built in + */ + ExtensionStateFlags[ExtensionStateFlags["BuiltIn"] = 2] = "BuiltIn"; + /** + * Extension has multiple versions + */ + ExtensionStateFlags[ExtensionStateFlags["MultiVersion"] = 4] = "MultiVersion"; + /** + * Extension is not installed. This is for builtin extensions only and can not otherwise be set. + */ + ExtensionStateFlags[ExtensionStateFlags["UnInstalled"] = 8] = "UnInstalled"; + /** + * Error performing version check + */ + ExtensionStateFlags[ExtensionStateFlags["VersionCheckError"] = 16] = "VersionCheckError"; + /** + * Trusted extensions are ones that are given special capabilities. These tend to come from Microsoft and can't be published by the general public. Note: BuiltIn extensions are always trusted. + */ + ExtensionStateFlags[ExtensionStateFlags["Trusted"] = 32] = "Trusted"; + /** + * Extension is currently in an error state + */ + ExtensionStateFlags[ExtensionStateFlags["Error"] = 64] = "Error"; + /** + * Extension scopes have changed and the extension requires re-authorization + */ + ExtensionStateFlags[ExtensionStateFlags["NeedsReauthorization"] = 128] = "NeedsReauthorization"; + /** + * Error performing auto-upgrade. For example, if the new version has demands not supported the extension cannot be auto-upgraded. + */ + ExtensionStateFlags[ExtensionStateFlags["AutoUpgradeError"] = 256] = "AutoUpgradeError"; + /** + * Extension is currently in a warning state, that can cause a degraded experience. The degraded experience can be caused for example by some installation issues detected such as implicit demands not supported. + */ + ExtensionStateFlags[ExtensionStateFlags["Warning"] = 512] = "Warning"; +})(ExtensionStateFlags = exports.ExtensionStateFlags || (exports.ExtensionStateFlags = {})); +var ExtensionUpdateType; +(function (ExtensionUpdateType) { + ExtensionUpdateType[ExtensionUpdateType["Installed"] = 1] = "Installed"; + ExtensionUpdateType[ExtensionUpdateType["Uninstalled"] = 2] = "Uninstalled"; + ExtensionUpdateType[ExtensionUpdateType["Enabled"] = 3] = "Enabled"; + ExtensionUpdateType[ExtensionUpdateType["Disabled"] = 4] = "Disabled"; + ExtensionUpdateType[ExtensionUpdateType["VersionUpdated"] = 5] = "VersionUpdated"; + ExtensionUpdateType[ExtensionUpdateType["ActionRequired"] = 6] = "ActionRequired"; + ExtensionUpdateType[ExtensionUpdateType["ActionResolved"] = 7] = "ActionResolved"; +})(ExtensionUpdateType = exports.ExtensionUpdateType || (exports.ExtensionUpdateType = {})); +/** + * Installation issue type (Warning, Error) + */ +var InstalledExtensionStateIssueType; +(function (InstalledExtensionStateIssueType) { + /** + * Represents an installation warning, for example an implicit demand not supported + */ + InstalledExtensionStateIssueType[InstalledExtensionStateIssueType["Warning"] = 0] = "Warning"; + /** + * Represents an installation error, for example an explicit demand not supported + */ + InstalledExtensionStateIssueType[InstalledExtensionStateIssueType["Error"] = 1] = "Error"; +})(InstalledExtensionStateIssueType = exports.InstalledExtensionStateIssueType || (exports.InstalledExtensionStateIssueType = {})); +exports.TypeInfo = { + AcquisitionAssignmentType: { + enumValues: { + "none": 0, + "me": 1, + "all": 2 + } + }, + AcquisitionOperation: {}, + AcquisitionOperationState: { + enumValues: { + "disallow": 0, + "allow": 1, + "completed": 3 + } + }, + AcquisitionOperationType: { + enumValues: { + "get": 0, + "install": 1, + "buy": 2, + "try": 3, + "request": 4, + "none": 5, + "purchaseRequest": 6 + } + }, + AcquisitionOptions: {}, + ContributionLicensingBehaviorType: { + enumValues: { + "onlyIfLicensed": 0, + "onlyIfUnlicensed": 1, + "alwaysInclude": 2 + } + }, + ContributionNodeQuery: {}, + ContributionPropertyDescription: {}, + ContributionPropertyType: { + enumValues: { + "unknown": 0, + "string": 1, + "uri": 2, + "guid": 4, + "boolean": 8, + "integer": 16, + "double": 32, + "dateTime": 64, + "dictionary": 128, + "array": 256, + "object": 512 + } + }, + ContributionQueryOptions: { + enumValues: { + "none": 0, + "includeSelf": 16, + "includeChildren": 32, + "includeSubTree": 96, + "includeAll": 112, + "ignoreConstraints": 256 + } + }, + ContributionType: {}, + ExtensionAcquisitionRequest: {}, + ExtensionAuditLog: {}, + ExtensionAuditLogEntry: {}, + ExtensionEvent: {}, + ExtensionFlags: { + enumValues: { + "builtIn": 1, + "trusted": 2 + } + }, + ExtensionLicensing: {}, + ExtensionManifest: {}, + ExtensionRequest: {}, + ExtensionRequestEvent: {}, + ExtensionRequestsEvent: {}, + ExtensionRequestState: { + enumValues: { + "open": 0, + "accepted": 1, + "rejected": 2 + } + }, + ExtensionRequestUpdateType: { + enumValues: { + "created": 1, + "approved": 2, + "rejected": 3, + "deleted": 4 + } + }, + ExtensionState: {}, + ExtensionStateFlags: { + enumValues: { + "none": 0, + "disabled": 1, + "builtIn": 2, + "multiVersion": 4, + "unInstalled": 8, + "versionCheckError": 16, + "trusted": 32, + "error": 64, + "needsReauthorization": 128, + "autoUpgradeError": 256, + "warning": 512 + } + }, + ExtensionUpdateType: { + enumValues: { + "installed": 1, + "uninstalled": 2, + "enabled": 3, + "disabled": 4, + "versionUpdated": 5, + "actionRequired": 6, + "actionResolved": 7 + } + }, + InstalledExtension: {}, + InstalledExtensionState: {}, + InstalledExtensionStateIssue: {}, + InstalledExtensionStateIssueType: { + enumValues: { + "warning": 0, + "error": 1 + } + }, + LicensingOverride: {}, + RequestedExtension: {}, +}; +exports.TypeInfo.AcquisitionOperation.fields = { + operationState: { + enumType: exports.TypeInfo.AcquisitionOperationState + }, + operationType: { + enumType: exports.TypeInfo.AcquisitionOperationType + } +}; +exports.TypeInfo.AcquisitionOptions.fields = { + defaultOperation: { + typeInfo: exports.TypeInfo.AcquisitionOperation + }, + operations: { + isArray: true, + typeInfo: exports.TypeInfo.AcquisitionOperation + } +}; +exports.TypeInfo.ContributionNodeQuery.fields = { + queryOptions: { + enumType: exports.TypeInfo.ContributionQueryOptions + } +}; +exports.TypeInfo.ContributionPropertyDescription.fields = { + type: { + enumType: exports.TypeInfo.ContributionPropertyType + } +}; +exports.TypeInfo.ContributionType.fields = { + properties: { + isDictionary: true, + dictionaryValueTypeInfo: exports.TypeInfo.ContributionPropertyDescription + } +}; +exports.TypeInfo.ExtensionAcquisitionRequest.fields = { + assignmentType: { + enumType: exports.TypeInfo.AcquisitionAssignmentType + }, + operationType: { + enumType: exports.TypeInfo.AcquisitionOperationType + } +}; +exports.TypeInfo.ExtensionAuditLog.fields = { + entries: { + isArray: true, + typeInfo: exports.TypeInfo.ExtensionAuditLogEntry + } +}; +exports.TypeInfo.ExtensionAuditLogEntry.fields = { + auditDate: { + isDate: true, + } +}; +exports.TypeInfo.ExtensionEvent.fields = { + extension: { + typeInfo: GalleryInterfaces.TypeInfo.PublishedExtension + }, + updateType: { + enumType: exports.TypeInfo.ExtensionUpdateType + } +}; +exports.TypeInfo.ExtensionLicensing.fields = { + overrides: { + isArray: true, + typeInfo: exports.TypeInfo.LicensingOverride + } +}; +exports.TypeInfo.ExtensionManifest.fields = { + contributionTypes: { + isArray: true, + typeInfo: exports.TypeInfo.ContributionType + }, + licensing: { + typeInfo: exports.TypeInfo.ExtensionLicensing + } +}; +exports.TypeInfo.ExtensionRequest.fields = { + requestDate: { + isDate: true, + }, + requestState: { + enumType: exports.TypeInfo.ExtensionRequestState + }, + resolveDate: { + isDate: true, + } +}; +exports.TypeInfo.ExtensionRequestEvent.fields = { + extension: { + typeInfo: GalleryInterfaces.TypeInfo.PublishedExtension + }, + request: { + typeInfo: exports.TypeInfo.ExtensionRequest + }, + updateType: { + enumType: exports.TypeInfo.ExtensionRequestUpdateType + } +}; +exports.TypeInfo.ExtensionRequestsEvent.fields = { + extension: { + typeInfo: GalleryInterfaces.TypeInfo.PublishedExtension + }, + requests: { + isArray: true, + typeInfo: exports.TypeInfo.ExtensionRequest + }, + updateType: { + enumType: exports.TypeInfo.ExtensionRequestUpdateType + } +}; +exports.TypeInfo.ExtensionState.fields = { + flags: { + enumType: exports.TypeInfo.ExtensionStateFlags + }, + installationIssues: { + isArray: true, + typeInfo: exports.TypeInfo.InstalledExtensionStateIssue + }, + lastUpdated: { + isDate: true, + }, + lastVersionCheck: { + isDate: true, + } +}; +exports.TypeInfo.InstalledExtension.fields = { + contributionTypes: { + isArray: true, + typeInfo: exports.TypeInfo.ContributionType + }, + flags: { + enumType: exports.TypeInfo.ExtensionFlags + }, + installState: { + typeInfo: exports.TypeInfo.InstalledExtensionState + }, + lastPublished: { + isDate: true, + }, + licensing: { + typeInfo: exports.TypeInfo.ExtensionLicensing + } +}; +exports.TypeInfo.InstalledExtensionState.fields = { + flags: { + enumType: exports.TypeInfo.ExtensionStateFlags + }, + installationIssues: { + isArray: true, + typeInfo: exports.TypeInfo.InstalledExtensionStateIssue + }, + lastUpdated: { + isDate: true, + } +}; +exports.TypeInfo.InstalledExtensionStateIssue.fields = { + type: { + enumType: exports.TypeInfo.InstalledExtensionStateIssueType + } +}; +exports.TypeInfo.LicensingOverride.fields = { + behavior: { + enumType: exports.TypeInfo.ContributionLicensingBehaviorType + } +}; +exports.TypeInfo.RequestedExtension.fields = { + extensionRequests: { + isArray: true, + typeInfo: exports.TypeInfo.ExtensionRequest + } +}; + + +/***/ }), + +/***/ 7278: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +/** + * The current state of a feature within a given scope + */ +var ContributedFeatureEnabledValue; +(function (ContributedFeatureEnabledValue) { + /** + * The state of the feature is not set for the specified scope + */ + ContributedFeatureEnabledValue[ContributedFeatureEnabledValue["Undefined"] = -1] = "Undefined"; + /** + * The feature is disabled at the specified scope + */ + ContributedFeatureEnabledValue[ContributedFeatureEnabledValue["Disabled"] = 0] = "Disabled"; + /** + * The feature is enabled at the specified scope + */ + ContributedFeatureEnabledValue[ContributedFeatureEnabledValue["Enabled"] = 1] = "Enabled"; +})(ContributedFeatureEnabledValue = exports.ContributedFeatureEnabledValue || (exports.ContributedFeatureEnabledValue = {})); +exports.TypeInfo = { + ContributedFeatureEnabledValue: { + enumValues: { + "undefined": -1, + "disabled": 0, + "enabled": 1 + } + }, + ContributedFeatureState: {}, + ContributedFeatureStateQuery: {}, +}; +exports.TypeInfo.ContributedFeatureState.fields = { + state: { + enumType: exports.TypeInfo.ContributedFeatureEnabledValue + } +}; +exports.TypeInfo.ContributedFeatureStateQuery.fields = { + featureStates: { + isDictionary: true, + dictionaryValueTypeInfo: exports.TypeInfo.ContributedFeatureState + } +}; + + +/***/ }), + +/***/ 6110: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +/** + * Compression type for file stored in Blobstore + */ +var BlobCompressionType; +(function (BlobCompressionType) { + BlobCompressionType[BlobCompressionType["None"] = 0] = "None"; + BlobCompressionType[BlobCompressionType["GZip"] = 1] = "GZip"; +})(BlobCompressionType = exports.BlobCompressionType || (exports.BlobCompressionType = {})); +/** + * Status of a container item. + */ +var ContainerItemStatus; +(function (ContainerItemStatus) { + /** + * Item is created. + */ + ContainerItemStatus[ContainerItemStatus["Created"] = 1] = "Created"; + /** + * Item is a file pending for upload. + */ + ContainerItemStatus[ContainerItemStatus["PendingUpload"] = 2] = "PendingUpload"; +})(ContainerItemStatus = exports.ContainerItemStatus || (exports.ContainerItemStatus = {})); +/** + * Type of a container item. + */ +var ContainerItemType; +(function (ContainerItemType) { + /** + * Any item type. + */ + ContainerItemType[ContainerItemType["Any"] = 0] = "Any"; + /** + * Item is a folder which can have child items. + */ + ContainerItemType[ContainerItemType["Folder"] = 1] = "Folder"; + /** + * Item is a file which is stored in the file service. + */ + ContainerItemType[ContainerItemType["File"] = 2] = "File"; +})(ContainerItemType = exports.ContainerItemType || (exports.ContainerItemType = {})); +/** + * Options a container can have. + */ +var ContainerOptions; +(function (ContainerOptions) { + /** + * No option. + */ + ContainerOptions[ContainerOptions["None"] = 0] = "None"; +})(ContainerOptions = exports.ContainerOptions || (exports.ContainerOptions = {})); +exports.TypeInfo = { + BlobCompressionType: { + enumValues: { + "none": 0, + "gZip": 1 + } + }, + ContainerItemBlobReference: {}, + ContainerItemStatus: { + enumValues: { + "created": 1, + "pendingUpload": 2 + } + }, + ContainerItemType: { + enumValues: { + "any": 0, + "folder": 1, + "file": 2 + } + }, + ContainerOptions: { + enumValues: { + "none": 0 + } + }, + FileContainer: {}, + FileContainerItem: {}, +}; +exports.TypeInfo.ContainerItemBlobReference.fields = { + compressionType: { + enumType: exports.TypeInfo.BlobCompressionType + } +}; +exports.TypeInfo.FileContainer.fields = { + dateCreated: { + isDate: true, + }, + options: { + enumType: exports.TypeInfo.ContainerOptions + } +}; +exports.TypeInfo.FileContainerItem.fields = { + blobMetadata: { + typeInfo: exports.TypeInfo.ContainerItemBlobReference + }, + dateCreated: { + isDate: true, + }, + dateLastModified: { + isDate: true, + }, + itemType: { + enumType: exports.TypeInfo.ContainerItemType + }, + status: { + enumType: exports.TypeInfo.ContainerItemStatus + } +}; + + +/***/ }), + +/***/ 8905: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +/** + * How the acquisition is assigned + */ +var AcquisitionAssignmentType; +(function (AcquisitionAssignmentType) { + AcquisitionAssignmentType[AcquisitionAssignmentType["None"] = 0] = "None"; + /** + * Just assign for me + */ + AcquisitionAssignmentType[AcquisitionAssignmentType["Me"] = 1] = "Me"; + /** + * Assign for all users in the account + */ + AcquisitionAssignmentType[AcquisitionAssignmentType["All"] = 2] = "All"; +})(AcquisitionAssignmentType = exports.AcquisitionAssignmentType || (exports.AcquisitionAssignmentType = {})); +var AcquisitionOperationState; +(function (AcquisitionOperationState) { + /** + * Not allowed to use this AcquisitionOperation + */ + AcquisitionOperationState[AcquisitionOperationState["Disallow"] = 0] = "Disallow"; + /** + * Allowed to use this AcquisitionOperation + */ + AcquisitionOperationState[AcquisitionOperationState["Allow"] = 1] = "Allow"; + /** + * Operation has already been completed and is no longer available + */ + AcquisitionOperationState[AcquisitionOperationState["Completed"] = 3] = "Completed"; +})(AcquisitionOperationState = exports.AcquisitionOperationState || (exports.AcquisitionOperationState = {})); +/** + * Set of different types of operations that can be requested. + */ +var AcquisitionOperationType; +(function (AcquisitionOperationType) { + /** + * Not yet used + */ + AcquisitionOperationType[AcquisitionOperationType["Get"] = 0] = "Get"; + /** + * Install this extension into the host provided + */ + AcquisitionOperationType[AcquisitionOperationType["Install"] = 1] = "Install"; + /** + * Buy licenses for this extension and install into the host provided + */ + AcquisitionOperationType[AcquisitionOperationType["Buy"] = 2] = "Buy"; + /** + * Try this extension + */ + AcquisitionOperationType[AcquisitionOperationType["Try"] = 3] = "Try"; + /** + * Request this extension for installation + */ + AcquisitionOperationType[AcquisitionOperationType["Request"] = 4] = "Request"; + /** + * No action found + */ + AcquisitionOperationType[AcquisitionOperationType["None"] = 5] = "None"; + /** + * Request admins for purchasing extension + */ + AcquisitionOperationType[AcquisitionOperationType["PurchaseRequest"] = 6] = "PurchaseRequest"; +})(AcquisitionOperationType = exports.AcquisitionOperationType || (exports.AcquisitionOperationType = {})); +var ConcernCategory; +(function (ConcernCategory) { + ConcernCategory[ConcernCategory["General"] = 1] = "General"; + ConcernCategory[ConcernCategory["Abusive"] = 2] = "Abusive"; + ConcernCategory[ConcernCategory["Spam"] = 4] = "Spam"; +})(ConcernCategory = exports.ConcernCategory || (exports.ConcernCategory = {})); +var DraftPatchOperation; +(function (DraftPatchOperation) { + DraftPatchOperation[DraftPatchOperation["Publish"] = 1] = "Publish"; + DraftPatchOperation[DraftPatchOperation["Cancel"] = 2] = "Cancel"; +})(DraftPatchOperation = exports.DraftPatchOperation || (exports.DraftPatchOperation = {})); +var DraftStateType; +(function (DraftStateType) { + DraftStateType[DraftStateType["Unpublished"] = 1] = "Unpublished"; + DraftStateType[DraftStateType["Published"] = 2] = "Published"; + DraftStateType[DraftStateType["Cancelled"] = 3] = "Cancelled"; + DraftStateType[DraftStateType["Error"] = 4] = "Error"; +})(DraftStateType = exports.DraftStateType || (exports.DraftStateType = {})); +var ExtensionDeploymentTechnology; +(function (ExtensionDeploymentTechnology) { + ExtensionDeploymentTechnology[ExtensionDeploymentTechnology["Exe"] = 1] = "Exe"; + ExtensionDeploymentTechnology[ExtensionDeploymentTechnology["Msi"] = 2] = "Msi"; + ExtensionDeploymentTechnology[ExtensionDeploymentTechnology["Vsix"] = 3] = "Vsix"; + ExtensionDeploymentTechnology[ExtensionDeploymentTechnology["ReferralLink"] = 4] = "ReferralLink"; +})(ExtensionDeploymentTechnology = exports.ExtensionDeploymentTechnology || (exports.ExtensionDeploymentTechnology = {})); +/** + * Type of event + */ +var ExtensionLifecycleEventType; +(function (ExtensionLifecycleEventType) { + ExtensionLifecycleEventType[ExtensionLifecycleEventType["Uninstall"] = 1] = "Uninstall"; + ExtensionLifecycleEventType[ExtensionLifecycleEventType["Install"] = 2] = "Install"; + ExtensionLifecycleEventType[ExtensionLifecycleEventType["Review"] = 3] = "Review"; + ExtensionLifecycleEventType[ExtensionLifecycleEventType["Acquisition"] = 4] = "Acquisition"; + ExtensionLifecycleEventType[ExtensionLifecycleEventType["Sales"] = 5] = "Sales"; + ExtensionLifecycleEventType[ExtensionLifecycleEventType["Other"] = 999] = "Other"; +})(ExtensionLifecycleEventType = exports.ExtensionLifecycleEventType || (exports.ExtensionLifecycleEventType = {})); +/** + * Set of flags that can be associated with a given permission over an extension + */ +var ExtensionPolicyFlags; +(function (ExtensionPolicyFlags) { + /** + * No permission + */ + ExtensionPolicyFlags[ExtensionPolicyFlags["None"] = 0] = "None"; + /** + * Permission on private extensions + */ + ExtensionPolicyFlags[ExtensionPolicyFlags["Private"] = 1] = "Private"; + /** + * Permission on public extensions + */ + ExtensionPolicyFlags[ExtensionPolicyFlags["Public"] = 2] = "Public"; + /** + * Permission in extensions that are in preview + */ + ExtensionPolicyFlags[ExtensionPolicyFlags["Preview"] = 4] = "Preview"; + /** + * Permission in released extensions + */ + ExtensionPolicyFlags[ExtensionPolicyFlags["Released"] = 8] = "Released"; + /** + * Permission in 1st party extensions + */ + ExtensionPolicyFlags[ExtensionPolicyFlags["FirstParty"] = 16] = "FirstParty"; + /** + * Mask that defines all permissions + */ + ExtensionPolicyFlags[ExtensionPolicyFlags["All"] = 31] = "All"; +})(ExtensionPolicyFlags = exports.ExtensionPolicyFlags || (exports.ExtensionPolicyFlags = {})); +/** + * Type of extension filters that are supported in the queries. + */ +var ExtensionQueryFilterType; +(function (ExtensionQueryFilterType) { + /** + * The values are used as tags. All tags are treated as "OR" conditions with each other. There may be some value put on the number of matched tags from the query. + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["Tag"] = 1] = "Tag"; + /** + * The Values are an ExtensionName or fragment that is used to match other extension names. + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["DisplayName"] = 2] = "DisplayName"; + /** + * The Filter is one or more tokens that define what scope to return private extensions for. + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["Private"] = 3] = "Private"; + /** + * Retrieve a set of extensions based on their id's. The values should be the extension id's encoded as strings. + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["Id"] = 4] = "Id"; + /** + * The category is unlike other filters. It is AND'd with the other filters instead of being a separate query. + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["Category"] = 5] = "Category"; + /** + * Certain contribution types may be indexed to allow for query by type. User defined types can't be indexed at the moment. + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["ContributionType"] = 6] = "ContributionType"; + /** + * Retrieve an set extension based on the name based identifier. This differs from the internal id (which is being deprecated). + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["Name"] = 7] = "Name"; + /** + * The InstallationTarget for an extension defines the target consumer for the extension. This may be something like VS, VSOnline, or VSCode + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["InstallationTarget"] = 8] = "InstallationTarget"; + /** + * Query for featured extensions, no value is allowed when using the query type. + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["Featured"] = 9] = "Featured"; + /** + * The SearchText provided by the user to search for extensions + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["SearchText"] = 10] = "SearchText"; + /** + * Query for extensions that are featured in their own category, The filterValue for this is name of category of extensions. + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["FeaturedInCategory"] = 11] = "FeaturedInCategory"; + /** + * When retrieving extensions from a query, exclude the extensions which are having the given flags. The value specified for this filter should be a string representing the integer values of the flags to be excluded. In case of multiple flags to be specified, a logical OR of the interger values should be given as value for this filter This should be at most one filter of this type. This only acts as a restrictive filter after. In case of having a particular flag in both IncludeWithFlags and ExcludeWithFlags, excludeFlags will remove the included extensions giving empty result for that flag. + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["ExcludeWithFlags"] = 12] = "ExcludeWithFlags"; + /** + * When retrieving extensions from a query, include the extensions which are having the given flags. The value specified for this filter should be a string representing the integer values of the flags to be included. In case of multiple flags to be specified, a logical OR of the integer values should be given as value for this filter This should be at most one filter of this type. This only acts as a restrictive filter after. In case of having a particular flag in both IncludeWithFlags and ExcludeWithFlags, excludeFlags will remove the included extensions giving empty result for that flag. In case of multiple flags given in IncludeWithFlags in ORed fashion, extensions having any of the given flags will be included. + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["IncludeWithFlags"] = 13] = "IncludeWithFlags"; + /** + * Filter the extensions based on the LCID values applicable. Any extensions which are not having any LCID values will also be filtered. This is currently only supported for VS extensions. + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["Lcid"] = 14] = "Lcid"; + /** + * Filter to provide the version of the installation target. This filter will be used along with InstallationTarget filter. The value should be a valid version string. Currently supported only if search text is provided. + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["InstallationTargetVersion"] = 15] = "InstallationTargetVersion"; + /** + * Filter type for specifying a range of installation target version. The filter will be used along with InstallationTarget filter. The value should be a pair of well formed version values separated by hyphen(-). Currently supported only if search text is provided. + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["InstallationTargetVersionRange"] = 16] = "InstallationTargetVersionRange"; + /** + * Filter type for specifying metadata key and value to be used for filtering. + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["VsixMetadata"] = 17] = "VsixMetadata"; + /** + * Filter to get extensions published by a publisher having supplied internal name + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["PublisherName"] = 18] = "PublisherName"; + /** + * Filter to get extensions published by all publishers having supplied display name + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["PublisherDisplayName"] = 19] = "PublisherDisplayName"; + /** + * When retrieving extensions from a query, include the extensions which have a publisher having the given flags. The value specified for this filter should be a string representing the integer values of the flags to be included. In case of multiple flags to be specified, a logical OR of the integer values should be given as value for this filter There should be at most one filter of this type. This only acts as a restrictive filter after. In case of multiple flags given in IncludeWithFlags in ORed fashion, extensions having any of the given flags will be included. + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["IncludeWithPublisherFlags"] = 20] = "IncludeWithPublisherFlags"; + /** + * Filter to get extensions shared with particular organization + */ + ExtensionQueryFilterType[ExtensionQueryFilterType["OrganizationSharedWith"] = 21] = "OrganizationSharedWith"; +})(ExtensionQueryFilterType = exports.ExtensionQueryFilterType || (exports.ExtensionQueryFilterType = {})); +/** + * Set of flags used to determine which set of information is retrieved when reading published extensions + */ +var ExtensionQueryFlags; +(function (ExtensionQueryFlags) { + /** + * None is used to retrieve only the basic extension details. + */ + ExtensionQueryFlags[ExtensionQueryFlags["None"] = 0] = "None"; + /** + * IncludeVersions will return version information for extensions returned + */ + ExtensionQueryFlags[ExtensionQueryFlags["IncludeVersions"] = 1] = "IncludeVersions"; + /** + * IncludeFiles will return information about which files were found within the extension that were stored independent of the manifest. When asking for files, versions will be included as well since files are returned as a property of the versions. These files can be retrieved using the path to the file without requiring the entire manifest be downloaded. + */ + ExtensionQueryFlags[ExtensionQueryFlags["IncludeFiles"] = 2] = "IncludeFiles"; + /** + * Include the Categories and Tags that were added to the extension definition. + */ + ExtensionQueryFlags[ExtensionQueryFlags["IncludeCategoryAndTags"] = 4] = "IncludeCategoryAndTags"; + /** + * Include the details about which accounts the extension has been shared with if the extension is a private extension. + */ + ExtensionQueryFlags[ExtensionQueryFlags["IncludeSharedAccounts"] = 8] = "IncludeSharedAccounts"; + /** + * Include properties associated with versions of the extension + */ + ExtensionQueryFlags[ExtensionQueryFlags["IncludeVersionProperties"] = 16] = "IncludeVersionProperties"; + /** + * Excluding non-validated extensions will remove any extension versions that either are in the process of being validated or have failed validation. + */ + ExtensionQueryFlags[ExtensionQueryFlags["ExcludeNonValidated"] = 32] = "ExcludeNonValidated"; + /** + * Include the set of installation targets the extension has requested. + */ + ExtensionQueryFlags[ExtensionQueryFlags["IncludeInstallationTargets"] = 64] = "IncludeInstallationTargets"; + /** + * Include the base uri for assets of this extension + */ + ExtensionQueryFlags[ExtensionQueryFlags["IncludeAssetUri"] = 128] = "IncludeAssetUri"; + /** + * Include the statistics associated with this extension + */ + ExtensionQueryFlags[ExtensionQueryFlags["IncludeStatistics"] = 256] = "IncludeStatistics"; + /** + * When retrieving versions from a query, only include the latest version of the extensions that matched. This is useful when the caller doesn't need all the published versions. It will save a significant size in the returned payload. + */ + ExtensionQueryFlags[ExtensionQueryFlags["IncludeLatestVersionOnly"] = 512] = "IncludeLatestVersionOnly"; + /** + * This flag switches the asset uri to use GetAssetByName instead of CDN When this is used, values of base asset uri and base asset uri fallback are switched When this is used, source of asset files are pointed to Gallery service always even if CDN is available + */ + ExtensionQueryFlags[ExtensionQueryFlags["UseFallbackAssetUri"] = 1024] = "UseFallbackAssetUri"; + /** + * This flag is used to get all the metadata values associated with the extension. This is not applicable to VSTS or VSCode extensions and usage is only internal. + */ + ExtensionQueryFlags[ExtensionQueryFlags["IncludeMetadata"] = 2048] = "IncludeMetadata"; + /** + * This flag is used to indicate to return very small data for extension required by VS IDE. This flag is only compatible when querying is done by VS IDE + */ + ExtensionQueryFlags[ExtensionQueryFlags["IncludeMinimalPayloadForVsIde"] = 4096] = "IncludeMinimalPayloadForVsIde"; + /** + * This flag is used to get Lcid values associated with the extension. This is not applicable to VSTS or VSCode extensions and usage is only internal + */ + ExtensionQueryFlags[ExtensionQueryFlags["IncludeLcids"] = 8192] = "IncludeLcids"; + /** + * Include the details about which organizations the extension has been shared with if the extension is a private extension. + */ + ExtensionQueryFlags[ExtensionQueryFlags["IncludeSharedOrganizations"] = 16384] = "IncludeSharedOrganizations"; + /** + * AllAttributes is designed to be a mask that defines all sub-elements of the extension should be returned. NOTE: This is not actually All flags. This is now locked to the set defined since changing this enum would be a breaking change and would change the behavior of anyone using it. Try not to use this value when making calls to the service, instead be explicit about the options required. + */ + ExtensionQueryFlags[ExtensionQueryFlags["AllAttributes"] = 16863] = "AllAttributes"; +})(ExtensionQueryFlags = exports.ExtensionQueryFlags || (exports.ExtensionQueryFlags = {})); +var ExtensionStatisticOperation; +(function (ExtensionStatisticOperation) { + ExtensionStatisticOperation[ExtensionStatisticOperation["None"] = 0] = "None"; + ExtensionStatisticOperation[ExtensionStatisticOperation["Set"] = 1] = "Set"; + ExtensionStatisticOperation[ExtensionStatisticOperation["Increment"] = 2] = "Increment"; + ExtensionStatisticOperation[ExtensionStatisticOperation["Decrement"] = 3] = "Decrement"; + ExtensionStatisticOperation[ExtensionStatisticOperation["Delete"] = 4] = "Delete"; +})(ExtensionStatisticOperation = exports.ExtensionStatisticOperation || (exports.ExtensionStatisticOperation = {})); +/** + * Stats aggregation type + */ +var ExtensionStatsAggregateType; +(function (ExtensionStatsAggregateType) { + ExtensionStatsAggregateType[ExtensionStatsAggregateType["Daily"] = 1] = "Daily"; +})(ExtensionStatsAggregateType = exports.ExtensionStatsAggregateType || (exports.ExtensionStatsAggregateType = {})); +/** + * Set of flags that can be associated with a given extension version. These flags apply to a specific version of the extension. + */ +var ExtensionVersionFlags; +(function (ExtensionVersionFlags) { + /** + * No flags exist for this version. + */ + ExtensionVersionFlags[ExtensionVersionFlags["None"] = 0] = "None"; + /** + * The Validated flag for a version means the extension version has passed validation and can be used.. + */ + ExtensionVersionFlags[ExtensionVersionFlags["Validated"] = 1] = "Validated"; +})(ExtensionVersionFlags = exports.ExtensionVersionFlags || (exports.ExtensionVersionFlags = {})); +/** + * Type of event + */ +var NotificationTemplateType; +(function (NotificationTemplateType) { + /** + * Template type for Review Notification. + */ + NotificationTemplateType[NotificationTemplateType["ReviewNotification"] = 1] = "ReviewNotification"; + /** + * Template type for Qna Notification. + */ + NotificationTemplateType[NotificationTemplateType["QnaNotification"] = 2] = "QnaNotification"; + /** + * Template type for Customer Contact Notification. + */ + NotificationTemplateType[NotificationTemplateType["CustomerContactNotification"] = 3] = "CustomerContactNotification"; + /** + * Template type for Publisher Member Notification. + */ + NotificationTemplateType[NotificationTemplateType["PublisherMemberUpdateNotification"] = 4] = "PublisherMemberUpdateNotification"; +})(NotificationTemplateType = exports.NotificationTemplateType || (exports.NotificationTemplateType = {})); +/** + * PagingDirection is used to define which set direction to move the returned result set based on a previous query. + */ +var PagingDirection; +(function (PagingDirection) { + /** + * Backward will return results from earlier in the resultset. + */ + PagingDirection[PagingDirection["Backward"] = 1] = "Backward"; + /** + * Forward will return results from later in the resultset. + */ + PagingDirection[PagingDirection["Forward"] = 2] = "Forward"; +})(PagingDirection = exports.PagingDirection || (exports.PagingDirection = {})); +/** + * Set of flags that can be associated with a given extension. These flags apply to all versions of the extension and not to a specific version. + */ +var PublishedExtensionFlags; +(function (PublishedExtensionFlags) { + /** + * No flags exist for this extension. + */ + PublishedExtensionFlags[PublishedExtensionFlags["None"] = 0] = "None"; + /** + * The Disabled flag for an extension means the extension can't be changed and won't be used by consumers. The disabled flag is managed by the service and can't be supplied by the Extension Developers. + */ + PublishedExtensionFlags[PublishedExtensionFlags["Disabled"] = 1] = "Disabled"; + /** + * BuiltIn Extension are available to all Tenants. An explicit registration is not required. This attribute is reserved and can't be supplied by Extension Developers. BuiltIn extensions are by definition Public. There is no need to set the public flag for extensions marked BuiltIn. + */ + PublishedExtensionFlags[PublishedExtensionFlags["BuiltIn"] = 2] = "BuiltIn"; + /** + * This extension has been validated by the service. The extension meets the requirements specified. This attribute is reserved and can't be supplied by the Extension Developers. Validation is a process that ensures that all contributions are well formed. They meet the requirements defined by the contribution type they are extending. Note this attribute will be updated asynchronously as the extension is validated by the developer of the contribution type. There will be restricted access to the extension while this process is performed. + */ + PublishedExtensionFlags[PublishedExtensionFlags["Validated"] = 4] = "Validated"; + /** + * Trusted extensions are ones that are given special capabilities. These tend to come from Microsoft and can't be published by the general public. Note: BuiltIn extensions are always trusted. + */ + PublishedExtensionFlags[PublishedExtensionFlags["Trusted"] = 8] = "Trusted"; + /** + * The Paid flag indicates that the commerce can be enabled for this extension. Publisher needs to setup Offer/Pricing plan in Azure. If Paid flag is set and a corresponding Offer is not available, the extension will automatically be marked as Preview. If the publisher intends to make the extension Paid in the future, it is mandatory to set the Preview flag. This is currently available only for VSTS extensions only. + */ + PublishedExtensionFlags[PublishedExtensionFlags["Paid"] = 16] = "Paid"; + /** + * This extension registration is public, making its visibility open to the public. This means all tenants have the ability to install this extension. Without this flag the extension will be private and will need to be shared with the tenants that can install it. + */ + PublishedExtensionFlags[PublishedExtensionFlags["Public"] = 256] = "Public"; + /** + * This extension has multiple versions active at one time and version discovery should be done using the defined "Version Discovery" protocol to determine the version available to a specific user or tenant. @TODO: Link to Version Discovery Protocol. + */ + PublishedExtensionFlags[PublishedExtensionFlags["MultiVersion"] = 512] = "MultiVersion"; + /** + * The system flag is reserved, and cant be used by publishers. + */ + PublishedExtensionFlags[PublishedExtensionFlags["System"] = 1024] = "System"; + /** + * The Preview flag indicates that the extension is still under preview (not yet of "release" quality). These extensions may be decorated differently in the gallery and may have different policies applied to them. + */ + PublishedExtensionFlags[PublishedExtensionFlags["Preview"] = 2048] = "Preview"; + /** + * The Unpublished flag indicates that the extension can't be installed/downloaded. Users who have installed such an extension can continue to use the extension. + */ + PublishedExtensionFlags[PublishedExtensionFlags["Unpublished"] = 4096] = "Unpublished"; + /** + * The Trial flag indicates that the extension is in Trial version. The flag is right now being used only with respect to Visual Studio extensions. + */ + PublishedExtensionFlags[PublishedExtensionFlags["Trial"] = 8192] = "Trial"; + /** + * The Locked flag indicates that extension has been locked from Marketplace. Further updates/acquisitions are not allowed on the extension until this is present. This should be used along with making the extension private/unpublished. + */ + PublishedExtensionFlags[PublishedExtensionFlags["Locked"] = 16384] = "Locked"; + /** + * This flag is set for extensions we want to hide from Marketplace home and search pages. This will be used to override the exposure of builtIn flags. + */ + PublishedExtensionFlags[PublishedExtensionFlags["Hidden"] = 32768] = "Hidden"; +})(PublishedExtensionFlags = exports.PublishedExtensionFlags || (exports.PublishedExtensionFlags = {})); +var PublisherFlags; +(function (PublisherFlags) { + /** + * This should never be returned, it is used to represent a publisher who's flags haven't changed during update calls. + */ + PublisherFlags[PublisherFlags["UnChanged"] = 1073741824] = "UnChanged"; + /** + * No flags exist for this publisher. + */ + PublisherFlags[PublisherFlags["None"] = 0] = "None"; + /** + * The Disabled flag for a publisher means the publisher can't be changed and won't be used by consumers, this extends to extensions owned by the publisher as well. The disabled flag is managed by the service and can't be supplied by the Extension Developers. + */ + PublisherFlags[PublisherFlags["Disabled"] = 1] = "Disabled"; + /** + * A verified publisher is one that Microsoft has done some review of and ensured the publisher meets a set of requirements. The requirements to become a verified publisher are not listed here. They can be found in public documentation (TBD). + */ + PublisherFlags[PublisherFlags["Verified"] = 2] = "Verified"; + /** + * A Certified publisher is one that is Microsoft verified and in addition meets a set of requirements for its published extensions. The requirements to become a certified publisher are not listed here. They can be found in public documentation (TBD). + */ + PublisherFlags[PublisherFlags["Certified"] = 4] = "Certified"; + /** + * This is the set of flags that can't be supplied by the developer and is managed by the service itself. + */ + PublisherFlags[PublisherFlags["ServiceFlags"] = 7] = "ServiceFlags"; +})(PublisherFlags = exports.PublisherFlags || (exports.PublisherFlags = {})); +var PublisherPermissions; +(function (PublisherPermissions) { + /** + * This gives the bearer the rights to read Publishers and Extensions. + */ + PublisherPermissions[PublisherPermissions["Read"] = 1] = "Read"; + /** + * This gives the bearer the rights to update, delete, and share Extensions (but not the ability to create them). + */ + PublisherPermissions[PublisherPermissions["UpdateExtension"] = 2] = "UpdateExtension"; + /** + * This gives the bearer the rights to create new Publishers at the root of the namespace. + */ + PublisherPermissions[PublisherPermissions["CreatePublisher"] = 4] = "CreatePublisher"; + /** + * This gives the bearer the rights to create new Extensions within a publisher. + */ + PublisherPermissions[PublisherPermissions["PublishExtension"] = 8] = "PublishExtension"; + /** + * Admin gives the bearer the rights to manage restricted attributes of Publishers and Extensions. + */ + PublisherPermissions[PublisherPermissions["Admin"] = 16] = "Admin"; + /** + * TrustedPartner gives the bearer the rights to publish a extensions with restricted capabilities. + */ + PublisherPermissions[PublisherPermissions["TrustedPartner"] = 32] = "TrustedPartner"; + /** + * PrivateRead is another form of read designed to allow higher privilege accessors the ability to read private extensions. + */ + PublisherPermissions[PublisherPermissions["PrivateRead"] = 64] = "PrivateRead"; + /** + * This gives the bearer the rights to delete any extension. + */ + PublisherPermissions[PublisherPermissions["DeleteExtension"] = 128] = "DeleteExtension"; + /** + * This gives the bearer the rights edit the publisher settings. + */ + PublisherPermissions[PublisherPermissions["EditSettings"] = 256] = "EditSettings"; + /** + * This gives the bearer the rights to see all permissions on the publisher. + */ + PublisherPermissions[PublisherPermissions["ViewPermissions"] = 512] = "ViewPermissions"; + /** + * This gives the bearer the rights to assign permissions on the publisher. + */ + PublisherPermissions[PublisherPermissions["ManagePermissions"] = 1024] = "ManagePermissions"; + /** + * This gives the bearer the rights to delete the publisher. + */ + PublisherPermissions[PublisherPermissions["DeletePublisher"] = 2048] = "DeletePublisher"; +})(PublisherPermissions = exports.PublisherPermissions || (exports.PublisherPermissions = {})); +/** + * Set of flags used to define the attributes requested when a publisher is returned. Some API's allow the caller to specify the level of detail needed. + */ +var PublisherQueryFlags; +(function (PublisherQueryFlags) { + /** + * None is used to retrieve only the basic publisher details. + */ + PublisherQueryFlags[PublisherQueryFlags["None"] = 0] = "None"; + /** + * Is used to include a list of basic extension details for all extensions published by the requested publisher. + */ + PublisherQueryFlags[PublisherQueryFlags["IncludeExtensions"] = 1] = "IncludeExtensions"; + /** + * Is used to include email address of all the users who are marked as owners for the publisher + */ + PublisherQueryFlags[PublisherQueryFlags["IncludeEmailAddress"] = 2] = "IncludeEmailAddress"; +})(PublisherQueryFlags = exports.PublisherQueryFlags || (exports.PublisherQueryFlags = {})); +/** + * Access definition for a RoleAssignment. + */ +var PublisherRoleAccess; +(function (PublisherRoleAccess) { + /** + * Access has been explicitly set. + */ + PublisherRoleAccess[PublisherRoleAccess["Assigned"] = 1] = "Assigned"; + /** + * Access has been inherited from a higher scope. + */ + PublisherRoleAccess[PublisherRoleAccess["Inherited"] = 2] = "Inherited"; +})(PublisherRoleAccess = exports.PublisherRoleAccess || (exports.PublisherRoleAccess = {})); +var PublisherState; +(function (PublisherState) { + /** + * No state exists for this publisher. + */ + PublisherState[PublisherState["None"] = 0] = "None"; + /** + * This state indicates that publisher has applied for Marketplace verification (via UI) and still not been certified. This state would be reset once the publisher is verified. + */ + PublisherState[PublisherState["VerificationPending"] = 1] = "VerificationPending"; + /** + * This state indicates that publisher has applied for Marketplace certification (via UI) and still not been certified. This state would be reset once the publisher is certified. + */ + PublisherState[PublisherState["CertificationPending"] = 2] = "CertificationPending"; + /** + * This state indicates that publisher had applied for Marketplace certification (via UI) but his/her certification got rejected. This state would be reset if and when the publisher is certified. + */ + PublisherState[PublisherState["CertificationRejected"] = 4] = "CertificationRejected"; + /** + * This state indicates that publisher was certified on the Marketplace, but his/her certification got revoked. This state would never be reset, even after publisher gets re-certified. It would indicate that the publisher certification was revoked at least once. + */ + PublisherState[PublisherState["CertificationRevoked"] = 8] = "CertificationRevoked"; +})(PublisherState = exports.PublisherState || (exports.PublisherState = {})); +/** + * Denotes the status of the QnA Item + */ +var QnAItemStatus; +(function (QnAItemStatus) { + QnAItemStatus[QnAItemStatus["None"] = 0] = "None"; + /** + * The UserEditable flag indicates whether the item is editable by the logged in user. + */ + QnAItemStatus[QnAItemStatus["UserEditable"] = 1] = "UserEditable"; + /** + * The PublisherCreated flag indicates whether the item has been created by extension publisher. + */ + QnAItemStatus[QnAItemStatus["PublisherCreated"] = 2] = "PublisherCreated"; +})(QnAItemStatus = exports.QnAItemStatus || (exports.QnAItemStatus = {})); +/** + * The status of a REST Api response status. + */ +var RestApiResponseStatus; +(function (RestApiResponseStatus) { + /** + * The operation is completed. + */ + RestApiResponseStatus[RestApiResponseStatus["Completed"] = 0] = "Completed"; + /** + * The operation is failed. + */ + RestApiResponseStatus[RestApiResponseStatus["Failed"] = 1] = "Failed"; + /** + * The operation is in progress. + */ + RestApiResponseStatus[RestApiResponseStatus["Inprogress"] = 2] = "Inprogress"; + /** + * The operation is in skipped. + */ + RestApiResponseStatus[RestApiResponseStatus["Skipped"] = 3] = "Skipped"; +})(RestApiResponseStatus = exports.RestApiResponseStatus || (exports.RestApiResponseStatus = {})); +/** + * Type of operation + */ +var ReviewEventOperation; +(function (ReviewEventOperation) { + ReviewEventOperation[ReviewEventOperation["Create"] = 1] = "Create"; + ReviewEventOperation[ReviewEventOperation["Update"] = 2] = "Update"; + ReviewEventOperation[ReviewEventOperation["Delete"] = 3] = "Delete"; +})(ReviewEventOperation = exports.ReviewEventOperation || (exports.ReviewEventOperation = {})); +/** + * Options to GetReviews query + */ +var ReviewFilterOptions; +(function (ReviewFilterOptions) { + /** + * No filtering, all reviews are returned (default option) + */ + ReviewFilterOptions[ReviewFilterOptions["None"] = 0] = "None"; + /** + * Filter out review items with empty review text + */ + ReviewFilterOptions[ReviewFilterOptions["FilterEmptyReviews"] = 1] = "FilterEmptyReviews"; + /** + * Filter out review items with empty usernames + */ + ReviewFilterOptions[ReviewFilterOptions["FilterEmptyUserNames"] = 2] = "FilterEmptyUserNames"; +})(ReviewFilterOptions = exports.ReviewFilterOptions || (exports.ReviewFilterOptions = {})); +/** + * Denotes the patch operation type + */ +var ReviewPatchOperation; +(function (ReviewPatchOperation) { + /** + * Flag a review + */ + ReviewPatchOperation[ReviewPatchOperation["FlagReview"] = 1] = "FlagReview"; + /** + * Update an existing review + */ + ReviewPatchOperation[ReviewPatchOperation["UpdateReview"] = 2] = "UpdateReview"; + /** + * Submit a reply for a review + */ + ReviewPatchOperation[ReviewPatchOperation["ReplyToReview"] = 3] = "ReplyToReview"; + /** + * Submit an admin response + */ + ReviewPatchOperation[ReviewPatchOperation["AdminResponseForReview"] = 4] = "AdminResponseForReview"; + /** + * Delete an Admin Reply + */ + ReviewPatchOperation[ReviewPatchOperation["DeleteAdminReply"] = 5] = "DeleteAdminReply"; + /** + * Delete Publisher Reply + */ + ReviewPatchOperation[ReviewPatchOperation["DeletePublisherReply"] = 6] = "DeletePublisherReply"; +})(ReviewPatchOperation = exports.ReviewPatchOperation || (exports.ReviewPatchOperation = {})); +/** + * Type of event + */ +var ReviewResourceType; +(function (ReviewResourceType) { + ReviewResourceType[ReviewResourceType["Review"] = 1] = "Review"; + ReviewResourceType[ReviewResourceType["PublisherReply"] = 2] = "PublisherReply"; + ReviewResourceType[ReviewResourceType["AdminReply"] = 3] = "AdminReply"; +})(ReviewResourceType = exports.ReviewResourceType || (exports.ReviewResourceType = {})); +/** + * Defines the sort order that can be defined for Extensions query + */ +var SortByType; +(function (SortByType) { + /** + * The results will be sorted by relevance in case search query is given, if no search query resutls will be provided as is + */ + SortByType[SortByType["Relevance"] = 0] = "Relevance"; + /** + * The results will be sorted as per Last Updated date of the extensions with recently updated at the top + */ + SortByType[SortByType["LastUpdatedDate"] = 1] = "LastUpdatedDate"; + /** + * Results will be sorted Alphabetically as per the title of the extension + */ + SortByType[SortByType["Title"] = 2] = "Title"; + /** + * Results will be sorted Alphabetically as per Publisher title + */ + SortByType[SortByType["Publisher"] = 3] = "Publisher"; + /** + * Results will be sorted by Install Count + */ + SortByType[SortByType["InstallCount"] = 4] = "InstallCount"; + /** + * The results will be sorted as per Published date of the extensions + */ + SortByType[SortByType["PublishedDate"] = 5] = "PublishedDate"; + /** + * The results will be sorted as per Average ratings of the extensions + */ + SortByType[SortByType["AverageRating"] = 6] = "AverageRating"; + /** + * The results will be sorted as per Trending Daily Score of the extensions + */ + SortByType[SortByType["TrendingDaily"] = 7] = "TrendingDaily"; + /** + * The results will be sorted as per Trending weekly Score of the extensions + */ + SortByType[SortByType["TrendingWeekly"] = 8] = "TrendingWeekly"; + /** + * The results will be sorted as per Trending monthly Score of the extensions + */ + SortByType[SortByType["TrendingMonthly"] = 9] = "TrendingMonthly"; + /** + * The results will be sorted as per ReleaseDate of the extensions (date on which the extension first went public) + */ + SortByType[SortByType["ReleaseDate"] = 10] = "ReleaseDate"; + /** + * The results will be sorted as per Author defined in the VSix/Metadata. If not defined, publisher name is used This is specifically needed by VS IDE, other (new and old) clients are not encouraged to use this + */ + SortByType[SortByType["Author"] = 11] = "Author"; + /** + * The results will be sorted as per Weighted Rating of the extension. + */ + SortByType[SortByType["WeightedRating"] = 12] = "WeightedRating"; +})(SortByType = exports.SortByType || (exports.SortByType = {})); +/** + * Defines the sort order that can be defined for Extensions query + */ +var SortOrderType; +(function (SortOrderType) { + /** + * Results will be sorted in the default order as per the sorting type defined. The default varies for each type, e.g. for Relevance, default is Descending, for Title default is Ascending etc. + */ + SortOrderType[SortOrderType["Default"] = 0] = "Default"; + /** + * The results will be sorted in Ascending order + */ + SortOrderType[SortOrderType["Ascending"] = 1] = "Ascending"; + /** + * The results will be sorted in Descending order + */ + SortOrderType[SortOrderType["Descending"] = 2] = "Descending"; +})(SortOrderType = exports.SortOrderType || (exports.SortOrderType = {})); +exports.TypeInfo = { + AcquisitionAssignmentType: { + enumValues: { + "none": 0, + "me": 1, + "all": 2 + } + }, + AcquisitionOperation: {}, + AcquisitionOperationState: { + enumValues: { + "disallow": 0, + "allow": 1, + "completed": 3 + } + }, + AcquisitionOperationType: { + enumValues: { + "get": 0, + "install": 1, + "buy": 2, + "try": 3, + "request": 4, + "none": 5, + "purchaseRequest": 6 + } + }, + AcquisitionOptions: {}, + AzureRestApiResponseModel: {}, + Concern: {}, + ConcernCategory: { + enumValues: { + "general": 1, + "abusive": 2, + "spam": 4 + } + }, + CustomerLastContact: {}, + CustomerSupportRequest: {}, + DraftPatchOperation: { + enumValues: { + "publish": 1, + "cancel": 2 + } + }, + DraftStateType: { + enumValues: { + "unpublished": 1, + "published": 2, + "cancelled": 3, + "error": 4 + } + }, + ExtensionAcquisitionRequest: {}, + ExtensionDailyStat: {}, + ExtensionDailyStats: {}, + ExtensionDeploymentTechnology: { + enumValues: { + "exe": 1, + "msi": 2, + "vsix": 3, + "referralLink": 4 + } + }, + ExtensionDraft: {}, + ExtensionDraftPatch: {}, + ExtensionEvent: {}, + ExtensionEvents: {}, + ExtensionFilterResult: {}, + ExtensionLifecycleEventType: { + enumValues: { + "uninstall": 1, + "install": 2, + "review": 3, + "acquisition": 4, + "sales": 5, + "other": 999 + } + }, + ExtensionPayload: {}, + ExtensionPolicy: {}, + ExtensionPolicyFlags: { + enumValues: { + "none": 0, + "private": 1, + "public": 2, + "preview": 4, + "released": 8, + "firstParty": 16, + "all": 31 + } + }, + ExtensionQuery: {}, + ExtensionQueryFilterType: { + enumValues: { + "tag": 1, + "displayName": 2, + "private": 3, + "id": 4, + "category": 5, + "contributionType": 6, + "name": 7, + "installationTarget": 8, + "featured": 9, + "searchText": 10, + "featuredInCategory": 11, + "excludeWithFlags": 12, + "includeWithFlags": 13, + "lcid": 14, + "installationTargetVersion": 15, + "installationTargetVersionRange": 16, + "vsixMetadata": 17, + "publisherName": 18, + "publisherDisplayName": 19, + "includeWithPublisherFlags": 20, + "organizationSharedWith": 21 + } + }, + ExtensionQueryFlags: { + enumValues: { + "none": 0, + "includeVersions": 1, + "includeFiles": 2, + "includeCategoryAndTags": 4, + "includeSharedAccounts": 8, + "includeVersionProperties": 16, + "excludeNonValidated": 32, + "includeInstallationTargets": 64, + "includeAssetUri": 128, + "includeStatistics": 256, + "includeLatestVersionOnly": 512, + "useFallbackAssetUri": 1024, + "includeMetadata": 2048, + "includeMinimalPayloadForVsIde": 4096, + "includeLcids": 8192, + "includeSharedOrganizations": 16384, + "allAttributes": 16863 + } + }, + ExtensionQueryResult: {}, + ExtensionStatisticOperation: { + enumValues: { + "none": 0, + "set": 1, + "increment": 2, + "decrement": 3, + "delete": 4 + } + }, + ExtensionStatisticUpdate: {}, + ExtensionStatsAggregateType: { + enumValues: { + "daily": 1 + } + }, + ExtensionVersion: {}, + ExtensionVersionFlags: { + enumValues: { + "none": 0, + "validated": 1 + } + }, + NotificationsData: {}, + NotificationTemplateType: { + enumValues: { + "reviewNotification": 1, + "qnaNotification": 2, + "customerContactNotification": 3, + "publisherMemberUpdateNotification": 4 + } + }, + PagingDirection: { + enumValues: { + "backward": 1, + "forward": 2 + } + }, + PublishedExtension: {}, + PublishedExtensionFlags: { + enumValues: { + "none": 0, + "disabled": 1, + "builtIn": 2, + "validated": 4, + "trusted": 8, + "paid": 16, + "public": 256, + "multiVersion": 512, + "system": 1024, + "preview": 2048, + "unpublished": 4096, + "trial": 8192, + "locked": 16384, + "hidden": 32768 + } + }, + Publisher: {}, + PublisherBase: {}, + PublisherFacts: {}, + PublisherFilterResult: {}, + PublisherFlags: { + enumValues: { + "unChanged": 1073741824, + "none": 0, + "disabled": 1, + "verified": 2, + "certified": 4, + "serviceFlags": 7 + } + }, + PublisherPermissions: { + enumValues: { + "read": 1, + "updateExtension": 2, + "createPublisher": 4, + "publishExtension": 8, + "admin": 16, + "trustedPartner": 32, + "privateRead": 64, + "deleteExtension": 128, + "editSettings": 256, + "viewPermissions": 512, + "managePermissions": 1024, + "deletePublisher": 2048 + } + }, + PublisherQuery: {}, + PublisherQueryFlags: { + enumValues: { + "none": 0, + "includeExtensions": 1, + "includeEmailAddress": 2 + } + }, + PublisherQueryResult: {}, + PublisherRoleAccess: { + enumValues: { + "assigned": 1, + "inherited": 2 + } + }, + PublisherRoleAssignment: {}, + PublisherState: { + enumValues: { + "none": 0, + "verificationPending": 1, + "certificationPending": 2, + "certificationRejected": 4, + "certificationRevoked": 8 + } + }, + QnAItem: {}, + QnAItemStatus: { + enumValues: { + "none": 0, + "userEditable": 1, + "publisherCreated": 2 + } + }, + QueryFilter: {}, + Question: {}, + QuestionsResult: {}, + Response: {}, + RestApiResponseStatus: { + enumValues: { + "completed": 0, + "failed": 1, + "inprogress": 2, + "skipped": 3 + } + }, + RestApiResponseStatusModel: {}, + Review: {}, + ReviewEventOperation: { + enumValues: { + "create": 1, + "update": 2, + "delete": 3 + } + }, + ReviewEventProperties: {}, + ReviewFilterOptions: { + enumValues: { + "none": 0, + "filterEmptyReviews": 1, + "filterEmptyUserNames": 2 + } + }, + ReviewPatch: {}, + ReviewPatchOperation: { + enumValues: { + "flagReview": 1, + "updateReview": 2, + "replyToReview": 3, + "adminResponseForReview": 4, + "deleteAdminReply": 5, + "deletePublisherReply": 6 + } + }, + ReviewReply: {}, + ReviewResourceType: { + enumValues: { + "review": 1, + "publisherReply": 2, + "adminReply": 3 + } + }, + ReviewsResult: {}, + SortByType: { + enumValues: { + "relevance": 0, + "lastUpdatedDate": 1, + "title": 2, + "publisher": 3, + "installCount": 4, + "publishedDate": 5, + "averageRating": 6, + "trendingDaily": 7, + "trendingWeekly": 8, + "trendingMonthly": 9, + "releaseDate": 10, + "author": 11, + "weightedRating": 12 + } + }, + SortOrderType: { + enumValues: { + "default": 0, + "ascending": 1, + "descending": 2 + } + }, + UserExtensionPolicy: {}, + UserReportedConcern: {}, +}; +exports.TypeInfo.AcquisitionOperation.fields = { + operationState: { + enumType: exports.TypeInfo.AcquisitionOperationState + }, + operationType: { + enumType: exports.TypeInfo.AcquisitionOperationType + } +}; +exports.TypeInfo.AcquisitionOptions.fields = { + defaultOperation: { + typeInfo: exports.TypeInfo.AcquisitionOperation + }, + operations: { + isArray: true, + typeInfo: exports.TypeInfo.AcquisitionOperation + } +}; +exports.TypeInfo.AzureRestApiResponseModel.fields = { + operationStatus: { + typeInfo: exports.TypeInfo.RestApiResponseStatusModel + } +}; +exports.TypeInfo.Concern.fields = { + category: { + enumType: exports.TypeInfo.ConcernCategory + }, + createdDate: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.QnAItemStatus + }, + updatedDate: { + isDate: true, + } +}; +exports.TypeInfo.CustomerLastContact.fields = { + lastContactDate: { + isDate: true, + } +}; +exports.TypeInfo.CustomerSupportRequest.fields = { + review: { + typeInfo: exports.TypeInfo.Review + } +}; +exports.TypeInfo.ExtensionAcquisitionRequest.fields = { + assignmentType: { + enumType: exports.TypeInfo.AcquisitionAssignmentType + }, + operationType: { + enumType: exports.TypeInfo.AcquisitionOperationType + } +}; +exports.TypeInfo.ExtensionDailyStat.fields = { + statisticDate: { + isDate: true, + } +}; +exports.TypeInfo.ExtensionDailyStats.fields = { + dailyStats: { + isArray: true, + typeInfo: exports.TypeInfo.ExtensionDailyStat + } +}; +exports.TypeInfo.ExtensionDraft.fields = { + createdDate: { + isDate: true, + }, + draftState: { + enumType: exports.TypeInfo.DraftStateType + }, + lastUpdated: { + isDate: true, + }, + payload: { + typeInfo: exports.TypeInfo.ExtensionPayload + } +}; +exports.TypeInfo.ExtensionDraftPatch.fields = { + operation: { + enumType: exports.TypeInfo.DraftPatchOperation + } +}; +exports.TypeInfo.ExtensionEvent.fields = { + statisticDate: { + isDate: true, + } +}; +exports.TypeInfo.ExtensionEvents.fields = { + events: { + isDictionary: true, + dictionaryValueFieldInfo: { + isArray: true, + typeInfo: exports.TypeInfo.ExtensionEvent + } + } +}; +exports.TypeInfo.ExtensionFilterResult.fields = { + extensions: { + isArray: true, + typeInfo: exports.TypeInfo.PublishedExtension + } +}; +exports.TypeInfo.ExtensionPayload.fields = { + type: { + enumType: exports.TypeInfo.ExtensionDeploymentTechnology + } +}; +exports.TypeInfo.ExtensionPolicy.fields = { + install: { + enumType: exports.TypeInfo.ExtensionPolicyFlags + }, + request: { + enumType: exports.TypeInfo.ExtensionPolicyFlags + } +}; +exports.TypeInfo.ExtensionQuery.fields = { + filters: { + isArray: true, + typeInfo: exports.TypeInfo.QueryFilter + }, + flags: { + enumType: exports.TypeInfo.ExtensionQueryFlags + } +}; +exports.TypeInfo.ExtensionQueryResult.fields = { + results: { + isArray: true, + typeInfo: exports.TypeInfo.ExtensionFilterResult + } +}; +exports.TypeInfo.ExtensionStatisticUpdate.fields = { + operation: { + enumType: exports.TypeInfo.ExtensionStatisticOperation + } +}; +exports.TypeInfo.ExtensionVersion.fields = { + flags: { + enumType: exports.TypeInfo.ExtensionVersionFlags + }, + lastUpdated: { + isDate: true, + } +}; +exports.TypeInfo.NotificationsData.fields = { + type: { + enumType: exports.TypeInfo.NotificationTemplateType + } +}; +exports.TypeInfo.PublishedExtension.fields = { + deploymentType: { + enumType: exports.TypeInfo.ExtensionDeploymentTechnology + }, + flags: { + enumType: exports.TypeInfo.PublishedExtensionFlags + }, + lastUpdated: { + isDate: true, + }, + publishedDate: { + isDate: true, + }, + publisher: { + typeInfo: exports.TypeInfo.PublisherFacts + }, + releaseDate: { + isDate: true, + }, + versions: { + isArray: true, + typeInfo: exports.TypeInfo.ExtensionVersion + } +}; +exports.TypeInfo.Publisher.fields = { + extensions: { + isArray: true, + typeInfo: exports.TypeInfo.PublishedExtension + }, + flags: { + enumType: exports.TypeInfo.PublisherFlags + }, + lastUpdated: { + isDate: true, + }, + state: { + enumType: exports.TypeInfo.PublisherState + } +}; +exports.TypeInfo.PublisherBase.fields = { + extensions: { + isArray: true, + typeInfo: exports.TypeInfo.PublishedExtension + }, + flags: { + enumType: exports.TypeInfo.PublisherFlags + }, + lastUpdated: { + isDate: true, + }, + state: { + enumType: exports.TypeInfo.PublisherState + } +}; +exports.TypeInfo.PublisherFacts.fields = { + flags: { + enumType: exports.TypeInfo.PublisherFlags + } +}; +exports.TypeInfo.PublisherFilterResult.fields = { + publishers: { + isArray: true, + typeInfo: exports.TypeInfo.Publisher + } +}; +exports.TypeInfo.PublisherQuery.fields = { + filters: { + isArray: true, + typeInfo: exports.TypeInfo.QueryFilter + }, + flags: { + enumType: exports.TypeInfo.PublisherQueryFlags + } +}; +exports.TypeInfo.PublisherQueryResult.fields = { + results: { + isArray: true, + typeInfo: exports.TypeInfo.PublisherFilterResult + } +}; +exports.TypeInfo.PublisherRoleAssignment.fields = { + access: { + enumType: exports.TypeInfo.PublisherRoleAccess + } +}; +exports.TypeInfo.QnAItem.fields = { + createdDate: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.QnAItemStatus + }, + updatedDate: { + isDate: true, + } +}; +exports.TypeInfo.QueryFilter.fields = { + direction: { + enumType: exports.TypeInfo.PagingDirection + } +}; +exports.TypeInfo.Question.fields = { + createdDate: { + isDate: true, + }, + responses: { + isArray: true, + typeInfo: exports.TypeInfo.Response + }, + status: { + enumType: exports.TypeInfo.QnAItemStatus + }, + updatedDate: { + isDate: true, + } +}; +exports.TypeInfo.QuestionsResult.fields = { + questions: { + isArray: true, + typeInfo: exports.TypeInfo.Question + } +}; +exports.TypeInfo.Response.fields = { + createdDate: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.QnAItemStatus + }, + updatedDate: { + isDate: true, + } +}; +exports.TypeInfo.RestApiResponseStatusModel.fields = { + status: { + enumType: exports.TypeInfo.RestApiResponseStatus + } +}; +exports.TypeInfo.Review.fields = { + adminReply: { + typeInfo: exports.TypeInfo.ReviewReply + }, + reply: { + typeInfo: exports.TypeInfo.ReviewReply + }, + updatedDate: { + isDate: true, + } +}; +exports.TypeInfo.ReviewEventProperties.fields = { + eventOperation: { + enumType: exports.TypeInfo.ReviewEventOperation + }, + replyDate: { + isDate: true, + }, + resourceType: { + enumType: exports.TypeInfo.ReviewResourceType + }, + reviewDate: { + isDate: true, + } +}; +exports.TypeInfo.ReviewPatch.fields = { + operation: { + enumType: exports.TypeInfo.ReviewPatchOperation + }, + reportedConcern: { + typeInfo: exports.TypeInfo.UserReportedConcern + }, + reviewItem: { + typeInfo: exports.TypeInfo.Review + } +}; +exports.TypeInfo.ReviewReply.fields = { + updatedDate: { + isDate: true, + } +}; +exports.TypeInfo.ReviewsResult.fields = { + reviews: { + isArray: true, + typeInfo: exports.TypeInfo.Review + } +}; +exports.TypeInfo.UserExtensionPolicy.fields = { + permissions: { + typeInfo: exports.TypeInfo.ExtensionPolicy + } +}; +exports.TypeInfo.UserReportedConcern.fields = { + category: { + enumType: exports.TypeInfo.ConcernCategory + }, + submittedDate: { + isDate: true, + } +}; + + +/***/ }), + +/***/ 9803: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const PolicyInterfaces = __nccwpck_require__(8555); +const TfsCoreInterfaces = __nccwpck_require__(3931); +/** + * The status of a comment thread. + */ +var CommentThreadStatus; +(function (CommentThreadStatus) { + /** + * The thread status is unknown. + */ + CommentThreadStatus[CommentThreadStatus["Unknown"] = 0] = "Unknown"; + /** + * The thread status is active. + */ + CommentThreadStatus[CommentThreadStatus["Active"] = 1] = "Active"; + /** + * The thread status is resolved as fixed. + */ + CommentThreadStatus[CommentThreadStatus["Fixed"] = 2] = "Fixed"; + /** + * The thread status is resolved as won't fix. + */ + CommentThreadStatus[CommentThreadStatus["WontFix"] = 3] = "WontFix"; + /** + * The thread status is closed. + */ + CommentThreadStatus[CommentThreadStatus["Closed"] = 4] = "Closed"; + /** + * The thread status is resolved as by design. + */ + CommentThreadStatus[CommentThreadStatus["ByDesign"] = 5] = "ByDesign"; + /** + * The thread status is pending. + */ + CommentThreadStatus[CommentThreadStatus["Pending"] = 6] = "Pending"; +})(CommentThreadStatus = exports.CommentThreadStatus || (exports.CommentThreadStatus = {})); +/** + * The type of a comment. + */ +var CommentType; +(function (CommentType) { + /** + * The comment type is not known. + */ + CommentType[CommentType["Unknown"] = 0] = "Unknown"; + /** + * This is a regular user comment. + */ + CommentType[CommentType["Text"] = 1] = "Text"; + /** + * The comment comes as a result of a code change. + */ + CommentType[CommentType["CodeChange"] = 2] = "CodeChange"; + /** + * The comment represents a system message. + */ + CommentType[CommentType["System"] = 3] = "System"; +})(CommentType = exports.CommentType || (exports.CommentType = {})); +/** + * Current status of the asynchronous operation. + */ +var GitAsyncOperationStatus; +(function (GitAsyncOperationStatus) { + /** + * The operation is waiting in a queue and has not yet started. + */ + GitAsyncOperationStatus[GitAsyncOperationStatus["Queued"] = 1] = "Queued"; + /** + * The operation is currently in progress. + */ + GitAsyncOperationStatus[GitAsyncOperationStatus["InProgress"] = 2] = "InProgress"; + /** + * The operation has completed. + */ + GitAsyncOperationStatus[GitAsyncOperationStatus["Completed"] = 3] = "Completed"; + /** + * The operation has failed. Check for an error message. + */ + GitAsyncOperationStatus[GitAsyncOperationStatus["Failed"] = 4] = "Failed"; + /** + * The operation has been abandoned. + */ + GitAsyncOperationStatus[GitAsyncOperationStatus["Abandoned"] = 5] = "Abandoned"; +})(GitAsyncOperationStatus = exports.GitAsyncOperationStatus || (exports.GitAsyncOperationStatus = {})); +var GitAsyncRefOperationFailureStatus; +(function (GitAsyncRefOperationFailureStatus) { + /** + * No status + */ + GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus["None"] = 0] = "None"; + /** + * Indicates that the ref update request could not be completed because the ref name presented in the request was not valid. + */ + GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus["InvalidRefName"] = 1] = "InvalidRefName"; + /** + * The ref update could not be completed because, in case-insensitive mode, the ref name conflicts with an existing, differently-cased ref name. + */ + GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus["RefNameConflict"] = 2] = "RefNameConflict"; + /** + * The ref update request could not be completed because the user lacks the permission to create a branch + */ + GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus["CreateBranchPermissionRequired"] = 3] = "CreateBranchPermissionRequired"; + /** + * The ref update request could not be completed because the user lacks write permissions required to write this ref + */ + GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus["WritePermissionRequired"] = 4] = "WritePermissionRequired"; + /** + * Target branch was deleted after Git async operation started + */ + GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus["TargetBranchDeleted"] = 5] = "TargetBranchDeleted"; + /** + * Git object is too large to materialize into memory + */ + GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus["GitObjectTooLarge"] = 6] = "GitObjectTooLarge"; + /** + * Identity who authorized the operation was not found + */ + GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus["OperationIndentityNotFound"] = 7] = "OperationIndentityNotFound"; + /** + * Async operation was not found + */ + GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus["AsyncOperationNotFound"] = 8] = "AsyncOperationNotFound"; + /** + * Unexpected failure + */ + GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus["Other"] = 9] = "Other"; + /** + * Initiator of async operation has signature with empty name or email + */ + GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus["EmptyCommitterSignature"] = 10] = "EmptyCommitterSignature"; +})(GitAsyncRefOperationFailureStatus = exports.GitAsyncRefOperationFailureStatus || (exports.GitAsyncRefOperationFailureStatus = {})); +/** + * The type of a merge conflict. + */ +var GitConflictType; +(function (GitConflictType) { + /** + * No conflict + */ + GitConflictType[GitConflictType["None"] = 0] = "None"; + /** + * Added on source and target; content differs + */ + GitConflictType[GitConflictType["AddAdd"] = 1] = "AddAdd"; + /** + * Added on source and rename destination on target + */ + GitConflictType[GitConflictType["AddRename"] = 2] = "AddRename"; + /** + * Deleted on source and edited on target + */ + GitConflictType[GitConflictType["DeleteEdit"] = 3] = "DeleteEdit"; + /** + * Deleted on source and renamed on target + */ + GitConflictType[GitConflictType["DeleteRename"] = 4] = "DeleteRename"; + /** + * Path is a directory on source and a file on target + */ + GitConflictType[GitConflictType["DirectoryFile"] = 5] = "DirectoryFile"; + /** + * Children of directory which has DirectoryFile or FileDirectory conflict + */ + GitConflictType[GitConflictType["DirectoryChild"] = 6] = "DirectoryChild"; + /** + * Edited on source and deleted on target + */ + GitConflictType[GitConflictType["EditDelete"] = 7] = "EditDelete"; + /** + * Edited on source and target; content differs + */ + GitConflictType[GitConflictType["EditEdit"] = 8] = "EditEdit"; + /** + * Path is a file on source and a directory on target + */ + GitConflictType[GitConflictType["FileDirectory"] = 9] = "FileDirectory"; + /** + * Same file renamed on both source and target; destination paths differ + */ + GitConflictType[GitConflictType["Rename1to2"] = 10] = "Rename1to2"; + /** + * Different files renamed to same destination path on both source and target + */ + GitConflictType[GitConflictType["Rename2to1"] = 11] = "Rename2to1"; + /** + * Rename destination on source and new file on target + */ + GitConflictType[GitConflictType["RenameAdd"] = 12] = "RenameAdd"; + /** + * Renamed on source and deleted on target + */ + GitConflictType[GitConflictType["RenameDelete"] = 13] = "RenameDelete"; + /** + * Rename destination on both source and target; content differs + */ + GitConflictType[GitConflictType["RenameRename"] = 14] = "RenameRename"; +})(GitConflictType = exports.GitConflictType || (exports.GitConflictType = {})); +/** + * Represents the possible outcomes from a request to update a pull request conflict + */ +var GitConflictUpdateStatus; +(function (GitConflictUpdateStatus) { + /** + * Indicates that pull request conflict update request was completed successfully + */ + GitConflictUpdateStatus[GitConflictUpdateStatus["Succeeded"] = 0] = "Succeeded"; + /** + * Indicates that the update request did not fit the expected data contract + */ + GitConflictUpdateStatus[GitConflictUpdateStatus["BadRequest"] = 1] = "BadRequest"; + /** + * Indicates that the requested resolution was not valid + */ + GitConflictUpdateStatus[GitConflictUpdateStatus["InvalidResolution"] = 2] = "InvalidResolution"; + /** + * Indicates that the conflict in the update request was not a supported conflict type + */ + GitConflictUpdateStatus[GitConflictUpdateStatus["UnsupportedConflictType"] = 3] = "UnsupportedConflictType"; + /** + * Indicates that the conflict could not be found + */ + GitConflictUpdateStatus[GitConflictUpdateStatus["NotFound"] = 4] = "NotFound"; +})(GitConflictUpdateStatus = exports.GitConflictUpdateStatus || (exports.GitConflictUpdateStatus = {})); +/** + * Accepted types of version + */ +var GitHistoryMode; +(function (GitHistoryMode) { + /** + * The history mode used by `git log`. This is the default. + */ + GitHistoryMode[GitHistoryMode["SimplifiedHistory"] = 0] = "SimplifiedHistory"; + /** + * The history mode used by `git log --first-parent` + */ + GitHistoryMode[GitHistoryMode["FirstParent"] = 1] = "FirstParent"; + /** + * The history mode used by `git log --full-history` + */ + GitHistoryMode[GitHistoryMode["FullHistory"] = 2] = "FullHistory"; + /** + * The history mode used by `git log --full-history --simplify-merges` + */ + GitHistoryMode[GitHistoryMode["FullHistorySimplifyMerges"] = 3] = "FullHistorySimplifyMerges"; +})(GitHistoryMode = exports.GitHistoryMode || (exports.GitHistoryMode = {})); +var GitObjectType; +(function (GitObjectType) { + GitObjectType[GitObjectType["Bad"] = 0] = "Bad"; + GitObjectType[GitObjectType["Commit"] = 1] = "Commit"; + GitObjectType[GitObjectType["Tree"] = 2] = "Tree"; + GitObjectType[GitObjectType["Blob"] = 3] = "Blob"; + GitObjectType[GitObjectType["Tag"] = 4] = "Tag"; + GitObjectType[GitObjectType["Ext2"] = 5] = "Ext2"; + GitObjectType[GitObjectType["OfsDelta"] = 6] = "OfsDelta"; + GitObjectType[GitObjectType["RefDelta"] = 7] = "RefDelta"; +})(GitObjectType = exports.GitObjectType || (exports.GitObjectType = {})); +var GitPathActions; +(function (GitPathActions) { + GitPathActions[GitPathActions["None"] = 0] = "None"; + GitPathActions[GitPathActions["Edit"] = 1] = "Edit"; + GitPathActions[GitPathActions["Delete"] = 2] = "Delete"; + GitPathActions[GitPathActions["Add"] = 3] = "Add"; + GitPathActions[GitPathActions["Rename"] = 4] = "Rename"; +})(GitPathActions = exports.GitPathActions || (exports.GitPathActions = {})); +/** + * Enumeration of possible merge strategies which can be used to complete a pull request. + */ +var GitPullRequestMergeStrategy; +(function (GitPullRequestMergeStrategy) { + /** + * A two-parent, no-fast-forward merge. The source branch is unchanged. This is the default behavior. + */ + GitPullRequestMergeStrategy[GitPullRequestMergeStrategy["NoFastForward"] = 1] = "NoFastForward"; + /** + * Put all changes from the pull request into a single-parent commit. + */ + GitPullRequestMergeStrategy[GitPullRequestMergeStrategy["Squash"] = 2] = "Squash"; + /** + * Rebase the source branch on top of the target branch HEAD commit, and fast-forward the target branch. The source branch is updated during the rebase operation. + */ + GitPullRequestMergeStrategy[GitPullRequestMergeStrategy["Rebase"] = 3] = "Rebase"; + /** + * Rebase the source branch on top of the target branch HEAD commit, and create a two-parent, no-fast-forward merge. The source branch is updated during the rebase operation. + */ + GitPullRequestMergeStrategy[GitPullRequestMergeStrategy["RebaseMerge"] = 4] = "RebaseMerge"; +})(GitPullRequestMergeStrategy = exports.GitPullRequestMergeStrategy || (exports.GitPullRequestMergeStrategy = {})); +/** + * Accepted types of pull request queries. + */ +var GitPullRequestQueryType; +(function (GitPullRequestQueryType) { + /** + * No query type set. + */ + GitPullRequestQueryType[GitPullRequestQueryType["NotSet"] = 0] = "NotSet"; + /** + * Search for pull requests that created the supplied merge commits. + */ + GitPullRequestQueryType[GitPullRequestQueryType["LastMergeCommit"] = 1] = "LastMergeCommit"; + /** + * Search for pull requests that merged the supplied commits. + */ + GitPullRequestQueryType[GitPullRequestQueryType["Commit"] = 2] = "Commit"; +})(GitPullRequestQueryType = exports.GitPullRequestQueryType || (exports.GitPullRequestQueryType = {})); +var GitPullRequestReviewFileType; +(function (GitPullRequestReviewFileType) { + GitPullRequestReviewFileType[GitPullRequestReviewFileType["ChangeEntry"] = 0] = "ChangeEntry"; + GitPullRequestReviewFileType[GitPullRequestReviewFileType["Attachment"] = 1] = "Attachment"; +})(GitPullRequestReviewFileType = exports.GitPullRequestReviewFileType || (exports.GitPullRequestReviewFileType = {})); +/** + * Search type on ref name + */ +var GitRefSearchType; +(function (GitRefSearchType) { + GitRefSearchType[GitRefSearchType["Exact"] = 0] = "Exact"; + GitRefSearchType[GitRefSearchType["StartsWith"] = 1] = "StartsWith"; + GitRefSearchType[GitRefSearchType["Contains"] = 2] = "Contains"; +})(GitRefSearchType = exports.GitRefSearchType || (exports.GitRefSearchType = {})); +/** + * Enumerates the modes under which ref updates can be written to their repositories. + */ +var GitRefUpdateMode; +(function (GitRefUpdateMode) { + /** + * Indicates the Git protocol model where any refs that can be updated will be updated, but any failures will not prevent other updates from succeeding. + */ + GitRefUpdateMode[GitRefUpdateMode["BestEffort"] = 0] = "BestEffort"; + /** + * Indicates that all ref updates must succeed or none will succeed. All ref updates will be atomically written. If any failure is encountered, previously successful updates will be rolled back and the entire operation will fail. + */ + GitRefUpdateMode[GitRefUpdateMode["AllOrNone"] = 1] = "AllOrNone"; +})(GitRefUpdateMode = exports.GitRefUpdateMode || (exports.GitRefUpdateMode = {})); +/** + * Represents the possible outcomes from a request to update a ref in a repository. + */ +var GitRefUpdateStatus; +(function (GitRefUpdateStatus) { + /** + * Indicates that the ref update request was completed successfully. + */ + GitRefUpdateStatus[GitRefUpdateStatus["Succeeded"] = 0] = "Succeeded"; + /** + * Indicates that the ref update request could not be completed because part of the graph would be disconnected by this change, and the caller does not have ForcePush permission on the repository. + */ + GitRefUpdateStatus[GitRefUpdateStatus["ForcePushRequired"] = 1] = "ForcePushRequired"; + /** + * Indicates that the ref update request could not be completed because the old object ID presented in the request was not the object ID of the ref when the database attempted the update. The most likely scenario is that the caller lost a race to update the ref. + */ + GitRefUpdateStatus[GitRefUpdateStatus["StaleOldObjectId"] = 2] = "StaleOldObjectId"; + /** + * Indicates that the ref update request could not be completed because the ref name presented in the request was not valid. + */ + GitRefUpdateStatus[GitRefUpdateStatus["InvalidRefName"] = 3] = "InvalidRefName"; + /** + * The request was not processed + */ + GitRefUpdateStatus[GitRefUpdateStatus["Unprocessed"] = 4] = "Unprocessed"; + /** + * The ref update request could not be completed because the new object ID for the ref could not be resolved to a commit object (potentially through any number of tags) + */ + GitRefUpdateStatus[GitRefUpdateStatus["UnresolvableToCommit"] = 5] = "UnresolvableToCommit"; + /** + * The ref update request could not be completed because the user lacks write permissions required to write this ref + */ + GitRefUpdateStatus[GitRefUpdateStatus["WritePermissionRequired"] = 6] = "WritePermissionRequired"; + /** + * The ref update request could not be completed because the user lacks note creation permissions required to write this note + */ + GitRefUpdateStatus[GitRefUpdateStatus["ManageNotePermissionRequired"] = 7] = "ManageNotePermissionRequired"; + /** + * The ref update request could not be completed because the user lacks the permission to create a branch + */ + GitRefUpdateStatus[GitRefUpdateStatus["CreateBranchPermissionRequired"] = 8] = "CreateBranchPermissionRequired"; + /** + * The ref update request could not be completed because the user lacks the permission to create a tag + */ + GitRefUpdateStatus[GitRefUpdateStatus["CreateTagPermissionRequired"] = 9] = "CreateTagPermissionRequired"; + /** + * The ref update could not be completed because it was rejected by the plugin. + */ + GitRefUpdateStatus[GitRefUpdateStatus["RejectedByPlugin"] = 10] = "RejectedByPlugin"; + /** + * The ref update could not be completed because the ref is locked by another user. + */ + GitRefUpdateStatus[GitRefUpdateStatus["Locked"] = 11] = "Locked"; + /** + * The ref update could not be completed because, in case-insensitive mode, the ref name conflicts with an existing, differently-cased ref name. + */ + GitRefUpdateStatus[GitRefUpdateStatus["RefNameConflict"] = 12] = "RefNameConflict"; + /** + * The ref update could not be completed because it was rejected by policy. + */ + GitRefUpdateStatus[GitRefUpdateStatus["RejectedByPolicy"] = 13] = "RejectedByPolicy"; + /** + * Indicates that the ref update request was completed successfully, but the ref doesn't actually exist so no changes were made. This should only happen during deletes. + */ + GitRefUpdateStatus[GitRefUpdateStatus["SucceededNonExistentRef"] = 14] = "SucceededNonExistentRef"; + /** + * Indicates that the ref update request was completed successfully, but the passed-in ref was corrupt - as in, the old object ID was bad. This should only happen during deletes. + */ + GitRefUpdateStatus[GitRefUpdateStatus["SucceededCorruptRef"] = 15] = "SucceededCorruptRef"; +})(GitRefUpdateStatus = exports.GitRefUpdateStatus || (exports.GitRefUpdateStatus = {})); +/** + * The type of a merge conflict. + */ +var GitResolutionError; +(function (GitResolutionError) { + /** + * No error + */ + GitResolutionError[GitResolutionError["None"] = 0] = "None"; + /** + * User set a blob id for resolving a content merge, but blob was not found in repo during application + */ + GitResolutionError[GitResolutionError["MergeContentNotFound"] = 1] = "MergeContentNotFound"; + /** + * Attempted to resolve a conflict by moving a file to another path, but path was already in use + */ + GitResolutionError[GitResolutionError["PathInUse"] = 2] = "PathInUse"; + /** + * No error + */ + GitResolutionError[GitResolutionError["InvalidPath"] = 3] = "InvalidPath"; + /** + * GitResolutionAction was set to an unrecognized value + */ + GitResolutionError[GitResolutionError["UnknownAction"] = 4] = "UnknownAction"; + /** + * GitResolutionMergeType was set to an unrecognized value + */ + GitResolutionError[GitResolutionError["UnknownMergeType"] = 5] = "UnknownMergeType"; + /** + * Any error for which a more specific code doesn't apply + */ + GitResolutionError[GitResolutionError["OtherError"] = 255] = "OtherError"; +})(GitResolutionError = exports.GitResolutionError || (exports.GitResolutionError = {})); +var GitResolutionMergeType; +(function (GitResolutionMergeType) { + GitResolutionMergeType[GitResolutionMergeType["Undecided"] = 0] = "Undecided"; + GitResolutionMergeType[GitResolutionMergeType["TakeSourceContent"] = 1] = "TakeSourceContent"; + GitResolutionMergeType[GitResolutionMergeType["TakeTargetContent"] = 2] = "TakeTargetContent"; + GitResolutionMergeType[GitResolutionMergeType["AutoMerged"] = 3] = "AutoMerged"; + GitResolutionMergeType[GitResolutionMergeType["UserMerged"] = 4] = "UserMerged"; +})(GitResolutionMergeType = exports.GitResolutionMergeType || (exports.GitResolutionMergeType = {})); +var GitResolutionPathConflictAction; +(function (GitResolutionPathConflictAction) { + GitResolutionPathConflictAction[GitResolutionPathConflictAction["Undecided"] = 0] = "Undecided"; + GitResolutionPathConflictAction[GitResolutionPathConflictAction["KeepSourceRenameTarget"] = 1] = "KeepSourceRenameTarget"; + GitResolutionPathConflictAction[GitResolutionPathConflictAction["KeepSourceDeleteTarget"] = 2] = "KeepSourceDeleteTarget"; + GitResolutionPathConflictAction[GitResolutionPathConflictAction["KeepTargetRenameSource"] = 3] = "KeepTargetRenameSource"; + GitResolutionPathConflictAction[GitResolutionPathConflictAction["KeepTargetDeleteSource"] = 4] = "KeepTargetDeleteSource"; +})(GitResolutionPathConflictAction = exports.GitResolutionPathConflictAction || (exports.GitResolutionPathConflictAction = {})); +var GitResolutionRename1to2Action; +(function (GitResolutionRename1to2Action) { + GitResolutionRename1to2Action[GitResolutionRename1to2Action["Undecided"] = 0] = "Undecided"; + GitResolutionRename1to2Action[GitResolutionRename1to2Action["KeepSourcePath"] = 1] = "KeepSourcePath"; + GitResolutionRename1to2Action[GitResolutionRename1to2Action["KeepTargetPath"] = 2] = "KeepTargetPath"; + GitResolutionRename1to2Action[GitResolutionRename1to2Action["KeepBothFiles"] = 3] = "KeepBothFiles"; +})(GitResolutionRename1to2Action = exports.GitResolutionRename1to2Action || (exports.GitResolutionRename1to2Action = {})); +/** + * Resolution status of a conflict. + */ +var GitResolutionStatus; +(function (GitResolutionStatus) { + GitResolutionStatus[GitResolutionStatus["Unresolved"] = 0] = "Unresolved"; + GitResolutionStatus[GitResolutionStatus["PartiallyResolved"] = 1] = "PartiallyResolved"; + GitResolutionStatus[GitResolutionStatus["Resolved"] = 2] = "Resolved"; +})(GitResolutionStatus = exports.GitResolutionStatus || (exports.GitResolutionStatus = {})); +var GitResolutionWhichAction; +(function (GitResolutionWhichAction) { + GitResolutionWhichAction[GitResolutionWhichAction["Undecided"] = 0] = "Undecided"; + GitResolutionWhichAction[GitResolutionWhichAction["PickSourceAction"] = 1] = "PickSourceAction"; + GitResolutionWhichAction[GitResolutionWhichAction["PickTargetAction"] = 2] = "PickTargetAction"; +})(GitResolutionWhichAction = exports.GitResolutionWhichAction || (exports.GitResolutionWhichAction = {})); +/** + * State of the status. + */ +var GitStatusState; +(function (GitStatusState) { + /** + * Status state not set. Default state. + */ + GitStatusState[GitStatusState["NotSet"] = 0] = "NotSet"; + /** + * Status pending. + */ + GitStatusState[GitStatusState["Pending"] = 1] = "Pending"; + /** + * Status succeeded. + */ + GitStatusState[GitStatusState["Succeeded"] = 2] = "Succeeded"; + /** + * Status failed. + */ + GitStatusState[GitStatusState["Failed"] = 3] = "Failed"; + /** + * Status with an error. + */ + GitStatusState[GitStatusState["Error"] = 4] = "Error"; + /** + * Status is not applicable to the target object. + */ + GitStatusState[GitStatusState["NotApplicable"] = 5] = "NotApplicable"; +})(GitStatusState = exports.GitStatusState || (exports.GitStatusState = {})); +/** + * Accepted types of version options + */ +var GitVersionOptions; +(function (GitVersionOptions) { + /** + * Not specified + */ + GitVersionOptions[GitVersionOptions["None"] = 0] = "None"; + /** + * Commit that changed item prior to the current version + */ + GitVersionOptions[GitVersionOptions["PreviousChange"] = 1] = "PreviousChange"; + /** + * First parent of commit (HEAD^) + */ + GitVersionOptions[GitVersionOptions["FirstParent"] = 2] = "FirstParent"; +})(GitVersionOptions = exports.GitVersionOptions || (exports.GitVersionOptions = {})); +/** + * Accepted types of version + */ +var GitVersionType; +(function (GitVersionType) { + /** + * Interpret the version as a branch name + */ + GitVersionType[GitVersionType["Branch"] = 0] = "Branch"; + /** + * Interpret the version as a tag name + */ + GitVersionType[GitVersionType["Tag"] = 1] = "Tag"; + /** + * Interpret the version as a commit ID (SHA1) + */ + GitVersionType[GitVersionType["Commit"] = 2] = "Commit"; +})(GitVersionType = exports.GitVersionType || (exports.GitVersionType = {})); +var ItemContentType; +(function (ItemContentType) { + ItemContentType[ItemContentType["RawText"] = 0] = "RawText"; + ItemContentType[ItemContentType["Base64Encoded"] = 1] = "Base64Encoded"; +})(ItemContentType = exports.ItemContentType || (exports.ItemContentType = {})); +/** + * The reason for which the pull request iteration was created. + */ +var IterationReason; +(function (IterationReason) { + IterationReason[IterationReason["Push"] = 0] = "Push"; + IterationReason[IterationReason["ForcePush"] = 1] = "ForcePush"; + IterationReason[IterationReason["Create"] = 2] = "Create"; + IterationReason[IterationReason["Rebase"] = 4] = "Rebase"; + IterationReason[IterationReason["Unknown"] = 8] = "Unknown"; + IterationReason[IterationReason["Retarget"] = 16] = "Retarget"; +})(IterationReason = exports.IterationReason || (exports.IterationReason = {})); +/** + * Type of change for a line diff block + */ +var LineDiffBlockChangeType; +(function (LineDiffBlockChangeType) { + /** + * No change - both the blocks are identical + */ + LineDiffBlockChangeType[LineDiffBlockChangeType["None"] = 0] = "None"; + /** + * Lines were added to the block in the modified file + */ + LineDiffBlockChangeType[LineDiffBlockChangeType["Add"] = 1] = "Add"; + /** + * Lines were deleted from the block in the original file + */ + LineDiffBlockChangeType[LineDiffBlockChangeType["Delete"] = 2] = "Delete"; + /** + * Lines were modified + */ + LineDiffBlockChangeType[LineDiffBlockChangeType["Edit"] = 3] = "Edit"; +})(LineDiffBlockChangeType = exports.LineDiffBlockChangeType || (exports.LineDiffBlockChangeType = {})); +/** + * The status of a pull request merge. + */ +var PullRequestAsyncStatus; +(function (PullRequestAsyncStatus) { + /** + * Status is not set. Default state. + */ + PullRequestAsyncStatus[PullRequestAsyncStatus["NotSet"] = 0] = "NotSet"; + /** + * Pull request merge is queued. + */ + PullRequestAsyncStatus[PullRequestAsyncStatus["Queued"] = 1] = "Queued"; + /** + * Pull request merge failed due to conflicts. + */ + PullRequestAsyncStatus[PullRequestAsyncStatus["Conflicts"] = 2] = "Conflicts"; + /** + * Pull request merge succeeded. + */ + PullRequestAsyncStatus[PullRequestAsyncStatus["Succeeded"] = 3] = "Succeeded"; + /** + * Pull request merge rejected by policy. + */ + PullRequestAsyncStatus[PullRequestAsyncStatus["RejectedByPolicy"] = 4] = "RejectedByPolicy"; + /** + * Pull request merge failed. + */ + PullRequestAsyncStatus[PullRequestAsyncStatus["Failure"] = 5] = "Failure"; +})(PullRequestAsyncStatus = exports.PullRequestAsyncStatus || (exports.PullRequestAsyncStatus = {})); +/** + * The specific type of a pull request merge failure. + */ +var PullRequestMergeFailureType; +(function (PullRequestMergeFailureType) { + /** + * Type is not set. Default type. + */ + PullRequestMergeFailureType[PullRequestMergeFailureType["None"] = 0] = "None"; + /** + * Pull request merge failure type unknown. + */ + PullRequestMergeFailureType[PullRequestMergeFailureType["Unknown"] = 1] = "Unknown"; + /** + * Pull request merge failed due to case mismatch. + */ + PullRequestMergeFailureType[PullRequestMergeFailureType["CaseSensitive"] = 2] = "CaseSensitive"; + /** + * Pull request merge failed due to an object being too large. + */ + PullRequestMergeFailureType[PullRequestMergeFailureType["ObjectTooLarge"] = 3] = "ObjectTooLarge"; +})(PullRequestMergeFailureType = exports.PullRequestMergeFailureType || (exports.PullRequestMergeFailureType = {})); +/** + * Status of a pull request. + */ +var PullRequestStatus; +(function (PullRequestStatus) { + /** + * Status not set. Default state. + */ + PullRequestStatus[PullRequestStatus["NotSet"] = 0] = "NotSet"; + /** + * Pull request is active. + */ + PullRequestStatus[PullRequestStatus["Active"] = 1] = "Active"; + /** + * Pull request is abandoned. + */ + PullRequestStatus[PullRequestStatus["Abandoned"] = 2] = "Abandoned"; + /** + * Pull request is completed. + */ + PullRequestStatus[PullRequestStatus["Completed"] = 3] = "Completed"; + /** + * Used in pull request search criteria to include all statuses. + */ + PullRequestStatus[PullRequestStatus["All"] = 4] = "All"; +})(PullRequestStatus = exports.PullRequestStatus || (exports.PullRequestStatus = {})); +var RefFavoriteType; +(function (RefFavoriteType) { + RefFavoriteType[RefFavoriteType["Invalid"] = 0] = "Invalid"; + RefFavoriteType[RefFavoriteType["Folder"] = 1] = "Folder"; + RefFavoriteType[RefFavoriteType["Ref"] = 2] = "Ref"; +})(RefFavoriteType = exports.RefFavoriteType || (exports.RefFavoriteType = {})); +/** + * Enumeration that represents the types of IDEs supported. + */ +var SupportedIdeType; +(function (SupportedIdeType) { + SupportedIdeType[SupportedIdeType["Unknown"] = 0] = "Unknown"; + SupportedIdeType[SupportedIdeType["AndroidStudio"] = 1] = "AndroidStudio"; + SupportedIdeType[SupportedIdeType["AppCode"] = 2] = "AppCode"; + SupportedIdeType[SupportedIdeType["CLion"] = 3] = "CLion"; + SupportedIdeType[SupportedIdeType["DataGrip"] = 4] = "DataGrip"; + SupportedIdeType[SupportedIdeType["Eclipse"] = 13] = "Eclipse"; + SupportedIdeType[SupportedIdeType["IntelliJ"] = 5] = "IntelliJ"; + SupportedIdeType[SupportedIdeType["MPS"] = 6] = "MPS"; + SupportedIdeType[SupportedIdeType["PhpStorm"] = 7] = "PhpStorm"; + SupportedIdeType[SupportedIdeType["PyCharm"] = 8] = "PyCharm"; + SupportedIdeType[SupportedIdeType["RubyMine"] = 9] = "RubyMine"; + SupportedIdeType[SupportedIdeType["Tower"] = 10] = "Tower"; + SupportedIdeType[SupportedIdeType["VisualStudio"] = 11] = "VisualStudio"; + SupportedIdeType[SupportedIdeType["VSCode"] = 14] = "VSCode"; + SupportedIdeType[SupportedIdeType["WebStorm"] = 12] = "WebStorm"; +})(SupportedIdeType = exports.SupportedIdeType || (exports.SupportedIdeType = {})); +/** + * Options for Version handling. + */ +var TfvcVersionOption; +(function (TfvcVersionOption) { + /** + * None. + */ + TfvcVersionOption[TfvcVersionOption["None"] = 0] = "None"; + /** + * Return the previous version. + */ + TfvcVersionOption[TfvcVersionOption["Previous"] = 1] = "Previous"; + /** + * Only usuable with versiontype MergeSource and integer versions, uses RenameSource identifier instead of Merge identifier. + */ + TfvcVersionOption[TfvcVersionOption["UseRename"] = 2] = "UseRename"; +})(TfvcVersionOption = exports.TfvcVersionOption || (exports.TfvcVersionOption = {})); +/** + * Type of Version object + */ +var TfvcVersionType; +(function (TfvcVersionType) { + /** + * Version is treated as a ChangesetId. + */ + TfvcVersionType[TfvcVersionType["None"] = 0] = "None"; + /** + * Version is treated as a ChangesetId. + */ + TfvcVersionType[TfvcVersionType["Changeset"] = 1] = "Changeset"; + /** + * Version is treated as a Shelveset name and owner. + */ + TfvcVersionType[TfvcVersionType["Shelveset"] = 2] = "Shelveset"; + /** + * Version is treated as a Change. + */ + TfvcVersionType[TfvcVersionType["Change"] = 3] = "Change"; + /** + * Version is treated as a Date. + */ + TfvcVersionType[TfvcVersionType["Date"] = 4] = "Date"; + /** + * If Version is defined the Latest of that Version will be used, if no version is defined the latest ChangesetId will be used. + */ + TfvcVersionType[TfvcVersionType["Latest"] = 5] = "Latest"; + /** + * Version will be treated as a Tip, if no version is defined latest will be used. + */ + TfvcVersionType[TfvcVersionType["Tip"] = 6] = "Tip"; + /** + * Version will be treated as a MergeSource. + */ + TfvcVersionType[TfvcVersionType["MergeSource"] = 7] = "MergeSource"; +})(TfvcVersionType = exports.TfvcVersionType || (exports.TfvcVersionType = {})); +var VersionControlChangeType; +(function (VersionControlChangeType) { + VersionControlChangeType[VersionControlChangeType["None"] = 0] = "None"; + VersionControlChangeType[VersionControlChangeType["Add"] = 1] = "Add"; + VersionControlChangeType[VersionControlChangeType["Edit"] = 2] = "Edit"; + VersionControlChangeType[VersionControlChangeType["Encoding"] = 4] = "Encoding"; + VersionControlChangeType[VersionControlChangeType["Rename"] = 8] = "Rename"; + VersionControlChangeType[VersionControlChangeType["Delete"] = 16] = "Delete"; + VersionControlChangeType[VersionControlChangeType["Undelete"] = 32] = "Undelete"; + VersionControlChangeType[VersionControlChangeType["Branch"] = 64] = "Branch"; + VersionControlChangeType[VersionControlChangeType["Merge"] = 128] = "Merge"; + VersionControlChangeType[VersionControlChangeType["Lock"] = 256] = "Lock"; + VersionControlChangeType[VersionControlChangeType["Rollback"] = 512] = "Rollback"; + VersionControlChangeType[VersionControlChangeType["SourceRename"] = 1024] = "SourceRename"; + VersionControlChangeType[VersionControlChangeType["TargetRename"] = 2048] = "TargetRename"; + VersionControlChangeType[VersionControlChangeType["Property"] = 4096] = "Property"; + VersionControlChangeType[VersionControlChangeType["All"] = 8191] = "All"; +})(VersionControlChangeType = exports.VersionControlChangeType || (exports.VersionControlChangeType = {})); +var VersionControlRecursionType; +(function (VersionControlRecursionType) { + /** + * Only return the specified item. + */ + VersionControlRecursionType[VersionControlRecursionType["None"] = 0] = "None"; + /** + * Return the specified item and its direct children. + */ + VersionControlRecursionType[VersionControlRecursionType["OneLevel"] = 1] = "OneLevel"; + /** + * Return the specified item and its direct children, as well as recursive chains of nested child folders that only contain a single folder. + */ + VersionControlRecursionType[VersionControlRecursionType["OneLevelPlusNestedEmptyFolders"] = 4] = "OneLevelPlusNestedEmptyFolders"; + /** + * Return specified item and all descendants + */ + VersionControlRecursionType[VersionControlRecursionType["Full"] = 120] = "Full"; +})(VersionControlRecursionType = exports.VersionControlRecursionType || (exports.VersionControlRecursionType = {})); +exports.TypeInfo = { + Attachment: {}, + Change: {}, + ChangeList: {}, + Comment: {}, + CommentThread: {}, + CommentThreadStatus: { + enumValues: { + "unknown": 0, + "active": 1, + "fixed": 2, + "wontFix": 3, + "closed": 4, + "byDesign": 5, + "pending": 6 + } + }, + CommentType: { + enumValues: { + "unknown": 0, + "text": 1, + "codeChange": 2, + "system": 3 + } + }, + FileDiff: {}, + GitAnnotatedTag: {}, + GitAsyncOperationStatus: { + enumValues: { + "queued": 1, + "inProgress": 2, + "completed": 3, + "failed": 4, + "abandoned": 5 + } + }, + GitAsyncRefOperation: {}, + GitAsyncRefOperationDetail: {}, + GitAsyncRefOperationFailureStatus: { + enumValues: { + "none": 0, + "invalidRefName": 1, + "refNameConflict": 2, + "createBranchPermissionRequired": 3, + "writePermissionRequired": 4, + "targetBranchDeleted": 5, + "gitObjectTooLarge": 6, + "operationIndentityNotFound": 7, + "asyncOperationNotFound": 8, + "other": 9, + "emptyCommitterSignature": 10 + } + }, + GitAsyncRefOperationParameters: {}, + GitAsyncRefOperationSource: {}, + GitBaseVersionDescriptor: {}, + GitBranchStats: {}, + GitChange: {}, + GitCherryPick: {}, + GitCommit: {}, + GitCommitChanges: {}, + GitCommitDiffs: {}, + GitCommitRef: {}, + GitCommitToCreate: {}, + GitConflict: {}, + GitConflictAddAdd: {}, + GitConflictAddRename: {}, + GitConflictDeleteEdit: {}, + GitConflictDeleteRename: {}, + GitConflictDirectoryFile: {}, + GitConflictEditDelete: {}, + GitConflictEditEdit: {}, + GitConflictFileDirectory: {}, + GitConflictRename1to2: {}, + GitConflictRename2to1: {}, + GitConflictRenameAdd: {}, + GitConflictRenameDelete: {}, + GitConflictRenameRename: {}, + GitConflictType: { + enumValues: { + "none": 0, + "addAdd": 1, + "addRename": 2, + "deleteEdit": 3, + "deleteRename": 4, + "directoryFile": 5, + "directoryChild": 6, + "editDelete": 7, + "editEdit": 8, + "fileDirectory": 9, + "rename1to2": 10, + "rename2to1": 11, + "renameAdd": 12, + "renameDelete": 13, + "renameRename": 14 + } + }, + GitConflictUpdateResult: {}, + GitConflictUpdateStatus: { + enumValues: { + "succeeded": 0, + "badRequest": 1, + "invalidResolution": 2, + "unsupportedConflictType": 3, + "notFound": 4 + } + }, + GitDeletedRepository: {}, + GitForkRef: {}, + GitForkSyncRequest: {}, + GitForkTeamProjectReference: {}, + GitHistoryMode: { + enumValues: { + "simplifiedHistory": 0, + "firstParent": 1, + "fullHistory": 2, + "fullHistorySimplifyMerges": 3 + } + }, + GitImportFailedEvent: {}, + GitImportRequest: {}, + GitImportSucceededEvent: {}, + GitItem: {}, + GitItemDescriptor: {}, + GitItemRequestData: {}, + GitLastChangeTreeItems: {}, + GitMerge: {}, + GitObject: {}, + GitObjectType: { + enumValues: { + "bad": 0, + "commit": 1, + "tree": 2, + "blob": 3, + "tag": 4, + "ext2": 5, + "ofsDelta": 6, + "refDelta": 7 + } + }, + GitPathAction: {}, + GitPathActions: { + enumValues: { + "none": 0, + "edit": 1, + "delete": 2, + "add": 3, + "rename": 4 + } + }, + GitPathToItemsCollection: {}, + GitPolicyConfigurationResponse: {}, + GitPullRequest: {}, + GitPullRequestChange: {}, + GitPullRequestCommentThread: {}, + GitPullRequestCompletionOptions: {}, + GitPullRequestIteration: {}, + GitPullRequestIterationChanges: {}, + GitPullRequestMergeStrategy: { + enumValues: { + "noFastForward": 1, + "squash": 2, + "rebase": 3, + "rebaseMerge": 4 + } + }, + GitPullRequestQuery: {}, + GitPullRequestQueryInput: {}, + GitPullRequestQueryType: { + enumValues: { + "notSet": 0, + "lastMergeCommit": 1, + "commit": 2 + } + }, + GitPullRequestReviewFileType: { + enumValues: { + "changeEntry": 0, + "attachment": 1 + } + }, + GitPullRequestSearchCriteria: {}, + GitPullRequestStatus: {}, + GitPush: {}, + GitPushEventData: {}, + GitPushRef: {}, + GitPushSearchCriteria: {}, + GitQueryBranchStatsCriteria: {}, + GitQueryCommitsCriteria: {}, + GitQueryRefsCriteria: {}, + GitRef: {}, + GitRefFavorite: {}, + GitRefSearchType: { + enumValues: { + "exact": 0, + "startsWith": 1, + "contains": 2 + } + }, + GitRefUpdateMode: { + enumValues: { + "bestEffort": 0, + "allOrNone": 1 + } + }, + GitRefUpdateResult: {}, + GitRefUpdateStatus: { + enumValues: { + "succeeded": 0, + "forcePushRequired": 1, + "staleOldObjectId": 2, + "invalidRefName": 3, + "unprocessed": 4, + "unresolvableToCommit": 5, + "writePermissionRequired": 6, + "manageNotePermissionRequired": 7, + "createBranchPermissionRequired": 8, + "createTagPermissionRequired": 9, + "rejectedByPlugin": 10, + "locked": 11, + "refNameConflict": 12, + "rejectedByPolicy": 13, + "succeededNonExistentRef": 14, + "succeededCorruptRef": 15 + } + }, + GitRepository: {}, + GitRepositoryCreateOptions: {}, + GitRepositoryRef: {}, + GitResolutionError: { + enumValues: { + "none": 0, + "mergeContentNotFound": 1, + "pathInUse": 2, + "invalidPath": 3, + "unknownAction": 4, + "unknownMergeType": 5, + "otherError": 255 + } + }, + GitResolutionMergeContent: {}, + GitResolutionMergeType: { + enumValues: { + "undecided": 0, + "takeSourceContent": 1, + "takeTargetContent": 2, + "autoMerged": 3, + "userMerged": 4 + } + }, + GitResolutionPathConflict: {}, + GitResolutionPathConflictAction: { + enumValues: { + "undecided": 0, + "keepSourceRenameTarget": 1, + "keepSourceDeleteTarget": 2, + "keepTargetRenameSource": 3, + "keepTargetDeleteSource": 4 + } + }, + GitResolutionPickOneAction: {}, + GitResolutionRename1to2: {}, + GitResolutionRename1to2Action: { + enumValues: { + "undecided": 0, + "keepSourcePath": 1, + "keepTargetPath": 2, + "keepBothFiles": 3 + } + }, + GitResolutionStatus: { + enumValues: { + "unresolved": 0, + "partiallyResolved": 1, + "resolved": 2 + } + }, + GitResolutionWhichAction: { + enumValues: { + "undecided": 0, + "pickSourceAction": 1, + "pickTargetAction": 2 + } + }, + GitRevert: {}, + GitStatus: {}, + GitStatusState: { + enumValues: { + "notSet": 0, + "pending": 1, + "succeeded": 2, + "failed": 3, + "error": 4, + "notApplicable": 5 + } + }, + GitTargetVersionDescriptor: {}, + GitTreeDiff: {}, + GitTreeDiffEntry: {}, + GitTreeDiffResponse: {}, + GitTreeEntryRef: {}, + GitTreeRef: {}, + GitUserDate: {}, + GitVersionDescriptor: {}, + GitVersionOptions: { + enumValues: { + "none": 0, + "previousChange": 1, + "firstParent": 2 + } + }, + GitVersionType: { + enumValues: { + "branch": 0, + "tag": 1, + "commit": 2 + } + }, + HistoryEntry: {}, + IncludedGitCommit: {}, + ItemContent: {}, + ItemContentType: { + enumValues: { + "rawText": 0, + "base64Encoded": 1 + } + }, + ItemDetailsOptions: {}, + IterationReason: { + enumValues: { + "push": 0, + "forcePush": 1, + "create": 2, + "rebase": 4, + "unknown": 8, + "retarget": 16 + } + }, + LineDiffBlock: {}, + LineDiffBlockChangeType: { + enumValues: { + "none": 0, + "add": 1, + "delete": 2, + "edit": 3 + } + }, + PullRequestAsyncStatus: { + enumValues: { + "notSet": 0, + "queued": 1, + "conflicts": 2, + "succeeded": 3, + "rejectedByPolicy": 4, + "failure": 5 + } + }, + PullRequestMergeFailureType: { + enumValues: { + "none": 0, + "unknown": 1, + "caseSensitive": 2, + "objectTooLarge": 3 + } + }, + PullRequestStatus: { + enumValues: { + "notSet": 0, + "active": 1, + "abandoned": 2, + "completed": 3, + "all": 4 + } + }, + RefFavoriteType: { + enumValues: { + "invalid": 0, + "folder": 1, + "ref": 2 + } + }, + SupportedIde: {}, + SupportedIdeType: { + enumValues: { + "unknown": 0, + "androidStudio": 1, + "appCode": 2, + "cLion": 3, + "dataGrip": 4, + "eclipse": 13, + "intelliJ": 5, + "mps": 6, + "phpStorm": 7, + "pyCharm": 8, + "rubyMine": 9, + "tower": 10, + "visualStudio": 11, + "vsCode": 14, + "webStorm": 12 + } + }, + TfvcBranch: {}, + TfvcBranchRef: {}, + TfvcChange: {}, + TfvcChangeset: {}, + TfvcChangesetRef: {}, + TfvcCheckinEventData: {}, + TfvcHistoryEntry: {}, + TfvcItem: {}, + TfvcItemDescriptor: {}, + TfvcItemPreviousHash: {}, + TfvcItemRequestData: {}, + TfvcLabel: {}, + TfvcLabelRef: {}, + TfvcShelveset: {}, + TfvcShelvesetRef: {}, + TfvcVersionDescriptor: {}, + TfvcVersionOption: { + enumValues: { + "none": 0, + "previous": 1, + "useRename": 2 + } + }, + TfvcVersionType: { + enumValues: { + "none": 0, + "changeset": 1, + "shelveset": 2, + "change": 3, + "date": 4, + "latest": 5, + "tip": 6, + "mergeSource": 7 + } + }, + UpdateRefsRequest: {}, + VersionControlChangeType: { + enumValues: { + "none": 0, + "add": 1, + "edit": 2, + "encoding": 4, + "rename": 8, + "delete": 16, + "undelete": 32, + "branch": 64, + "merge": 128, + "lock": 256, + "rollback": 512, + "sourceRename": 1024, + "targetRename": 2048, + "property": 4096, + "all": 8191 + } + }, + VersionControlProjectInfo: {}, + VersionControlRecursionType: { + enumValues: { + "none": 0, + "oneLevel": 1, + "oneLevelPlusNestedEmptyFolders": 4, + "full": 120 + } + }, +}; +exports.TypeInfo.Attachment.fields = { + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.Change.fields = { + changeType: { + enumType: exports.TypeInfo.VersionControlChangeType + }, + newContent: { + typeInfo: exports.TypeInfo.ItemContent + } +}; +exports.TypeInfo.ChangeList.fields = { + changeCounts: { + isDictionary: true, + dictionaryKeyEnumType: exports.TypeInfo.VersionControlChangeType, + }, + creationDate: { + isDate: true, + }, + sortDate: { + isDate: true, + } +}; +exports.TypeInfo.Comment.fields = { + commentType: { + enumType: exports.TypeInfo.CommentType + }, + lastContentUpdatedDate: { + isDate: true, + }, + lastUpdatedDate: { + isDate: true, + }, + publishedDate: { + isDate: true, + } +}; +exports.TypeInfo.CommentThread.fields = { + comments: { + isArray: true, + typeInfo: exports.TypeInfo.Comment + }, + lastUpdatedDate: { + isDate: true, + }, + publishedDate: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.CommentThreadStatus + } +}; +exports.TypeInfo.FileDiff.fields = { + lineDiffBlocks: { + isArray: true, + typeInfo: exports.TypeInfo.LineDiffBlock + } +}; +exports.TypeInfo.GitAnnotatedTag.fields = { + taggedBy: { + typeInfo: exports.TypeInfo.GitUserDate + }, + taggedObject: { + typeInfo: exports.TypeInfo.GitObject + } +}; +exports.TypeInfo.GitAsyncRefOperation.fields = { + detailedStatus: { + typeInfo: exports.TypeInfo.GitAsyncRefOperationDetail + }, + parameters: { + typeInfo: exports.TypeInfo.GitAsyncRefOperationParameters + }, + status: { + enumType: exports.TypeInfo.GitAsyncOperationStatus + } +}; +exports.TypeInfo.GitAsyncRefOperationDetail.fields = { + status: { + enumType: exports.TypeInfo.GitAsyncRefOperationFailureStatus + } +}; +exports.TypeInfo.GitAsyncRefOperationParameters.fields = { + repository: { + typeInfo: exports.TypeInfo.GitRepository + }, + source: { + typeInfo: exports.TypeInfo.GitAsyncRefOperationSource + } +}; +exports.TypeInfo.GitAsyncRefOperationSource.fields = { + commitList: { + isArray: true, + typeInfo: exports.TypeInfo.GitCommitRef + } +}; +exports.TypeInfo.GitBaseVersionDescriptor.fields = { + baseVersionOptions: { + enumType: exports.TypeInfo.GitVersionOptions + }, + baseVersionType: { + enumType: exports.TypeInfo.GitVersionType + }, + versionOptions: { + enumType: exports.TypeInfo.GitVersionOptions + }, + versionType: { + enumType: exports.TypeInfo.GitVersionType + } +}; +exports.TypeInfo.GitBranchStats.fields = { + commit: { + typeInfo: exports.TypeInfo.GitCommitRef + } +}; +exports.TypeInfo.GitChange.fields = { + changeType: { + enumType: exports.TypeInfo.VersionControlChangeType + }, + newContent: { + typeInfo: exports.TypeInfo.ItemContent + } +}; +exports.TypeInfo.GitCherryPick.fields = { + detailedStatus: { + typeInfo: exports.TypeInfo.GitAsyncRefOperationDetail + }, + parameters: { + typeInfo: exports.TypeInfo.GitAsyncRefOperationParameters + }, + status: { + enumType: exports.TypeInfo.GitAsyncOperationStatus + } +}; +exports.TypeInfo.GitCommit.fields = { + author: { + typeInfo: exports.TypeInfo.GitUserDate + }, + changes: { + isArray: true, + typeInfo: exports.TypeInfo.GitChange + }, + committer: { + typeInfo: exports.TypeInfo.GitUserDate + }, + push: { + typeInfo: exports.TypeInfo.GitPushRef + }, + statuses: { + isArray: true, + typeInfo: exports.TypeInfo.GitStatus + } +}; +exports.TypeInfo.GitCommitChanges.fields = { + changes: { + isArray: true, + typeInfo: exports.TypeInfo.GitChange + } +}; +exports.TypeInfo.GitCommitDiffs.fields = { + changeCounts: { + isDictionary: true, + dictionaryKeyEnumType: exports.TypeInfo.VersionControlChangeType, + }, + changes: { + isArray: true, + typeInfo: exports.TypeInfo.GitChange + } +}; +exports.TypeInfo.GitCommitRef.fields = { + author: { + typeInfo: exports.TypeInfo.GitUserDate + }, + changes: { + isArray: true, + typeInfo: exports.TypeInfo.GitChange + }, + committer: { + typeInfo: exports.TypeInfo.GitUserDate + }, + push: { + typeInfo: exports.TypeInfo.GitPushRef + }, + statuses: { + isArray: true, + typeInfo: exports.TypeInfo.GitStatus + } +}; +exports.TypeInfo.GitCommitToCreate.fields = { + baseRef: { + typeInfo: exports.TypeInfo.GitRef + }, + pathActions: { + isArray: true, + typeInfo: exports.TypeInfo.GitPathAction + } +}; +exports.TypeInfo.GitConflict.fields = { + conflictType: { + enumType: exports.TypeInfo.GitConflictType + }, + mergeBaseCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeSourceCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeTargetCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + resolutionError: { + enumType: exports.TypeInfo.GitResolutionError + }, + resolutionStatus: { + enumType: exports.TypeInfo.GitResolutionStatus + }, + resolvedDate: { + isDate: true, + } +}; +exports.TypeInfo.GitConflictAddAdd.fields = { + conflictType: { + enumType: exports.TypeInfo.GitConflictType + }, + mergeBaseCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeSourceCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeTargetCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + resolution: { + typeInfo: exports.TypeInfo.GitResolutionMergeContent + }, + resolutionError: { + enumType: exports.TypeInfo.GitResolutionError + }, + resolutionStatus: { + enumType: exports.TypeInfo.GitResolutionStatus + }, + resolvedDate: { + isDate: true, + } +}; +exports.TypeInfo.GitConflictAddRename.fields = { + conflictType: { + enumType: exports.TypeInfo.GitConflictType + }, + mergeBaseCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeSourceCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeTargetCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + resolution: { + typeInfo: exports.TypeInfo.GitResolutionPathConflict + }, + resolutionError: { + enumType: exports.TypeInfo.GitResolutionError + }, + resolutionStatus: { + enumType: exports.TypeInfo.GitResolutionStatus + }, + resolvedDate: { + isDate: true, + } +}; +exports.TypeInfo.GitConflictDeleteEdit.fields = { + conflictType: { + enumType: exports.TypeInfo.GitConflictType + }, + mergeBaseCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeSourceCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeTargetCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + resolution: { + typeInfo: exports.TypeInfo.GitResolutionPickOneAction + }, + resolutionError: { + enumType: exports.TypeInfo.GitResolutionError + }, + resolutionStatus: { + enumType: exports.TypeInfo.GitResolutionStatus + }, + resolvedDate: { + isDate: true, + } +}; +exports.TypeInfo.GitConflictDeleteRename.fields = { + conflictType: { + enumType: exports.TypeInfo.GitConflictType + }, + mergeBaseCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeSourceCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeTargetCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + resolution: { + typeInfo: exports.TypeInfo.GitResolutionPickOneAction + }, + resolutionError: { + enumType: exports.TypeInfo.GitResolutionError + }, + resolutionStatus: { + enumType: exports.TypeInfo.GitResolutionStatus + }, + resolvedDate: { + isDate: true, + } +}; +exports.TypeInfo.GitConflictDirectoryFile.fields = { + conflictType: { + enumType: exports.TypeInfo.GitConflictType + }, + mergeBaseCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeSourceCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeTargetCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + resolution: { + typeInfo: exports.TypeInfo.GitResolutionPathConflict + }, + resolutionError: { + enumType: exports.TypeInfo.GitResolutionError + }, + resolutionStatus: { + enumType: exports.TypeInfo.GitResolutionStatus + }, + resolvedDate: { + isDate: true, + }, + sourceTree: { + typeInfo: exports.TypeInfo.GitTreeRef + } +}; +exports.TypeInfo.GitConflictEditDelete.fields = { + conflictType: { + enumType: exports.TypeInfo.GitConflictType + }, + mergeBaseCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeSourceCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeTargetCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + resolution: { + typeInfo: exports.TypeInfo.GitResolutionPickOneAction + }, + resolutionError: { + enumType: exports.TypeInfo.GitResolutionError + }, + resolutionStatus: { + enumType: exports.TypeInfo.GitResolutionStatus + }, + resolvedDate: { + isDate: true, + } +}; +exports.TypeInfo.GitConflictEditEdit.fields = { + conflictType: { + enumType: exports.TypeInfo.GitConflictType + }, + mergeBaseCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeSourceCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeTargetCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + resolution: { + typeInfo: exports.TypeInfo.GitResolutionMergeContent + }, + resolutionError: { + enumType: exports.TypeInfo.GitResolutionError + }, + resolutionStatus: { + enumType: exports.TypeInfo.GitResolutionStatus + }, + resolvedDate: { + isDate: true, + } +}; +exports.TypeInfo.GitConflictFileDirectory.fields = { + conflictType: { + enumType: exports.TypeInfo.GitConflictType + }, + mergeBaseCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeSourceCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeTargetCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + resolution: { + typeInfo: exports.TypeInfo.GitResolutionPathConflict + }, + resolutionError: { + enumType: exports.TypeInfo.GitResolutionError + }, + resolutionStatus: { + enumType: exports.TypeInfo.GitResolutionStatus + }, + resolvedDate: { + isDate: true, + }, + targetTree: { + typeInfo: exports.TypeInfo.GitTreeRef + } +}; +exports.TypeInfo.GitConflictRename1to2.fields = { + conflictType: { + enumType: exports.TypeInfo.GitConflictType + }, + mergeBaseCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeSourceCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeTargetCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + resolution: { + typeInfo: exports.TypeInfo.GitResolutionRename1to2 + }, + resolutionError: { + enumType: exports.TypeInfo.GitResolutionError + }, + resolutionStatus: { + enumType: exports.TypeInfo.GitResolutionStatus + }, + resolvedDate: { + isDate: true, + } +}; +exports.TypeInfo.GitConflictRename2to1.fields = { + conflictType: { + enumType: exports.TypeInfo.GitConflictType + }, + mergeBaseCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeSourceCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeTargetCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + resolution: { + typeInfo: exports.TypeInfo.GitResolutionPathConflict + }, + resolutionError: { + enumType: exports.TypeInfo.GitResolutionError + }, + resolutionStatus: { + enumType: exports.TypeInfo.GitResolutionStatus + }, + resolvedDate: { + isDate: true, + } +}; +exports.TypeInfo.GitConflictRenameAdd.fields = { + conflictType: { + enumType: exports.TypeInfo.GitConflictType + }, + mergeBaseCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeSourceCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeTargetCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + resolution: { + typeInfo: exports.TypeInfo.GitResolutionPathConflict + }, + resolutionError: { + enumType: exports.TypeInfo.GitResolutionError + }, + resolutionStatus: { + enumType: exports.TypeInfo.GitResolutionStatus + }, + resolvedDate: { + isDate: true, + } +}; +exports.TypeInfo.GitConflictRenameDelete.fields = { + conflictType: { + enumType: exports.TypeInfo.GitConflictType + }, + mergeBaseCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeSourceCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeTargetCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + resolution: { + typeInfo: exports.TypeInfo.GitResolutionPickOneAction + }, + resolutionError: { + enumType: exports.TypeInfo.GitResolutionError + }, + resolutionStatus: { + enumType: exports.TypeInfo.GitResolutionStatus + }, + resolvedDate: { + isDate: true, + } +}; +exports.TypeInfo.GitConflictRenameRename.fields = { + conflictType: { + enumType: exports.TypeInfo.GitConflictType + }, + mergeBaseCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeSourceCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeTargetCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + resolution: { + typeInfo: exports.TypeInfo.GitResolutionMergeContent + }, + resolutionError: { + enumType: exports.TypeInfo.GitResolutionError + }, + resolutionStatus: { + enumType: exports.TypeInfo.GitResolutionStatus + }, + resolvedDate: { + isDate: true, + } +}; +exports.TypeInfo.GitConflictUpdateResult.fields = { + updatedConflict: { + typeInfo: exports.TypeInfo.GitConflict + }, + updateStatus: { + enumType: exports.TypeInfo.GitConflictUpdateStatus + } +}; +exports.TypeInfo.GitDeletedRepository.fields = { + createdDate: { + isDate: true, + }, + deletedDate: { + isDate: true, + }, + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + } +}; +exports.TypeInfo.GitForkRef.fields = { + repository: { + typeInfo: exports.TypeInfo.GitRepository + }, + statuses: { + isArray: true, + typeInfo: exports.TypeInfo.GitStatus + } +}; +exports.TypeInfo.GitForkSyncRequest.fields = { + status: { + enumType: exports.TypeInfo.GitAsyncOperationStatus + } +}; +exports.TypeInfo.GitForkTeamProjectReference.fields = { + lastUpdateTime: { + isDate: true, + }, + visibility: { + enumType: TfsCoreInterfaces.TypeInfo.ProjectVisibility + } +}; +exports.TypeInfo.GitImportFailedEvent.fields = { + targetRepository: { + typeInfo: exports.TypeInfo.GitRepository + } +}; +exports.TypeInfo.GitImportRequest.fields = { + repository: { + typeInfo: exports.TypeInfo.GitRepository + }, + status: { + enumType: exports.TypeInfo.GitAsyncOperationStatus + } +}; +exports.TypeInfo.GitImportSucceededEvent.fields = { + targetRepository: { + typeInfo: exports.TypeInfo.GitRepository + } +}; +exports.TypeInfo.GitItem.fields = { + gitObjectType: { + enumType: exports.TypeInfo.GitObjectType + }, + latestProcessedChange: { + typeInfo: exports.TypeInfo.GitCommitRef + } +}; +exports.TypeInfo.GitItemDescriptor.fields = { + recursionLevel: { + enumType: exports.TypeInfo.VersionControlRecursionType + }, + versionOptions: { + enumType: exports.TypeInfo.GitVersionOptions + }, + versionType: { + enumType: exports.TypeInfo.GitVersionType + } +}; +exports.TypeInfo.GitItemRequestData.fields = { + itemDescriptors: { + isArray: true, + typeInfo: exports.TypeInfo.GitItemDescriptor + } +}; +exports.TypeInfo.GitLastChangeTreeItems.fields = { + commits: { + isArray: true, + typeInfo: exports.TypeInfo.GitCommitRef + }, + lastExploredTime: { + isDate: true, + } +}; +exports.TypeInfo.GitMerge.fields = { + status: { + enumType: exports.TypeInfo.GitAsyncOperationStatus + } +}; +exports.TypeInfo.GitObject.fields = { + objectType: { + enumType: exports.TypeInfo.GitObjectType + } +}; +exports.TypeInfo.GitPathAction.fields = { + action: { + enumType: exports.TypeInfo.GitPathActions + } +}; +exports.TypeInfo.GitPathToItemsCollection.fields = { + items: { + isDictionary: true, + dictionaryValueFieldInfo: { + isArray: true, + typeInfo: exports.TypeInfo.GitItem + } + } +}; +exports.TypeInfo.GitPolicyConfigurationResponse.fields = { + policyConfigurations: { + isArray: true, + typeInfo: PolicyInterfaces.TypeInfo.PolicyConfiguration + } +}; +exports.TypeInfo.GitPullRequest.fields = { + closedDate: { + isDate: true, + }, + commits: { + isArray: true, + typeInfo: exports.TypeInfo.GitCommitRef + }, + completionOptions: { + typeInfo: exports.TypeInfo.GitPullRequestCompletionOptions + }, + completionQueueTime: { + isDate: true, + }, + creationDate: { + isDate: true, + }, + forkSource: { + typeInfo: exports.TypeInfo.GitForkRef + }, + lastMergeCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + lastMergeSourceCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + lastMergeTargetCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + mergeFailureType: { + enumType: exports.TypeInfo.PullRequestMergeFailureType + }, + mergeStatus: { + enumType: exports.TypeInfo.PullRequestAsyncStatus + }, + repository: { + typeInfo: exports.TypeInfo.GitRepository + }, + status: { + enumType: exports.TypeInfo.PullRequestStatus + } +}; +exports.TypeInfo.GitPullRequestChange.fields = { + changeType: { + enumType: exports.TypeInfo.VersionControlChangeType + }, + newContent: { + typeInfo: exports.TypeInfo.ItemContent + } +}; +exports.TypeInfo.GitPullRequestCommentThread.fields = { + comments: { + isArray: true, + typeInfo: exports.TypeInfo.Comment + }, + lastUpdatedDate: { + isDate: true, + }, + publishedDate: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.CommentThreadStatus + } +}; +exports.TypeInfo.GitPullRequestCompletionOptions.fields = { + mergeStrategy: { + enumType: exports.TypeInfo.GitPullRequestMergeStrategy + } +}; +exports.TypeInfo.GitPullRequestIteration.fields = { + changeList: { + isArray: true, + typeInfo: exports.TypeInfo.GitPullRequestChange + }, + commits: { + isArray: true, + typeInfo: exports.TypeInfo.GitCommitRef + }, + commonRefCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + createdDate: { + isDate: true, + }, + push: { + typeInfo: exports.TypeInfo.GitPushRef + }, + reason: { + enumType: exports.TypeInfo.IterationReason + }, + sourceRefCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + targetRefCommit: { + typeInfo: exports.TypeInfo.GitCommitRef + }, + updatedDate: { + isDate: true, + } +}; +exports.TypeInfo.GitPullRequestIterationChanges.fields = { + changeEntries: { + isArray: true, + typeInfo: exports.TypeInfo.GitPullRequestChange + } +}; +exports.TypeInfo.GitPullRequestQuery.fields = { + queries: { + isArray: true, + typeInfo: exports.TypeInfo.GitPullRequestQueryInput + }, +}; +exports.TypeInfo.GitPullRequestQueryInput.fields = { + type: { + enumType: exports.TypeInfo.GitPullRequestQueryType + } +}; +exports.TypeInfo.GitPullRequestSearchCriteria.fields = { + status: { + enumType: exports.TypeInfo.PullRequestStatus + } +}; +exports.TypeInfo.GitPullRequestStatus.fields = { + creationDate: { + isDate: true, + }, + state: { + enumType: exports.TypeInfo.GitStatusState + }, + updatedDate: { + isDate: true, + } +}; +exports.TypeInfo.GitPush.fields = { + commits: { + isArray: true, + typeInfo: exports.TypeInfo.GitCommitRef + }, + date: { + isDate: true, + }, + repository: { + typeInfo: exports.TypeInfo.GitRepository + } +}; +exports.TypeInfo.GitPushEventData.fields = { + commits: { + isArray: true, + typeInfo: exports.TypeInfo.GitCommit + }, + repository: { + typeInfo: exports.TypeInfo.GitRepository + } +}; +exports.TypeInfo.GitPushRef.fields = { + date: { + isDate: true, + } +}; +exports.TypeInfo.GitPushSearchCriteria.fields = { + fromDate: { + isDate: true, + }, + toDate: { + isDate: true, + } +}; +exports.TypeInfo.GitQueryBranchStatsCriteria.fields = { + baseCommit: { + typeInfo: exports.TypeInfo.GitVersionDescriptor + }, + targetCommits: { + isArray: true, + typeInfo: exports.TypeInfo.GitVersionDescriptor + } +}; +exports.TypeInfo.GitQueryCommitsCriteria.fields = { + compareVersion: { + typeInfo: exports.TypeInfo.GitVersionDescriptor + }, + historyMode: { + enumType: exports.TypeInfo.GitHistoryMode + }, + itemVersion: { + typeInfo: exports.TypeInfo.GitVersionDescriptor + } +}; +exports.TypeInfo.GitQueryRefsCriteria.fields = { + searchType: { + enumType: exports.TypeInfo.GitRefSearchType + } +}; +exports.TypeInfo.GitRef.fields = { + statuses: { + isArray: true, + typeInfo: exports.TypeInfo.GitStatus + } +}; +exports.TypeInfo.GitRefFavorite.fields = { + type: { + enumType: exports.TypeInfo.RefFavoriteType + } +}; +exports.TypeInfo.GitRefUpdateResult.fields = { + updateStatus: { + enumType: exports.TypeInfo.GitRefUpdateStatus + } +}; +exports.TypeInfo.GitRepository.fields = { + parentRepository: { + typeInfo: exports.TypeInfo.GitRepositoryRef + }, + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + } +}; +exports.TypeInfo.GitRepositoryCreateOptions.fields = { + parentRepository: { + typeInfo: exports.TypeInfo.GitRepositoryRef + }, + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + } +}; +exports.TypeInfo.GitRepositoryRef.fields = { + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + } +}; +exports.TypeInfo.GitResolutionMergeContent.fields = { + mergeType: { + enumType: exports.TypeInfo.GitResolutionMergeType + } +}; +exports.TypeInfo.GitResolutionPathConflict.fields = { + action: { + enumType: exports.TypeInfo.GitResolutionPathConflictAction + } +}; +exports.TypeInfo.GitResolutionPickOneAction.fields = { + action: { + enumType: exports.TypeInfo.GitResolutionWhichAction + } +}; +exports.TypeInfo.GitResolutionRename1to2.fields = { + action: { + enumType: exports.TypeInfo.GitResolutionRename1to2Action + }, + mergeType: { + enumType: exports.TypeInfo.GitResolutionMergeType + } +}; +exports.TypeInfo.GitRevert.fields = { + detailedStatus: { + typeInfo: exports.TypeInfo.GitAsyncRefOperationDetail + }, + parameters: { + typeInfo: exports.TypeInfo.GitAsyncRefOperationParameters + }, + status: { + enumType: exports.TypeInfo.GitAsyncOperationStatus + } +}; +exports.TypeInfo.GitStatus.fields = { + creationDate: { + isDate: true, + }, + state: { + enumType: exports.TypeInfo.GitStatusState + }, + updatedDate: { + isDate: true, + } +}; +exports.TypeInfo.GitTargetVersionDescriptor.fields = { + targetVersionOptions: { + enumType: exports.TypeInfo.GitVersionOptions + }, + targetVersionType: { + enumType: exports.TypeInfo.GitVersionType + }, + versionOptions: { + enumType: exports.TypeInfo.GitVersionOptions + }, + versionType: { + enumType: exports.TypeInfo.GitVersionType + } +}; +exports.TypeInfo.GitTreeDiff.fields = { + diffEntries: { + isArray: true, + typeInfo: exports.TypeInfo.GitTreeDiffEntry + } +}; +exports.TypeInfo.GitTreeDiffEntry.fields = { + changeType: { + enumType: exports.TypeInfo.VersionControlChangeType + }, + objectType: { + enumType: exports.TypeInfo.GitObjectType + } +}; +exports.TypeInfo.GitTreeDiffResponse.fields = { + treeDiff: { + typeInfo: exports.TypeInfo.GitTreeDiff + } +}; +exports.TypeInfo.GitTreeEntryRef.fields = { + gitObjectType: { + enumType: exports.TypeInfo.GitObjectType + } +}; +exports.TypeInfo.GitTreeRef.fields = { + treeEntries: { + isArray: true, + typeInfo: exports.TypeInfo.GitTreeEntryRef + } +}; +exports.TypeInfo.GitUserDate.fields = { + date: { + isDate: true, + } +}; +exports.TypeInfo.GitVersionDescriptor.fields = { + versionOptions: { + enumType: exports.TypeInfo.GitVersionOptions + }, + versionType: { + enumType: exports.TypeInfo.GitVersionType + } +}; +exports.TypeInfo.HistoryEntry.fields = { + itemChangeType: { + enumType: exports.TypeInfo.VersionControlChangeType + } +}; +exports.TypeInfo.IncludedGitCommit.fields = { + commitTime: { + isDate: true, + } +}; +exports.TypeInfo.ItemContent.fields = { + contentType: { + enumType: exports.TypeInfo.ItemContentType + } +}; +exports.TypeInfo.ItemDetailsOptions.fields = { + recursionLevel: { + enumType: exports.TypeInfo.VersionControlRecursionType + } +}; +exports.TypeInfo.LineDiffBlock.fields = { + changeType: { + enumType: exports.TypeInfo.LineDiffBlockChangeType + } +}; +exports.TypeInfo.SupportedIde.fields = { + ideType: { + enumType: exports.TypeInfo.SupportedIdeType + } +}; +exports.TypeInfo.TfvcBranch.fields = { + children: { + isArray: true, + typeInfo: exports.TypeInfo.TfvcBranch + }, + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcBranchRef.fields = { + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcChange.fields = { + changeType: { + enumType: exports.TypeInfo.VersionControlChangeType + }, + newContent: { + typeInfo: exports.TypeInfo.ItemContent + } +}; +exports.TypeInfo.TfvcChangeset.fields = { + changes: { + isArray: true, + typeInfo: exports.TypeInfo.TfvcChange + }, + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcChangesetRef.fields = { + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcCheckinEventData.fields = { + changeset: { + typeInfo: exports.TypeInfo.TfvcChangeset + }, + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + } +}; +exports.TypeInfo.TfvcHistoryEntry.fields = { + itemChangeType: { + enumType: exports.TypeInfo.VersionControlChangeType + } +}; +exports.TypeInfo.TfvcItem.fields = { + changeDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcItemDescriptor.fields = { + recursionLevel: { + enumType: exports.TypeInfo.VersionControlRecursionType + }, + versionOption: { + enumType: exports.TypeInfo.TfvcVersionOption + }, + versionType: { + enumType: exports.TypeInfo.TfvcVersionType + } +}; +exports.TypeInfo.TfvcItemPreviousHash.fields = { + changeDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcItemRequestData.fields = { + itemDescriptors: { + isArray: true, + typeInfo: exports.TypeInfo.TfvcItemDescriptor + } +}; +exports.TypeInfo.TfvcLabel.fields = { + items: { + isArray: true, + typeInfo: exports.TypeInfo.TfvcItem + }, + modifiedDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcLabelRef.fields = { + modifiedDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcShelveset.fields = { + changes: { + isArray: true, + typeInfo: exports.TypeInfo.TfvcChange + }, + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcShelvesetRef.fields = { + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcVersionDescriptor.fields = { + versionOption: { + enumType: exports.TypeInfo.TfvcVersionOption + }, + versionType: { + enumType: exports.TypeInfo.TfvcVersionType + } +}; +exports.TypeInfo.UpdateRefsRequest.fields = { + updateMode: { + enumType: exports.TypeInfo.GitRefUpdateMode + } +}; +exports.TypeInfo.VersionControlProjectInfo.fields = { + defaultSourceControlType: { + enumType: TfsCoreInterfaces.TypeInfo.SourceControlTypes + }, + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + } +}; + + +/***/ }), + +/***/ 3215: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const VSSInterfaces = __nccwpck_require__(4498); +var InheritLevel; +(function (InheritLevel) { + InheritLevel[InheritLevel["None"] = 0] = "None"; + InheritLevel[InheritLevel["Deployment"] = 1] = "Deployment"; + InheritLevel[InheritLevel["Account"] = 2] = "Account"; + InheritLevel[InheritLevel["Collection"] = 4] = "Collection"; + InheritLevel[InheritLevel["All"] = 7] = "All"; +})(InheritLevel = exports.InheritLevel || (exports.InheritLevel = {})); +var RelativeToSetting; +(function (RelativeToSetting) { + RelativeToSetting[RelativeToSetting["Context"] = 0] = "Context"; + RelativeToSetting[RelativeToSetting["WebApplication"] = 2] = "WebApplication"; + RelativeToSetting[RelativeToSetting["FullyQualified"] = 3] = "FullyQualified"; +})(RelativeToSetting = exports.RelativeToSetting || (exports.RelativeToSetting = {})); +var ServiceStatus; +(function (ServiceStatus) { + ServiceStatus[ServiceStatus["Assigned"] = 0] = "Assigned"; + ServiceStatus[ServiceStatus["Active"] = 1] = "Active"; + ServiceStatus[ServiceStatus["Moving"] = 2] = "Moving"; +})(ServiceStatus = exports.ServiceStatus || (exports.ServiceStatus = {})); +exports.TypeInfo = { + ConnectionData: {}, + InheritLevel: { + enumValues: { + "none": 0, + "deployment": 1, + "account": 2, + "collection": 4, + "all": 7 + } + }, + LocationServiceData: {}, + RelativeToSetting: { + enumValues: { + "context": 0, + "webApplication": 2, + "fullyQualified": 3 + } + }, + ServiceDefinition: {}, + ServiceStatus: { + enumValues: { + "assigned": 0, + "active": 1, + "moving": 2 + } + }, +}; +exports.TypeInfo.ConnectionData.fields = { + deploymentType: { + enumType: VSSInterfaces.TypeInfo.DeploymentFlags + }, + lastUserAccess: { + isDate: true, + }, + locationServiceData: { + typeInfo: exports.TypeInfo.LocationServiceData + } +}; +exports.TypeInfo.LocationServiceData.fields = { + serviceDefinitions: { + isArray: true, + typeInfo: exports.TypeInfo.ServiceDefinition + } +}; +exports.TypeInfo.ServiceDefinition.fields = { + inheritLevel: { + enumType: exports.TypeInfo.InheritLevel + }, + relativeToSetting: { + enumType: exports.TypeInfo.RelativeToSetting + }, + status: { + enumType: exports.TypeInfo.ServiceStatus + } +}; + + +/***/ }), + +/***/ 269: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +/** + * Default delivery preference for group subscribers. Indicates how the subscriber should be notified. + */ +var DefaultGroupDeliveryPreference; +(function (DefaultGroupDeliveryPreference) { + DefaultGroupDeliveryPreference[DefaultGroupDeliveryPreference["NoDelivery"] = -1] = "NoDelivery"; + DefaultGroupDeliveryPreference[DefaultGroupDeliveryPreference["EachMember"] = 2] = "EachMember"; +})(DefaultGroupDeliveryPreference = exports.DefaultGroupDeliveryPreference || (exports.DefaultGroupDeliveryPreference = {})); +/** + * Describes the subscription evaluation operation status. + */ +var EvaluationOperationStatus; +(function (EvaluationOperationStatus) { + /** + * The operation object does not have the status set. + */ + EvaluationOperationStatus[EvaluationOperationStatus["NotSet"] = 0] = "NotSet"; + /** + * The operation has been queued. + */ + EvaluationOperationStatus[EvaluationOperationStatus["Queued"] = 1] = "Queued"; + /** + * The operation is in progress. + */ + EvaluationOperationStatus[EvaluationOperationStatus["InProgress"] = 2] = "InProgress"; + /** + * The operation was cancelled by the user. + */ + EvaluationOperationStatus[EvaluationOperationStatus["Cancelled"] = 3] = "Cancelled"; + /** + * The operation completed successfully. + */ + EvaluationOperationStatus[EvaluationOperationStatus["Succeeded"] = 4] = "Succeeded"; + /** + * The operation completed with a failure. + */ + EvaluationOperationStatus[EvaluationOperationStatus["Failed"] = 5] = "Failed"; + /** + * The operation timed out. + */ + EvaluationOperationStatus[EvaluationOperationStatus["TimedOut"] = 6] = "TimedOut"; + /** + * The operation could not be found. + */ + EvaluationOperationStatus[EvaluationOperationStatus["NotFound"] = 7] = "NotFound"; +})(EvaluationOperationStatus = exports.EvaluationOperationStatus || (exports.EvaluationOperationStatus = {})); +/** + * Set of flags used to determine which set of information is retrieved when querying for event publishers + */ +var EventPublisherQueryFlags; +(function (EventPublisherQueryFlags) { + EventPublisherQueryFlags[EventPublisherQueryFlags["None"] = 0] = "None"; + /** + * Include event types from the remote services too + */ + EventPublisherQueryFlags[EventPublisherQueryFlags["IncludeRemoteServices"] = 2] = "IncludeRemoteServices"; +})(EventPublisherQueryFlags = exports.EventPublisherQueryFlags || (exports.EventPublisherQueryFlags = {})); +/** + * Set of flags used to determine which set of information is retrieved when querying for eventtypes + */ +var EventTypeQueryFlags; +(function (EventTypeQueryFlags) { + EventTypeQueryFlags[EventTypeQueryFlags["None"] = 0] = "None"; + /** + * IncludeFields will include all fields and their types + */ + EventTypeQueryFlags[EventTypeQueryFlags["IncludeFields"] = 1] = "IncludeFields"; +})(EventTypeQueryFlags = exports.EventTypeQueryFlags || (exports.EventTypeQueryFlags = {})); +var NotificationOperation; +(function (NotificationOperation) { + NotificationOperation[NotificationOperation["None"] = 0] = "None"; + NotificationOperation[NotificationOperation["SuspendUnprocessed"] = 1] = "SuspendUnprocessed"; +})(NotificationOperation = exports.NotificationOperation || (exports.NotificationOperation = {})); +var NotificationReasonType; +(function (NotificationReasonType) { + NotificationReasonType[NotificationReasonType["Unknown"] = 0] = "Unknown"; + NotificationReasonType[NotificationReasonType["Follows"] = 1] = "Follows"; + NotificationReasonType[NotificationReasonType["Personal"] = 2] = "Personal"; + NotificationReasonType[NotificationReasonType["PersonalAlias"] = 3] = "PersonalAlias"; + NotificationReasonType[NotificationReasonType["DirectMember"] = 4] = "DirectMember"; + NotificationReasonType[NotificationReasonType["IndirectMember"] = 5] = "IndirectMember"; + NotificationReasonType[NotificationReasonType["GroupAlias"] = 6] = "GroupAlias"; + NotificationReasonType[NotificationReasonType["SubscriptionAlias"] = 7] = "SubscriptionAlias"; + NotificationReasonType[NotificationReasonType["SingleRole"] = 8] = "SingleRole"; + NotificationReasonType[NotificationReasonType["DirectMemberGroupRole"] = 9] = "DirectMemberGroupRole"; + NotificationReasonType[NotificationReasonType["InDirectMemberGroupRole"] = 10] = "InDirectMemberGroupRole"; + NotificationReasonType[NotificationReasonType["AliasMemberGroupRole"] = 11] = "AliasMemberGroupRole"; +})(NotificationReasonType = exports.NotificationReasonType || (exports.NotificationReasonType = {})); +var NotificationStatisticType; +(function (NotificationStatisticType) { + NotificationStatisticType[NotificationStatisticType["NotificationBySubscription"] = 0] = "NotificationBySubscription"; + NotificationStatisticType[NotificationStatisticType["EventsByEventType"] = 1] = "EventsByEventType"; + NotificationStatisticType[NotificationStatisticType["NotificationByEventType"] = 2] = "NotificationByEventType"; + NotificationStatisticType[NotificationStatisticType["EventsByEventTypePerUser"] = 3] = "EventsByEventTypePerUser"; + NotificationStatisticType[NotificationStatisticType["NotificationByEventTypePerUser"] = 4] = "NotificationByEventTypePerUser"; + NotificationStatisticType[NotificationStatisticType["Events"] = 5] = "Events"; + NotificationStatisticType[NotificationStatisticType["Notifications"] = 6] = "Notifications"; + NotificationStatisticType[NotificationStatisticType["NotificationFailureBySubscription"] = 7] = "NotificationFailureBySubscription"; + NotificationStatisticType[NotificationStatisticType["UnprocessedRangeStart"] = 100] = "UnprocessedRangeStart"; + NotificationStatisticType[NotificationStatisticType["UnprocessedEventsByPublisher"] = 101] = "UnprocessedEventsByPublisher"; + NotificationStatisticType[NotificationStatisticType["UnprocessedEventDelayByPublisher"] = 102] = "UnprocessedEventDelayByPublisher"; + NotificationStatisticType[NotificationStatisticType["UnprocessedNotificationsByChannelByPublisher"] = 103] = "UnprocessedNotificationsByChannelByPublisher"; + NotificationStatisticType[NotificationStatisticType["UnprocessedNotificationDelayByChannelByPublisher"] = 104] = "UnprocessedNotificationDelayByChannelByPublisher"; + NotificationStatisticType[NotificationStatisticType["DelayRangeStart"] = 200] = "DelayRangeStart"; + NotificationStatisticType[NotificationStatisticType["TotalPipelineTime"] = 201] = "TotalPipelineTime"; + NotificationStatisticType[NotificationStatisticType["NotificationPipelineTime"] = 202] = "NotificationPipelineTime"; + NotificationStatisticType[NotificationStatisticType["EventPipelineTime"] = 203] = "EventPipelineTime"; + NotificationStatisticType[NotificationStatisticType["HourlyRangeStart"] = 1000] = "HourlyRangeStart"; + NotificationStatisticType[NotificationStatisticType["HourlyNotificationBySubscription"] = 1001] = "HourlyNotificationBySubscription"; + NotificationStatisticType[NotificationStatisticType["HourlyEventsByEventTypePerUser"] = 1002] = "HourlyEventsByEventTypePerUser"; + NotificationStatisticType[NotificationStatisticType["HourlyEvents"] = 1003] = "HourlyEvents"; + NotificationStatisticType[NotificationStatisticType["HourlyNotifications"] = 1004] = "HourlyNotifications"; + NotificationStatisticType[NotificationStatisticType["HourlyUnprocessedEventsByPublisher"] = 1101] = "HourlyUnprocessedEventsByPublisher"; + NotificationStatisticType[NotificationStatisticType["HourlyUnprocessedEventDelayByPublisher"] = 1102] = "HourlyUnprocessedEventDelayByPublisher"; + NotificationStatisticType[NotificationStatisticType["HourlyUnprocessedNotificationsByChannelByPublisher"] = 1103] = "HourlyUnprocessedNotificationsByChannelByPublisher"; + NotificationStatisticType[NotificationStatisticType["HourlyUnprocessedNotificationDelayByChannelByPublisher"] = 1104] = "HourlyUnprocessedNotificationDelayByChannelByPublisher"; + NotificationStatisticType[NotificationStatisticType["HourlyTotalPipelineTime"] = 1201] = "HourlyTotalPipelineTime"; + NotificationStatisticType[NotificationStatisticType["HourlyNotificationPipelineTime"] = 1202] = "HourlyNotificationPipelineTime"; + NotificationStatisticType[NotificationStatisticType["HourlyEventPipelineTime"] = 1203] = "HourlyEventPipelineTime"; +})(NotificationStatisticType = exports.NotificationStatisticType || (exports.NotificationStatisticType = {})); +/** + * Delivery preference for a subscriber. Indicates how the subscriber should be notified. + */ +var NotificationSubscriberDeliveryPreference; +(function (NotificationSubscriberDeliveryPreference) { + /** + * Do not send notifications by default. Note: notifications can still be delivered to this subscriber, for example via a custom subscription. + */ + NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference["NoDelivery"] = -1] = "NoDelivery"; + /** + * Deliver notifications to the subscriber's preferred email address. + */ + NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference["PreferredEmailAddress"] = 1] = "PreferredEmailAddress"; + /** + * Deliver notifications to each member of the group representing the subscriber. Only applicable when the subscriber is a group. + */ + NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference["EachMember"] = 2] = "EachMember"; + /** + * Use default + */ + NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference["UseDefault"] = 3] = "UseDefault"; +})(NotificationSubscriberDeliveryPreference = exports.NotificationSubscriberDeliveryPreference || (exports.NotificationSubscriberDeliveryPreference = {})); +var SubscriberFlags; +(function (SubscriberFlags) { + SubscriberFlags[SubscriberFlags["None"] = 0] = "None"; + /** + * Subscriber's delivery preferences could be updated + */ + SubscriberFlags[SubscriberFlags["DeliveryPreferencesEditable"] = 2] = "DeliveryPreferencesEditable"; + /** + * Subscriber's delivery preferences supports email delivery + */ + SubscriberFlags[SubscriberFlags["SupportsPreferredEmailAddressDelivery"] = 4] = "SupportsPreferredEmailAddressDelivery"; + /** + * Subscriber's delivery preferences supports individual members delivery(group expansion) + */ + SubscriberFlags[SubscriberFlags["SupportsEachMemberDelivery"] = 8] = "SupportsEachMemberDelivery"; + /** + * Subscriber's delivery preferences supports no delivery + */ + SubscriberFlags[SubscriberFlags["SupportsNoDelivery"] = 16] = "SupportsNoDelivery"; + /** + * Subscriber is a user + */ + SubscriberFlags[SubscriberFlags["IsUser"] = 32] = "IsUser"; + /** + * Subscriber is a group + */ + SubscriberFlags[SubscriberFlags["IsGroup"] = 64] = "IsGroup"; + /** + * Subscriber is a team + */ + SubscriberFlags[SubscriberFlags["IsTeam"] = 128] = "IsTeam"; +})(SubscriberFlags = exports.SubscriberFlags || (exports.SubscriberFlags = {})); +var SubscriptionFieldType; +(function (SubscriptionFieldType) { + SubscriptionFieldType[SubscriptionFieldType["String"] = 1] = "String"; + SubscriptionFieldType[SubscriptionFieldType["Integer"] = 2] = "Integer"; + SubscriptionFieldType[SubscriptionFieldType["DateTime"] = 3] = "DateTime"; + SubscriptionFieldType[SubscriptionFieldType["PlainText"] = 5] = "PlainText"; + SubscriptionFieldType[SubscriptionFieldType["Html"] = 7] = "Html"; + SubscriptionFieldType[SubscriptionFieldType["TreePath"] = 8] = "TreePath"; + SubscriptionFieldType[SubscriptionFieldType["History"] = 9] = "History"; + SubscriptionFieldType[SubscriptionFieldType["Double"] = 10] = "Double"; + SubscriptionFieldType[SubscriptionFieldType["Guid"] = 11] = "Guid"; + SubscriptionFieldType[SubscriptionFieldType["Boolean"] = 12] = "Boolean"; + SubscriptionFieldType[SubscriptionFieldType["Identity"] = 13] = "Identity"; + SubscriptionFieldType[SubscriptionFieldType["PicklistInteger"] = 14] = "PicklistInteger"; + SubscriptionFieldType[SubscriptionFieldType["PicklistString"] = 15] = "PicklistString"; + SubscriptionFieldType[SubscriptionFieldType["PicklistDouble"] = 16] = "PicklistDouble"; + SubscriptionFieldType[SubscriptionFieldType["TeamProject"] = 17] = "TeamProject"; +})(SubscriptionFieldType = exports.SubscriptionFieldType || (exports.SubscriptionFieldType = {})); +/** + * Read-only indicators that further describe the subscription. + */ +var SubscriptionFlags; +(function (SubscriptionFlags) { + /** + * None + */ + SubscriptionFlags[SubscriptionFlags["None"] = 0] = "None"; + /** + * Subscription's subscriber is a group, not a user + */ + SubscriptionFlags[SubscriptionFlags["GroupSubscription"] = 1] = "GroupSubscription"; + /** + * Subscription is contributed and not persisted. This means certain fields of the subscription, like Filter, are read-only. + */ + SubscriptionFlags[SubscriptionFlags["ContributedSubscription"] = 2] = "ContributedSubscription"; + /** + * A user that is member of the subscription's subscriber group can opt in/out of the subscription. + */ + SubscriptionFlags[SubscriptionFlags["CanOptOut"] = 4] = "CanOptOut"; + /** + * If the subscriber is a group, is it a team. + */ + SubscriptionFlags[SubscriptionFlags["TeamSubscription"] = 8] = "TeamSubscription"; + /** + * For role based subscriptions, there is an expectation that there will always be at least one actor that matches + */ + SubscriptionFlags[SubscriptionFlags["OneActorMatches"] = 16] = "OneActorMatches"; +})(SubscriptionFlags = exports.SubscriptionFlags || (exports.SubscriptionFlags = {})); +/** + * The permissions that a user has to a certain subscription + */ +var SubscriptionPermissions; +(function (SubscriptionPermissions) { + /** + * None + */ + SubscriptionPermissions[SubscriptionPermissions["None"] = 0] = "None"; + /** + * full view of description, filters, etc. Not limited. + */ + SubscriptionPermissions[SubscriptionPermissions["View"] = 1] = "View"; + /** + * update subscription + */ + SubscriptionPermissions[SubscriptionPermissions["Edit"] = 2] = "Edit"; + /** + * delete subscription + */ + SubscriptionPermissions[SubscriptionPermissions["Delete"] = 4] = "Delete"; +})(SubscriptionPermissions = exports.SubscriptionPermissions || (exports.SubscriptionPermissions = {})); +/** + * Flags that influence the result set of a subscription query. + */ +var SubscriptionQueryFlags; +(function (SubscriptionQueryFlags) { + SubscriptionQueryFlags[SubscriptionQueryFlags["None"] = 0] = "None"; + /** + * Include subscriptions with invalid subscribers. + */ + SubscriptionQueryFlags[SubscriptionQueryFlags["IncludeInvalidSubscriptions"] = 2] = "IncludeInvalidSubscriptions"; + /** + * Include subscriptions marked for deletion. + */ + SubscriptionQueryFlags[SubscriptionQueryFlags["IncludeDeletedSubscriptions"] = 4] = "IncludeDeletedSubscriptions"; + /** + * Include the full filter details with each subscription. + */ + SubscriptionQueryFlags[SubscriptionQueryFlags["IncludeFilterDetails"] = 8] = "IncludeFilterDetails"; + /** + * For a subscription the caller does not have permission to view, return basic (non-confidential) information. + */ + SubscriptionQueryFlags[SubscriptionQueryFlags["AlwaysReturnBasicInformation"] = 16] = "AlwaysReturnBasicInformation"; + /** + * Include system subscriptions. + */ + SubscriptionQueryFlags[SubscriptionQueryFlags["IncludeSystemSubscriptions"] = 32] = "IncludeSystemSubscriptions"; +})(SubscriptionQueryFlags = exports.SubscriptionQueryFlags || (exports.SubscriptionQueryFlags = {})); +/** + * Subscription status values. A value greater than or equal to zero indicates the subscription is enabled. A negative value indicates the subscription is disabled. + */ +var SubscriptionStatus; +(function (SubscriptionStatus) { + /** + * Subscription is disabled because it generated a high volume of notifications. + */ + SubscriptionStatus[SubscriptionStatus["JailedByNotificationsVolume"] = -200] = "JailedByNotificationsVolume"; + /** + * Subscription is disabled and will be deleted. + */ + SubscriptionStatus[SubscriptionStatus["PendingDeletion"] = -100] = "PendingDeletion"; + /** + * Subscription is disabled because of an Argument Exception while processing the subscription + */ + SubscriptionStatus[SubscriptionStatus["DisabledArgumentException"] = -12] = "DisabledArgumentException"; + /** + * Subscription is disabled because the project is invalid + */ + SubscriptionStatus[SubscriptionStatus["DisabledProjectInvalid"] = -11] = "DisabledProjectInvalid"; + /** + * Subscription is disabled because the identity does not have the appropriate permissions + */ + SubscriptionStatus[SubscriptionStatus["DisabledMissingPermissions"] = -10] = "DisabledMissingPermissions"; + /** + * Subscription is disabled service due to failures. + */ + SubscriptionStatus[SubscriptionStatus["DisabledFromProbation"] = -9] = "DisabledFromProbation"; + /** + * Subscription is disabled because the identity is no longer active + */ + SubscriptionStatus[SubscriptionStatus["DisabledInactiveIdentity"] = -8] = "DisabledInactiveIdentity"; + /** + * Subscription is disabled because message queue is not supported. + */ + SubscriptionStatus[SubscriptionStatus["DisabledMessageQueueNotSupported"] = -7] = "DisabledMessageQueueNotSupported"; + /** + * Subscription is disabled because its subscriber is unknown. + */ + SubscriptionStatus[SubscriptionStatus["DisabledMissingIdentity"] = -6] = "DisabledMissingIdentity"; + /** + * Subscription is disabled because it has an invalid role expression. + */ + SubscriptionStatus[SubscriptionStatus["DisabledInvalidRoleExpression"] = -5] = "DisabledInvalidRoleExpression"; + /** + * Subscription is disabled because it has an invalid filter expression. + */ + SubscriptionStatus[SubscriptionStatus["DisabledInvalidPathClause"] = -4] = "DisabledInvalidPathClause"; + /** + * Subscription is disabled because it is a duplicate of a default subscription. + */ + SubscriptionStatus[SubscriptionStatus["DisabledAsDuplicateOfDefault"] = -3] = "DisabledAsDuplicateOfDefault"; + /** + * Subscription is disabled by an administrator, not the subscription's subscriber. + */ + SubscriptionStatus[SubscriptionStatus["DisabledByAdmin"] = -2] = "DisabledByAdmin"; + /** + * Subscription is disabled, typically by the owner of the subscription, and will not produce any notifications. + */ + SubscriptionStatus[SubscriptionStatus["Disabled"] = -1] = "Disabled"; + /** + * Subscription is active. + */ + SubscriptionStatus[SubscriptionStatus["Enabled"] = 0] = "Enabled"; + /** + * Subscription is active, but is on probation due to failed deliveries or other issues with the subscription. + */ + SubscriptionStatus[SubscriptionStatus["EnabledOnProbation"] = 1] = "EnabledOnProbation"; +})(SubscriptionStatus = exports.SubscriptionStatus || (exports.SubscriptionStatus = {})); +/** + * Set of flags used to determine which set of templates is retrieved when querying for subscription templates + */ +var SubscriptionTemplateQueryFlags; +(function (SubscriptionTemplateQueryFlags) { + SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags["None"] = 0] = "None"; + /** + * Include user templates + */ + SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags["IncludeUser"] = 1] = "IncludeUser"; + /** + * Include group templates + */ + SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags["IncludeGroup"] = 2] = "IncludeGroup"; + /** + * Include user and group templates + */ + SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags["IncludeUserAndGroup"] = 4] = "IncludeUserAndGroup"; + /** + * Include the event type details like the fields and operators + */ + SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags["IncludeEventTypeInformation"] = 22] = "IncludeEventTypeInformation"; +})(SubscriptionTemplateQueryFlags = exports.SubscriptionTemplateQueryFlags || (exports.SubscriptionTemplateQueryFlags = {})); +var SubscriptionTemplateType; +(function (SubscriptionTemplateType) { + SubscriptionTemplateType[SubscriptionTemplateType["User"] = 0] = "User"; + SubscriptionTemplateType[SubscriptionTemplateType["Team"] = 1] = "Team"; + SubscriptionTemplateType[SubscriptionTemplateType["Both"] = 2] = "Both"; + SubscriptionTemplateType[SubscriptionTemplateType["None"] = 3] = "None"; +})(SubscriptionTemplateType = exports.SubscriptionTemplateType || (exports.SubscriptionTemplateType = {})); +exports.TypeInfo = { + ActorNotificationReason: {}, + BatchNotificationOperation: {}, + DefaultGroupDeliveryPreference: { + enumValues: { + "noDelivery": -1, + "eachMember": 2 + } + }, + EvaluationOperationStatus: { + enumValues: { + "notSet": 0, + "queued": 1, + "inProgress": 2, + "cancelled": 3, + "succeeded": 4, + "failed": 5, + "timedOut": 6, + "notFound": 7 + } + }, + EventBacklogStatus: {}, + EventProcessingLog: {}, + EventPublisherQueryFlags: { + enumValues: { + "none": 0, + "includeRemoteServices": 2 + } + }, + EventTypeQueryFlags: { + enumValues: { + "none": 0, + "includeFields": 1 + } + }, + INotificationDiagnosticLog: {}, + NotificationAdminSettings: {}, + NotificationAdminSettingsUpdateParameters: {}, + NotificationBacklogStatus: {}, + NotificationDeliveryLog: {}, + NotificationDiagnosticLog: {}, + NotificationEventBacklogStatus: {}, + NotificationEventField: {}, + NotificationEventFieldType: {}, + NotificationEventType: {}, + NotificationJobDiagnosticLog: {}, + NotificationOperation: { + enumValues: { + "none": 0, + "suspendUnprocessed": 1 + } + }, + NotificationReason: {}, + NotificationReasonType: { + enumValues: { + "unknown": 0, + "follows": 1, + "personal": 2, + "personalAlias": 3, + "directMember": 4, + "indirectMember": 5, + "groupAlias": 6, + "subscriptionAlias": 7, + "singleRole": 8, + "directMemberGroupRole": 9, + "inDirectMemberGroupRole": 10, + "aliasMemberGroupRole": 11 + } + }, + NotificationStatistic: {}, + NotificationStatisticsQuery: {}, + NotificationStatisticsQueryConditions: {}, + NotificationStatisticType: { + enumValues: { + "notificationBySubscription": 0, + "eventsByEventType": 1, + "notificationByEventType": 2, + "eventsByEventTypePerUser": 3, + "notificationByEventTypePerUser": 4, + "events": 5, + "notifications": 6, + "notificationFailureBySubscription": 7, + "unprocessedRangeStart": 100, + "unprocessedEventsByPublisher": 101, + "unprocessedEventDelayByPublisher": 102, + "unprocessedNotificationsByChannelByPublisher": 103, + "unprocessedNotificationDelayByChannelByPublisher": 104, + "delayRangeStart": 200, + "totalPipelineTime": 201, + "notificationPipelineTime": 202, + "eventPipelineTime": 203, + "hourlyRangeStart": 1000, + "hourlyNotificationBySubscription": 1001, + "hourlyEventsByEventTypePerUser": 1002, + "hourlyEvents": 1003, + "hourlyNotifications": 1004, + "hourlyUnprocessedEventsByPublisher": 1101, + "hourlyUnprocessedEventDelayByPublisher": 1102, + "hourlyUnprocessedNotificationsByChannelByPublisher": 1103, + "hourlyUnprocessedNotificationDelayByChannelByPublisher": 1104, + "hourlyTotalPipelineTime": 1201, + "hourlyNotificationPipelineTime": 1202, + "hourlyEventPipelineTime": 1203 + } + }, + NotificationSubscriber: {}, + NotificationSubscriberDeliveryPreference: { + enumValues: { + "noDelivery": -1, + "preferredEmailAddress": 1, + "eachMember": 2, + "useDefault": 3 + } + }, + NotificationSubscriberUpdateParameters: {}, + NotificationSubscription: {}, + NotificationSubscriptionTemplate: {}, + NotificationSubscriptionUpdateParameters: {}, + SubscriberFlags: { + enumValues: { + "none": 0, + "deliveryPreferencesEditable": 2, + "supportsPreferredEmailAddressDelivery": 4, + "supportsEachMemberDelivery": 8, + "supportsNoDelivery": 16, + "isUser": 32, + "isGroup": 64, + "isTeam": 128 + } + }, + SubscriptionDiagnostics: {}, + SubscriptionEvaluationRequest: {}, + SubscriptionEvaluationResult: {}, + SubscriptionFieldType: { + enumValues: { + "string": 1, + "integer": 2, + "dateTime": 3, + "plainText": 5, + "html": 7, + "treePath": 8, + "history": 9, + "double": 10, + "guid": 11, + "boolean": 12, + "identity": 13, + "picklistInteger": 14, + "picklistString": 15, + "picklistDouble": 16, + "teamProject": 17 + } + }, + SubscriptionFlags: { + enumValues: { + "none": 0, + "groupSubscription": 1, + "contributedSubscription": 2, + "canOptOut": 4, + "teamSubscription": 8, + "oneActorMatches": 16 + } + }, + SubscriptionPermissions: { + enumValues: { + "none": 0, + "view": 1, + "edit": 2, + "delete": 4 + } + }, + SubscriptionQuery: {}, + SubscriptionQueryCondition: {}, + SubscriptionQueryFlags: { + enumValues: { + "none": 0, + "includeInvalidSubscriptions": 2, + "includeDeletedSubscriptions": 4, + "includeFilterDetails": 8, + "alwaysReturnBasicInformation": 16, + "includeSystemSubscriptions": 32 + } + }, + SubscriptionStatus: { + enumValues: { + "jailedByNotificationsVolume": -200, + "pendingDeletion": -100, + "disabledArgumentException": -12, + "disabledProjectInvalid": -11, + "disabledMissingPermissions": -10, + "disabledFromProbation": -9, + "disabledInactiveIdentity": -8, + "disabledMessageQueueNotSupported": -7, + "disabledMissingIdentity": -6, + "disabledInvalidRoleExpression": -5, + "disabledInvalidPathClause": -4, + "disabledAsDuplicateOfDefault": -3, + "disabledByAdmin": -2, + "disabled": -1, + "enabled": 0, + "enabledOnProbation": 1 + } + }, + SubscriptionTemplateQueryFlags: { + enumValues: { + "none": 0, + "includeUser": 1, + "includeGroup": 2, + "includeUserAndGroup": 4, + "includeEventTypeInformation": 22 + } + }, + SubscriptionTemplateType: { + enumValues: { + "user": 0, + "team": 1, + "both": 2, + "none": 3 + } + }, + SubscriptionTraceDiagnosticLog: {}, + SubscriptionTraceEventProcessingLog: {}, + SubscriptionTraceNotificationDeliveryLog: {}, + SubscriptionTracing: {}, +}; +exports.TypeInfo.ActorNotificationReason.fields = { + notificationReasonType: { + enumType: exports.TypeInfo.NotificationReasonType + } +}; +exports.TypeInfo.BatchNotificationOperation.fields = { + notificationOperation: { + enumType: exports.TypeInfo.NotificationOperation + } +}; +exports.TypeInfo.EventBacklogStatus.fields = { + captureTime: { + isDate: true, + }, + lastEventBatchStartTime: { + isDate: true, + }, + lastEventProcessedTime: { + isDate: true, + }, + lastJobBatchStartTime: { + isDate: true, + }, + lastJobProcessedTime: { + isDate: true, + }, + oldestPendingEventTime: { + isDate: true, + } +}; +exports.TypeInfo.EventProcessingLog.fields = { + endTime: { + isDate: true, + }, + startTime: { + isDate: true, + } +}; +exports.TypeInfo.INotificationDiagnosticLog.fields = { + endTime: { + isDate: true, + }, + startTime: { + isDate: true, + } +}; +exports.TypeInfo.NotificationAdminSettings.fields = { + defaultGroupDeliveryPreference: { + enumType: exports.TypeInfo.DefaultGroupDeliveryPreference + } +}; +exports.TypeInfo.NotificationAdminSettingsUpdateParameters.fields = { + defaultGroupDeliveryPreference: { + enumType: exports.TypeInfo.DefaultGroupDeliveryPreference + } +}; +exports.TypeInfo.NotificationBacklogStatus.fields = { + captureTime: { + isDate: true, + }, + lastJobBatchStartTime: { + isDate: true, + }, + lastJobProcessedTime: { + isDate: true, + }, + lastNotificationBatchStartTime: { + isDate: true, + }, + lastNotificationProcessedTime: { + isDate: true, + }, + oldestPendingNotificationTime: { + isDate: true, + } +}; +exports.TypeInfo.NotificationDeliveryLog.fields = { + endTime: { + isDate: true, + }, + startTime: { + isDate: true, + } +}; +exports.TypeInfo.NotificationDiagnosticLog.fields = { + endTime: { + isDate: true, + }, + startTime: { + isDate: true, + } +}; +exports.TypeInfo.NotificationEventBacklogStatus.fields = { + eventBacklogStatus: { + isArray: true, + typeInfo: exports.TypeInfo.EventBacklogStatus + }, + notificationBacklogStatus: { + isArray: true, + typeInfo: exports.TypeInfo.NotificationBacklogStatus + } +}; +exports.TypeInfo.NotificationEventField.fields = { + fieldType: { + typeInfo: exports.TypeInfo.NotificationEventFieldType + } +}; +exports.TypeInfo.NotificationEventFieldType.fields = { + subscriptionFieldType: { + enumType: exports.TypeInfo.SubscriptionFieldType + } +}; +exports.TypeInfo.NotificationEventType.fields = { + fields: { + isDictionary: true, + dictionaryValueTypeInfo: exports.TypeInfo.NotificationEventField + } +}; +exports.TypeInfo.NotificationJobDiagnosticLog.fields = { + endTime: { + isDate: true, + }, + startTime: { + isDate: true, + } +}; +exports.TypeInfo.NotificationReason.fields = { + notificationReasonType: { + enumType: exports.TypeInfo.NotificationReasonType + } +}; +exports.TypeInfo.NotificationStatistic.fields = { + date: { + isDate: true, + }, + type: { + enumType: exports.TypeInfo.NotificationStatisticType + } +}; +exports.TypeInfo.NotificationStatisticsQuery.fields = { + conditions: { + isArray: true, + typeInfo: exports.TypeInfo.NotificationStatisticsQueryConditions + } +}; +exports.TypeInfo.NotificationStatisticsQueryConditions.fields = { + endDate: { + isDate: true, + }, + startDate: { + isDate: true, + }, + type: { + enumType: exports.TypeInfo.NotificationStatisticType + } +}; +exports.TypeInfo.NotificationSubscriber.fields = { + deliveryPreference: { + enumType: exports.TypeInfo.NotificationSubscriberDeliveryPreference + }, + flags: { + enumType: exports.TypeInfo.SubscriberFlags + } +}; +exports.TypeInfo.NotificationSubscriberUpdateParameters.fields = { + deliveryPreference: { + enumType: exports.TypeInfo.NotificationSubscriberDeliveryPreference + } +}; +exports.TypeInfo.NotificationSubscription.fields = { + diagnostics: { + typeInfo: exports.TypeInfo.SubscriptionDiagnostics + }, + flags: { + enumType: exports.TypeInfo.SubscriptionFlags + }, + modifiedDate: { + isDate: true, + }, + permissions: { + enumType: exports.TypeInfo.SubscriptionPermissions + }, + status: { + enumType: exports.TypeInfo.SubscriptionStatus + } +}; +exports.TypeInfo.NotificationSubscriptionTemplate.fields = { + notificationEventInformation: { + typeInfo: exports.TypeInfo.NotificationEventType + }, + type: { + enumType: exports.TypeInfo.SubscriptionTemplateType + } +}; +exports.TypeInfo.NotificationSubscriptionUpdateParameters.fields = { + status: { + enumType: exports.TypeInfo.SubscriptionStatus + } +}; +exports.TypeInfo.SubscriptionDiagnostics.fields = { + deliveryResults: { + typeInfo: exports.TypeInfo.SubscriptionTracing + }, + deliveryTracing: { + typeInfo: exports.TypeInfo.SubscriptionTracing + }, + evaluationTracing: { + typeInfo: exports.TypeInfo.SubscriptionTracing + } +}; +exports.TypeInfo.SubscriptionEvaluationRequest.fields = { + minEventsCreatedDate: { + isDate: true, + } +}; +exports.TypeInfo.SubscriptionEvaluationResult.fields = { + evaluationJobStatus: { + enumType: exports.TypeInfo.EvaluationOperationStatus + } +}; +exports.TypeInfo.SubscriptionQuery.fields = { + conditions: { + isArray: true, + typeInfo: exports.TypeInfo.SubscriptionQueryCondition + }, + queryFlags: { + enumType: exports.TypeInfo.SubscriptionQueryFlags + } +}; +exports.TypeInfo.SubscriptionQueryCondition.fields = { + flags: { + enumType: exports.TypeInfo.SubscriptionFlags + } +}; +exports.TypeInfo.SubscriptionTraceDiagnosticLog.fields = { + endTime: { + isDate: true, + }, + startTime: { + isDate: true, + } +}; +exports.TypeInfo.SubscriptionTraceEventProcessingLog.fields = { + endTime: { + isDate: true, + }, + startTime: { + isDate: true, + } +}; +exports.TypeInfo.SubscriptionTraceNotificationDeliveryLog.fields = { + endTime: { + isDate: true, + }, + startTime: { + isDate: true, + } +}; +exports.TypeInfo.SubscriptionTracing.fields = { + endDate: { + isDate: true, + }, + startDate: { + isDate: true, + } +}; + + +/***/ }), + +/***/ 8555: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +/** + * Status of a policy which is running against a specific pull request. + */ +var PolicyEvaluationStatus; +(function (PolicyEvaluationStatus) { + /** + * The policy is either queued to run, or is waiting for some event before progressing. + */ + PolicyEvaluationStatus[PolicyEvaluationStatus["Queued"] = 0] = "Queued"; + /** + * The policy is currently running. + */ + PolicyEvaluationStatus[PolicyEvaluationStatus["Running"] = 1] = "Running"; + /** + * The policy has been fulfilled for this pull request. + */ + PolicyEvaluationStatus[PolicyEvaluationStatus["Approved"] = 2] = "Approved"; + /** + * The policy has rejected this pull request. + */ + PolicyEvaluationStatus[PolicyEvaluationStatus["Rejected"] = 3] = "Rejected"; + /** + * The policy does not apply to this pull request. + */ + PolicyEvaluationStatus[PolicyEvaluationStatus["NotApplicable"] = 4] = "NotApplicable"; + /** + * The policy has encountered an unexpected error. + */ + PolicyEvaluationStatus[PolicyEvaluationStatus["Broken"] = 5] = "Broken"; +})(PolicyEvaluationStatus = exports.PolicyEvaluationStatus || (exports.PolicyEvaluationStatus = {})); +exports.TypeInfo = { + PolicyConfiguration: {}, + PolicyEvaluationRecord: {}, + PolicyEvaluationStatus: { + enumValues: { + "queued": 0, + "running": 1, + "approved": 2, + "rejected": 3, + "notApplicable": 4, + "broken": 5 + } + }, +}; +exports.TypeInfo.PolicyConfiguration.fields = { + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.PolicyEvaluationRecord.fields = { + completedDate: { + isDate: true, + }, + configuration: { + typeInfo: exports.TypeInfo.PolicyConfiguration + }, + startedDate: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.PolicyEvaluationStatus + } +}; + + +/***/ }), + +/***/ 879: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* +* --------------------------------------------------------- +* Copyright(C) Microsoft Corporation. All rights reserved. +* --------------------------------------------------------- +* +* --------------------------------------------------------- +* Generated file, DO NOT EDIT +* --------------------------------------------------------- +*/ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +var AvatarSize; +(function (AvatarSize) { + AvatarSize[AvatarSize["Small"] = 0] = "Small"; + AvatarSize[AvatarSize["Medium"] = 1] = "Medium"; + AvatarSize[AvatarSize["Large"] = 2] = "Large"; +})(AvatarSize = exports.AvatarSize || (exports.AvatarSize = {})); +exports.TypeInfo = { + AttributeDescriptor: { + fields: null + }, + AttributesContainer: { + fields: null + }, + Avatar: { + fields: null + }, + AvatarSize: { + enumValues: { + "small": 0, + "medium": 1, + "large": 2, + } + }, + CoreProfileAttribute: { + fields: null + }, + Country: { + fields: null + }, + CreateProfileContext: { + fields: null + }, + GeoRegion: { + fields: null + }, + Profile: { + fields: null + }, + ProfileAttribute: { + fields: null + }, + ProfileAttributeBase: { + fields: null + }, + ProfileRegion: { + fields: null + }, + ProfileRegions: { + fields: null + }, +}; +exports.TypeInfo.AttributeDescriptor.fields = {}; +exports.TypeInfo.AttributesContainer.fields = { + attributes: {}, +}; +exports.TypeInfo.Avatar.fields = { + size: { + enumType: exports.TypeInfo.AvatarSize + }, + timeStamp: { + isDate: true, + }, +}; +exports.TypeInfo.CoreProfileAttribute.fields = { + descriptor: { + typeInfo: exports.TypeInfo.AttributeDescriptor + }, + timeStamp: { + isDate: true, + }, +}; +exports.TypeInfo.Country.fields = {}; +exports.TypeInfo.CreateProfileContext.fields = {}; +exports.TypeInfo.GeoRegion.fields = {}; +exports.TypeInfo.Profile.fields = { + applicationContainer: { + typeInfo: exports.TypeInfo.AttributesContainer + }, + coreAttributes: {}, + timeStamp: { + isDate: true, + }, +}; +exports.TypeInfo.ProfileAttribute.fields = { + descriptor: { + typeInfo: exports.TypeInfo.AttributeDescriptor + }, + timeStamp: { + isDate: true, + }, +}; +exports.TypeInfo.ProfileAttributeBase.fields = { + descriptor: { + typeInfo: exports.TypeInfo.AttributeDescriptor + }, + timeStamp: { + isDate: true, + }, +}; +exports.TypeInfo.ProfileRegion.fields = {}; +exports.TypeInfo.ProfileRegions.fields = { + regions: { + isArray: true, + typeInfo: exports.TypeInfo.ProfileRegion + }, +}; + + +/***/ }), + +/***/ 4323: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +var AggregationType; +(function (AggregationType) { + AggregationType[AggregationType["Hourly"] = 0] = "Hourly"; + AggregationType[AggregationType["Daily"] = 1] = "Daily"; +})(AggregationType = exports.AggregationType || (exports.AggregationType = {})); +var ResultPhase; +(function (ResultPhase) { + ResultPhase[ResultPhase["Preliminary"] = 0] = "Preliminary"; + ResultPhase[ResultPhase["Full"] = 1] = "Full"; +})(ResultPhase = exports.ResultPhase || (exports.ResultPhase = {})); +exports.TypeInfo = { + AggregationType: { + enumValues: { + "hourly": 0, + "daily": 1 + } + }, + CodeChangeTrendItem: {}, + ProjectActivityMetrics: {}, + ProjectLanguageAnalytics: {}, + RepositoryActivityMetrics: {}, + RepositoryLanguageAnalytics: {}, + ResultPhase: { + enumValues: { + "preliminary": 0, + "full": 1 + } + }, +}; +exports.TypeInfo.CodeChangeTrendItem.fields = { + time: { + isDate: true, + } +}; +exports.TypeInfo.ProjectActivityMetrics.fields = { + codeChangesTrend: { + isArray: true, + typeInfo: exports.TypeInfo.CodeChangeTrendItem + } +}; +exports.TypeInfo.ProjectLanguageAnalytics.fields = { + repositoryLanguageAnalytics: { + isArray: true, + typeInfo: exports.TypeInfo.RepositoryLanguageAnalytics + }, + resultPhase: { + enumType: exports.TypeInfo.ResultPhase + } +}; +exports.TypeInfo.RepositoryActivityMetrics.fields = { + codeChangesTrend: { + isArray: true, + typeInfo: exports.TypeInfo.CodeChangeTrendItem + } +}; +exports.TypeInfo.RepositoryLanguageAnalytics.fields = { + resultPhase: { + enumType: exports.TypeInfo.ResultPhase + }, + updatedTime: { + isDate: true, + } +}; + + +/***/ }), + +/***/ 7421: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const FormInputInterfaces = __nccwpck_require__(3627); +var AgentArtifactType; +(function (AgentArtifactType) { + /** + * Indicates XamlBuild artifact + */ + AgentArtifactType[AgentArtifactType["XamlBuild"] = 0] = "XamlBuild"; + /** + * Indicates Build artifact + */ + AgentArtifactType[AgentArtifactType["Build"] = 1] = "Build"; + /** + * Indicates Jenkins artifact + */ + AgentArtifactType[AgentArtifactType["Jenkins"] = 2] = "Jenkins"; + /** + * Indicates FileShare artifact + */ + AgentArtifactType[AgentArtifactType["FileShare"] = 3] = "FileShare"; + /** + * Indicates Nuget artifact + */ + AgentArtifactType[AgentArtifactType["Nuget"] = 4] = "Nuget"; + /** + * Indicates TfsOnPrem artifact + */ + AgentArtifactType[AgentArtifactType["TfsOnPrem"] = 5] = "TfsOnPrem"; + /** + * Indicates GitHub artifact + */ + AgentArtifactType[AgentArtifactType["GitHub"] = 6] = "GitHub"; + /** + * Indicates TFGit artifact + */ + AgentArtifactType[AgentArtifactType["TFGit"] = 7] = "TFGit"; + /** + * Indicates ExternalTfsBuild artifact + */ + AgentArtifactType[AgentArtifactType["ExternalTfsBuild"] = 8] = "ExternalTfsBuild"; + /** + * Indicates Custom artifact + */ + AgentArtifactType[AgentArtifactType["Custom"] = 9] = "Custom"; + /** + * Indicates Tfvc artifact + */ + AgentArtifactType[AgentArtifactType["Tfvc"] = 10] = "Tfvc"; +})(AgentArtifactType = exports.AgentArtifactType || (exports.AgentArtifactType = {})); +var ApprovalExecutionOrder; +(function (ApprovalExecutionOrder) { + /** + * Approvals shown before gates. + */ + ApprovalExecutionOrder[ApprovalExecutionOrder["BeforeGates"] = 1] = "BeforeGates"; + /** + * Approvals shown after successful execution of gates. + */ + ApprovalExecutionOrder[ApprovalExecutionOrder["AfterSuccessfulGates"] = 2] = "AfterSuccessfulGates"; + /** + * Approvals shown always after execution of gates. + */ + ApprovalExecutionOrder[ApprovalExecutionOrder["AfterGatesAlways"] = 4] = "AfterGatesAlways"; +})(ApprovalExecutionOrder = exports.ApprovalExecutionOrder || (exports.ApprovalExecutionOrder = {})); +var ApprovalFilters; +(function (ApprovalFilters) { + /** + * No approvals or approval snapshots. + */ + ApprovalFilters[ApprovalFilters["None"] = 0] = "None"; + /** + * Manual approval steps but no approval snapshots (Use with ApprovalSnapshots for snapshots). + */ + ApprovalFilters[ApprovalFilters["ManualApprovals"] = 1] = "ManualApprovals"; + /** + * Automated approval steps but no approval snapshots (Use with ApprovalSnapshots for snapshots). + */ + ApprovalFilters[ApprovalFilters["AutomatedApprovals"] = 2] = "AutomatedApprovals"; + /** + * No approval steps, but approval snapshots (Use with either ManualApprovals or AutomatedApprovals for approval steps). + */ + ApprovalFilters[ApprovalFilters["ApprovalSnapshots"] = 4] = "ApprovalSnapshots"; + /** + * All approval steps and approval snapshots. + */ + ApprovalFilters[ApprovalFilters["All"] = 7] = "All"; +})(ApprovalFilters = exports.ApprovalFilters || (exports.ApprovalFilters = {})); +var ApprovalStatus; +(function (ApprovalStatus) { + /** + * Indicates the approval does not have the status set. + */ + ApprovalStatus[ApprovalStatus["Undefined"] = 0] = "Undefined"; + /** + * Indicates the approval is pending. + */ + ApprovalStatus[ApprovalStatus["Pending"] = 1] = "Pending"; + /** + * Indicates the approval is approved. + */ + ApprovalStatus[ApprovalStatus["Approved"] = 2] = "Approved"; + /** + * Indicates the approval is rejected. + */ + ApprovalStatus[ApprovalStatus["Rejected"] = 4] = "Rejected"; + /** + * Indicates the approval is reassigned. + */ + ApprovalStatus[ApprovalStatus["Reassigned"] = 6] = "Reassigned"; + /** + * Indicates the approval is canceled. + */ + ApprovalStatus[ApprovalStatus["Canceled"] = 7] = "Canceled"; + /** + * Indicates the approval is skipped. + */ + ApprovalStatus[ApprovalStatus["Skipped"] = 8] = "Skipped"; +})(ApprovalStatus = exports.ApprovalStatus || (exports.ApprovalStatus = {})); +var ApprovalType; +(function (ApprovalType) { + /** + * Indicates the approval type does not set. + */ + ApprovalType[ApprovalType["Undefined"] = 0] = "Undefined"; + /** + * Indicates the approvals which executed before deployment. + */ + ApprovalType[ApprovalType["PreDeploy"] = 1] = "PreDeploy"; + /** + * Indicates the approvals which executed after deployment. + */ + ApprovalType[ApprovalType["PostDeploy"] = 2] = "PostDeploy"; + /** + * Indicates all approvals. + */ + ApprovalType[ApprovalType["All"] = 3] = "All"; +})(ApprovalType = exports.ApprovalType || (exports.ApprovalType = {})); +var AuditAction; +(function (AuditAction) { + /** + * Indicates the audit add. + */ + AuditAction[AuditAction["Add"] = 1] = "Add"; + /** + * Indicates the audit update. + */ + AuditAction[AuditAction["Update"] = 2] = "Update"; + /** + * Indicates the audit delete. + */ + AuditAction[AuditAction["Delete"] = 3] = "Delete"; + /** + * Indicates the audit undelete. + */ + AuditAction[AuditAction["Undelete"] = 4] = "Undelete"; +})(AuditAction = exports.AuditAction || (exports.AuditAction = {})); +var AuthorizationHeaderFor; +(function (AuthorizationHeaderFor) { + AuthorizationHeaderFor[AuthorizationHeaderFor["RevalidateApproverIdentity"] = 0] = "RevalidateApproverIdentity"; + AuthorizationHeaderFor[AuthorizationHeaderFor["OnBehalfOf"] = 1] = "OnBehalfOf"; +})(AuthorizationHeaderFor = exports.AuthorizationHeaderFor || (exports.AuthorizationHeaderFor = {})); +var ConditionType; +(function (ConditionType) { + /** + * The condition type is undefined. + */ + ConditionType[ConditionType["Undefined"] = 0] = "Undefined"; + /** + * The condition type is event. + */ + ConditionType[ConditionType["Event"] = 1] = "Event"; + /** + * The condition type is environment state. + */ + ConditionType[ConditionType["EnvironmentState"] = 2] = "EnvironmentState"; + /** + * The condition type is artifact. + */ + ConditionType[ConditionType["Artifact"] = 4] = "Artifact"; +})(ConditionType = exports.ConditionType || (exports.ConditionType = {})); +var DeploymentAuthorizationOwner; +(function (DeploymentAuthorizationOwner) { + DeploymentAuthorizationOwner[DeploymentAuthorizationOwner["Automatic"] = 0] = "Automatic"; + DeploymentAuthorizationOwner[DeploymentAuthorizationOwner["DeploymentSubmitter"] = 1] = "DeploymentSubmitter"; + DeploymentAuthorizationOwner[DeploymentAuthorizationOwner["FirstPreDeploymentApprover"] = 2] = "FirstPreDeploymentApprover"; +})(DeploymentAuthorizationOwner = exports.DeploymentAuthorizationOwner || (exports.DeploymentAuthorizationOwner = {})); +var DeploymentExpands; +(function (DeploymentExpands) { + DeploymentExpands[DeploymentExpands["All"] = 0] = "All"; + DeploymentExpands[DeploymentExpands["DeploymentOnly"] = 1] = "DeploymentOnly"; + DeploymentExpands[DeploymentExpands["Approvals"] = 2] = "Approvals"; + DeploymentExpands[DeploymentExpands["Artifacts"] = 4] = "Artifacts"; +})(DeploymentExpands = exports.DeploymentExpands || (exports.DeploymentExpands = {})); +var DeploymentOperationStatus; +(function (DeploymentOperationStatus) { + /** + * The deployment operation status is undefined. + */ + DeploymentOperationStatus[DeploymentOperationStatus["Undefined"] = 0] = "Undefined"; + /** + * The deployment operation status is queued. + */ + DeploymentOperationStatus[DeploymentOperationStatus["Queued"] = 1] = "Queued"; + /** + * The deployment operation status is scheduled. + */ + DeploymentOperationStatus[DeploymentOperationStatus["Scheduled"] = 2] = "Scheduled"; + /** + * The deployment operation status is pending. + */ + DeploymentOperationStatus[DeploymentOperationStatus["Pending"] = 4] = "Pending"; + /** + * The deployment operation status is approved. + */ + DeploymentOperationStatus[DeploymentOperationStatus["Approved"] = 8] = "Approved"; + /** + * The deployment operation status is rejected. + */ + DeploymentOperationStatus[DeploymentOperationStatus["Rejected"] = 16] = "Rejected"; + /** + * The deployment operation status is deferred. + */ + DeploymentOperationStatus[DeploymentOperationStatus["Deferred"] = 32] = "Deferred"; + /** + * The deployment operation status is queued for agent. + */ + DeploymentOperationStatus[DeploymentOperationStatus["QueuedForAgent"] = 64] = "QueuedForAgent"; + /** + * The deployment operation status is phase in progress. + */ + DeploymentOperationStatus[DeploymentOperationStatus["PhaseInProgress"] = 128] = "PhaseInProgress"; + /** + * The deployment operation status is phase succeeded. + */ + DeploymentOperationStatus[DeploymentOperationStatus["PhaseSucceeded"] = 256] = "PhaseSucceeded"; + /** + * The deployment operation status is phase partially succeeded. + */ + DeploymentOperationStatus[DeploymentOperationStatus["PhasePartiallySucceeded"] = 512] = "PhasePartiallySucceeded"; + /** + * The deployment operation status is phase failed. + */ + DeploymentOperationStatus[DeploymentOperationStatus["PhaseFailed"] = 1024] = "PhaseFailed"; + /** + * The deployment operation status is canceled. + */ + DeploymentOperationStatus[DeploymentOperationStatus["Canceled"] = 2048] = "Canceled"; + /** + * The deployment operation status is phase canceled. + */ + DeploymentOperationStatus[DeploymentOperationStatus["PhaseCanceled"] = 4096] = "PhaseCanceled"; + /** + * The deployment operation status is manualintervention pending. + */ + DeploymentOperationStatus[DeploymentOperationStatus["ManualInterventionPending"] = 8192] = "ManualInterventionPending"; + /** + * The deployment operation status is queued for pipeline. + */ + DeploymentOperationStatus[DeploymentOperationStatus["QueuedForPipeline"] = 16384] = "QueuedForPipeline"; + /** + * The deployment operation status is cancelling. + */ + DeploymentOperationStatus[DeploymentOperationStatus["Cancelling"] = 32768] = "Cancelling"; + /** + * The deployment operation status is EvaluatingGates. + */ + DeploymentOperationStatus[DeploymentOperationStatus["EvaluatingGates"] = 65536] = "EvaluatingGates"; + /** + * The deployment operation status is GateFailed. + */ + DeploymentOperationStatus[DeploymentOperationStatus["GateFailed"] = 131072] = "GateFailed"; + /** + * The deployment operation status is all. + */ + DeploymentOperationStatus[DeploymentOperationStatus["All"] = 258047] = "All"; +})(DeploymentOperationStatus = exports.DeploymentOperationStatus || (exports.DeploymentOperationStatus = {})); +var DeploymentReason; +(function (DeploymentReason) { + /** + * The deployment reason is none. + */ + DeploymentReason[DeploymentReason["None"] = 0] = "None"; + /** + * The deployment reason is manual. + */ + DeploymentReason[DeploymentReason["Manual"] = 1] = "Manual"; + /** + * The deployment reason is automated. + */ + DeploymentReason[DeploymentReason["Automated"] = 2] = "Automated"; + /** + * The deployment reason is scheduled. + */ + DeploymentReason[DeploymentReason["Scheduled"] = 4] = "Scheduled"; + /** + * The deployment reason is RedeployTrigger. + */ + DeploymentReason[DeploymentReason["RedeployTrigger"] = 8] = "RedeployTrigger"; +})(DeploymentReason = exports.DeploymentReason || (exports.DeploymentReason = {})); +var DeploymentsQueryType; +(function (DeploymentsQueryType) { + DeploymentsQueryType[DeploymentsQueryType["Regular"] = 1] = "Regular"; + DeploymentsQueryType[DeploymentsQueryType["FailingSince"] = 2] = "FailingSince"; +})(DeploymentsQueryType = exports.DeploymentsQueryType || (exports.DeploymentsQueryType = {})); +var DeploymentStatus; +(function (DeploymentStatus) { + /** + * The deployment status is undefined. + */ + DeploymentStatus[DeploymentStatus["Undefined"] = 0] = "Undefined"; + /** + * The deployment status is not deployed. + */ + DeploymentStatus[DeploymentStatus["NotDeployed"] = 1] = "NotDeployed"; + /** + * The deployment status is in progress. + */ + DeploymentStatus[DeploymentStatus["InProgress"] = 2] = "InProgress"; + /** + * The deployment status is succeeded. + */ + DeploymentStatus[DeploymentStatus["Succeeded"] = 4] = "Succeeded"; + /** + * The deployment status is partiallysucceeded. + */ + DeploymentStatus[DeploymentStatus["PartiallySucceeded"] = 8] = "PartiallySucceeded"; + /** + * The deployment status is failed. + */ + DeploymentStatus[DeploymentStatus["Failed"] = 16] = "Failed"; + /** + * The deployment status is all. + */ + DeploymentStatus[DeploymentStatus["All"] = 31] = "All"; +})(DeploymentStatus = exports.DeploymentStatus || (exports.DeploymentStatus = {})); +var DeployPhaseStatus; +(function (DeployPhaseStatus) { + /** + * Phase status not set. + */ + DeployPhaseStatus[DeployPhaseStatus["Undefined"] = 0] = "Undefined"; + /** + * Phase execution not started. + */ + DeployPhaseStatus[DeployPhaseStatus["NotStarted"] = 1] = "NotStarted"; + /** + * Phase execution in progress. + */ + DeployPhaseStatus[DeployPhaseStatus["InProgress"] = 2] = "InProgress"; + /** + * Phase execution partially succeeded. + */ + DeployPhaseStatus[DeployPhaseStatus["PartiallySucceeded"] = 4] = "PartiallySucceeded"; + /** + * Phase execution succeeded. + */ + DeployPhaseStatus[DeployPhaseStatus["Succeeded"] = 8] = "Succeeded"; + /** + * Phase execution failed. + */ + DeployPhaseStatus[DeployPhaseStatus["Failed"] = 16] = "Failed"; + /** + * Phase execution canceled. + */ + DeployPhaseStatus[DeployPhaseStatus["Canceled"] = 32] = "Canceled"; + /** + * Phase execution skipped. + */ + DeployPhaseStatus[DeployPhaseStatus["Skipped"] = 64] = "Skipped"; + /** + * Phase is in cancelling state. + */ + DeployPhaseStatus[DeployPhaseStatus["Cancelling"] = 128] = "Cancelling"; +})(DeployPhaseStatus = exports.DeployPhaseStatus || (exports.DeployPhaseStatus = {})); +var DeployPhaseTypes; +(function (DeployPhaseTypes) { + /** + * Phase type not defined. Don't use this. + */ + DeployPhaseTypes[DeployPhaseTypes["Undefined"] = 0] = "Undefined"; + /** + * Phase type which contains tasks executed on agent. + */ + DeployPhaseTypes[DeployPhaseTypes["AgentBasedDeployment"] = 1] = "AgentBasedDeployment"; + /** + * Phase type which contains tasks executed by server. + */ + DeployPhaseTypes[DeployPhaseTypes["RunOnServer"] = 2] = "RunOnServer"; + /** + * Phase type which contains tasks executed on deployment group machines. + */ + DeployPhaseTypes[DeployPhaseTypes["MachineGroupBasedDeployment"] = 4] = "MachineGroupBasedDeployment"; + /** + * Phase type which contains tasks which acts as Gates for the deployment to go forward. + */ + DeployPhaseTypes[DeployPhaseTypes["DeploymentGates"] = 8] = "DeploymentGates"; +})(DeployPhaseTypes = exports.DeployPhaseTypes || (exports.DeployPhaseTypes = {})); +var EnvironmentStatus; +(function (EnvironmentStatus) { + /** + * Environment status not set. + */ + EnvironmentStatus[EnvironmentStatus["Undefined"] = 0] = "Undefined"; + /** + * Environment is in not started state. + */ + EnvironmentStatus[EnvironmentStatus["NotStarted"] = 1] = "NotStarted"; + /** + * Environment is in progress state. + */ + EnvironmentStatus[EnvironmentStatus["InProgress"] = 2] = "InProgress"; + /** + * Environment is in succeeded state. + */ + EnvironmentStatus[EnvironmentStatus["Succeeded"] = 4] = "Succeeded"; + /** + * Environment is in canceled state. + */ + EnvironmentStatus[EnvironmentStatus["Canceled"] = 8] = "Canceled"; + /** + * Environment is in rejected state. + */ + EnvironmentStatus[EnvironmentStatus["Rejected"] = 16] = "Rejected"; + /** + * Environment is in queued state. + */ + EnvironmentStatus[EnvironmentStatus["Queued"] = 32] = "Queued"; + /** + * Environment is in scheduled state. + */ + EnvironmentStatus[EnvironmentStatus["Scheduled"] = 64] = "Scheduled"; + /** + * Environment is in partially succeeded state. + */ + EnvironmentStatus[EnvironmentStatus["PartiallySucceeded"] = 128] = "PartiallySucceeded"; +})(EnvironmentStatus = exports.EnvironmentStatus || (exports.EnvironmentStatus = {})); +var EnvironmentTriggerType; +(function (EnvironmentTriggerType) { + /** + * Environment trigger type undefined. + */ + EnvironmentTriggerType[EnvironmentTriggerType["Undefined"] = 0] = "Undefined"; + /** + * Environment trigger type is deployment group redeploy. + */ + EnvironmentTriggerType[EnvironmentTriggerType["DeploymentGroupRedeploy"] = 1] = "DeploymentGroupRedeploy"; + /** + * Environment trigger type is Rollback. + */ + EnvironmentTriggerType[EnvironmentTriggerType["RollbackRedeploy"] = 2] = "RollbackRedeploy"; +})(EnvironmentTriggerType = exports.EnvironmentTriggerType || (exports.EnvironmentTriggerType = {})); +var FolderPathQueryOrder; +(function (FolderPathQueryOrder) { + /** + * No order. + */ + FolderPathQueryOrder[FolderPathQueryOrder["None"] = 0] = "None"; + /** + * Order by folder name and path ascending. + */ + FolderPathQueryOrder[FolderPathQueryOrder["Ascending"] = 1] = "Ascending"; + /** + * Order by folder name and path descending. + */ + FolderPathQueryOrder[FolderPathQueryOrder["Descending"] = 2] = "Descending"; +})(FolderPathQueryOrder = exports.FolderPathQueryOrder || (exports.FolderPathQueryOrder = {})); +var GateStatus; +(function (GateStatus) { + /** + * The gate does not have the status set. + */ + GateStatus[GateStatus["None"] = 0] = "None"; + /** + * The gate is in pending state. + */ + GateStatus[GateStatus["Pending"] = 1] = "Pending"; + /** + * The gate is currently in progress. + */ + GateStatus[GateStatus["InProgress"] = 2] = "InProgress"; + /** + * The gate completed successfully. + */ + GateStatus[GateStatus["Succeeded"] = 4] = "Succeeded"; + /** + * The gate execution failed. + */ + GateStatus[GateStatus["Failed"] = 8] = "Failed"; + /** + * The gate execution cancelled. + */ + GateStatus[GateStatus["Canceled"] = 16] = "Canceled"; +})(GateStatus = exports.GateStatus || (exports.GateStatus = {})); +var IssueSource; +(function (IssueSource) { + IssueSource[IssueSource["None"] = 0] = "None"; + IssueSource[IssueSource["User"] = 1] = "User"; + IssueSource[IssueSource["System"] = 2] = "System"; +})(IssueSource = exports.IssueSource || (exports.IssueSource = {})); +var MailSectionType; +(function (MailSectionType) { + MailSectionType[MailSectionType["Details"] = 0] = "Details"; + MailSectionType[MailSectionType["Environments"] = 1] = "Environments"; + MailSectionType[MailSectionType["Issues"] = 2] = "Issues"; + MailSectionType[MailSectionType["TestResults"] = 3] = "TestResults"; + MailSectionType[MailSectionType["WorkItems"] = 4] = "WorkItems"; + MailSectionType[MailSectionType["ReleaseInfo"] = 5] = "ReleaseInfo"; +})(MailSectionType = exports.MailSectionType || (exports.MailSectionType = {})); +/** + * Describes manual intervention status + */ +var ManualInterventionStatus; +(function (ManualInterventionStatus) { + /** + * The manual intervention does not have the status set. + */ + ManualInterventionStatus[ManualInterventionStatus["Unknown"] = 0] = "Unknown"; + /** + * The manual intervention is pending. + */ + ManualInterventionStatus[ManualInterventionStatus["Pending"] = 1] = "Pending"; + /** + * The manual intervention is rejected. + */ + ManualInterventionStatus[ManualInterventionStatus["Rejected"] = 2] = "Rejected"; + /** + * The manual intervention is approved. + */ + ManualInterventionStatus[ManualInterventionStatus["Approved"] = 4] = "Approved"; + /** + * The manual intervention is canceled. + */ + ManualInterventionStatus[ManualInterventionStatus["Canceled"] = 8] = "Canceled"; +})(ManualInterventionStatus = exports.ManualInterventionStatus || (exports.ManualInterventionStatus = {})); +var ParallelExecutionTypes; +(function (ParallelExecutionTypes) { + ParallelExecutionTypes[ParallelExecutionTypes["None"] = 0] = "None"; + ParallelExecutionTypes[ParallelExecutionTypes["MultiConfiguration"] = 1] = "MultiConfiguration"; + ParallelExecutionTypes[ParallelExecutionTypes["MultiMachine"] = 2] = "MultiMachine"; +})(ParallelExecutionTypes = exports.ParallelExecutionTypes || (exports.ParallelExecutionTypes = {})); +var PipelineProcessTypes; +(function (PipelineProcessTypes) { + PipelineProcessTypes[PipelineProcessTypes["Designer"] = 1] = "Designer"; + PipelineProcessTypes[PipelineProcessTypes["Yaml"] = 2] = "Yaml"; +})(PipelineProcessTypes = exports.PipelineProcessTypes || (exports.PipelineProcessTypes = {})); +var PropertySelectorType; +(function (PropertySelectorType) { + /** + * Include in property selector. + */ + PropertySelectorType[PropertySelectorType["Inclusion"] = 0] = "Inclusion"; + /** + * Exclude in property selector. + */ + PropertySelectorType[PropertySelectorType["Exclusion"] = 1] = "Exclusion"; +})(PropertySelectorType = exports.PropertySelectorType || (exports.PropertySelectorType = {})); +var PullRequestSystemType; +(function (PullRequestSystemType) { + PullRequestSystemType[PullRequestSystemType["None"] = 0] = "None"; + PullRequestSystemType[PullRequestSystemType["TfsGit"] = 1] = "TfsGit"; + PullRequestSystemType[PullRequestSystemType["GitHub"] = 2] = "GitHub"; +})(PullRequestSystemType = exports.PullRequestSystemType || (exports.PullRequestSystemType = {})); +var ReleaseDefinitionExpands; +(function (ReleaseDefinitionExpands) { + /** + * Returns top level properties of object. + */ + ReleaseDefinitionExpands[ReleaseDefinitionExpands["None"] = 0] = "None"; + /** + * Include environments in return object. + */ + ReleaseDefinitionExpands[ReleaseDefinitionExpands["Environments"] = 2] = "Environments"; + /** + * Include artifacts in return object. + */ + ReleaseDefinitionExpands[ReleaseDefinitionExpands["Artifacts"] = 4] = "Artifacts"; + /** + * Include triggers in return object. + */ + ReleaseDefinitionExpands[ReleaseDefinitionExpands["Triggers"] = 8] = "Triggers"; + /** + * Include variables in return object. + */ + ReleaseDefinitionExpands[ReleaseDefinitionExpands["Variables"] = 16] = "Variables"; + /** + * Include tags in return object. + */ + ReleaseDefinitionExpands[ReleaseDefinitionExpands["Tags"] = 32] = "Tags"; + /** + * Include last release in return object. + */ + ReleaseDefinitionExpands[ReleaseDefinitionExpands["LastRelease"] = 64] = "LastRelease"; +})(ReleaseDefinitionExpands = exports.ReleaseDefinitionExpands || (exports.ReleaseDefinitionExpands = {})); +var ReleaseDefinitionQueryOrder; +(function (ReleaseDefinitionQueryOrder) { + /** + * Return results based on release definition Id ascending order. + */ + ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder["IdAscending"] = 0] = "IdAscending"; + /** + * Return results based on release definition Id descending order. + */ + ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder["IdDescending"] = 1] = "IdDescending"; + /** + * Return results based on release definition name ascending order. + */ + ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder["NameAscending"] = 2] = "NameAscending"; + /** + * Return results based on release definition name descending order. + */ + ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder["NameDescending"] = 3] = "NameDescending"; +})(ReleaseDefinitionQueryOrder = exports.ReleaseDefinitionQueryOrder || (exports.ReleaseDefinitionQueryOrder = {})); +var ReleaseDefinitionSource; +(function (ReleaseDefinitionSource) { + /** + * Indicates ReleaseDefinition source not defined. + */ + ReleaseDefinitionSource[ReleaseDefinitionSource["Undefined"] = 0] = "Undefined"; + /** + * Indicates ReleaseDefinition created using REST API. + */ + ReleaseDefinitionSource[ReleaseDefinitionSource["RestApi"] = 1] = "RestApi"; + /** + * Indicates ReleaseDefinition created using UI. + */ + ReleaseDefinitionSource[ReleaseDefinitionSource["UserInterface"] = 2] = "UserInterface"; + /** + * Indicates ReleaseDefinition created from Ibiza. + */ + ReleaseDefinitionSource[ReleaseDefinitionSource["Ibiza"] = 4] = "Ibiza"; + /** + * Indicates ReleaseDefinition created from PortalExtension API. + */ + ReleaseDefinitionSource[ReleaseDefinitionSource["PortalExtensionApi"] = 8] = "PortalExtensionApi"; +})(ReleaseDefinitionSource = exports.ReleaseDefinitionSource || (exports.ReleaseDefinitionSource = {})); +var ReleaseEnvironmentExpands; +(function (ReleaseEnvironmentExpands) { + /** + * Return top level properties of object. + */ + ReleaseEnvironmentExpands[ReleaseEnvironmentExpands["None"] = 0] = "None"; + /** + * Expand environment with tasks. + */ + ReleaseEnvironmentExpands[ReleaseEnvironmentExpands["Tasks"] = 1] = "Tasks"; +})(ReleaseEnvironmentExpands = exports.ReleaseEnvironmentExpands || (exports.ReleaseEnvironmentExpands = {})); +var ReleaseExpands; +(function (ReleaseExpands) { + ReleaseExpands[ReleaseExpands["None"] = 0] = "None"; + ReleaseExpands[ReleaseExpands["Environments"] = 2] = "Environments"; + ReleaseExpands[ReleaseExpands["Artifacts"] = 4] = "Artifacts"; + ReleaseExpands[ReleaseExpands["Approvals"] = 8] = "Approvals"; + ReleaseExpands[ReleaseExpands["ManualInterventions"] = 16] = "ManualInterventions"; + ReleaseExpands[ReleaseExpands["Variables"] = 32] = "Variables"; + ReleaseExpands[ReleaseExpands["Tags"] = 64] = "Tags"; +})(ReleaseExpands = exports.ReleaseExpands || (exports.ReleaseExpands = {})); +var ReleaseQueryOrder; +(function (ReleaseQueryOrder) { + /** + * Return results in descending order. + */ + ReleaseQueryOrder[ReleaseQueryOrder["Descending"] = 0] = "Descending"; + /** + * Return results in ascending order. + */ + ReleaseQueryOrder[ReleaseQueryOrder["Ascending"] = 1] = "Ascending"; +})(ReleaseQueryOrder = exports.ReleaseQueryOrder || (exports.ReleaseQueryOrder = {})); +var ReleaseReason; +(function (ReleaseReason) { + /** + * Indicates the release triggered reason not set. + */ + ReleaseReason[ReleaseReason["None"] = 0] = "None"; + /** + * Indicates the release triggered manually. + */ + ReleaseReason[ReleaseReason["Manual"] = 1] = "Manual"; + /** + * Indicates the release triggered by continuous integration. + */ + ReleaseReason[ReleaseReason["ContinuousIntegration"] = 2] = "ContinuousIntegration"; + /** + * Indicates the release triggered by schedule. + */ + ReleaseReason[ReleaseReason["Schedule"] = 3] = "Schedule"; + /** + * Indicates the release triggered by PullRequest. + */ + ReleaseReason[ReleaseReason["PullRequest"] = 4] = "PullRequest"; +})(ReleaseReason = exports.ReleaseReason || (exports.ReleaseReason = {})); +var ReleaseStatus; +(function (ReleaseStatus) { + /** + * Release status not set. + */ + ReleaseStatus[ReleaseStatus["Undefined"] = 0] = "Undefined"; + /** + * Release is in draft state. + */ + ReleaseStatus[ReleaseStatus["Draft"] = 1] = "Draft"; + /** + * Release status is in active. + */ + ReleaseStatus[ReleaseStatus["Active"] = 2] = "Active"; + /** + * Release status is in abandoned. + */ + ReleaseStatus[ReleaseStatus["Abandoned"] = 4] = "Abandoned"; +})(ReleaseStatus = exports.ReleaseStatus || (exports.ReleaseStatus = {})); +var ReleaseTriggerType; +(function (ReleaseTriggerType) { + /** + * Release trigger type not set. + */ + ReleaseTriggerType[ReleaseTriggerType["Undefined"] = 0] = "Undefined"; + /** + * Artifact based release trigger. + */ + ReleaseTriggerType[ReleaseTriggerType["ArtifactSource"] = 1] = "ArtifactSource"; + /** + * Schedule based release trigger. + */ + ReleaseTriggerType[ReleaseTriggerType["Schedule"] = 2] = "Schedule"; + /** + * Source repository based release trigger. + */ + ReleaseTriggerType[ReleaseTriggerType["SourceRepo"] = 3] = "SourceRepo"; + /** + * Container image based release trigger. + */ + ReleaseTriggerType[ReleaseTriggerType["ContainerImage"] = 4] = "ContainerImage"; + /** + * Package based release trigger. + */ + ReleaseTriggerType[ReleaseTriggerType["Package"] = 5] = "Package"; + /** + * Pull request based release trigger. + */ + ReleaseTriggerType[ReleaseTriggerType["PullRequest"] = 6] = "PullRequest"; +})(ReleaseTriggerType = exports.ReleaseTriggerType || (exports.ReleaseTriggerType = {})); +var ScheduleDays; +(function (ScheduleDays) { + /** + * Scheduled day not set. + */ + ScheduleDays[ScheduleDays["None"] = 0] = "None"; + /** + * Scheduled on Monday. + */ + ScheduleDays[ScheduleDays["Monday"] = 1] = "Monday"; + /** + * Scheduled on Tuesday. + */ + ScheduleDays[ScheduleDays["Tuesday"] = 2] = "Tuesday"; + /** + * Scheduled on Wednesday. + */ + ScheduleDays[ScheduleDays["Wednesday"] = 4] = "Wednesday"; + /** + * Scheduled on Thursday. + */ + ScheduleDays[ScheduleDays["Thursday"] = 8] = "Thursday"; + /** + * Scheduled on Friday. + */ + ScheduleDays[ScheduleDays["Friday"] = 16] = "Friday"; + /** + * Scheduled on Saturday. + */ + ScheduleDays[ScheduleDays["Saturday"] = 32] = "Saturday"; + /** + * Scheduled on Sunday. + */ + ScheduleDays[ScheduleDays["Sunday"] = 64] = "Sunday"; + /** + * Scheduled on all the days in week. + */ + ScheduleDays[ScheduleDays["All"] = 127] = "All"; +})(ScheduleDays = exports.ScheduleDays || (exports.ScheduleDays = {})); +var SenderType; +(function (SenderType) { + SenderType[SenderType["ServiceAccount"] = 1] = "ServiceAccount"; + SenderType[SenderType["RequestingUser"] = 2] = "RequestingUser"; +})(SenderType = exports.SenderType || (exports.SenderType = {})); +var SingleReleaseExpands; +(function (SingleReleaseExpands) { + /** + * Return top level properties of object. + */ + SingleReleaseExpands[SingleReleaseExpands["None"] = 0] = "None"; + /** + * Expand release with tasks. + */ + SingleReleaseExpands[SingleReleaseExpands["Tasks"] = 1] = "Tasks"; +})(SingleReleaseExpands = exports.SingleReleaseExpands || (exports.SingleReleaseExpands = {})); +var TaskStatus; +(function (TaskStatus) { + /** + * The task does not have the status set. + */ + TaskStatus[TaskStatus["Unknown"] = 0] = "Unknown"; + /** + * The task is in pending status. + */ + TaskStatus[TaskStatus["Pending"] = 1] = "Pending"; + /** + * The task is currently in progress. + */ + TaskStatus[TaskStatus["InProgress"] = 2] = "InProgress"; + /** + * The task completed successfully. + */ + TaskStatus[TaskStatus["Success"] = 3] = "Success"; + /** + * The task execution failed. + */ + TaskStatus[TaskStatus["Failure"] = 4] = "Failure"; + /** + * The task execution canceled. + */ + TaskStatus[TaskStatus["Canceled"] = 5] = "Canceled"; + /** + * The task execution skipped. + */ + TaskStatus[TaskStatus["Skipped"] = 6] = "Skipped"; + /** + * The task completed successfully. + */ + TaskStatus[TaskStatus["Succeeded"] = 7] = "Succeeded"; + /** + * The task execution failed. + */ + TaskStatus[TaskStatus["Failed"] = 8] = "Failed"; + /** + * The task execution partially succeeded. + */ + TaskStatus[TaskStatus["PartiallySucceeded"] = 9] = "PartiallySucceeded"; +})(TaskStatus = exports.TaskStatus || (exports.TaskStatus = {})); +var VariableGroupActionFilter; +(function (VariableGroupActionFilter) { + VariableGroupActionFilter[VariableGroupActionFilter["None"] = 0] = "None"; + VariableGroupActionFilter[VariableGroupActionFilter["Manage"] = 2] = "Manage"; + VariableGroupActionFilter[VariableGroupActionFilter["Use"] = 16] = "Use"; +})(VariableGroupActionFilter = exports.VariableGroupActionFilter || (exports.VariableGroupActionFilter = {})); +var YamlFileSourceTypes; +(function (YamlFileSourceTypes) { + YamlFileSourceTypes[YamlFileSourceTypes["None"] = 0] = "None"; + YamlFileSourceTypes[YamlFileSourceTypes["TFSGit"] = 1] = "TFSGit"; +})(YamlFileSourceTypes = exports.YamlFileSourceTypes || (exports.YamlFileSourceTypes = {})); +exports.TypeInfo = { + AgentArtifactDefinition: {}, + AgentArtifactType: { + enumValues: { + "xamlBuild": 0, + "build": 1, + "jenkins": 2, + "fileShare": 3, + "nuget": 4, + "tfsOnPrem": 5, + "gitHub": 6, + "tfGit": 7, + "externalTfsBuild": 8, + "custom": 9, + "tfvc": 10 + } + }, + AgentBasedDeployPhase: {}, + AgentDeploymentInput: {}, + ApprovalExecutionOrder: { + enumValues: { + "beforeGates": 1, + "afterSuccessfulGates": 2, + "afterGatesAlways": 4 + } + }, + ApprovalFilters: { + enumValues: { + "none": 0, + "manualApprovals": 1, + "automatedApprovals": 2, + "approvalSnapshots": 4, + "all": 7 + } + }, + ApprovalOptions: {}, + ApprovalStatus: { + enumValues: { + "undefined": 0, + "pending": 1, + "approved": 2, + "rejected": 4, + "reassigned": 6, + "canceled": 7, + "skipped": 8 + } + }, + ApprovalType: { + enumValues: { + "undefined": 0, + "preDeploy": 1, + "postDeploy": 2, + "all": 3 + } + }, + ArtifactContributionDefinition: {}, + ArtifactMetadata: {}, + ArtifactSourceTrigger: {}, + ArtifactTypeDefinition: {}, + ArtifactVersion: {}, + ArtifactVersionQueryResult: {}, + AuditAction: { + enumValues: { + "add": 1, + "update": 2, + "delete": 3, + "undelete": 4 + } + }, + AuthorizationHeaderFor: { + enumValues: { + "revalidateApproverIdentity": 0, + "onBehalfOf": 1 + } + }, + AutoTriggerIssue: {}, + AzureKeyVaultVariableGroupProviderData: {}, + AzureKeyVaultVariableValue: {}, + BuildVersion: {}, + Change: {}, + CodeRepositoryReference: {}, + Condition: {}, + ConditionType: { + enumValues: { + "undefined": 0, + "event": 1, + "environmentState": 2, + "artifact": 4 + } + }, + ContainerImageTrigger: {}, + ContinuousDeploymentTriggerIssue: {}, + Deployment: {}, + DeploymentApprovalCompletedEvent: {}, + DeploymentApprovalPendingEvent: {}, + DeploymentAttempt: {}, + DeploymentAuthorizationInfo: {}, + DeploymentAuthorizationOwner: { + enumValues: { + "automatic": 0, + "deploymentSubmitter": 1, + "firstPreDeploymentApprover": 2 + } + }, + DeploymentCompletedEvent: {}, + DeploymentExpands: { + enumValues: { + "all": 0, + "deploymentOnly": 1, + "approvals": 2, + "artifacts": 4 + } + }, + DeploymentJob: {}, + DeploymentManualInterventionPendingEvent: {}, + DeploymentOperationStatus: { + enumValues: { + "undefined": 0, + "queued": 1, + "scheduled": 2, + "pending": 4, + "approved": 8, + "rejected": 16, + "deferred": 32, + "queuedForAgent": 64, + "phaseInProgress": 128, + "phaseSucceeded": 256, + "phasePartiallySucceeded": 512, + "phaseFailed": 1024, + "canceled": 2048, + "phaseCanceled": 4096, + "manualInterventionPending": 8192, + "queuedForPipeline": 16384, + "cancelling": 32768, + "evaluatingGates": 65536, + "gateFailed": 131072, + "all": 258047 + } + }, + DeploymentQueryParameters: {}, + DeploymentReason: { + enumValues: { + "none": 0, + "manual": 1, + "automated": 2, + "scheduled": 4, + "redeployTrigger": 8 + } + }, + DeploymentsQueryType: { + enumValues: { + "regular": 1, + "failingSince": 2 + } + }, + DeploymentStartedEvent: {}, + DeploymentStatus: { + enumValues: { + "undefined": 0, + "notDeployed": 1, + "inProgress": 2, + "succeeded": 4, + "partiallySucceeded": 8, + "failed": 16, + "all": 31 + } + }, + DeployPhase: {}, + DeployPhaseStatus: { + enumValues: { + "undefined": 0, + "notStarted": 1, + "inProgress": 2, + "partiallySucceeded": 4, + "succeeded": 8, + "failed": 16, + "canceled": 32, + "skipped": 64, + "cancelling": 128 + } + }, + DeployPhaseTypes: { + enumValues: { + "undefined": 0, + "agentBasedDeployment": 1, + "runOnServer": 2, + "machineGroupBasedDeployment": 4, + "deploymentGates": 8 + } + }, + EnvironmentStatus: { + enumValues: { + "undefined": 0, + "notStarted": 1, + "inProgress": 2, + "succeeded": 4, + "canceled": 8, + "rejected": 16, + "queued": 32, + "scheduled": 64, + "partiallySucceeded": 128 + } + }, + EnvironmentTrigger: {}, + EnvironmentTriggerType: { + enumValues: { + "undefined": 0, + "deploymentGroupRedeploy": 1, + "rollbackRedeploy": 2 + } + }, + ExecutionInput: {}, + Folder: {}, + FolderPathQueryOrder: { + enumValues: { + "none": 0, + "ascending": 1, + "descending": 2 + } + }, + GatesDeployPhase: {}, + GateStatus: { + enumValues: { + "none": 0, + "pending": 1, + "inProgress": 2, + "succeeded": 4, + "failed": 8, + "canceled": 16 + } + }, + IgnoredGate: {}, + IssueSource: { + enumValues: { + "none": 0, + "user": 1, + "system": 2 + } + }, + MachineGroupBasedDeployPhase: {}, + MailMessage: {}, + MailSectionType: { + enumValues: { + "details": 0, + "environments": 1, + "issues": 2, + "testResults": 3, + "workItems": 4, + "releaseInfo": 5 + } + }, + ManualIntervention: {}, + ManualInterventionStatus: { + enumValues: { + "unknown": 0, + "pending": 1, + "rejected": 2, + "approved": 4, + "canceled": 8 + } + }, + ManualInterventionUpdateMetadata: {}, + MultiConfigInput: {}, + MultiMachineInput: {}, + PackageTrigger: {}, + ParallelExecutionInputBase: {}, + ParallelExecutionTypes: { + enumValues: { + "none": 0, + "multiConfiguration": 1, + "multiMachine": 2 + } + }, + PipelineProcess: {}, + PipelineProcessTypes: { + enumValues: { + "designer": 1, + "yaml": 2 + } + }, + PropertySelector: {}, + PropertySelectorType: { + enumValues: { + "inclusion": 0, + "exclusion": 1 + } + }, + PullRequestConfiguration: {}, + PullRequestSystemType: { + enumValues: { + "none": 0, + "tfsGit": 1, + "gitHub": 2 + } + }, + PullRequestTrigger: {}, + Release: {}, + ReleaseAbandonedEvent: {}, + ReleaseApproval: {}, + ReleaseApprovalHistory: {}, + ReleaseApprovalPendingEvent: {}, + ReleaseCondition: {}, + ReleaseCreatedEvent: {}, + ReleaseDefinition: {}, + ReleaseDefinitionApprovals: {}, + ReleaseDefinitionEnvironment: {}, + ReleaseDefinitionEnvironmentTemplate: {}, + ReleaseDefinitionExpands: { + enumValues: { + "none": 0, + "environments": 2, + "artifacts": 4, + "triggers": 8, + "variables": 16, + "tags": 32, + "lastRelease": 64 + } + }, + ReleaseDefinitionQueryOrder: { + enumValues: { + "idAscending": 0, + "idDescending": 1, + "nameAscending": 2, + "nameDescending": 3 + } + }, + ReleaseDefinitionRevision: {}, + ReleaseDefinitionSource: { + enumValues: { + "undefined": 0, + "restApi": 1, + "userInterface": 2, + "ibiza": 4, + "portalExtensionApi": 8 + } + }, + ReleaseDefinitionSummary: {}, + ReleaseDeployPhase: {}, + ReleaseEnvironment: {}, + ReleaseEnvironmentCompletedEvent: {}, + ReleaseEnvironmentExpands: { + enumValues: { + "none": 0, + "tasks": 1 + } + }, + ReleaseEnvironmentStatusUpdatedEvent: {}, + ReleaseEnvironmentUpdateMetadata: {}, + ReleaseExpands: { + enumValues: { + "none": 0, + "environments": 2, + "artifacts": 4, + "approvals": 8, + "manualInterventions": 16, + "variables": 32, + "tags": 64 + } + }, + ReleaseGates: {}, + ReleaseGatesPhase: {}, + ReleaseNotCreatedEvent: {}, + ReleaseQueryOrder: { + enumValues: { + "descending": 0, + "ascending": 1 + } + }, + ReleaseReason: { + enumValues: { + "none": 0, + "manual": 1, + "continuousIntegration": 2, + "schedule": 3, + "pullRequest": 4 + } + }, + ReleaseReference: {}, + ReleaseRevision: {}, + ReleaseSchedule: {}, + ReleaseStartMetadata: {}, + ReleaseStatus: { + enumValues: { + "undefined": 0, + "draft": 1, + "active": 2, + "abandoned": 4 + } + }, + ReleaseTask: {}, + ReleaseTaskAttachment: {}, + ReleaseTasksUpdatedEvent: {}, + ReleaseTriggerBase: {}, + ReleaseTriggerType: { + enumValues: { + "undefined": 0, + "artifactSource": 1, + "schedule": 2, + "sourceRepo": 3, + "containerImage": 4, + "package": 5, + "pullRequest": 6 + } + }, + ReleaseUpdatedEvent: {}, + ReleaseUpdateMetadata: {}, + RunOnServerDeployPhase: {}, + ScheduleDays: { + enumValues: { + "none": 0, + "monday": 1, + "tuesday": 2, + "wednesday": 4, + "thursday": 8, + "friday": 16, + "saturday": 32, + "sunday": 64, + "all": 127 + } + }, + ScheduledReleaseTrigger: {}, + SenderType: { + enumValues: { + "serviceAccount": 1, + "requestingUser": 2 + } + }, + ServerDeploymentInput: {}, + SingleReleaseExpands: { + enumValues: { + "none": 0, + "tasks": 1 + } + }, + SourcePullRequestVersion: {}, + SourceRepoTrigger: {}, + SummaryMailSection: {}, + TaskStatus: { + enumValues: { + "unknown": 0, + "pending": 1, + "inProgress": 2, + "success": 3, + "failure": 4, + "canceled": 5, + "skipped": 6, + "succeeded": 7, + "failed": 8, + "partiallySucceeded": 9 + } + }, + VariableGroup: {}, + VariableGroupActionFilter: { + enumValues: { + "none": 0, + "manage": 2, + "use": 16 + } + }, + YamlFileSource: {}, + YamlFileSourceTypes: { + enumValues: { + "none": 0, + "tfsGit": 1 + } + }, + YamlPipelineProcess: {}, +}; +exports.TypeInfo.AgentArtifactDefinition.fields = { + artifactType: { + enumType: exports.TypeInfo.AgentArtifactType + } +}; +exports.TypeInfo.AgentBasedDeployPhase.fields = { + deploymentInput: { + typeInfo: exports.TypeInfo.AgentDeploymentInput + }, + phaseType: { + enumType: exports.TypeInfo.DeployPhaseTypes + } +}; +exports.TypeInfo.AgentDeploymentInput.fields = { + parallelExecution: { + typeInfo: exports.TypeInfo.ExecutionInput + } +}; +exports.TypeInfo.ApprovalOptions.fields = { + executionOrder: { + enumType: exports.TypeInfo.ApprovalExecutionOrder + } +}; +exports.TypeInfo.ArtifactContributionDefinition.fields = { + inputDescriptors: { + isArray: true, + typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor + } +}; +exports.TypeInfo.ArtifactMetadata.fields = { + instanceReference: { + typeInfo: exports.TypeInfo.BuildVersion + } +}; +exports.TypeInfo.ArtifactSourceTrigger.fields = { + triggerType: { + enumType: exports.TypeInfo.ReleaseTriggerType + } +}; +exports.TypeInfo.ArtifactTypeDefinition.fields = { + inputDescriptors: { + isArray: true, + typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor + } +}; +exports.TypeInfo.ArtifactVersion.fields = { + defaultVersion: { + typeInfo: exports.TypeInfo.BuildVersion + }, + versions: { + isArray: true, + typeInfo: exports.TypeInfo.BuildVersion + } +}; +exports.TypeInfo.ArtifactVersionQueryResult.fields = { + artifactVersions: { + isArray: true, + typeInfo: exports.TypeInfo.ArtifactVersion + } +}; +exports.TypeInfo.AutoTriggerIssue.fields = { + issueSource: { + enumType: exports.TypeInfo.IssueSource + }, + releaseTriggerType: { + enumType: exports.TypeInfo.ReleaseTriggerType + } +}; +exports.TypeInfo.AzureKeyVaultVariableGroupProviderData.fields = { + lastRefreshedOn: { + isDate: true, + } +}; +exports.TypeInfo.AzureKeyVaultVariableValue.fields = { + expires: { + isDate: true, + } +}; +exports.TypeInfo.BuildVersion.fields = { + sourcePullRequestVersion: { + typeInfo: exports.TypeInfo.SourcePullRequestVersion + } +}; +exports.TypeInfo.Change.fields = { + timestamp: { + isDate: true, + } +}; +exports.TypeInfo.CodeRepositoryReference.fields = { + systemType: { + enumType: exports.TypeInfo.PullRequestSystemType + } +}; +exports.TypeInfo.Condition.fields = { + conditionType: { + enumType: exports.TypeInfo.ConditionType + } +}; +exports.TypeInfo.ContainerImageTrigger.fields = { + triggerType: { + enumType: exports.TypeInfo.ReleaseTriggerType + } +}; +exports.TypeInfo.ContinuousDeploymentTriggerIssue.fields = { + issueSource: { + enumType: exports.TypeInfo.IssueSource + }, + releaseTriggerType: { + enumType: exports.TypeInfo.ReleaseTriggerType + } +}; +exports.TypeInfo.Deployment.fields = { + completedOn: { + isDate: true, + }, + conditions: { + isArray: true, + typeInfo: exports.TypeInfo.Condition + }, + deploymentStatus: { + enumType: exports.TypeInfo.DeploymentStatus + }, + lastModifiedOn: { + isDate: true, + }, + operationStatus: { + enumType: exports.TypeInfo.DeploymentOperationStatus + }, + postDeployApprovals: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseApproval + }, + preDeployApprovals: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseApproval + }, + queuedOn: { + isDate: true, + }, + reason: { + enumType: exports.TypeInfo.DeploymentReason + }, + release: { + typeInfo: exports.TypeInfo.ReleaseReference + }, + scheduledDeploymentTime: { + isDate: true, + }, + startedOn: { + isDate: true, + } +}; +exports.TypeInfo.DeploymentApprovalCompletedEvent.fields = { + approval: { + typeInfo: exports.TypeInfo.ReleaseApproval + }, + release: { + typeInfo: exports.TypeInfo.Release + } +}; +exports.TypeInfo.DeploymentApprovalPendingEvent.fields = { + approval: { + typeInfo: exports.TypeInfo.ReleaseApproval + }, + approvalOptions: { + typeInfo: exports.TypeInfo.ApprovalOptions + }, + completedApprovals: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseApproval + }, + deployment: { + typeInfo: exports.TypeInfo.Deployment + }, + pendingApprovals: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseApproval + }, + release: { + typeInfo: exports.TypeInfo.Release + } +}; +exports.TypeInfo.DeploymentAttempt.fields = { + job: { + typeInfo: exports.TypeInfo.ReleaseTask + }, + lastModifiedOn: { + isDate: true, + }, + operationStatus: { + enumType: exports.TypeInfo.DeploymentOperationStatus + }, + postDeploymentGates: { + typeInfo: exports.TypeInfo.ReleaseGates + }, + preDeploymentGates: { + typeInfo: exports.TypeInfo.ReleaseGates + }, + queuedOn: { + isDate: true, + }, + reason: { + enumType: exports.TypeInfo.DeploymentReason + }, + releaseDeployPhases: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseDeployPhase + }, + status: { + enumType: exports.TypeInfo.DeploymentStatus + }, + tasks: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseTask + } +}; +exports.TypeInfo.DeploymentAuthorizationInfo.fields = { + authorizationHeaderFor: { + enumType: exports.TypeInfo.AuthorizationHeaderFor + } +}; +exports.TypeInfo.DeploymentCompletedEvent.fields = { + deployment: { + typeInfo: exports.TypeInfo.Deployment + }, + environment: { + typeInfo: exports.TypeInfo.ReleaseEnvironment + } +}; +exports.TypeInfo.DeploymentJob.fields = { + job: { + typeInfo: exports.TypeInfo.ReleaseTask + }, + tasks: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseTask + } +}; +exports.TypeInfo.DeploymentManualInterventionPendingEvent.fields = { + deployment: { + typeInfo: exports.TypeInfo.Deployment + }, + manualIntervention: { + typeInfo: exports.TypeInfo.ManualIntervention + }, + release: { + typeInfo: exports.TypeInfo.Release + } +}; +exports.TypeInfo.DeploymentQueryParameters.fields = { + deploymentStatus: { + enumType: exports.TypeInfo.DeploymentStatus + }, + expands: { + enumType: exports.TypeInfo.DeploymentExpands + }, + maxModifiedTime: { + isDate: true, + }, + minModifiedTime: { + isDate: true, + }, + operationStatus: { + enumType: exports.TypeInfo.DeploymentOperationStatus + }, + queryOrder: { + enumType: exports.TypeInfo.ReleaseQueryOrder + }, + queryType: { + enumType: exports.TypeInfo.DeploymentsQueryType + } +}; +exports.TypeInfo.DeploymentStartedEvent.fields = { + environment: { + typeInfo: exports.TypeInfo.ReleaseEnvironment + }, + release: { + typeInfo: exports.TypeInfo.Release + } +}; +exports.TypeInfo.DeployPhase.fields = { + phaseType: { + enumType: exports.TypeInfo.DeployPhaseTypes + } +}; +exports.TypeInfo.EnvironmentTrigger.fields = { + triggerType: { + enumType: exports.TypeInfo.EnvironmentTriggerType + } +}; +exports.TypeInfo.ExecutionInput.fields = { + parallelExecutionType: { + enumType: exports.TypeInfo.ParallelExecutionTypes + } +}; +exports.TypeInfo.Folder.fields = { + createdOn: { + isDate: true, + }, + lastChangedDate: { + isDate: true, + } +}; +exports.TypeInfo.GatesDeployPhase.fields = { + phaseType: { + enumType: exports.TypeInfo.DeployPhaseTypes + } +}; +exports.TypeInfo.IgnoredGate.fields = { + lastModifiedOn: { + isDate: true, + } +}; +exports.TypeInfo.MachineGroupBasedDeployPhase.fields = { + phaseType: { + enumType: exports.TypeInfo.DeployPhaseTypes + } +}; +exports.TypeInfo.MailMessage.fields = { + replyBy: { + isDate: true, + }, + sections: { + isArray: true, + enumType: exports.TypeInfo.MailSectionType + }, + senderType: { + enumType: exports.TypeInfo.SenderType + } +}; +exports.TypeInfo.ManualIntervention.fields = { + createdOn: { + isDate: true, + }, + modifiedOn: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.ManualInterventionStatus + } +}; +exports.TypeInfo.ManualInterventionUpdateMetadata.fields = { + status: { + enumType: exports.TypeInfo.ManualInterventionStatus + } +}; +exports.TypeInfo.MultiConfigInput.fields = { + parallelExecutionType: { + enumType: exports.TypeInfo.ParallelExecutionTypes + } +}; +exports.TypeInfo.MultiMachineInput.fields = { + parallelExecutionType: { + enumType: exports.TypeInfo.ParallelExecutionTypes + } +}; +exports.TypeInfo.PackageTrigger.fields = { + triggerType: { + enumType: exports.TypeInfo.ReleaseTriggerType + } +}; +exports.TypeInfo.ParallelExecutionInputBase.fields = { + parallelExecutionType: { + enumType: exports.TypeInfo.ParallelExecutionTypes + } +}; +exports.TypeInfo.PipelineProcess.fields = { + type: { + enumType: exports.TypeInfo.PipelineProcessTypes + } +}; +exports.TypeInfo.PropertySelector.fields = { + selectorType: { + enumType: exports.TypeInfo.PropertySelectorType + } +}; +exports.TypeInfo.PullRequestConfiguration.fields = { + codeRepositoryReference: { + typeInfo: exports.TypeInfo.CodeRepositoryReference + } +}; +exports.TypeInfo.PullRequestTrigger.fields = { + pullRequestConfiguration: { + typeInfo: exports.TypeInfo.PullRequestConfiguration + }, + triggerType: { + enumType: exports.TypeInfo.ReleaseTriggerType + } +}; +exports.TypeInfo.Release.fields = { + createdOn: { + isDate: true, + }, + environments: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseEnvironment + }, + modifiedOn: { + isDate: true, + }, + reason: { + enumType: exports.TypeInfo.ReleaseReason + }, + status: { + enumType: exports.TypeInfo.ReleaseStatus + }, + variableGroups: { + isArray: true, + typeInfo: exports.TypeInfo.VariableGroup + } +}; +exports.TypeInfo.ReleaseAbandonedEvent.fields = { + release: { + typeInfo: exports.TypeInfo.Release + } +}; +exports.TypeInfo.ReleaseApproval.fields = { + approvalType: { + enumType: exports.TypeInfo.ApprovalType + }, + createdOn: { + isDate: true, + }, + history: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseApprovalHistory + }, + modifiedOn: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.ApprovalStatus + } +}; +exports.TypeInfo.ReleaseApprovalHistory.fields = { + createdOn: { + isDate: true, + }, + modifiedOn: { + isDate: true, + } +}; +exports.TypeInfo.ReleaseApprovalPendingEvent.fields = { + approval: { + typeInfo: exports.TypeInfo.ReleaseApproval + }, + approvalOptions: { + typeInfo: exports.TypeInfo.ApprovalOptions + }, + completedApprovals: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseApproval + }, + deployment: { + typeInfo: exports.TypeInfo.Deployment + }, + environments: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseEnvironment + }, + pendingApprovals: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseApproval + } +}; +exports.TypeInfo.ReleaseCondition.fields = { + conditionType: { + enumType: exports.TypeInfo.ConditionType + } +}; +exports.TypeInfo.ReleaseCreatedEvent.fields = { + release: { + typeInfo: exports.TypeInfo.Release + } +}; +exports.TypeInfo.ReleaseDefinition.fields = { + createdOn: { + isDate: true, + }, + environments: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseDefinitionEnvironment + }, + lastRelease: { + typeInfo: exports.TypeInfo.ReleaseReference + }, + modifiedOn: { + isDate: true, + }, + pipelineProcess: { + typeInfo: exports.TypeInfo.PipelineProcess + }, + source: { + enumType: exports.TypeInfo.ReleaseDefinitionSource + }, + triggers: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseTriggerBase + } +}; +exports.TypeInfo.ReleaseDefinitionApprovals.fields = { + approvalOptions: { + typeInfo: exports.TypeInfo.ApprovalOptions + } +}; +exports.TypeInfo.ReleaseDefinitionEnvironment.fields = { + conditions: { + isArray: true, + typeInfo: exports.TypeInfo.Condition + }, + deployPhases: { + isArray: true, + typeInfo: exports.TypeInfo.DeployPhase + }, + environmentTriggers: { + isArray: true, + typeInfo: exports.TypeInfo.EnvironmentTrigger + }, + postDeployApprovals: { + typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals + }, + preDeployApprovals: { + typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals + }, + schedules: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseSchedule + } +}; +exports.TypeInfo.ReleaseDefinitionEnvironmentTemplate.fields = { + environment: { + typeInfo: exports.TypeInfo.ReleaseDefinitionEnvironment + } +}; +exports.TypeInfo.ReleaseDefinitionRevision.fields = { + changedDate: { + isDate: true, + }, + changeType: { + enumType: exports.TypeInfo.AuditAction + } +}; +exports.TypeInfo.ReleaseDefinitionSummary.fields = { + releases: { + isArray: true, + typeInfo: exports.TypeInfo.Release + } +}; +exports.TypeInfo.ReleaseDeployPhase.fields = { + deploymentJobs: { + isArray: true, + typeInfo: exports.TypeInfo.DeploymentJob + }, + manualInterventions: { + isArray: true, + typeInfo: exports.TypeInfo.ManualIntervention + }, + phaseType: { + enumType: exports.TypeInfo.DeployPhaseTypes + }, + startedOn: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.DeployPhaseStatus + } +}; +exports.TypeInfo.ReleaseEnvironment.fields = { + conditions: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseCondition + }, + createdOn: { + isDate: true, + }, + deployPhasesSnapshot: { + isArray: true, + typeInfo: exports.TypeInfo.DeployPhase + }, + deploySteps: { + isArray: true, + typeInfo: exports.TypeInfo.DeploymentAttempt + }, + modifiedOn: { + isDate: true, + }, + nextScheduledUtcTime: { + isDate: true, + }, + postApprovalsSnapshot: { + typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals + }, + postDeployApprovals: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseApproval + }, + preApprovalsSnapshot: { + typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals + }, + preDeployApprovals: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseApproval + }, + scheduledDeploymentTime: { + isDate: true, + }, + schedules: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseSchedule + }, + status: { + enumType: exports.TypeInfo.EnvironmentStatus + }, + variableGroups: { + isArray: true, + typeInfo: exports.TypeInfo.VariableGroup + } +}; +exports.TypeInfo.ReleaseEnvironmentCompletedEvent.fields = { + environment: { + typeInfo: exports.TypeInfo.ReleaseEnvironment + }, + reason: { + enumType: exports.TypeInfo.DeploymentReason + } +}; +exports.TypeInfo.ReleaseEnvironmentStatusUpdatedEvent.fields = { + environmentStatus: { + enumType: exports.TypeInfo.EnvironmentStatus + }, + latestDeploymentOperationStatus: { + enumType: exports.TypeInfo.DeploymentOperationStatus + }, + latestDeploymentStatus: { + enumType: exports.TypeInfo.DeploymentStatus + } +}; +exports.TypeInfo.ReleaseEnvironmentUpdateMetadata.fields = { + scheduledDeploymentTime: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.EnvironmentStatus + } +}; +exports.TypeInfo.ReleaseGates.fields = { + deploymentJobs: { + isArray: true, + typeInfo: exports.TypeInfo.DeploymentJob + }, + ignoredGates: { + isArray: true, + typeInfo: exports.TypeInfo.IgnoredGate + }, + lastModifiedOn: { + isDate: true, + }, + stabilizationCompletedOn: { + isDate: true, + }, + startedOn: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.GateStatus + }, + succeedingSince: { + isDate: true, + } +}; +exports.TypeInfo.ReleaseGatesPhase.fields = { + deploymentJobs: { + isArray: true, + typeInfo: exports.TypeInfo.DeploymentJob + }, + ignoredGates: { + isArray: true, + typeInfo: exports.TypeInfo.IgnoredGate + }, + manualInterventions: { + isArray: true, + typeInfo: exports.TypeInfo.ManualIntervention + }, + phaseType: { + enumType: exports.TypeInfo.DeployPhaseTypes + }, + stabilizationCompletedOn: { + isDate: true, + }, + startedOn: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.DeployPhaseStatus + }, + succeedingSince: { + isDate: true, + } +}; +exports.TypeInfo.ReleaseNotCreatedEvent.fields = { + releaseReason: { + enumType: exports.TypeInfo.ReleaseReason + } +}; +exports.TypeInfo.ReleaseReference.fields = { + createdOn: { + isDate: true, + }, + reason: { + enumType: exports.TypeInfo.ReleaseReason + } +}; +exports.TypeInfo.ReleaseRevision.fields = { + changedDate: { + isDate: true, + } +}; +exports.TypeInfo.ReleaseSchedule.fields = { + daysToRelease: { + enumType: exports.TypeInfo.ScheduleDays + } +}; +exports.TypeInfo.ReleaseStartMetadata.fields = { + artifacts: { + isArray: true, + typeInfo: exports.TypeInfo.ArtifactMetadata + }, + reason: { + enumType: exports.TypeInfo.ReleaseReason + } +}; +exports.TypeInfo.ReleaseTask.fields = { + dateEnded: { + isDate: true, + }, + dateStarted: { + isDate: true, + }, + finishTime: { + isDate: true, + }, + startTime: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.TaskStatus + } +}; +exports.TypeInfo.ReleaseTaskAttachment.fields = { + createdOn: { + isDate: true, + }, + modifiedOn: { + isDate: true, + } +}; +exports.TypeInfo.ReleaseTasksUpdatedEvent.fields = { + job: { + typeInfo: exports.TypeInfo.ReleaseTask + }, + tasks: { + isArray: true, + typeInfo: exports.TypeInfo.ReleaseTask + } +}; +exports.TypeInfo.ReleaseTriggerBase.fields = { + triggerType: { + enumType: exports.TypeInfo.ReleaseTriggerType + } +}; +exports.TypeInfo.ReleaseUpdatedEvent.fields = { + release: { + typeInfo: exports.TypeInfo.Release + } +}; +exports.TypeInfo.ReleaseUpdateMetadata.fields = { + status: { + enumType: exports.TypeInfo.ReleaseStatus + } +}; +exports.TypeInfo.RunOnServerDeployPhase.fields = { + deploymentInput: { + typeInfo: exports.TypeInfo.ServerDeploymentInput + }, + phaseType: { + enumType: exports.TypeInfo.DeployPhaseTypes + } +}; +exports.TypeInfo.ScheduledReleaseTrigger.fields = { + schedule: { + typeInfo: exports.TypeInfo.ReleaseSchedule + }, + triggerType: { + enumType: exports.TypeInfo.ReleaseTriggerType + } +}; +exports.TypeInfo.ServerDeploymentInput.fields = { + parallelExecution: { + typeInfo: exports.TypeInfo.ExecutionInput + } +}; +exports.TypeInfo.SourcePullRequestVersion.fields = { + pullRequestMergedAt: { + isDate: true, + } +}; +exports.TypeInfo.SourceRepoTrigger.fields = { + triggerType: { + enumType: exports.TypeInfo.ReleaseTriggerType + } +}; +exports.TypeInfo.SummaryMailSection.fields = { + sectionType: { + enumType: exports.TypeInfo.MailSectionType + } +}; +exports.TypeInfo.VariableGroup.fields = { + createdOn: { + isDate: true, + }, + modifiedOn: { + isDate: true, + } +}; +exports.TypeInfo.YamlFileSource.fields = { + type: { + enumType: exports.TypeInfo.YamlFileSourceTypes + } +}; +exports.TypeInfo.YamlPipelineProcess.fields = { + fileSource: { + typeInfo: exports.TypeInfo.YamlFileSource + }, + type: { + enumType: exports.TypeInfo.PipelineProcessTypes + } +}; + + +/***/ }), + +/***/ 6573: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +var RoleAccess; +(function (RoleAccess) { + /** + * Access has been explicitly set. + */ + RoleAccess[RoleAccess["Assigned"] = 1] = "Assigned"; + /** + * Access has been inherited from a higher scope. + */ + RoleAccess[RoleAccess["Inherited"] = 2] = "Inherited"; +})(RoleAccess = exports.RoleAccess || (exports.RoleAccess = {})); +exports.TypeInfo = { + RoleAccess: { + enumValues: { + "assigned": 1, + "inherited": 2 + } + }, + RoleAssignment: {}, +}; +exports.TypeInfo.RoleAssignment.fields = { + access: { + enumType: exports.TypeInfo.RoleAccess + }, +}; + + +/***/ }), + +/***/ 9565: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const FormInputInterfaces = __nccwpck_require__(3627); +var AadLoginPromptOption; +(function (AadLoginPromptOption) { + /** + * Do not provide a prompt option + */ + AadLoginPromptOption[AadLoginPromptOption["NoOption"] = 0] = "NoOption"; + /** + * Force the user to login again. + */ + AadLoginPromptOption[AadLoginPromptOption["Login"] = 1] = "Login"; + /** + * Force the user to select which account they are logging in with instead of automatically picking the user up from the session state. NOTE: This does not work for switching between the variants of a dual-homed user. + */ + AadLoginPromptOption[AadLoginPromptOption["SelectAccount"] = 2] = "SelectAccount"; + /** + * Force the user to login again. Ignore current authentication state and force the user to authenticate again. This option should be used instead of Login. + */ + AadLoginPromptOption[AadLoginPromptOption["FreshLogin"] = 3] = "FreshLogin"; + /** + * Force the user to login again with mfa. Ignore current authentication state and force the user to authenticate again. This option should be used instead of Login, if MFA is required. + */ + AadLoginPromptOption[AadLoginPromptOption["FreshLoginWithMfa"] = 4] = "FreshLoginWithMfa"; +})(AadLoginPromptOption = exports.AadLoginPromptOption || (exports.AadLoginPromptOption = {})); +var AuditAction; +(function (AuditAction) { + AuditAction[AuditAction["Add"] = 1] = "Add"; + AuditAction[AuditAction["Update"] = 2] = "Update"; + AuditAction[AuditAction["Delete"] = 3] = "Delete"; + AuditAction[AuditAction["Undelete"] = 4] = "Undelete"; +})(AuditAction = exports.AuditAction || (exports.AuditAction = {})); +var DemandSourceType; +(function (DemandSourceType) { + DemandSourceType[DemandSourceType["Task"] = 0] = "Task"; + DemandSourceType[DemandSourceType["Feature"] = 1] = "Feature"; +})(DemandSourceType = exports.DemandSourceType || (exports.DemandSourceType = {})); +/** + * This is useful in getting a list of deployment groups, filtered for which caller has permissions to take a particular action. + */ +var DeploymentGroupActionFilter; +(function (DeploymentGroupActionFilter) { + /** + * All deployment groups. + */ + DeploymentGroupActionFilter[DeploymentGroupActionFilter["None"] = 0] = "None"; + /** + * Only deployment groups for which caller has **manage** permission. + */ + DeploymentGroupActionFilter[DeploymentGroupActionFilter["Manage"] = 2] = "Manage"; + /** + * Only deployment groups for which caller has **use** permission. + */ + DeploymentGroupActionFilter[DeploymentGroupActionFilter["Use"] = 16] = "Use"; +})(DeploymentGroupActionFilter = exports.DeploymentGroupActionFilter || (exports.DeploymentGroupActionFilter = {})); +/** + * Properties to be included or expanded in deployment group objects. This is useful when getting a single or list of deployment grouops. + */ +var DeploymentGroupExpands; +(function (DeploymentGroupExpands) { + /** + * No additional properties. + */ + DeploymentGroupExpands[DeploymentGroupExpands["None"] = 0] = "None"; + /** + * Deprecated: Include all the deployment targets. + */ + DeploymentGroupExpands[DeploymentGroupExpands["Machines"] = 2] = "Machines"; + /** + * Include unique list of tags across all deployment targets. + */ + DeploymentGroupExpands[DeploymentGroupExpands["Tags"] = 4] = "Tags"; +})(DeploymentGroupExpands = exports.DeploymentGroupExpands || (exports.DeploymentGroupExpands = {})); +var DeploymentMachineExpands; +(function (DeploymentMachineExpands) { + DeploymentMachineExpands[DeploymentMachineExpands["None"] = 0] = "None"; + DeploymentMachineExpands[DeploymentMachineExpands["Capabilities"] = 2] = "Capabilities"; + DeploymentMachineExpands[DeploymentMachineExpands["AssignedRequest"] = 4] = "AssignedRequest"; +})(DeploymentMachineExpands = exports.DeploymentMachineExpands || (exports.DeploymentMachineExpands = {})); +/** + * Properties to be included or expanded in deployment pool summary objects. This is useful when getting a single or list of deployment pool summaries. + */ +var DeploymentPoolSummaryExpands; +(function (DeploymentPoolSummaryExpands) { + /** + * No additional properties + */ + DeploymentPoolSummaryExpands[DeploymentPoolSummaryExpands["None"] = 0] = "None"; + /** + * Include deployment groups referring to the deployment pool. + */ + DeploymentPoolSummaryExpands[DeploymentPoolSummaryExpands["DeploymentGroups"] = 2] = "DeploymentGroups"; + /** + * Include Resource referring to the deployment pool. + */ + DeploymentPoolSummaryExpands[DeploymentPoolSummaryExpands["Resource"] = 4] = "Resource"; +})(DeploymentPoolSummaryExpands = exports.DeploymentPoolSummaryExpands || (exports.DeploymentPoolSummaryExpands = {})); +/** + * Properties to be included or expanded in deployment target objects. This is useful when getting a single or list of deployment targets. + */ +var DeploymentTargetExpands; +(function (DeploymentTargetExpands) { + /** + * No additional properties. + */ + DeploymentTargetExpands[DeploymentTargetExpands["None"] = 0] = "None"; + /** + * Include capabilities of the deployment agent. + */ + DeploymentTargetExpands[DeploymentTargetExpands["Capabilities"] = 2] = "Capabilities"; + /** + * Include the job request assigned to the deployment agent. + */ + DeploymentTargetExpands[DeploymentTargetExpands["AssignedRequest"] = 4] = "AssignedRequest"; + /** + * Include the last completed job request of the deployment agent. + */ + DeploymentTargetExpands[DeploymentTargetExpands["LastCompletedRequest"] = 8] = "LastCompletedRequest"; +})(DeploymentTargetExpands = exports.DeploymentTargetExpands || (exports.DeploymentTargetExpands = {})); +var ElasticAgentState; +(function (ElasticAgentState) { + ElasticAgentState[ElasticAgentState["None"] = 0] = "None"; + ElasticAgentState[ElasticAgentState["Enabled"] = 1] = "Enabled"; + ElasticAgentState[ElasticAgentState["Online"] = 2] = "Online"; + ElasticAgentState[ElasticAgentState["Assigned"] = 4] = "Assigned"; +})(ElasticAgentState = exports.ElasticAgentState || (exports.ElasticAgentState = {})); +var ElasticComputeState; +(function (ElasticComputeState) { + ElasticComputeState[ElasticComputeState["None"] = 0] = "None"; + ElasticComputeState[ElasticComputeState["Healthy"] = 1] = "Healthy"; + ElasticComputeState[ElasticComputeState["Creating"] = 2] = "Creating"; + ElasticComputeState[ElasticComputeState["Deleting"] = 3] = "Deleting"; + ElasticComputeState[ElasticComputeState["Failed"] = 4] = "Failed"; + ElasticComputeState[ElasticComputeState["Stopped"] = 5] = "Stopped"; +})(ElasticComputeState = exports.ElasticComputeState || (exports.ElasticComputeState = {})); +var ElasticNodeState; +(function (ElasticNodeState) { + ElasticNodeState[ElasticNodeState["None"] = 0] = "None"; + ElasticNodeState[ElasticNodeState["New"] = 1] = "New"; + ElasticNodeState[ElasticNodeState["CreatingCompute"] = 2] = "CreatingCompute"; + ElasticNodeState[ElasticNodeState["StartingAgent"] = 3] = "StartingAgent"; + ElasticNodeState[ElasticNodeState["Idle"] = 4] = "Idle"; + ElasticNodeState[ElasticNodeState["Assigned"] = 5] = "Assigned"; + ElasticNodeState[ElasticNodeState["Offline"] = 6] = "Offline"; + ElasticNodeState[ElasticNodeState["PendingReimage"] = 7] = "PendingReimage"; + ElasticNodeState[ElasticNodeState["PendingDelete"] = 8] = "PendingDelete"; + ElasticNodeState[ElasticNodeState["Saved"] = 9] = "Saved"; + ElasticNodeState[ElasticNodeState["DeletingCompute"] = 10] = "DeletingCompute"; + ElasticNodeState[ElasticNodeState["Deleted"] = 11] = "Deleted"; + ElasticNodeState[ElasticNodeState["Lost"] = 12] = "Lost"; +})(ElasticNodeState = exports.ElasticNodeState || (exports.ElasticNodeState = {})); +var ElasticPoolState; +(function (ElasticPoolState) { + /** + * Online and healthy + */ + ElasticPoolState[ElasticPoolState["Online"] = 0] = "Online"; + ElasticPoolState[ElasticPoolState["Offline"] = 1] = "Offline"; + ElasticPoolState[ElasticPoolState["Unhealthy"] = 2] = "Unhealthy"; + ElasticPoolState[ElasticPoolState["New"] = 3] = "New"; +})(ElasticPoolState = exports.ElasticPoolState || (exports.ElasticPoolState = {})); +/** + * This is useful in getting a list of Environments, filtered for which caller has permissions to take a particular action. + */ +var EnvironmentActionFilter; +(function (EnvironmentActionFilter) { + /** + * All environments for which user has **view** permission. + */ + EnvironmentActionFilter[EnvironmentActionFilter["None"] = 0] = "None"; + /** + * Only environments for which caller has **manage** permission. + */ + EnvironmentActionFilter[EnvironmentActionFilter["Manage"] = 2] = "Manage"; + /** + * Only environments for which caller has **use** permission. + */ + EnvironmentActionFilter[EnvironmentActionFilter["Use"] = 16] = "Use"; +})(EnvironmentActionFilter = exports.EnvironmentActionFilter || (exports.EnvironmentActionFilter = {})); +/** + * Properties to be included or expanded in environment objects. This is useful when getting a single environment. + */ +var EnvironmentExpands; +(function (EnvironmentExpands) { + /** + * No additional properties + */ + EnvironmentExpands[EnvironmentExpands["None"] = 0] = "None"; + /** + * Include resource references referring to the environment. + */ + EnvironmentExpands[EnvironmentExpands["ResourceReferences"] = 1] = "ResourceReferences"; +})(EnvironmentExpands = exports.EnvironmentExpands || (exports.EnvironmentExpands = {})); +/** + * EnvironmentResourceType. + */ +var EnvironmentResourceType; +(function (EnvironmentResourceType) { + EnvironmentResourceType[EnvironmentResourceType["Undefined"] = 0] = "Undefined"; + /** + * Unknown resource type + */ + EnvironmentResourceType[EnvironmentResourceType["Generic"] = 1] = "Generic"; + /** + * Virtual machine resource type + */ + EnvironmentResourceType[EnvironmentResourceType["VirtualMachine"] = 2] = "VirtualMachine"; + /** + * Kubernetes resource type + */ + EnvironmentResourceType[EnvironmentResourceType["Kubernetes"] = 4] = "Kubernetes"; +})(EnvironmentResourceType = exports.EnvironmentResourceType || (exports.EnvironmentResourceType = {})); +var IssueType; +(function (IssueType) { + IssueType[IssueType["Error"] = 1] = "Error"; + IssueType[IssueType["Warning"] = 2] = "Warning"; +})(IssueType = exports.IssueType || (exports.IssueType = {})); +var LogLevel; +(function (LogLevel) { + LogLevel[LogLevel["Error"] = 0] = "Error"; + LogLevel[LogLevel["Warning"] = 1] = "Warning"; + LogLevel[LogLevel["Info"] = 2] = "Info"; +})(LogLevel = exports.LogLevel || (exports.LogLevel = {})); +var MachineGroupActionFilter; +(function (MachineGroupActionFilter) { + MachineGroupActionFilter[MachineGroupActionFilter["None"] = 0] = "None"; + MachineGroupActionFilter[MachineGroupActionFilter["Manage"] = 2] = "Manage"; + MachineGroupActionFilter[MachineGroupActionFilter["Use"] = 16] = "Use"; +})(MachineGroupActionFilter = exports.MachineGroupActionFilter || (exports.MachineGroupActionFilter = {})); +var MaskType; +(function (MaskType) { + MaskType[MaskType["Variable"] = 1] = "Variable"; + MaskType[MaskType["Regex"] = 2] = "Regex"; +})(MaskType = exports.MaskType || (exports.MaskType = {})); +var OperatingSystemType; +(function (OperatingSystemType) { + OperatingSystemType[OperatingSystemType["Windows"] = 0] = "Windows"; + OperatingSystemType[OperatingSystemType["Linux"] = 1] = "Linux"; +})(OperatingSystemType = exports.OperatingSystemType || (exports.OperatingSystemType = {})); +var OperationType; +(function (OperationType) { + OperationType[OperationType["ConfigurationJob"] = 0] = "ConfigurationJob"; + OperationType[OperationType["SizingJob"] = 1] = "SizingJob"; + OperationType[OperationType["IncreaseCapacity"] = 2] = "IncreaseCapacity"; + OperationType[OperationType["Reimage"] = 3] = "Reimage"; + OperationType[OperationType["DeleteVMs"] = 4] = "DeleteVMs"; +})(OperationType = exports.OperationType || (exports.OperationType = {})); +var PlanGroupStatus; +(function (PlanGroupStatus) { + PlanGroupStatus[PlanGroupStatus["Running"] = 1] = "Running"; + PlanGroupStatus[PlanGroupStatus["Queued"] = 2] = "Queued"; + PlanGroupStatus[PlanGroupStatus["All"] = 3] = "All"; +})(PlanGroupStatus = exports.PlanGroupStatus || (exports.PlanGroupStatus = {})); +var PlanGroupStatusFilter; +(function (PlanGroupStatusFilter) { + PlanGroupStatusFilter[PlanGroupStatusFilter["Running"] = 1] = "Running"; + PlanGroupStatusFilter[PlanGroupStatusFilter["Queued"] = 2] = "Queued"; + PlanGroupStatusFilter[PlanGroupStatusFilter["All"] = 3] = "All"; +})(PlanGroupStatusFilter = exports.PlanGroupStatusFilter || (exports.PlanGroupStatusFilter = {})); +var ResourceLockStatus; +(function (ResourceLockStatus) { + ResourceLockStatus[ResourceLockStatus["Queued"] = 0] = "Queued"; + ResourceLockStatus[ResourceLockStatus["InUse"] = 1] = "InUse"; + ResourceLockStatus[ResourceLockStatus["Finished"] = 2] = "Finished"; + ResourceLockStatus[ResourceLockStatus["TimedOut"] = 3] = "TimedOut"; + ResourceLockStatus[ResourceLockStatus["Canceled"] = 4] = "Canceled"; + ResourceLockStatus[ResourceLockStatus["Abandoned"] = 5] = "Abandoned"; +})(ResourceLockStatus = exports.ResourceLockStatus || (exports.ResourceLockStatus = {})); +var SecureFileActionFilter; +(function (SecureFileActionFilter) { + SecureFileActionFilter[SecureFileActionFilter["None"] = 0] = "None"; + SecureFileActionFilter[SecureFileActionFilter["Manage"] = 2] = "Manage"; + SecureFileActionFilter[SecureFileActionFilter["Use"] = 16] = "Use"; +})(SecureFileActionFilter = exports.SecureFileActionFilter || (exports.SecureFileActionFilter = {})); +/** + * This is useful in getting a list of deployment targets, filtered by the result of their last job. + */ +var TaskAgentJobResultFilter; +(function (TaskAgentJobResultFilter) { + /** + * Only those deployment targets on which last job failed (**Abandoned**, **Canceled**, **Failed**, **Skipped**). + */ + TaskAgentJobResultFilter[TaskAgentJobResultFilter["Failed"] = 1] = "Failed"; + /** + * Only those deployment targets on which last job Passed (**Succeeded**, **Succeeded with issues**). + */ + TaskAgentJobResultFilter[TaskAgentJobResultFilter["Passed"] = 2] = "Passed"; + /** + * Only those deployment targets that never executed a job. + */ + TaskAgentJobResultFilter[TaskAgentJobResultFilter["NeverDeployed"] = 4] = "NeverDeployed"; + /** + * All deployment targets. + */ + TaskAgentJobResultFilter[TaskAgentJobResultFilter["All"] = 7] = "All"; +})(TaskAgentJobResultFilter = exports.TaskAgentJobResultFilter || (exports.TaskAgentJobResultFilter = {})); +var TaskAgentJobStepType; +(function (TaskAgentJobStepType) { + TaskAgentJobStepType[TaskAgentJobStepType["Task"] = 1] = "Task"; + TaskAgentJobStepType[TaskAgentJobStepType["Action"] = 2] = "Action"; +})(TaskAgentJobStepType = exports.TaskAgentJobStepType || (exports.TaskAgentJobStepType = {})); +/** + * Filters pools based on whether the calling user has permission to use or manage the pool. + */ +var TaskAgentPoolActionFilter; +(function (TaskAgentPoolActionFilter) { + TaskAgentPoolActionFilter[TaskAgentPoolActionFilter["None"] = 0] = "None"; + TaskAgentPoolActionFilter[TaskAgentPoolActionFilter["Manage"] = 2] = "Manage"; + TaskAgentPoolActionFilter[TaskAgentPoolActionFilter["Use"] = 16] = "Use"; +})(TaskAgentPoolActionFilter = exports.TaskAgentPoolActionFilter || (exports.TaskAgentPoolActionFilter = {})); +var TaskAgentPoolMaintenanceJobResult; +(function (TaskAgentPoolMaintenanceJobResult) { + TaskAgentPoolMaintenanceJobResult[TaskAgentPoolMaintenanceJobResult["Succeeded"] = 1] = "Succeeded"; + TaskAgentPoolMaintenanceJobResult[TaskAgentPoolMaintenanceJobResult["Failed"] = 2] = "Failed"; + TaskAgentPoolMaintenanceJobResult[TaskAgentPoolMaintenanceJobResult["Canceled"] = 4] = "Canceled"; +})(TaskAgentPoolMaintenanceJobResult = exports.TaskAgentPoolMaintenanceJobResult || (exports.TaskAgentPoolMaintenanceJobResult = {})); +var TaskAgentPoolMaintenanceJobStatus; +(function (TaskAgentPoolMaintenanceJobStatus) { + TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus["InProgress"] = 1] = "InProgress"; + TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus["Completed"] = 2] = "Completed"; + TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus["Cancelling"] = 4] = "Cancelling"; + TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus["Queued"] = 8] = "Queued"; +})(TaskAgentPoolMaintenanceJobStatus = exports.TaskAgentPoolMaintenanceJobStatus || (exports.TaskAgentPoolMaintenanceJobStatus = {})); +var TaskAgentPoolMaintenanceScheduleDays; +(function (TaskAgentPoolMaintenanceScheduleDays) { + /** + * Do not run. + */ + TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays["None"] = 0] = "None"; + /** + * Run on Monday. + */ + TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays["Monday"] = 1] = "Monday"; + /** + * Run on Tuesday. + */ + TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays["Tuesday"] = 2] = "Tuesday"; + /** + * Run on Wednesday. + */ + TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays["Wednesday"] = 4] = "Wednesday"; + /** + * Run on Thursday. + */ + TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays["Thursday"] = 8] = "Thursday"; + /** + * Run on Friday. + */ + TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays["Friday"] = 16] = "Friday"; + /** + * Run on Saturday. + */ + TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays["Saturday"] = 32] = "Saturday"; + /** + * Run on Sunday. + */ + TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays["Sunday"] = 64] = "Sunday"; + /** + * Run on all days of the week. + */ + TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays["All"] = 127] = "All"; +})(TaskAgentPoolMaintenanceScheduleDays = exports.TaskAgentPoolMaintenanceScheduleDays || (exports.TaskAgentPoolMaintenanceScheduleDays = {})); +/** + * Additional settings and descriptors for a TaskAgentPool + */ +var TaskAgentPoolOptions; +(function (TaskAgentPoolOptions) { + TaskAgentPoolOptions[TaskAgentPoolOptions["None"] = 0] = "None"; + /** + * TaskAgentPool backed by the Elastic pool service + */ + TaskAgentPoolOptions[TaskAgentPoolOptions["ElasticPool"] = 1] = "ElasticPool"; + /** + * Set to true if agents are re-imaged after each TaskAgentJobRequest + */ + TaskAgentPoolOptions[TaskAgentPoolOptions["SingleUseAgents"] = 2] = "SingleUseAgents"; + /** + * Set to true if agents are held for investigation after a TaskAgentJobRequest failure + */ + TaskAgentPoolOptions[TaskAgentPoolOptions["PreserveAgentOnJobFailure"] = 4] = "PreserveAgentOnJobFailure"; +})(TaskAgentPoolOptions = exports.TaskAgentPoolOptions || (exports.TaskAgentPoolOptions = {})); +/** + * The type of agent pool. + */ +var TaskAgentPoolType; +(function (TaskAgentPoolType) { + /** + * A typical pool of task agents + */ + TaskAgentPoolType[TaskAgentPoolType["Automation"] = 1] = "Automation"; + /** + * A deployment pool + */ + TaskAgentPoolType[TaskAgentPoolType["Deployment"] = 2] = "Deployment"; +})(TaskAgentPoolType = exports.TaskAgentPoolType || (exports.TaskAgentPoolType = {})); +/** + * Filters queues based on whether the calling user has permission to use or manage the queue. + */ +var TaskAgentQueueActionFilter; +(function (TaskAgentQueueActionFilter) { + TaskAgentQueueActionFilter[TaskAgentQueueActionFilter["None"] = 0] = "None"; + TaskAgentQueueActionFilter[TaskAgentQueueActionFilter["Manage"] = 2] = "Manage"; + TaskAgentQueueActionFilter[TaskAgentQueueActionFilter["Use"] = 16] = "Use"; +})(TaskAgentQueueActionFilter = exports.TaskAgentQueueActionFilter || (exports.TaskAgentQueueActionFilter = {})); +var TaskAgentRequestUpdateOptions; +(function (TaskAgentRequestUpdateOptions) { + TaskAgentRequestUpdateOptions[TaskAgentRequestUpdateOptions["None"] = 0] = "None"; + TaskAgentRequestUpdateOptions[TaskAgentRequestUpdateOptions["BumpRequestToTop"] = 1] = "BumpRequestToTop"; +})(TaskAgentRequestUpdateOptions = exports.TaskAgentRequestUpdateOptions || (exports.TaskAgentRequestUpdateOptions = {})); +var TaskAgentStatus; +(function (TaskAgentStatus) { + TaskAgentStatus[TaskAgentStatus["Offline"] = 1] = "Offline"; + TaskAgentStatus[TaskAgentStatus["Online"] = 2] = "Online"; +})(TaskAgentStatus = exports.TaskAgentStatus || (exports.TaskAgentStatus = {})); +/** + * This is useful in getting a list of deployment targets, filtered by the deployment agent status. + */ +var TaskAgentStatusFilter; +(function (TaskAgentStatusFilter) { + /** + * Only deployment targets that are offline. + */ + TaskAgentStatusFilter[TaskAgentStatusFilter["Offline"] = 1] = "Offline"; + /** + * Only deployment targets that are online. + */ + TaskAgentStatusFilter[TaskAgentStatusFilter["Online"] = 2] = "Online"; + /** + * All deployment targets. + */ + TaskAgentStatusFilter[TaskAgentStatusFilter["All"] = 3] = "All"; +})(TaskAgentStatusFilter = exports.TaskAgentStatusFilter || (exports.TaskAgentStatusFilter = {})); +var TaskAgentUpdateReasonType; +(function (TaskAgentUpdateReasonType) { + TaskAgentUpdateReasonType[TaskAgentUpdateReasonType["Manual"] = 1] = "Manual"; + TaskAgentUpdateReasonType[TaskAgentUpdateReasonType["MinAgentVersionRequired"] = 2] = "MinAgentVersionRequired"; + TaskAgentUpdateReasonType[TaskAgentUpdateReasonType["Downgrade"] = 3] = "Downgrade"; +})(TaskAgentUpdateReasonType = exports.TaskAgentUpdateReasonType || (exports.TaskAgentUpdateReasonType = {})); +var TaskCommandMode; +(function (TaskCommandMode) { + TaskCommandMode[TaskCommandMode["Any"] = 0] = "Any"; + TaskCommandMode[TaskCommandMode["Restricted"] = 1] = "Restricted"; +})(TaskCommandMode = exports.TaskCommandMode || (exports.TaskCommandMode = {})); +var TaskDefinitionStatus; +(function (TaskDefinitionStatus) { + TaskDefinitionStatus[TaskDefinitionStatus["Preinstalled"] = 1] = "Preinstalled"; + TaskDefinitionStatus[TaskDefinitionStatus["ReceivedInstallOrUpdate"] = 2] = "ReceivedInstallOrUpdate"; + TaskDefinitionStatus[TaskDefinitionStatus["Installed"] = 3] = "Installed"; + TaskDefinitionStatus[TaskDefinitionStatus["ReceivedUninstall"] = 4] = "ReceivedUninstall"; + TaskDefinitionStatus[TaskDefinitionStatus["Uninstalled"] = 5] = "Uninstalled"; + TaskDefinitionStatus[TaskDefinitionStatus["RequestedUpdate"] = 6] = "RequestedUpdate"; + TaskDefinitionStatus[TaskDefinitionStatus["Updated"] = 7] = "Updated"; + TaskDefinitionStatus[TaskDefinitionStatus["AlreadyUpToDate"] = 8] = "AlreadyUpToDate"; + TaskDefinitionStatus[TaskDefinitionStatus["InlineUpdateReceived"] = 9] = "InlineUpdateReceived"; +})(TaskDefinitionStatus = exports.TaskDefinitionStatus || (exports.TaskDefinitionStatus = {})); +var TaskGroupExpands; +(function (TaskGroupExpands) { + TaskGroupExpands[TaskGroupExpands["None"] = 0] = "None"; + TaskGroupExpands[TaskGroupExpands["Tasks"] = 2] = "Tasks"; +})(TaskGroupExpands = exports.TaskGroupExpands || (exports.TaskGroupExpands = {})); +/** + * Specifies the desired ordering of taskGroups. + */ +var TaskGroupQueryOrder; +(function (TaskGroupQueryOrder) { + /** + * Order by createdon ascending. + */ + TaskGroupQueryOrder[TaskGroupQueryOrder["CreatedOnAscending"] = 0] = "CreatedOnAscending"; + /** + * Order by createdon descending. + */ + TaskGroupQueryOrder[TaskGroupQueryOrder["CreatedOnDescending"] = 1] = "CreatedOnDescending"; +})(TaskGroupQueryOrder = exports.TaskGroupQueryOrder || (exports.TaskGroupQueryOrder = {})); +var TaskOrchestrationItemType; +(function (TaskOrchestrationItemType) { + TaskOrchestrationItemType[TaskOrchestrationItemType["Container"] = 0] = "Container"; + TaskOrchestrationItemType[TaskOrchestrationItemType["Job"] = 1] = "Job"; +})(TaskOrchestrationItemType = exports.TaskOrchestrationItemType || (exports.TaskOrchestrationItemType = {})); +var TaskOrchestrationPlanState; +(function (TaskOrchestrationPlanState) { + TaskOrchestrationPlanState[TaskOrchestrationPlanState["InProgress"] = 1] = "InProgress"; + TaskOrchestrationPlanState[TaskOrchestrationPlanState["Queued"] = 2] = "Queued"; + TaskOrchestrationPlanState[TaskOrchestrationPlanState["Completed"] = 4] = "Completed"; + TaskOrchestrationPlanState[TaskOrchestrationPlanState["Throttled"] = 8] = "Throttled"; +})(TaskOrchestrationPlanState = exports.TaskOrchestrationPlanState || (exports.TaskOrchestrationPlanState = {})); +var TaskResult; +(function (TaskResult) { + TaskResult[TaskResult["Succeeded"] = 0] = "Succeeded"; + TaskResult[TaskResult["SucceededWithIssues"] = 1] = "SucceededWithIssues"; + TaskResult[TaskResult["Failed"] = 2] = "Failed"; + TaskResult[TaskResult["Canceled"] = 3] = "Canceled"; + TaskResult[TaskResult["Skipped"] = 4] = "Skipped"; + TaskResult[TaskResult["Abandoned"] = 5] = "Abandoned"; +})(TaskResult = exports.TaskResult || (exports.TaskResult = {})); +var TimelineRecordState; +(function (TimelineRecordState) { + TimelineRecordState[TimelineRecordState["Pending"] = 0] = "Pending"; + TimelineRecordState[TimelineRecordState["InProgress"] = 1] = "InProgress"; + TimelineRecordState[TimelineRecordState["Completed"] = 2] = "Completed"; +})(TimelineRecordState = exports.TimelineRecordState || (exports.TimelineRecordState = {})); +var VariableGroupActionFilter; +(function (VariableGroupActionFilter) { + VariableGroupActionFilter[VariableGroupActionFilter["None"] = 0] = "None"; + VariableGroupActionFilter[VariableGroupActionFilter["Manage"] = 2] = "Manage"; + VariableGroupActionFilter[VariableGroupActionFilter["Use"] = 16] = "Use"; +})(VariableGroupActionFilter = exports.VariableGroupActionFilter || (exports.VariableGroupActionFilter = {})); +/** + * Specifies the desired ordering of variableGroups. + */ +var VariableGroupQueryOrder; +(function (VariableGroupQueryOrder) { + /** + * Order by id ascending. + */ + VariableGroupQueryOrder[VariableGroupQueryOrder["IdAscending"] = 0] = "IdAscending"; + /** + * Order by id descending. + */ + VariableGroupQueryOrder[VariableGroupQueryOrder["IdDescending"] = 1] = "IdDescending"; +})(VariableGroupQueryOrder = exports.VariableGroupQueryOrder || (exports.VariableGroupQueryOrder = {})); +exports.TypeInfo = { + AadLoginPromptOption: { + enumValues: { + "noOption": 0, + "login": 1, + "selectAccount": 2, + "freshLogin": 3, + "freshLoginWithMfa": 4 + } + }, + AgentChangeEvent: {}, + AgentJobRequestMessage: {}, + AgentPoolEvent: {}, + AgentQueueEvent: {}, + AgentQueuesEvent: {}, + AuditAction: { + enumValues: { + "add": 1, + "update": 2, + "delete": 3, + "undelete": 4 + } + }, + AzureKeyVaultVariableGroupProviderData: {}, + AzureKeyVaultVariableValue: {}, + DemandMinimumVersion: {}, + DemandSource: {}, + DemandSourceType: { + enumValues: { + "task": 0, + "feature": 1 + } + }, + DeploymentGroup: {}, + DeploymentGroupActionFilter: { + enumValues: { + "none": 0, + "manage": 2, + "use": 16 + } + }, + DeploymentGroupExpands: { + enumValues: { + "none": 0, + "machines": 2, + "tags": 4 + } + }, + DeploymentGroupMetrics: {}, + DeploymentGroupReference: {}, + DeploymentMachine: {}, + DeploymentMachineChangedData: {}, + DeploymentMachineExpands: { + enumValues: { + "none": 0, + "capabilities": 2, + "assignedRequest": 4 + } + }, + DeploymentMachineGroup: {}, + DeploymentMachineGroupReference: {}, + DeploymentMachinesChangeEvent: {}, + DeploymentPoolSummary: {}, + DeploymentPoolSummaryExpands: { + enumValues: { + "none": 0, + "deploymentGroups": 2, + "resource": 4 + } + }, + DeploymentTargetExpands: { + enumValues: { + "none": 0, + "capabilities": 2, + "assignedRequest": 4, + "lastCompletedRequest": 8 + } + }, + ElasticAgentState: { + enumValues: { + "none": 0, + "enabled": 1, + "online": 2, + "assigned": 4 + } + }, + ElasticComputeState: { + enumValues: { + "none": 0, + "healthy": 1, + "creating": 2, + "deleting": 3, + "failed": 4, + "stopped": 5 + } + }, + ElasticNode: {}, + ElasticNodeSettings: {}, + ElasticNodeState: { + enumValues: { + "none": 0, + "new": 1, + "creatingCompute": 2, + "startingAgent": 3, + "idle": 4, + "assigned": 5, + "offline": 6, + "pendingReimage": 7, + "pendingDelete": 8, + "saved": 9, + "deletingCompute": 10, + "deleted": 11, + "lost": 12 + } + }, + ElasticPool: {}, + ElasticPoolCreationResult: {}, + ElasticPoolLog: {}, + ElasticPoolSettings: {}, + ElasticPoolState: { + enumValues: { + "online": 0, + "offline": 1, + "unhealthy": 2, + "new": 3 + } + }, + EnvironmentActionFilter: { + enumValues: { + "none": 0, + "manage": 2, + "use": 16 + } + }, + EnvironmentDeploymentExecutionRecord: {}, + EnvironmentExpands: { + enumValues: { + "none": 0, + "resourceReferences": 1 + } + }, + EnvironmentInstance: {}, + EnvironmentResource: {}, + EnvironmentResourceDeploymentExecutionRecord: {}, + EnvironmentResourceReference: {}, + EnvironmentResourceType: { + enumValues: { + "undefined": 0, + "generic": 1, + "virtualMachine": 2, + "kubernetes": 4 + } + }, + Issue: {}, + IssueType: { + enumValues: { + "error": 1, + "warning": 2 + } + }, + JobAssignedEvent: {}, + JobCompletedEvent: {}, + JobEnvironment: {}, + JobRequestMessage: {}, + KubernetesResource: {}, + LogLevel: { + enumValues: { + "error": 0, + "warning": 1, + "info": 2 + } + }, + MachineGroupActionFilter: { + enumValues: { + "none": 0, + "manage": 2, + "use": 16 + } + }, + MaskHint: {}, + MaskType: { + enumValues: { + "variable": 1, + "regex": 2 + } + }, + OperatingSystemType: { + enumValues: { + "windows": 0, + "linux": 1 + } + }, + OperationType: { + enumValues: { + "configurationJob": 0, + "sizingJob": 1, + "increaseCapacity": 2, + "reimage": 3, + "deleteVMs": 4 + } + }, + PackageMetadata: {}, + PlanEnvironment: {}, + PlanGroupStatus: { + enumValues: { + "running": 1, + "queued": 2, + "all": 3 + } + }, + PlanGroupStatusFilter: { + enumValues: { + "running": 1, + "queued": 2, + "all": 3 + } + }, + ResourceLockRequest: {}, + ResourceLockStatus: { + enumValues: { + "queued": 0, + "inUse": 1, + "finished": 2, + "timedOut": 3, + "canceled": 4, + "abandoned": 5 + } + }, + ResourceUsage: {}, + SecureFile: {}, + SecureFileActionFilter: { + enumValues: { + "none": 0, + "manage": 2, + "use": 16 + } + }, + SecureFileEvent: {}, + ServerTaskRequestMessage: {}, + ServiceEndpointAuthenticationScheme: {}, + ServiceEndpointExecutionData: {}, + ServiceEndpointExecutionRecord: {}, + ServiceEndpointExecutionRecordsInput: {}, + ServiceEndpointRequestResult: {}, + ServiceEndpointType: {}, + TaskAgent: {}, + TaskAgentCloudRequest: {}, + TaskAgentCloudType: {}, + TaskAgentDowngrade: {}, + TaskAgentJob: {}, + TaskAgentJobRequest: {}, + TaskAgentJobResultFilter: { + enumValues: { + "failed": 1, + "passed": 2, + "neverDeployed": 4, + "all": 7 + } + }, + TaskAgentJobStep: {}, + TaskAgentJobStepType: { + enumValues: { + "task": 1, + "action": 2 + } + }, + TaskAgentManualUpdate: {}, + TaskAgentMinAgentVersionRequiredUpdate: {}, + TaskAgentPool: {}, + TaskAgentPoolActionFilter: { + enumValues: { + "none": 0, + "manage": 2, + "use": 16 + } + }, + TaskAgentPoolMaintenanceDefinition: {}, + TaskAgentPoolMaintenanceJob: {}, + TaskAgentPoolMaintenanceJobResult: { + enumValues: { + "succeeded": 1, + "failed": 2, + "canceled": 4 + } + }, + TaskAgentPoolMaintenanceJobStatus: { + enumValues: { + "inProgress": 1, + "completed": 2, + "cancelling": 4, + "queued": 8 + } + }, + TaskAgentPoolMaintenanceJobTargetAgent: {}, + TaskAgentPoolMaintenanceSchedule: {}, + TaskAgentPoolMaintenanceScheduleDays: { + enumValues: { + "none": 0, + "monday": 1, + "tuesday": 2, + "wednesday": 4, + "thursday": 8, + "friday": 16, + "saturday": 32, + "sunday": 64, + "all": 127 + } + }, + TaskAgentPoolOptions: { + enumValues: { + "none": 0, + "elasticPool": 1, + "singleUseAgents": 2, + "preserveAgentOnJobFailure": 4 + } + }, + TaskAgentPoolReference: {}, + TaskAgentPoolStatus: {}, + TaskAgentPoolSummary: {}, + TaskAgentPoolType: { + enumValues: { + "automation": 1, + "deployment": 2 + } + }, + TaskAgentQueue: {}, + TaskAgentQueueActionFilter: { + enumValues: { + "none": 0, + "manage": 2, + "use": 16 + } + }, + TaskAgentReference: {}, + TaskAgentRequestUpdateOptions: { + enumValues: { + "none": 0, + "bumpRequestToTop": 1 + } + }, + TaskAgentSession: {}, + TaskAgentStatus: { + enumValues: { + "offline": 1, + "online": 2 + } + }, + TaskAgentStatusFilter: { + enumValues: { + "offline": 1, + "online": 2, + "all": 3 + } + }, + TaskAgentUpdate: {}, + TaskAgentUpdateReason: {}, + TaskAgentUpdateReasonType: { + enumValues: { + "manual": 1, + "minAgentVersionRequired": 2, + "downgrade": 3 + } + }, + TaskAttachment: {}, + TaskCommandMode: { + enumValues: { + "any": 0, + "restricted": 1 + } + }, + TaskCommandRestrictions: {}, + TaskCompletedEvent: {}, + TaskDefinition: {}, + TaskDefinitionStatus: { + enumValues: { + "preinstalled": 1, + "receivedInstallOrUpdate": 2, + "installed": 3, + "receivedUninstall": 4, + "uninstalled": 5, + "requestedUpdate": 6, + "updated": 7, + "alreadyUpToDate": 8, + "inlineUpdateReceived": 9 + } + }, + TaskGroup: {}, + TaskGroupExpands: { + enumValues: { + "none": 0, + "tasks": 2 + } + }, + TaskGroupQueryOrder: { + enumValues: { + "createdOnAscending": 0, + "createdOnDescending": 1 + } + }, + TaskGroupRevision: {}, + TaskLog: {}, + TaskOrchestrationContainer: {}, + TaskOrchestrationItem: {}, + TaskOrchestrationItemType: { + enumValues: { + "container": 0, + "job": 1 + } + }, + TaskOrchestrationJob: {}, + TaskOrchestrationPlan: {}, + TaskOrchestrationPlanGroup: {}, + TaskOrchestrationPlanGroupsQueueMetrics: {}, + TaskOrchestrationPlanState: { + enumValues: { + "inProgress": 1, + "queued": 2, + "completed": 4, + "throttled": 8 + } + }, + TaskOrchestrationQueuedPlan: {}, + TaskOrchestrationQueuedPlanGroup: {}, + TaskRestrictions: {}, + TaskResult: { + enumValues: { + "succeeded": 0, + "succeededWithIssues": 1, + "failed": 2, + "canceled": 3, + "skipped": 4, + "abandoned": 5 + } + }, + Timeline: {}, + TimelineRecord: {}, + TimelineRecordState: { + enumValues: { + "pending": 0, + "inProgress": 1, + "completed": 2 + } + }, + VariableGroup: {}, + VariableGroupActionFilter: { + enumValues: { + "none": 0, + "manage": 2, + "use": 16 + } + }, + VariableGroupQueryOrder: { + enumValues: { + "idAscending": 0, + "idDescending": 1 + } + }, + VirtualMachine: {}, + VirtualMachineGroup: {}, + VirtualMachineResource: {}, + VirtualMachineResourceCreateParameters: {}, +}; +exports.TypeInfo.AgentChangeEvent.fields = { + agent: { + typeInfo: exports.TypeInfo.TaskAgent + }, + pool: { + typeInfo: exports.TypeInfo.TaskAgentPoolReference + }, + timeStamp: { + isDate: true, + } +}; +exports.TypeInfo.AgentJobRequestMessage.fields = { + environment: { + typeInfo: exports.TypeInfo.JobEnvironment + }, + lockedUntil: { + isDate: true, + } +}; +exports.TypeInfo.AgentPoolEvent.fields = { + pool: { + typeInfo: exports.TypeInfo.TaskAgentPool + } +}; +exports.TypeInfo.AgentQueueEvent.fields = { + queue: { + typeInfo: exports.TypeInfo.TaskAgentQueue + } +}; +exports.TypeInfo.AgentQueuesEvent.fields = { + queues: { + isArray: true, + typeInfo: exports.TypeInfo.TaskAgentQueue + } +}; +exports.TypeInfo.AzureKeyVaultVariableGroupProviderData.fields = { + lastRefreshedOn: { + isDate: true, + } +}; +exports.TypeInfo.AzureKeyVaultVariableValue.fields = { + expires: { + isDate: true, + } +}; +exports.TypeInfo.DemandMinimumVersion.fields = { + source: { + typeInfo: exports.TypeInfo.DemandSource + } +}; +exports.TypeInfo.DemandSource.fields = { + sourceType: { + enumType: exports.TypeInfo.DemandSourceType + } +}; +exports.TypeInfo.DeploymentGroup.fields = { + machines: { + isArray: true, + typeInfo: exports.TypeInfo.DeploymentMachine + }, + pool: { + typeInfo: exports.TypeInfo.TaskAgentPoolReference + } +}; +exports.TypeInfo.DeploymentGroupMetrics.fields = { + deploymentGroup: { + typeInfo: exports.TypeInfo.DeploymentGroupReference + } +}; +exports.TypeInfo.DeploymentGroupReference.fields = { + pool: { + typeInfo: exports.TypeInfo.TaskAgentPoolReference + } +}; +exports.TypeInfo.DeploymentMachine.fields = { + agent: { + typeInfo: exports.TypeInfo.TaskAgent + } +}; +exports.TypeInfo.DeploymentMachineChangedData.fields = { + agent: { + typeInfo: exports.TypeInfo.TaskAgent + } +}; +exports.TypeInfo.DeploymentMachineGroup.fields = { + machines: { + isArray: true, + typeInfo: exports.TypeInfo.DeploymentMachine + }, + pool: { + typeInfo: exports.TypeInfo.TaskAgentPoolReference + } +}; +exports.TypeInfo.DeploymentMachineGroupReference.fields = { + pool: { + typeInfo: exports.TypeInfo.TaskAgentPoolReference + } +}; +exports.TypeInfo.DeploymentMachinesChangeEvent.fields = { + machineGroupReference: { + typeInfo: exports.TypeInfo.DeploymentGroupReference + }, + machines: { + isArray: true, + typeInfo: exports.TypeInfo.DeploymentMachineChangedData + } +}; +exports.TypeInfo.DeploymentPoolSummary.fields = { + deploymentGroups: { + isArray: true, + typeInfo: exports.TypeInfo.DeploymentGroupReference + }, + pool: { + typeInfo: exports.TypeInfo.TaskAgentPoolReference + }, + resource: { + typeInfo: exports.TypeInfo.EnvironmentResourceReference + } +}; +exports.TypeInfo.ElasticNode.fields = { + agentState: { + enumType: exports.TypeInfo.ElasticAgentState + }, + computeState: { + enumType: exports.TypeInfo.ElasticComputeState + }, + desiredState: { + enumType: exports.TypeInfo.ElasticNodeState + }, + state: { + enumType: exports.TypeInfo.ElasticNodeState + }, + stateChangedOn: { + isDate: true, + } +}; +exports.TypeInfo.ElasticNodeSettings.fields = { + state: { + enumType: exports.TypeInfo.ElasticNodeState + } +}; +exports.TypeInfo.ElasticPool.fields = { + offlineSince: { + isDate: true, + }, + osType: { + enumType: exports.TypeInfo.OperatingSystemType + }, + state: { + enumType: exports.TypeInfo.ElasticPoolState + } +}; +exports.TypeInfo.ElasticPoolCreationResult.fields = { + agentPool: { + typeInfo: exports.TypeInfo.TaskAgentPool + }, + agentQueue: { + typeInfo: exports.TypeInfo.TaskAgentQueue + }, + elasticPool: { + typeInfo: exports.TypeInfo.ElasticPool + } +}; +exports.TypeInfo.ElasticPoolLog.fields = { + level: { + enumType: exports.TypeInfo.LogLevel + }, + operation: { + enumType: exports.TypeInfo.OperationType + }, + timestamp: { + isDate: true, + } +}; +exports.TypeInfo.ElasticPoolSettings.fields = { + osType: { + enumType: exports.TypeInfo.OperatingSystemType + } +}; +exports.TypeInfo.EnvironmentDeploymentExecutionRecord.fields = { + finishTime: { + isDate: true, + }, + queueTime: { + isDate: true, + }, + result: { + enumType: exports.TypeInfo.TaskResult + }, + startTime: { + isDate: true, + } +}; +exports.TypeInfo.EnvironmentInstance.fields = { + createdOn: { + isDate: true, + }, + lastModifiedOn: { + isDate: true, + }, + resources: { + isArray: true, + typeInfo: exports.TypeInfo.EnvironmentResourceReference + } +}; +exports.TypeInfo.EnvironmentResource.fields = { + createdOn: { + isDate: true, + }, + lastModifiedOn: { + isDate: true, + }, + type: { + enumType: exports.TypeInfo.EnvironmentResourceType + } +}; +exports.TypeInfo.EnvironmentResourceDeploymentExecutionRecord.fields = { + finishTime: { + isDate: true, + }, + result: { + enumType: exports.TypeInfo.TaskResult + }, + startTime: { + isDate: true, + } +}; +exports.TypeInfo.EnvironmentResourceReference.fields = { + type: { + enumType: exports.TypeInfo.EnvironmentResourceType + } +}; +exports.TypeInfo.Issue.fields = { + type: { + enumType: exports.TypeInfo.IssueType + } +}; +exports.TypeInfo.JobAssignedEvent.fields = { + request: { + typeInfo: exports.TypeInfo.TaskAgentJobRequest + } +}; +exports.TypeInfo.JobCompletedEvent.fields = { + result: { + enumType: exports.TypeInfo.TaskResult + } +}; +exports.TypeInfo.JobEnvironment.fields = { + mask: { + isArray: true, + typeInfo: exports.TypeInfo.MaskHint + }, + secureFiles: { + isArray: true, + typeInfo: exports.TypeInfo.SecureFile + } +}; +exports.TypeInfo.JobRequestMessage.fields = { + environment: { + typeInfo: exports.TypeInfo.JobEnvironment + } +}; +exports.TypeInfo.KubernetesResource.fields = { + createdOn: { + isDate: true, + }, + lastModifiedOn: { + isDate: true, + }, + type: { + enumType: exports.TypeInfo.EnvironmentResourceType + } +}; +exports.TypeInfo.MaskHint.fields = { + type: { + enumType: exports.TypeInfo.MaskType + } +}; +exports.TypeInfo.PackageMetadata.fields = { + createdOn: { + isDate: true, + } +}; +exports.TypeInfo.PlanEnvironment.fields = { + mask: { + isArray: true, + typeInfo: exports.TypeInfo.MaskHint + } +}; +exports.TypeInfo.ResourceLockRequest.fields = { + assignTime: { + isDate: true, + }, + finishTime: { + isDate: true, + }, + queueTime: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.ResourceLockStatus + } +}; +exports.TypeInfo.ResourceUsage.fields = { + runningRequests: { + isArray: true, + typeInfo: exports.TypeInfo.TaskAgentJobRequest + } +}; +exports.TypeInfo.SecureFile.fields = { + createdOn: { + isDate: true, + }, + modifiedOn: { + isDate: true, + } +}; +exports.TypeInfo.SecureFileEvent.fields = { + secureFiles: { + isArray: true, + typeInfo: exports.TypeInfo.SecureFile + } +}; +exports.TypeInfo.ServerTaskRequestMessage.fields = { + environment: { + typeInfo: exports.TypeInfo.JobEnvironment + }, + taskDefinition: { + typeInfo: exports.TypeInfo.TaskDefinition + } +}; +exports.TypeInfo.ServiceEndpointAuthenticationScheme.fields = { + inputDescriptors: { + isArray: true, + typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor + } +}; +exports.TypeInfo.ServiceEndpointExecutionData.fields = { + finishTime: { + isDate: true, + }, + result: { + enumType: exports.TypeInfo.TaskResult + }, + startTime: { + isDate: true, + } +}; +exports.TypeInfo.ServiceEndpointExecutionRecord.fields = { + data: { + typeInfo: exports.TypeInfo.ServiceEndpointExecutionData + } +}; +exports.TypeInfo.ServiceEndpointExecutionRecordsInput.fields = { + data: { + typeInfo: exports.TypeInfo.ServiceEndpointExecutionData + } +}; +exports.TypeInfo.ServiceEndpointRequestResult.fields = {}; +exports.TypeInfo.ServiceEndpointType.fields = { + authenticationSchemes: { + isArray: true, + typeInfo: exports.TypeInfo.ServiceEndpointAuthenticationScheme + }, + inputDescriptors: { + isArray: true, + typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor + } +}; +exports.TypeInfo.TaskAgent.fields = { + assignedAgentCloudRequest: { + typeInfo: exports.TypeInfo.TaskAgentCloudRequest + }, + assignedRequest: { + typeInfo: exports.TypeInfo.TaskAgentJobRequest + }, + createdOn: { + isDate: true, + }, + lastCompletedRequest: { + typeInfo: exports.TypeInfo.TaskAgentJobRequest + }, + pendingUpdate: { + typeInfo: exports.TypeInfo.TaskAgentUpdate + }, + status: { + enumType: exports.TypeInfo.TaskAgentStatus + }, + statusChangedOn: { + isDate: true, + } +}; +exports.TypeInfo.TaskAgentCloudRequest.fields = { + agent: { + typeInfo: exports.TypeInfo.TaskAgentReference + }, + agentConnectedTime: { + isDate: true, + }, + pool: { + typeInfo: exports.TypeInfo.TaskAgentPoolReference + }, + provisionedTime: { + isDate: true, + }, + provisionRequestTime: { + isDate: true, + }, + releaseRequestTime: { + isDate: true, + } +}; +exports.TypeInfo.TaskAgentCloudType.fields = { + inputDescriptors: { + isArray: true, + typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor + } +}; +exports.TypeInfo.TaskAgentDowngrade.fields = { + code: { + enumType: exports.TypeInfo.TaskAgentUpdateReasonType + } +}; +exports.TypeInfo.TaskAgentJob.fields = { + steps: { + isArray: true, + typeInfo: exports.TypeInfo.TaskAgentJobStep + } +}; +exports.TypeInfo.TaskAgentJobRequest.fields = { + assignTime: { + isDate: true, + }, + finishTime: { + isDate: true, + }, + lockedUntil: { + isDate: true, + }, + matchedAgents: { + isArray: true, + typeInfo: exports.TypeInfo.TaskAgentReference + }, + queueTime: { + isDate: true, + }, + receiveTime: { + isDate: true, + }, + reservedAgent: { + typeInfo: exports.TypeInfo.TaskAgentReference + }, + result: { + enumType: exports.TypeInfo.TaskResult + } +}; +exports.TypeInfo.TaskAgentJobStep.fields = { + type: { + enumType: exports.TypeInfo.TaskAgentJobStepType + } +}; +exports.TypeInfo.TaskAgentManualUpdate.fields = { + code: { + enumType: exports.TypeInfo.TaskAgentUpdateReasonType + } +}; +exports.TypeInfo.TaskAgentMinAgentVersionRequiredUpdate.fields = { + code: { + enumType: exports.TypeInfo.TaskAgentUpdateReasonType + } +}; +exports.TypeInfo.TaskAgentPool.fields = { + createdOn: { + isDate: true, + }, + options: { + enumType: exports.TypeInfo.TaskAgentPoolOptions + }, + poolType: { + enumType: exports.TypeInfo.TaskAgentPoolType + } +}; +exports.TypeInfo.TaskAgentPoolMaintenanceDefinition.fields = { + pool: { + typeInfo: exports.TypeInfo.TaskAgentPoolReference + }, + scheduleSetting: { + typeInfo: exports.TypeInfo.TaskAgentPoolMaintenanceSchedule + } +}; +exports.TypeInfo.TaskAgentPoolMaintenanceJob.fields = { + finishTime: { + isDate: true, + }, + pool: { + typeInfo: exports.TypeInfo.TaskAgentPoolReference + }, + queueTime: { + isDate: true, + }, + result: { + enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobResult + }, + startTime: { + isDate: true, + }, + status: { + enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobStatus + }, + targetAgents: { + isArray: true, + typeInfo: exports.TypeInfo.TaskAgentPoolMaintenanceJobTargetAgent + } +}; +exports.TypeInfo.TaskAgentPoolMaintenanceJobTargetAgent.fields = { + agent: { + typeInfo: exports.TypeInfo.TaskAgentReference + }, + result: { + enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobResult + }, + status: { + enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobStatus + } +}; +exports.TypeInfo.TaskAgentPoolMaintenanceSchedule.fields = { + daysToBuild: { + enumType: exports.TypeInfo.TaskAgentPoolMaintenanceScheduleDays + } +}; +exports.TypeInfo.TaskAgentPoolReference.fields = { + options: { + enumType: exports.TypeInfo.TaskAgentPoolOptions + }, + poolType: { + enumType: exports.TypeInfo.TaskAgentPoolType + } +}; +exports.TypeInfo.TaskAgentPoolStatus.fields = { + options: { + enumType: exports.TypeInfo.TaskAgentPoolOptions + }, + poolType: { + enumType: exports.TypeInfo.TaskAgentPoolType + } +}; +exports.TypeInfo.TaskAgentPoolSummary.fields = { + deploymentGroups: { + isArray: true, + typeInfo: exports.TypeInfo.DeploymentGroupReference + }, + pool: { + typeInfo: exports.TypeInfo.TaskAgentPoolReference + }, + queues: { + isArray: true, + typeInfo: exports.TypeInfo.TaskAgentQueue + } +}; +exports.TypeInfo.TaskAgentQueue.fields = { + pool: { + typeInfo: exports.TypeInfo.TaskAgentPoolReference + } +}; +exports.TypeInfo.TaskAgentReference.fields = { + status: { + enumType: exports.TypeInfo.TaskAgentStatus + } +}; +exports.TypeInfo.TaskAgentSession.fields = { + agent: { + typeInfo: exports.TypeInfo.TaskAgentReference + } +}; +exports.TypeInfo.TaskAgentUpdate.fields = { + reason: { + typeInfo: exports.TypeInfo.TaskAgentUpdateReason + }, + requestTime: { + isDate: true, + } +}; +exports.TypeInfo.TaskAgentUpdateReason.fields = { + code: { + enumType: exports.TypeInfo.TaskAgentUpdateReasonType + } +}; +exports.TypeInfo.TaskAttachment.fields = { + createdOn: { + isDate: true, + }, + lastChangedOn: { + isDate: true, + } +}; +exports.TypeInfo.TaskCommandRestrictions.fields = { + mode: { + enumType: exports.TypeInfo.TaskCommandMode + } +}; +exports.TypeInfo.TaskCompletedEvent.fields = { + result: { + enumType: exports.TypeInfo.TaskResult + } +}; +exports.TypeInfo.TaskDefinition.fields = { + restrictions: { + typeInfo: exports.TypeInfo.TaskRestrictions + } +}; +exports.TypeInfo.TaskGroup.fields = { + createdOn: { + isDate: true, + }, + modifiedOn: { + isDate: true, + }, + restrictions: { + typeInfo: exports.TypeInfo.TaskRestrictions + } +}; +exports.TypeInfo.TaskGroupRevision.fields = { + changedDate: { + isDate: true, + }, + changeType: { + enumType: exports.TypeInfo.AuditAction + } +}; +exports.TypeInfo.TaskLog.fields = { + createdOn: { + isDate: true, + }, + lastChangedOn: { + isDate: true, + } +}; +exports.TypeInfo.TaskOrchestrationContainer.fields = { + children: { + isArray: true, + typeInfo: exports.TypeInfo.TaskOrchestrationItem + }, + itemType: { + enumType: exports.TypeInfo.TaskOrchestrationItemType + }, + rollback: { + typeInfo: exports.TypeInfo.TaskOrchestrationContainer + } +}; +exports.TypeInfo.TaskOrchestrationItem.fields = { + itemType: { + enumType: exports.TypeInfo.TaskOrchestrationItemType + } +}; +exports.TypeInfo.TaskOrchestrationJob.fields = { + itemType: { + enumType: exports.TypeInfo.TaskOrchestrationItemType + } +}; +exports.TypeInfo.TaskOrchestrationPlan.fields = { + environment: { + typeInfo: exports.TypeInfo.PlanEnvironment + }, + finishTime: { + isDate: true, + }, + implementation: { + typeInfo: exports.TypeInfo.TaskOrchestrationContainer + }, + result: { + enumType: exports.TypeInfo.TaskResult + }, + startTime: { + isDate: true, + }, + state: { + enumType: exports.TypeInfo.TaskOrchestrationPlanState + } +}; +exports.TypeInfo.TaskOrchestrationPlanGroup.fields = { + runningRequests: { + isArray: true, + typeInfo: exports.TypeInfo.TaskAgentJobRequest + } +}; +exports.TypeInfo.TaskOrchestrationPlanGroupsQueueMetrics.fields = { + status: { + enumType: exports.TypeInfo.PlanGroupStatus + } +}; +exports.TypeInfo.TaskOrchestrationQueuedPlan.fields = { + assignTime: { + isDate: true, + }, + queueTime: { + isDate: true, + } +}; +exports.TypeInfo.TaskOrchestrationQueuedPlanGroup.fields = { + plans: { + isArray: true, + typeInfo: exports.TypeInfo.TaskOrchestrationQueuedPlan + } +}; +exports.TypeInfo.TaskRestrictions.fields = { + commands: { + typeInfo: exports.TypeInfo.TaskCommandRestrictions + } +}; +exports.TypeInfo.Timeline.fields = { + lastChangedOn: { + isDate: true, + }, + records: { + isArray: true, + typeInfo: exports.TypeInfo.TimelineRecord + } +}; +exports.TypeInfo.TimelineRecord.fields = { + finishTime: { + isDate: true, + }, + issues: { + isArray: true, + typeInfo: exports.TypeInfo.Issue + }, + lastModified: { + isDate: true, + }, + result: { + enumType: exports.TypeInfo.TaskResult + }, + startTime: { + isDate: true, + }, + state: { + enumType: exports.TypeInfo.TimelineRecordState + } +}; +exports.TypeInfo.VariableGroup.fields = { + createdOn: { + isDate: true, + }, + modifiedOn: { + isDate: true, + } +}; +exports.TypeInfo.VirtualMachine.fields = { + agent: { + typeInfo: exports.TypeInfo.TaskAgent + } +}; +exports.TypeInfo.VirtualMachineGroup.fields = { + createdOn: { + isDate: true, + }, + lastModifiedOn: { + isDate: true, + }, + type: { + enumType: exports.TypeInfo.EnvironmentResourceType + } +}; +exports.TypeInfo.VirtualMachineResource.fields = { + agent: { + typeInfo: exports.TypeInfo.TaskAgent + }, + createdOn: { + isDate: true, + }, + lastModifiedOn: { + isDate: true, + }, + type: { + enumType: exports.TypeInfo.EnvironmentResourceType + } +}; +exports.TypeInfo.VirtualMachineResourceCreateParameters.fields = { + virtualMachineResource: { + typeInfo: exports.TypeInfo.VirtualMachineResource + } +}; + + +/***/ }), + +/***/ 3047: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const SystemData = __nccwpck_require__(4652); +const TfsCoreInterfaces = __nccwpck_require__(3931); +/** + * The types of test attachments. + */ +var AttachmentType; +(function (AttachmentType) { + /** + * Attachment type GeneralAttachment , use this as default type unless you have other type. + */ + AttachmentType[AttachmentType["GeneralAttachment"] = 0] = "GeneralAttachment"; + AttachmentType[AttachmentType["AfnStrip"] = 1] = "AfnStrip"; + AttachmentType[AttachmentType["BugFilingData"] = 2] = "BugFilingData"; + /** + * Attachment type CodeCoverage. + */ + AttachmentType[AttachmentType["CodeCoverage"] = 3] = "CodeCoverage"; + AttachmentType[AttachmentType["IntermediateCollectorData"] = 4] = "IntermediateCollectorData"; + AttachmentType[AttachmentType["RunConfig"] = 5] = "RunConfig"; + AttachmentType[AttachmentType["TestImpactDetails"] = 6] = "TestImpactDetails"; + AttachmentType[AttachmentType["TmiTestRunDeploymentFiles"] = 7] = "TmiTestRunDeploymentFiles"; + AttachmentType[AttachmentType["TmiTestRunReverseDeploymentFiles"] = 8] = "TmiTestRunReverseDeploymentFiles"; + AttachmentType[AttachmentType["TmiTestResultDetail"] = 9] = "TmiTestResultDetail"; + AttachmentType[AttachmentType["TmiTestRunSummary"] = 10] = "TmiTestRunSummary"; + /** + * Attachment type ConsoleLog. + */ + AttachmentType[AttachmentType["ConsoleLog"] = 11] = "ConsoleLog"; +})(AttachmentType = exports.AttachmentType || (exports.AttachmentType = {})); +/** + * Enum of type Clone Operation Type. + */ +var CloneOperationState; +(function (CloneOperationState) { + /** + * value for Failed State + */ + CloneOperationState[CloneOperationState["Failed"] = 2] = "Failed"; + /** + * value for Inprogress state + */ + CloneOperationState[CloneOperationState["InProgress"] = 1] = "InProgress"; + /** + * Value for Queued State + */ + CloneOperationState[CloneOperationState["Queued"] = 0] = "Queued"; + /** + * value for Success state + */ + CloneOperationState[CloneOperationState["Succeeded"] = 3] = "Succeeded"; +})(CloneOperationState = exports.CloneOperationState || (exports.CloneOperationState = {})); +/** + * Used to choose which coverage data is returned by a QueryXXXCoverage() call. + */ +var CoverageQueryFlags; +(function (CoverageQueryFlags) { + /** + * If set, the Coverage.Modules property will be populated. + */ + CoverageQueryFlags[CoverageQueryFlags["Modules"] = 1] = "Modules"; + /** + * If set, the ModuleCoverage.Functions properties will be populated. + */ + CoverageQueryFlags[CoverageQueryFlags["Functions"] = 2] = "Functions"; + /** + * If set, the ModuleCoverage.CoverageData field will be populated. + */ + CoverageQueryFlags[CoverageQueryFlags["BlockData"] = 4] = "BlockData"; +})(CoverageQueryFlags = exports.CoverageQueryFlags || (exports.CoverageQueryFlags = {})); +var CoverageStatus; +(function (CoverageStatus) { + CoverageStatus[CoverageStatus["Covered"] = 0] = "Covered"; + CoverageStatus[CoverageStatus["NotCovered"] = 1] = "NotCovered"; + CoverageStatus[CoverageStatus["PartiallyCovered"] = 2] = "PartiallyCovered"; +})(CoverageStatus = exports.CoverageStatus || (exports.CoverageStatus = {})); +/** + * Represents status of code coverage summary for a build + */ +var CoverageSummaryStatus; +(function (CoverageSummaryStatus) { + /** + * No coverage status + */ + CoverageSummaryStatus[CoverageSummaryStatus["None"] = 0] = "None"; + /** + * The summary evaluation is in progress + */ + CoverageSummaryStatus[CoverageSummaryStatus["InProgress"] = 1] = "InProgress"; + /** + * The summary evaluation for the previous request is completed. Summary can change in future + */ + CoverageSummaryStatus[CoverageSummaryStatus["Completed"] = 2] = "Completed"; + /** + * The summary evaluation is finalized and won't change + */ + CoverageSummaryStatus[CoverageSummaryStatus["Finalized"] = 3] = "Finalized"; + /** + * The summary evaluation is pending + */ + CoverageSummaryStatus[CoverageSummaryStatus["Pending"] = 4] = "Pending"; + /** + * Summary evaluation may be ongoing but another merge has been requested. + */ + CoverageSummaryStatus[CoverageSummaryStatus["UpdateRequestQueued"] = 5] = "UpdateRequestQueued"; +})(CoverageSummaryStatus = exports.CoverageSummaryStatus || (exports.CoverageSummaryStatus = {})); +var CustomTestFieldScope; +(function (CustomTestFieldScope) { + CustomTestFieldScope[CustomTestFieldScope["None"] = 0] = "None"; + CustomTestFieldScope[CustomTestFieldScope["TestRun"] = 1] = "TestRun"; + CustomTestFieldScope[CustomTestFieldScope["TestResult"] = 2] = "TestResult"; + CustomTestFieldScope[CustomTestFieldScope["System"] = 4] = "System"; + CustomTestFieldScope[CustomTestFieldScope["All"] = 7] = "All"; +})(CustomTestFieldScope = exports.CustomTestFieldScope || (exports.CustomTestFieldScope = {})); +var CustomTestFieldType; +(function (CustomTestFieldType) { + CustomTestFieldType[CustomTestFieldType["Bit"] = 2] = "Bit"; + CustomTestFieldType[CustomTestFieldType["DateTime"] = 4] = "DateTime"; + CustomTestFieldType[CustomTestFieldType["Int"] = 8] = "Int"; + CustomTestFieldType[CustomTestFieldType["Float"] = 6] = "Float"; + CustomTestFieldType[CustomTestFieldType["String"] = 12] = "String"; + CustomTestFieldType[CustomTestFieldType["Guid"] = 14] = "Guid"; +})(CustomTestFieldType = exports.CustomTestFieldType || (exports.CustomTestFieldType = {})); +var FlakyDetectionType; +(function (FlakyDetectionType) { + /** + * Custom defines manual detection type. + */ + FlakyDetectionType[FlakyDetectionType["Custom"] = 1] = "Custom"; + /** + * Defines System detection type. + */ + FlakyDetectionType[FlakyDetectionType["System"] = 2] = "System"; +})(FlakyDetectionType = exports.FlakyDetectionType || (exports.FlakyDetectionType = {})); +/** + * Test summary metrics. + */ +var Metrics; +(function (Metrics) { + /** + * To get results of all matrix. + */ + Metrics[Metrics["All"] = 1] = "All"; + /** + * Get results summary by results outcome + */ + Metrics[Metrics["ResultSummary"] = 2] = "ResultSummary"; + /** + * Get results analysis which include failure analysis, increase/decrease in results count analysis. + */ + Metrics[Metrics["ResultsAnalysis"] = 3] = "ResultsAnalysis"; + /** + * Get runs summary + */ + Metrics[Metrics["RunSummary"] = 4] = "RunSummary"; +})(Metrics = exports.Metrics || (exports.Metrics = {})); +var OperationType; +(function (OperationType) { + OperationType[OperationType["Add"] = 1] = "Add"; + OperationType[OperationType["Delete"] = 2] = "Delete"; +})(OperationType = exports.OperationType || (exports.OperationType = {})); +/** + * Additional details with test result + */ +var ResultDetails; +(function (ResultDetails) { + /** + * Core fields of test result. Core fields includes State, Outcome, Priority, AutomatedTestName, AutomatedTestStorage, Comments, ErrorMessage etc. + */ + ResultDetails[ResultDetails["None"] = 0] = "None"; + /** + * Test iteration details in a test result. + */ + ResultDetails[ResultDetails["Iterations"] = 1] = "Iterations"; + /** + * Workitems associated with a test result. + */ + ResultDetails[ResultDetails["WorkItems"] = 2] = "WorkItems"; + /** + * Subresults in a test result. + */ + ResultDetails[ResultDetails["SubResults"] = 4] = "SubResults"; + /** + * Point and plan detail in a test result. + */ + ResultDetails[ResultDetails["Point"] = 8] = "Point"; +})(ResultDetails = exports.ResultDetails || (exports.ResultDetails = {})); +/** + * Hierarchy type of the result/subresults. + */ +var ResultGroupType; +(function (ResultGroupType) { + /** + * Leaf node of test result. + */ + ResultGroupType[ResultGroupType["None"] = 0] = "None"; + /** + * Hierarchy type of test result. + */ + ResultGroupType[ResultGroupType["Rerun"] = 1] = "Rerun"; + /** + * Hierarchy type of test result. + */ + ResultGroupType[ResultGroupType["DataDriven"] = 2] = "DataDriven"; + /** + * Hierarchy type of test result. + */ + ResultGroupType[ResultGroupType["OrderedTest"] = 3] = "OrderedTest"; + /** + * Unknown hierarchy type. + */ + ResultGroupType[ResultGroupType["Generic"] = 4] = "Generic"; +})(ResultGroupType = exports.ResultGroupType || (exports.ResultGroupType = {})); +var ResultMetadata; +(function (ResultMetadata) { + /** + * Rerun metadata + */ + ResultMetadata[ResultMetadata["Rerun"] = 1] = "Rerun"; + /** + * Flaky metadata + */ + ResultMetadata[ResultMetadata["Flaky"] = 2] = "Flaky"; +})(ResultMetadata = exports.ResultMetadata || (exports.ResultMetadata = {})); +/** + * Additional details with test result metadata + */ +var ResultMetaDataDetails; +(function (ResultMetaDataDetails) { + /** + * Core fields of test result metadata. + */ + ResultMetaDataDetails[ResultMetaDataDetails["None"] = 0] = "None"; + /** + * Test FlakyIdentifiers details in test result metadata. + */ + ResultMetaDataDetails[ResultMetaDataDetails["FlakyIdentifiers"] = 1] = "FlakyIdentifiers"; +})(ResultMetaDataDetails = exports.ResultMetaDataDetails || (exports.ResultMetaDataDetails = {})); +/** + * The top level entity that is being cloned as part of a Clone operation + */ +var ResultObjectType; +(function (ResultObjectType) { + /** + * Suite Clone + */ + ResultObjectType[ResultObjectType["TestSuite"] = 0] = "TestSuite"; + /** + * Plan Clone + */ + ResultObjectType[ResultObjectType["TestPlan"] = 1] = "TestPlan"; +})(ResultObjectType = exports.ResultObjectType || (exports.ResultObjectType = {})); +var RunType; +(function (RunType) { + /** + * Only used during an update to preserve the existing value. + */ + RunType[RunType["Unspecified"] = 0] = "Unspecified"; + /** + * Normal test run. + */ + RunType[RunType["Normal"] = 1] = "Normal"; + /** + * Test run created for the blocked result when a test point is blocked. + */ + RunType[RunType["Blocking"] = 2] = "Blocking"; + /** + * Test run created from Web. + */ + RunType[RunType["Web"] = 4] = "Web"; + /** + * Run initiated from web through MTR + */ + RunType[RunType["MtrRunInitiatedFromWeb"] = 8] = "MtrRunInitiatedFromWeb"; + /** + * These test run would require DTL environment. These could be either of automated or manual test run. + */ + RunType[RunType["RunWithDtlEnv"] = 16] = "RunWithDtlEnv"; + /** + * These test run may or may not have published test results but it will have summary like total test, passed test, failed test etc. These are automated tests. + */ + RunType[RunType["NoConfigRun"] = 32] = "NoConfigRun"; +})(RunType = exports.RunType || (exports.RunType = {})); +var Service; +(function (Service) { + Service[Service["Any"] = 0] = "Any"; + Service[Service["Tcm"] = 1] = "Tcm"; + Service[Service["Tfs"] = 2] = "Tfs"; +})(Service = exports.Service || (exports.Service = {})); +/** + * Option to get details in response + */ +var SuiteExpand; +(function (SuiteExpand) { + /** + * Include children in response. + */ + SuiteExpand[SuiteExpand["Children"] = 1] = "Children"; + /** + * Include default testers in response. + */ + SuiteExpand[SuiteExpand["DefaultTesters"] = 2] = "DefaultTesters"; +})(SuiteExpand = exports.SuiteExpand || (exports.SuiteExpand = {})); +var TCMServiceDataMigrationStatus; +(function (TCMServiceDataMigrationStatus) { + /** + * Migration Not Started + */ + TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus["NotStarted"] = 0] = "NotStarted"; + /** + * Migration InProgress + */ + TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus["InProgress"] = 1] = "InProgress"; + /** + * Migration Completed + */ + TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus["Completed"] = 2] = "Completed"; + /** + * Migration Failed + */ + TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus["Failed"] = 3] = "Failed"; +})(TCMServiceDataMigrationStatus = exports.TCMServiceDataMigrationStatus || (exports.TCMServiceDataMigrationStatus = {})); +/** + * Represents the state of an ITestConfiguration object. + */ +var TestConfigurationState; +(function (TestConfigurationState) { + /** + * The configuration can be used for new test runs. + */ + TestConfigurationState[TestConfigurationState["Active"] = 1] = "Active"; + /** + * The configuration has been retired and should not be used for new test runs. + */ + TestConfigurationState[TestConfigurationState["Inactive"] = 2] = "Inactive"; +})(TestConfigurationState = exports.TestConfigurationState || (exports.TestConfigurationState = {})); +/** + * Test Log Context + */ +var TestLogScope; +(function (TestLogScope) { + /** + * Log file is associated with Run, result, subresult + */ + TestLogScope[TestLogScope["Run"] = 0] = "Run"; + /** + * Log File associated with Build + */ + TestLogScope[TestLogScope["Build"] = 1] = "Build"; + /** + * Log File associated with Release + */ + TestLogScope[TestLogScope["Release"] = 2] = "Release"; +})(TestLogScope = exports.TestLogScope || (exports.TestLogScope = {})); +/** + * Test Log Status codes. + */ +var TestLogStatusCode; +(function (TestLogStatusCode) { + /** + * Operation is successful + */ + TestLogStatusCode[TestLogStatusCode["Success"] = 0] = "Success"; + /** + * Operation failed + */ + TestLogStatusCode[TestLogStatusCode["Failed"] = 1] = "Failed"; + /** + * Operation failed due to file already exist + */ + TestLogStatusCode[TestLogStatusCode["FileAlreadyExists"] = 2] = "FileAlreadyExists"; + /** + * Invalid input provided by user + */ + TestLogStatusCode[TestLogStatusCode["InvalidInput"] = 3] = "InvalidInput"; + /** + * Invalid file name provided by user + */ + TestLogStatusCode[TestLogStatusCode["InvalidFileName"] = 4] = "InvalidFileName"; + /** + * Error occurred while operating on container + */ + TestLogStatusCode[TestLogStatusCode["InvalidContainer"] = 5] = "InvalidContainer"; + /** + * Blob Transfer Error + */ + TestLogStatusCode[TestLogStatusCode["TransferFailed"] = 6] = "TransferFailed"; + /** + * TestLogStore feature is not enabled + */ + TestLogStatusCode[TestLogStatusCode["FeatureDisabled"] = 7] = "FeatureDisabled"; + /** + * Build for which operation is requested does not exist + */ + TestLogStatusCode[TestLogStatusCode["BuildDoesNotExist"] = 8] = "BuildDoesNotExist"; + /** + * Run for which operation is requested does not exist + */ + TestLogStatusCode[TestLogStatusCode["RunDoesNotExist"] = 9] = "RunDoesNotExist"; + /** + * Container cannot be created + */ + TestLogStatusCode[TestLogStatusCode["ContainerNotCreated"] = 10] = "ContainerNotCreated"; + /** + * Api is not supported + */ + TestLogStatusCode[TestLogStatusCode["APINotSupported"] = 11] = "APINotSupported"; + /** + * File size is greater than the limitation + */ + TestLogStatusCode[TestLogStatusCode["FileSizeExceeds"] = 12] = "FileSizeExceeds"; + /** + * Container is not found for which operation is requested + */ + TestLogStatusCode[TestLogStatusCode["ContainerNotFound"] = 13] = "ContainerNotFound"; + /** + * File cannot be found + */ + TestLogStatusCode[TestLogStatusCode["FileNotFound"] = 14] = "FileNotFound"; + /** + * Directory cannot be found + */ + TestLogStatusCode[TestLogStatusCode["DirectoryNotFound"] = 15] = "DirectoryNotFound"; + /** + * Storage capacity exceeded + */ + TestLogStatusCode[TestLogStatusCode["StorageCapacityExceeded"] = 16] = "StorageCapacityExceeded"; +})(TestLogStatusCode = exports.TestLogStatusCode || (exports.TestLogStatusCode = {})); +/** + * Specifies set of possible log store endpoint type. + */ +var TestLogStoreEndpointType; +(function (TestLogStoreEndpointType) { + /** + * Endpoint type is scoped to root + */ + TestLogStoreEndpointType[TestLogStoreEndpointType["Root"] = 1] = "Root"; + /** + * Endpoint type is scoped to file + */ + TestLogStoreEndpointType[TestLogStoreEndpointType["File"] = 2] = "File"; +})(TestLogStoreEndpointType = exports.TestLogStoreEndpointType || (exports.TestLogStoreEndpointType = {})); +/** + * Specifies set of possible operation type on log store. + */ +var TestLogStoreOperationType; +(function (TestLogStoreOperationType) { + /** + * Operation is scoped to read data only. + */ + TestLogStoreOperationType[TestLogStoreOperationType["Read"] = 1] = "Read"; + /** + * Operation is scoped to create data only. + */ + TestLogStoreOperationType[TestLogStoreOperationType["Create"] = 2] = "Create"; + /** + * Operation is scoped to read and create data. + */ + TestLogStoreOperationType[TestLogStoreOperationType["ReadAndCreate"] = 3] = "ReadAndCreate"; +})(TestLogStoreOperationType = exports.TestLogStoreOperationType || (exports.TestLogStoreOperationType = {})); +/** + * Test Log Types + */ +var TestLogType; +(function (TestLogType) { + /** + * Any gereric attachment. + */ + TestLogType[TestLogType["GeneralAttachment"] = 1] = "GeneralAttachment"; + /** + * Code Coverage files + */ + TestLogType[TestLogType["CodeCoverage"] = 2] = "CodeCoverage"; + /** + * Test Impact details. + */ + TestLogType[TestLogType["TestImpact"] = 3] = "TestImpact"; + /** + * Temporary files + */ + TestLogType[TestLogType["Intermediate"] = 4] = "Intermediate"; + /** + * Subresult Attachment + */ + TestLogType[TestLogType["System"] = 5] = "System"; +})(TestLogType = exports.TestLogType || (exports.TestLogType = {})); +/** + * Valid TestOutcome values. + */ +var TestOutcome; +(function (TestOutcome) { + /** + * Only used during an update to preserve the existing value. + */ + TestOutcome[TestOutcome["Unspecified"] = 0] = "Unspecified"; + /** + * Test has not been completed, or the test type does not report pass/failure. + */ + TestOutcome[TestOutcome["None"] = 1] = "None"; + /** + * Test was executed w/o any issues. + */ + TestOutcome[TestOutcome["Passed"] = 2] = "Passed"; + /** + * Test was executed, but there were issues. Issues may involve exceptions or failed assertions. + */ + TestOutcome[TestOutcome["Failed"] = 3] = "Failed"; + /** + * Test has completed, but we can't say if it passed or failed. May be used for aborted tests... + */ + TestOutcome[TestOutcome["Inconclusive"] = 4] = "Inconclusive"; + /** + * The test timed out + */ + TestOutcome[TestOutcome["Timeout"] = 5] = "Timeout"; + /** + * Test was aborted. This was not caused by a user gesture, but rather by a framework decision. + */ + TestOutcome[TestOutcome["Aborted"] = 6] = "Aborted"; + /** + * Test had it chance for been executed but was not, as ITestElement.IsRunnable == false. + */ + TestOutcome[TestOutcome["Blocked"] = 7] = "Blocked"; + /** + * Test was not executed. This was caused by a user gesture - e.g. user hit stop button. + */ + TestOutcome[TestOutcome["NotExecuted"] = 8] = "NotExecuted"; + /** + * To be used by Run level results. This is not a failure. + */ + TestOutcome[TestOutcome["Warning"] = 9] = "Warning"; + /** + * There was a system error while we were trying to execute a test. + */ + TestOutcome[TestOutcome["Error"] = 10] = "Error"; + /** + * Test is Not Applicable for execution. + */ + TestOutcome[TestOutcome["NotApplicable"] = 11] = "NotApplicable"; + /** + * Test is paused. + */ + TestOutcome[TestOutcome["Paused"] = 12] = "Paused"; + /** + * Test is currently executing. Added this for TCM charts + */ + TestOutcome[TestOutcome["InProgress"] = 13] = "InProgress"; + /** + * Test is not impacted. Added fot TIA. + */ + TestOutcome[TestOutcome["NotImpacted"] = 14] = "NotImpacted"; + TestOutcome[TestOutcome["MaxValue"] = 14] = "MaxValue"; +})(TestOutcome = exports.TestOutcome || (exports.TestOutcome = {})); +var TestPointState; +(function (TestPointState) { + /** + * Default + */ + TestPointState[TestPointState["None"] = 0] = "None"; + /** + * The test point needs to be executed in order for the test pass to be considered complete. Either the test has not been run before or the previous run failed. + */ + TestPointState[TestPointState["Ready"] = 1] = "Ready"; + /** + * The test has passed successfully and does not need to be re-run for the test pass to be considered complete. + */ + TestPointState[TestPointState["Completed"] = 2] = "Completed"; + /** + * The test point needs to be executed but is not able to. + */ + TestPointState[TestPointState["NotReady"] = 3] = "NotReady"; + /** + * The test is being executed. + */ + TestPointState[TestPointState["InProgress"] = 4] = "InProgress"; + TestPointState[TestPointState["MaxValue"] = 4] = "MaxValue"; +})(TestPointState = exports.TestPointState || (exports.TestPointState = {})); +/** + * Group by for results + */ +var TestResultGroupBy; +(function (TestResultGroupBy) { + /** + * Group the results by branches + */ + TestResultGroupBy[TestResultGroupBy["Branch"] = 1] = "Branch"; + /** + * Group the results by environment + */ + TestResultGroupBy[TestResultGroupBy["Environment"] = 2] = "Environment"; +})(TestResultGroupBy = exports.TestResultGroupBy || (exports.TestResultGroupBy = {})); +var TestResultsContextType; +(function (TestResultsContextType) { + TestResultsContextType[TestResultsContextType["Build"] = 1] = "Build"; + TestResultsContextType[TestResultsContextType["Release"] = 2] = "Release"; + TestResultsContextType[TestResultsContextType["Pipeline"] = 3] = "Pipeline"; +})(TestResultsContextType = exports.TestResultsContextType || (exports.TestResultsContextType = {})); +var TestResultsSettingsType; +(function (TestResultsSettingsType) { + /** + * Returns All Test Settings. + */ + TestResultsSettingsType[TestResultsSettingsType["All"] = 1] = "All"; + /** + * Returns Flaky Test Settings. + */ + TestResultsSettingsType[TestResultsSettingsType["Flaky"] = 2] = "Flaky"; + /** + * Returns whether to log new tests or not + */ + TestResultsSettingsType[TestResultsSettingsType["NewTestLogging"] = 3] = "NewTestLogging"; +})(TestResultsSettingsType = exports.TestResultsSettingsType || (exports.TestResultsSettingsType = {})); +/** + * The types of outcomes for test run. + */ +var TestRunOutcome; +(function (TestRunOutcome) { + /** + * Run with zero failed tests and has at least one impacted test + */ + TestRunOutcome[TestRunOutcome["Passed"] = 0] = "Passed"; + /** + * Run with at-least one failed test. + */ + TestRunOutcome[TestRunOutcome["Failed"] = 1] = "Failed"; + /** + * Run with no impacted tests. + */ + TestRunOutcome[TestRunOutcome["NotImpacted"] = 2] = "NotImpacted"; + /** + * Runs with All tests in other category. + */ + TestRunOutcome[TestRunOutcome["Others"] = 3] = "Others"; +})(TestRunOutcome = exports.TestRunOutcome || (exports.TestRunOutcome = {})); +/** + * The types of publish context for run. + */ +var TestRunPublishContext; +(function (TestRunPublishContext) { + /** + * Run is published for Build Context. + */ + TestRunPublishContext[TestRunPublishContext["Build"] = 1] = "Build"; + /** + * Run is published for Release Context. + */ + TestRunPublishContext[TestRunPublishContext["Release"] = 2] = "Release"; + /** + * Run is published for any Context. + */ + TestRunPublishContext[TestRunPublishContext["All"] = 3] = "All"; +})(TestRunPublishContext = exports.TestRunPublishContext || (exports.TestRunPublishContext = {})); +/** + * The types of states for test run. + */ +var TestRunState; +(function (TestRunState) { + /** + * Only used during an update to preserve the existing value. + */ + TestRunState[TestRunState["Unspecified"] = 0] = "Unspecified"; + /** + * The run is still being created. No tests have started yet. + */ + TestRunState[TestRunState["NotStarted"] = 1] = "NotStarted"; + /** + * Tests are running. + */ + TestRunState[TestRunState["InProgress"] = 2] = "InProgress"; + /** + * All tests have completed or been skipped. + */ + TestRunState[TestRunState["Completed"] = 3] = "Completed"; + /** + * Run is stopped and remaining tests have been aborted + */ + TestRunState[TestRunState["Aborted"] = 4] = "Aborted"; + /** + * Run is currently initializing This is a legacy state and should not be used any more + */ + TestRunState[TestRunState["Waiting"] = 5] = "Waiting"; + /** + * Run requires investigation because of a test point failure This is a legacy state and should not be used any more + */ + TestRunState[TestRunState["NeedsInvestigation"] = 6] = "NeedsInvestigation"; +})(TestRunState = exports.TestRunState || (exports.TestRunState = {})); +/** + * The types of sub states for test run. It gives the user more info about the test run beyond the high level test run state + */ +var TestRunSubstate; +(function (TestRunSubstate) { + /** + * Run with noState. + */ + TestRunSubstate[TestRunSubstate["None"] = 0] = "None"; + /** + * Run state while Creating Environment. + */ + TestRunSubstate[TestRunSubstate["CreatingEnvironment"] = 1] = "CreatingEnvironment"; + /** + * Run state while Running Tests. + */ + TestRunSubstate[TestRunSubstate["RunningTests"] = 2] = "RunningTests"; + /** + * Run state while Creating Environment. + */ + TestRunSubstate[TestRunSubstate["CanceledByUser"] = 3] = "CanceledByUser"; + /** + * Run state when it is Aborted By the System. + */ + TestRunSubstate[TestRunSubstate["AbortedBySystem"] = 4] = "AbortedBySystem"; + /** + * Run state when run has timedOut. + */ + TestRunSubstate[TestRunSubstate["TimedOut"] = 5] = "TimedOut"; + /** + * Run state while Pending Analysis. + */ + TestRunSubstate[TestRunSubstate["PendingAnalysis"] = 6] = "PendingAnalysis"; + /** + * Run state after being Analysed. + */ + TestRunSubstate[TestRunSubstate["Analyzed"] = 7] = "Analyzed"; + /** + * Run state when cancellation is in Progress. + */ + TestRunSubstate[TestRunSubstate["CancellationInProgress"] = 8] = "CancellationInProgress"; +})(TestRunSubstate = exports.TestRunSubstate || (exports.TestRunSubstate = {})); +/** + * Represents the source from which the test session was created + */ +var TestSessionSource; +(function (TestSessionSource) { + /** + * Source of test session uncertain as it is stale + */ + TestSessionSource[TestSessionSource["Unknown"] = 0] = "Unknown"; + /** + * The session was created from Microsoft Test Manager exploratory desktop tool. + */ + TestSessionSource[TestSessionSource["XTDesktop"] = 1] = "XTDesktop"; + /** + * The session was created from feedback client. + */ + TestSessionSource[TestSessionSource["FeedbackDesktop"] = 2] = "FeedbackDesktop"; + /** + * The session was created from browser extension. + */ + TestSessionSource[TestSessionSource["XTWeb"] = 3] = "XTWeb"; + /** + * The session was created from browser extension. + */ + TestSessionSource[TestSessionSource["FeedbackWeb"] = 4] = "FeedbackWeb"; + /** + * The session was created from web access using Microsoft Test Manager exploratory desktop tool. + */ + TestSessionSource[TestSessionSource["XTDesktop2"] = 5] = "XTDesktop2"; + /** + * To show sessions from all supported sources. + */ + TestSessionSource[TestSessionSource["SessionInsightsForAll"] = 6] = "SessionInsightsForAll"; +})(TestSessionSource = exports.TestSessionSource || (exports.TestSessionSource = {})); +/** + * Represents the state of the test session. + */ +var TestSessionState; +(function (TestSessionState) { + /** + * Only used during an update to preserve the existing value. + */ + TestSessionState[TestSessionState["Unspecified"] = 0] = "Unspecified"; + /** + * The session is still being created. + */ + TestSessionState[TestSessionState["NotStarted"] = 1] = "NotStarted"; + /** + * The session is running. + */ + TestSessionState[TestSessionState["InProgress"] = 2] = "InProgress"; + /** + * The session has paused. + */ + TestSessionState[TestSessionState["Paused"] = 3] = "Paused"; + /** + * The session has completed. + */ + TestSessionState[TestSessionState["Completed"] = 4] = "Completed"; + /** + * This is required for Feedback session which are declined + */ + TestSessionState[TestSessionState["Declined"] = 5] = "Declined"; +})(TestSessionState = exports.TestSessionState || (exports.TestSessionState = {})); +exports.TypeInfo = { + AfnStrip: {}, + AggregatedDataForResultTrend: {}, + AggregatedResultDetailsByOutcome: {}, + AggregatedResultsAnalysis: {}, + AggregatedResultsByOutcome: {}, + AggregatedRunsByOutcome: {}, + AggregatedRunsByState: {}, + AttachmentType: { + enumValues: { + "generalAttachment": 0, + "afnStrip": 1, + "bugFilingData": 2, + "codeCoverage": 3, + "intermediateCollectorData": 4, + "runConfig": 5, + "testImpactDetails": 6, + "tmiTestRunDeploymentFiles": 7, + "tmiTestRunReverseDeploymentFiles": 8, + "tmiTestResultDetail": 9, + "tmiTestRunSummary": 10, + "consoleLog": 11 + } + }, + BatchResponse: {}, + BuildConfiguration: {}, + BuildCoverage: {}, + BuildReference2: {}, + BulkResultUpdateRequest: {}, + CloneOperationInformation: {}, + CloneOperationState: { + enumValues: { + "failed": 2, + "inProgress": 1, + "queued": 0, + "succeeded": 3 + } + }, + CodeCoverageSummary: {}, + Coverage2: {}, + CoverageQueryFlags: { + enumValues: { + "modules": 1, + "functions": 2, + "blockData": 4 + } + }, + CoverageStatus: { + enumValues: { + "covered": 0, + "notCovered": 1, + "partiallyCovered": 2 + } + }, + CoverageSummaryStatus: { + enumValues: { + "none": 0, + "inProgress": 1, + "completed": 2, + "finalized": 3, + "pending": 4, + "updateRequestQueued": 5 + } + }, + CreateTestMessageLogEntryRequest: {}, + CreateTestResultsRequest: {}, + CreateTestRunRequest: {}, + CustomTestFieldDefinition: {}, + CustomTestFieldScope: { + enumValues: { + "none": 0, + "testRun": 1, + "testResult": 2, + "system": 4, + "all": 7 + } + }, + CustomTestFieldType: { + enumValues: { + "bit": 2, + "dateTime": 4, + "int": 8, + "float": 6, + "string": 12, + "guid": 14 + } + }, + DatedTestFieldData: {}, + FailingSince: {}, + FetchTestResultsResponse: {}, + FlakyDetection: {}, + FlakyDetectionType: { + enumValues: { + "custom": 1, + "system": 2 + } + }, + FlakySettings: {}, + LastResultDetails: {}, + LegacyBuildConfiguration: {}, + LegacyReleaseReference: {}, + LegacyTestCaseResult: {}, + LegacyTestRun: {}, + LegacyTestSettings: {}, + Metrics: { + enumValues: { + "all": 1, + "resultSummary": 2, + "resultsAnalysis": 3, + "runSummary": 4 + } + }, + OperationType: { + enumValues: { + "add": 1, + "delete": 2 + } + }, + PipelineTestMetrics: {}, + PointLastResult: {}, + PointsResults2: {}, + QueryTestActionResultResponse: {}, + ReleaseReference: {}, + ReleaseReference2: {}, + RequirementsToTestsMapping2: {}, + Response: {}, + ResultDetails: { + enumValues: { + "none": 0, + "iterations": 1, + "workItems": 2, + "subResults": 4, + "point": 8 + } + }, + ResultGroupType: { + enumValues: { + "none": 0, + "rerun": 1, + "dataDriven": 2, + "orderedTest": 3, + "generic": 4 + } + }, + ResultMetadata: { + enumValues: { + "rerun": 1, + "flaky": 2 + } + }, + ResultMetaDataDetails: { + enumValues: { + "none": 0, + "flakyIdentifiers": 1 + } + }, + ResultObjectType: { + enumValues: { + "testSuite": 0, + "testPlan": 1 + } + }, + ResultRetentionSettings: {}, + ResultsByQueryResponse: {}, + ResultsFilter: {}, + ResultsSummaryByOutcome: {}, + ResultSummary: {}, + ResultUpdateRequest: {}, + ResultUpdateRequestModel: {}, + ResultUpdateResponse: {}, + RunCreateModel: {}, + RunStatistic: {}, + RunSummary: {}, + RunSummaryModel: {}, + RunType: { + enumValues: { + "unspecified": 0, + "normal": 1, + "blocking": 2, + "web": 4, + "mtrRunInitiatedFromWeb": 8, + "runWithDtlEnv": 16, + "noConfigRun": 32 + } + }, + RunUpdateModel: {}, + Service: { + enumValues: { + "any": 0, + "tcm": 1, + "tfs": 2 + } + }, + SuiteExpand: { + enumValues: { + "children": 1, + "defaultTesters": 2 + } + }, + TCMServiceDataMigrationStatus: { + enumValues: { + "notStarted": 0, + "inProgress": 1, + "completed": 2, + "failed": 3 + } + }, + TestActionResult: {}, + TestActionResult2: {}, + TestActionResultModel: {}, + TestAttachment: {}, + TestAuthoringDetails: {}, + TestCaseReference2: {}, + TestCaseResult: {}, + TestConfiguration: {}, + TestConfigurationState: { + enumValues: { + "active": 1, + "inactive": 2 + } + }, + TestExecutionReportData: {}, + TestExtensionField: {}, + TestExtensionFieldDetails: {}, + TestFailuresAnalysis: {}, + TestHistoryQuery: {}, + TestIterationDetailsModel: {}, + TestLog: {}, + TestLogReference: {}, + TestLogScope: { + enumValues: { + "run": 0, + "build": 1, + "release": 2 + } + }, + TestLogStatus: {}, + TestLogStatusCode: { + enumValues: { + "success": 0, + "failed": 1, + "fileAlreadyExists": 2, + "invalidInput": 3, + "invalidFileName": 4, + "invalidContainer": 5, + "transferFailed": 6, + "featureDisabled": 7, + "buildDoesNotExist": 8, + "runDoesNotExist": 9, + "containerNotCreated": 10, + "apiNotSupported": 11, + "fileSizeExceeds": 12, + "containerNotFound": 13, + "fileNotFound": 14, + "directoryNotFound": 15, + "storageCapacityExceeded": 16 + } + }, + TestLogStoreEndpointDetails: {}, + TestLogStoreEndpointType: { + enumValues: { + "root": 1, + "file": 2 + } + }, + TestLogStoreOperationType: { + enumValues: { + "read": 1, + "create": 2, + "readAndCreate": 3 + } + }, + TestLogType: { + enumValues: { + "generalAttachment": 1, + "codeCoverage": 2, + "testImpact": 3, + "intermediate": 4, + "system": 5 + } + }, + TestMessageLogDetails: {}, + TestMessageLogEntry: {}, + TestMessageLogEntry2: {}, + TestOutcome: { + enumValues: { + "unspecified": 0, + "none": 1, + "passed": 2, + "failed": 3, + "inconclusive": 4, + "timeout": 5, + "aborted": 6, + "blocked": 7, + "notExecuted": 8, + "warning": 9, + "error": 10, + "notApplicable": 11, + "paused": 12, + "inProgress": 13, + "notImpacted": 14, + "maxValue": 14 + } + }, + TestParameter2: {}, + TestPlan: {}, + TestPlanCloneRequest: {}, + TestPlanHubData: {}, + TestPlansWithSelection: {}, + TestPoint: {}, + TestPointReference: {}, + TestPointsEvent: {}, + TestPointsQuery: {}, + TestPointState: { + enumValues: { + "none": 0, + "ready": 1, + "completed": 2, + "notReady": 3, + "inProgress": 4, + "maxValue": 4 + } + }, + TestPointsUpdatedEvent: {}, + TestResult2: {}, + TestResultAcrossProjectResponse: {}, + TestResultAttachment: {}, + TestResultGroupBy: { + enumValues: { + "branch": 1, + "environment": 2 + } + }, + TestResultHistory: {}, + TestResultHistoryDetailsForGroup: {}, + TestResultHistoryForGroup: {}, + TestResultModelBase: {}, + TestResultReset2: {}, + TestResultsContext: {}, + TestResultsContextType: { + enumValues: { + "build": 1, + "release": 2, + "pipeline": 3 + } + }, + TestResultsDetails: {}, + TestResultsDetailsForGroup: {}, + TestResultsEx2: {}, + TestResultsQuery: {}, + TestResultsSettings: {}, + TestResultsSettingsType: { + enumValues: { + "all": 1, + "flaky": 2, + "newTestLogging": 3 + } + }, + TestResultSummary: {}, + TestResultsUpdateSettings: {}, + TestResultsWithWatermark: {}, + TestResultTrendFilter: {}, + TestRun: {}, + TestRun2: {}, + TestRunCanceledEvent: {}, + TestRunCreatedEvent: {}, + TestRunEvent: {}, + TestRunEx2: {}, + TestRunOutcome: { + enumValues: { + "passed": 0, + "failed": 1, + "notImpacted": 2, + "others": 3 + } + }, + TestRunPublishContext: { + enumValues: { + "build": 1, + "release": 2, + "all": 3 + } + }, + TestRunStartedEvent: {}, + TestRunState: { + enumValues: { + "unspecified": 0, + "notStarted": 1, + "inProgress": 2, + "completed": 3, + "aborted": 4, + "waiting": 5, + "needsInvestigation": 6 + } + }, + TestRunStatistic: {}, + TestRunSubstate: { + enumValues: { + "none": 0, + "creatingEnvironment": 1, + "runningTests": 2, + "canceledByUser": 3, + "abortedBySystem": 4, + "timedOut": 5, + "pendingAnalysis": 6, + "analyzed": 7, + "cancellationInProgress": 8 + } + }, + TestRunSummary2: {}, + TestRunWithDtlEnvEvent: {}, + TestSession: {}, + TestSessionExploredWorkItemReference: {}, + TestSessionSource: { + enumValues: { + "unknown": 0, + "xtDesktop": 1, + "feedbackDesktop": 2, + "xtWeb": 3, + "feedbackWeb": 4, + "xtDesktop2": 5, + "sessionInsightsForAll": 6 + } + }, + TestSessionState: { + enumValues: { + "unspecified": 0, + "notStarted": 1, + "inProgress": 2, + "paused": 3, + "completed": 4, + "declined": 5 + } + }, + TestSettings2: {}, + TestSubResult: {}, + TestSuite: {}, + TestSummaryForWorkItem: {}, + UpdatedProperties: {}, + UpdateTestRunRequest: {}, + UpdateTestRunResponse: {}, + WorkItemToTestLinks: {}, +}; +exports.TypeInfo.AfnStrip.fields = { + creationDate: { + isDate: true, + } +}; +exports.TypeInfo.AggregatedDataForResultTrend.fields = { + resultsByOutcome: { + isDictionary: true, + dictionaryKeyEnumType: exports.TypeInfo.TestOutcome, + dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome + }, + runSummaryByState: { + isDictionary: true, + dictionaryKeyEnumType: exports.TypeInfo.TestRunState, + dictionaryValueTypeInfo: exports.TypeInfo.AggregatedRunsByState + }, + testResultsContext: { + typeInfo: exports.TypeInfo.TestResultsContext + } +}; +exports.TypeInfo.AggregatedResultDetailsByOutcome.fields = { + outcome: { + enumType: exports.TypeInfo.TestOutcome + } +}; +exports.TypeInfo.AggregatedResultsAnalysis.fields = { + notReportedResultsByOutcome: { + isDictionary: true, + dictionaryKeyEnumType: exports.TypeInfo.TestOutcome, + dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome + }, + previousContext: { + typeInfo: exports.TypeInfo.TestResultsContext + }, + resultsByOutcome: { + isDictionary: true, + dictionaryKeyEnumType: exports.TypeInfo.TestOutcome, + dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome + }, + runSummaryByOutcome: { + isDictionary: true, + dictionaryKeyEnumType: exports.TypeInfo.TestRunOutcome, + dictionaryValueTypeInfo: exports.TypeInfo.AggregatedRunsByOutcome + }, + runSummaryByState: { + isDictionary: true, + dictionaryKeyEnumType: exports.TypeInfo.TestRunState, + dictionaryValueTypeInfo: exports.TypeInfo.AggregatedRunsByState + } +}; +exports.TypeInfo.AggregatedResultsByOutcome.fields = { + outcome: { + enumType: exports.TypeInfo.TestOutcome + } +}; +exports.TypeInfo.AggregatedRunsByOutcome.fields = { + outcome: { + enumType: exports.TypeInfo.TestRunOutcome + } +}; +exports.TypeInfo.AggregatedRunsByState.fields = { + resultsByOutcome: { + isDictionary: true, + dictionaryKeyEnumType: exports.TypeInfo.TestOutcome, + dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome + }, + state: { + enumType: exports.TypeInfo.TestRunState + } +}; +exports.TypeInfo.BatchResponse.fields = { + responses: { + isArray: true, + typeInfo: exports.TypeInfo.Response + }, +}; +exports.TypeInfo.BuildConfiguration.fields = { + creationDate: { + isDate: true, + } +}; +exports.TypeInfo.BuildCoverage.fields = { + configuration: { + typeInfo: exports.TypeInfo.BuildConfiguration + } +}; +exports.TypeInfo.BuildReference2.fields = { + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.BulkResultUpdateRequest.fields = { + requests: { + isArray: true, + typeInfo: exports.TypeInfo.ResultUpdateRequest + } +}; +exports.TypeInfo.CloneOperationInformation.fields = { + completionDate: { + isDate: true, + }, + creationDate: { + isDate: true, + }, + resultObjectType: { + enumType: exports.TypeInfo.ResultObjectType + }, + state: { + enumType: exports.TypeInfo.CloneOperationState + } +}; +exports.TypeInfo.CodeCoverageSummary.fields = { + status: { + enumType: exports.TypeInfo.CoverageSummaryStatus + } +}; +exports.TypeInfo.Coverage2.fields = { + dateCreated: { + isDate: true, + }, + dateModified: { + isDate: true, + } +}; +exports.TypeInfo.CreateTestMessageLogEntryRequest.fields = { + testMessageLogEntry: { + isArray: true, + typeInfo: exports.TypeInfo.TestMessageLogEntry + } +}; +exports.TypeInfo.CreateTestResultsRequest.fields = { + results: { + isArray: true, + typeInfo: exports.TypeInfo.LegacyTestCaseResult + } +}; +exports.TypeInfo.CreateTestRunRequest.fields = { + results: { + isArray: true, + typeInfo: exports.TypeInfo.LegacyTestCaseResult + }, + testRun: { + typeInfo: exports.TypeInfo.LegacyTestRun + }, + testSettings: { + typeInfo: exports.TypeInfo.LegacyTestSettings + } +}; +exports.TypeInfo.CustomTestFieldDefinition.fields = { + fieldType: { + enumType: exports.TypeInfo.CustomTestFieldType + }, + scope: { + enumType: exports.TypeInfo.CustomTestFieldScope + } +}; +exports.TypeInfo.DatedTestFieldData.fields = { + date: { + isDate: true, + } +}; +exports.TypeInfo.FailingSince.fields = { + date: { + isDate: true, + }, + release: { + typeInfo: exports.TypeInfo.ReleaseReference + } +}; +exports.TypeInfo.FetchTestResultsResponse.fields = { + actionResults: { + isArray: true, + typeInfo: exports.TypeInfo.TestActionResult + }, + attachments: { + isArray: true, + typeInfo: exports.TypeInfo.TestResultAttachment + }, + results: { + isArray: true, + typeInfo: exports.TypeInfo.LegacyTestCaseResult + } +}; +exports.TypeInfo.FlakyDetection.fields = { + flakyDetectionType: { + enumType: exports.TypeInfo.FlakyDetectionType + } +}; +exports.TypeInfo.FlakySettings.fields = { + flakyDetection: { + typeInfo: exports.TypeInfo.FlakyDetection + } +}; +exports.TypeInfo.LastResultDetails.fields = { + dateCompleted: { + isDate: true, + } +}; +exports.TypeInfo.LegacyBuildConfiguration.fields = { + completedDate: { + isDate: true, + }, + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.LegacyReleaseReference.fields = { + environmentCreationDate: { + isDate: true, + }, + releaseCreationDate: { + isDate: true, + } +}; +exports.TypeInfo.LegacyTestCaseResult.fields = { + buildReference: { + typeInfo: exports.TypeInfo.LegacyBuildConfiguration + }, + creationDate: { + isDate: true, + }, + customFields: { + isArray: true, + typeInfo: exports.TypeInfo.TestExtensionField + }, + dateCompleted: { + isDate: true, + }, + dateStarted: { + isDate: true, + }, + failingSince: { + typeInfo: exports.TypeInfo.FailingSince + }, + lastUpdated: { + isDate: true, + }, + releaseReference: { + typeInfo: exports.TypeInfo.LegacyReleaseReference + }, + resultGroupType: { + enumType: exports.TypeInfo.ResultGroupType + }, + stackTrace: { + typeInfo: exports.TypeInfo.TestExtensionField + } +}; +exports.TypeInfo.LegacyTestRun.fields = { + buildReference: { + typeInfo: exports.TypeInfo.LegacyBuildConfiguration + }, + completeDate: { + isDate: true, + }, + creationDate: { + isDate: true, + }, + customFields: { + isArray: true, + typeInfo: exports.TypeInfo.TestExtensionField + }, + dueDate: { + isDate: true, + }, + lastUpdated: { + isDate: true, + }, + releaseReference: { + typeInfo: exports.TypeInfo.LegacyReleaseReference + }, + startDate: { + isDate: true, + }, + testMessageLogEntries: { + isArray: true, + typeInfo: exports.TypeInfo.TestMessageLogDetails + } +}; +exports.TypeInfo.LegacyTestSettings.fields = { + createdDate: { + isDate: true, + }, + lastUpdated: { + isDate: true, + } +}; +exports.TypeInfo.PipelineTestMetrics.fields = { + resultSummary: { + typeInfo: exports.TypeInfo.ResultSummary + }, + runSummary: { + typeInfo: exports.TypeInfo.RunSummary + }, + summaryAtChild: { + isArray: true, + typeInfo: exports.TypeInfo.PipelineTestMetrics + } +}; +exports.TypeInfo.PointLastResult.fields = { + lastUpdatedDate: { + isDate: true, + } +}; +exports.TypeInfo.PointsResults2.fields = { + lastUpdated: { + isDate: true, + } +}; +exports.TypeInfo.QueryTestActionResultResponse.fields = { + testActionResults: { + isArray: true, + typeInfo: exports.TypeInfo.TestActionResult + }, + testAttachments: { + isArray: true, + typeInfo: exports.TypeInfo.TestResultAttachment + } +}; +exports.TypeInfo.ReleaseReference.fields = { + creationDate: { + isDate: true, + }, + environmentCreationDate: { + isDate: true, + } +}; +exports.TypeInfo.ReleaseReference2.fields = { + environmentCreationDate: { + isDate: true, + }, + releaseCreationDate: { + isDate: true, + } +}; +exports.TypeInfo.RequirementsToTestsMapping2.fields = { + creationDate: { + isDate: true, + }, + deletionDate: { + isDate: true, + } +}; +exports.TypeInfo.Response.fields = {}; +exports.TypeInfo.ResultRetentionSettings.fields = { + lastUpdatedDate: { + isDate: true, + } +}; +exports.TypeInfo.ResultsByQueryResponse.fields = { + testResults: { + isArray: true, + typeInfo: exports.TypeInfo.LegacyTestCaseResult + } +}; +exports.TypeInfo.ResultsFilter.fields = { + executedIn: { + enumType: exports.TypeInfo.Service + }, + maxCompleteDate: { + isDate: true, + }, + testResultsContext: { + typeInfo: exports.TypeInfo.TestResultsContext + } +}; +exports.TypeInfo.ResultsSummaryByOutcome.fields = { + aggregatedResultDetailsByOutcome: { + isDictionary: true, + dictionaryKeyEnumType: exports.TypeInfo.TestOutcome, + dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultDetailsByOutcome + } +}; +exports.TypeInfo.ResultSummary.fields = { + resultSummaryByRunState: { + isDictionary: true, + dictionaryKeyEnumType: exports.TypeInfo.TestRunState, + dictionaryValueTypeInfo: exports.TypeInfo.ResultsSummaryByOutcome + } +}; +exports.TypeInfo.ResultUpdateRequest.fields = { + actionResultDeletes: { + isArray: true, + typeInfo: exports.TypeInfo.TestActionResult + }, + actionResults: { + isArray: true, + typeInfo: exports.TypeInfo.TestActionResult + }, + attachments: { + isArray: true, + typeInfo: exports.TypeInfo.TestResultAttachment + }, + testCaseResult: { + typeInfo: exports.TypeInfo.LegacyTestCaseResult + } +}; +exports.TypeInfo.ResultUpdateRequestModel.fields = { + actionResultDeletes: { + isArray: true, + typeInfo: exports.TypeInfo.TestActionResultModel + }, + actionResults: { + isArray: true, + typeInfo: exports.TypeInfo.TestActionResultModel + } +}; +exports.TypeInfo.ResultUpdateResponse.fields = { + lastUpdated: { + isDate: true, + } +}; +exports.TypeInfo.RunCreateModel.fields = { + buildReference: { + typeInfo: exports.TypeInfo.BuildConfiguration + }, + releaseReference: { + typeInfo: exports.TypeInfo.ReleaseReference + }, + runSummary: { + isArray: true, + typeInfo: exports.TypeInfo.RunSummaryModel + } +}; +exports.TypeInfo.RunStatistic.fields = { + resultMetadata: { + enumType: exports.TypeInfo.ResultMetadata + } +}; +exports.TypeInfo.RunSummary.fields = { + runSummaryByOutcome: { + isDictionary: true, + dictionaryKeyEnumType: exports.TypeInfo.TestRunOutcome, + }, + runSummaryByState: { + isDictionary: true, + dictionaryKeyEnumType: exports.TypeInfo.TestRunState, + } +}; +exports.TypeInfo.RunSummaryModel.fields = { + testOutcome: { + enumType: exports.TypeInfo.TestOutcome + } +}; +exports.TypeInfo.RunUpdateModel.fields = { + logEntries: { + isArray: true, + typeInfo: exports.TypeInfo.TestMessageLogDetails + }, + runSummary: { + isArray: true, + typeInfo: exports.TypeInfo.RunSummaryModel + }, + substate: { + enumType: exports.TypeInfo.TestRunSubstate + } +}; +exports.TypeInfo.TestActionResult.fields = { + creationDate: { + isDate: true, + }, + dateCompleted: { + isDate: true, + }, + dateStarted: { + isDate: true, + }, + lastUpdated: { + isDate: true, + } +}; +exports.TypeInfo.TestActionResult2.fields = { + creationDate: { + isDate: true, + }, + dateCompleted: { + isDate: true, + }, + dateStarted: { + isDate: true, + }, + lastUpdated: { + isDate: true, + } +}; +exports.TypeInfo.TestActionResultModel.fields = { + completedDate: { + isDate: true, + }, + startedDate: { + isDate: true, + } +}; +exports.TypeInfo.TestAttachment.fields = { + attachmentType: { + enumType: exports.TypeInfo.AttachmentType + }, + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.TestAuthoringDetails.fields = { + lastUpdated: { + isDate: true, + }, + state: { + enumType: exports.TypeInfo.TestPointState + } +}; +exports.TypeInfo.TestCaseReference2.fields = { + creationDate: { + isDate: true, + }, + lastRefTestRunDate: { + isDate: true, + } +}; +exports.TypeInfo.TestCaseResult.fields = { + completedDate: { + isDate: true, + }, + createdDate: { + isDate: true, + }, + failingSince: { + typeInfo: exports.TypeInfo.FailingSince + }, + iterationDetails: { + isArray: true, + typeInfo: exports.TypeInfo.TestIterationDetailsModel + }, + lastUpdatedDate: { + isDate: true, + }, + releaseReference: { + typeInfo: exports.TypeInfo.ReleaseReference + }, + resultGroupType: { + enumType: exports.TypeInfo.ResultGroupType + }, + startedDate: { + isDate: true, + }, + subResults: { + isArray: true, + typeInfo: exports.TypeInfo.TestSubResult + } +}; +exports.TypeInfo.TestConfiguration.fields = { + lastUpdatedDate: { + isDate: true, + }, + state: { + enumType: exports.TypeInfo.TestConfigurationState + } +}; +exports.TypeInfo.TestExecutionReportData.fields = { + reportData: { + isArray: true, + typeInfo: exports.TypeInfo.DatedTestFieldData + } +}; +exports.TypeInfo.TestExtensionField.fields = { + field: { + typeInfo: exports.TypeInfo.TestExtensionFieldDetails + } +}; +exports.TypeInfo.TestExtensionFieldDetails.fields = { + type: { + enumType: SystemData.TypeInfo.SqlDbType + } +}; +exports.TypeInfo.TestFailuresAnalysis.fields = { + previousContext: { + typeInfo: exports.TypeInfo.TestResultsContext + } +}; +exports.TypeInfo.TestHistoryQuery.fields = { + groupBy: { + enumType: exports.TypeInfo.TestResultGroupBy + }, + maxCompleteDate: { + isDate: true, + }, + resultsForGroup: { + isArray: true, + typeInfo: exports.TypeInfo.TestResultHistoryForGroup + } +}; +exports.TypeInfo.TestIterationDetailsModel.fields = { + actionResults: { + isArray: true, + typeInfo: exports.TypeInfo.TestActionResultModel + }, + completedDate: { + isDate: true, + }, + startedDate: { + isDate: true, + } +}; +exports.TypeInfo.TestLog.fields = { + logReference: { + typeInfo: exports.TypeInfo.TestLogReference + }, + modifiedOn: { + isDate: true, + } +}; +exports.TypeInfo.TestLogReference.fields = { + scope: { + enumType: exports.TypeInfo.TestLogScope + }, + type: { + enumType: exports.TypeInfo.TestLogType + } +}; +exports.TypeInfo.TestLogStatus.fields = { + status: { + enumType: exports.TypeInfo.TestLogStatusCode + } +}; +exports.TypeInfo.TestLogStoreEndpointDetails.fields = { + endpointType: { + enumType: exports.TypeInfo.TestLogStoreEndpointType + }, + status: { + enumType: exports.TypeInfo.TestLogStatusCode + } +}; +exports.TypeInfo.TestMessageLogDetails.fields = { + dateCreated: { + isDate: true, + } +}; +exports.TypeInfo.TestMessageLogEntry.fields = { + dateCreated: { + isDate: true, + } +}; +exports.TypeInfo.TestMessageLogEntry2.fields = { + dateCreated: { + isDate: true, + } +}; +exports.TypeInfo.TestParameter2.fields = { + creationDate: { + isDate: true, + }, + dateModified: { + isDate: true, + } +}; +exports.TypeInfo.TestPlan.fields = { + endDate: { + isDate: true, + }, + startDate: { + isDate: true, + }, + updatedDate: { + isDate: true, + } +}; +exports.TypeInfo.TestPlanCloneRequest.fields = { + destinationTestPlan: { + typeInfo: exports.TypeInfo.TestPlan + } +}; +exports.TypeInfo.TestPlanHubData.fields = { + testPlan: { + typeInfo: exports.TypeInfo.TestPlan + }, + testPoints: { + isArray: true, + typeInfo: exports.TypeInfo.TestPoint + }, + testSuites: { + isArray: true, + typeInfo: exports.TypeInfo.TestSuite + } +}; +exports.TypeInfo.TestPlansWithSelection.fields = { + plans: { + isArray: true, + typeInfo: exports.TypeInfo.TestPlan + } +}; +exports.TypeInfo.TestPoint.fields = { + lastResetToActive: { + isDate: true, + }, + lastResultDetails: { + typeInfo: exports.TypeInfo.LastResultDetails + }, + lastUpdatedDate: { + isDate: true, + } +}; +exports.TypeInfo.TestPointReference.fields = { + state: { + enumType: exports.TypeInfo.TestPointState + } +}; +exports.TypeInfo.TestPointsEvent.fields = { + testPoints: { + isArray: true, + typeInfo: exports.TypeInfo.TestPointReference + } +}; +exports.TypeInfo.TestPointsQuery.fields = { + points: { + isArray: true, + typeInfo: exports.TypeInfo.TestPoint + } +}; +exports.TypeInfo.TestPointsUpdatedEvent.fields = { + testPoints: { + isArray: true, + typeInfo: exports.TypeInfo.TestPointReference + } +}; +exports.TypeInfo.TestResult2.fields = { + creationDate: { + isDate: true, + }, + dateCompleted: { + isDate: true, + }, + dateStarted: { + isDate: true, + }, + lastUpdated: { + isDate: true, + } +}; +exports.TypeInfo.TestResultAcrossProjectResponse.fields = { + testResult: { + typeInfo: exports.TypeInfo.LegacyTestCaseResult + } +}; +exports.TypeInfo.TestResultAttachment.fields = { + attachmentType: { + enumType: exports.TypeInfo.AttachmentType + }, + creationDate: { + isDate: true, + } +}; +exports.TypeInfo.TestResultHistory.fields = { + resultsForGroup: { + isArray: true, + typeInfo: exports.TypeInfo.TestResultHistoryDetailsForGroup + } +}; +exports.TypeInfo.TestResultHistoryDetailsForGroup.fields = { + latestResult: { + typeInfo: exports.TypeInfo.TestCaseResult + } +}; +exports.TypeInfo.TestResultHistoryForGroup.fields = { + results: { + isArray: true, + typeInfo: exports.TypeInfo.TestCaseResult + } +}; +exports.TypeInfo.TestResultModelBase.fields = { + completedDate: { + isDate: true, + }, + startedDate: { + isDate: true, + } +}; +exports.TypeInfo.TestResultReset2.fields = { + dateModified: { + isDate: true, + } +}; +exports.TypeInfo.TestResultsContext.fields = { + contextType: { + enumType: exports.TypeInfo.TestResultsContextType + }, + release: { + typeInfo: exports.TypeInfo.ReleaseReference + } +}; +exports.TypeInfo.TestResultsDetails.fields = { + resultsForGroup: { + isArray: true, + typeInfo: exports.TypeInfo.TestResultsDetailsForGroup + } +}; +exports.TypeInfo.TestResultsDetailsForGroup.fields = { + results: { + isArray: true, + typeInfo: exports.TypeInfo.TestCaseResult + }, + resultsCountByOutcome: { + isDictionary: true, + dictionaryKeyEnumType: exports.TypeInfo.TestOutcome, + dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome + } +}; +exports.TypeInfo.TestResultsEx2.fields = { + creationDate: { + isDate: true, + }, + dateTimeValue: { + isDate: true, + } +}; +exports.TypeInfo.TestResultsQuery.fields = { + results: { + isArray: true, + typeInfo: exports.TypeInfo.TestCaseResult + }, + resultsFilter: { + typeInfo: exports.TypeInfo.ResultsFilter + } +}; +exports.TypeInfo.TestResultsSettings.fields = { + flakySettings: { + typeInfo: exports.TypeInfo.FlakySettings + } +}; +exports.TypeInfo.TestResultSummary.fields = { + aggregatedResultsAnalysis: { + typeInfo: exports.TypeInfo.AggregatedResultsAnalysis + }, + teamProject: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + }, + testFailures: { + typeInfo: exports.TypeInfo.TestFailuresAnalysis + }, + testResultsContext: { + typeInfo: exports.TypeInfo.TestResultsContext + } +}; +exports.TypeInfo.TestResultsUpdateSettings.fields = { + flakySettings: { + typeInfo: exports.TypeInfo.FlakySettings + } +}; +exports.TypeInfo.TestResultsWithWatermark.fields = { + changedDate: { + isDate: true, + }, + pointsResults: { + isArray: true, + typeInfo: exports.TypeInfo.PointsResults2 + } +}; +exports.TypeInfo.TestResultTrendFilter.fields = { + maxCompleteDate: { + isDate: true, + } +}; +exports.TypeInfo.TestRun.fields = { + buildConfiguration: { + typeInfo: exports.TypeInfo.BuildConfiguration + }, + completedDate: { + isDate: true, + }, + createdDate: { + isDate: true, + }, + dueDate: { + isDate: true, + }, + lastUpdatedDate: { + isDate: true, + }, + release: { + typeInfo: exports.TypeInfo.ReleaseReference + }, + runStatistics: { + isArray: true, + typeInfo: exports.TypeInfo.RunStatistic + }, + startedDate: { + isDate: true, + }, + substate: { + enumType: exports.TypeInfo.TestRunSubstate + } +}; +exports.TypeInfo.TestRun2.fields = { + completeDate: { + isDate: true, + }, + creationDate: { + isDate: true, + }, + deletedOn: { + isDate: true, + }, + dueDate: { + isDate: true, + }, + lastUpdated: { + isDate: true, + }, + startDate: { + isDate: true, + } +}; +exports.TypeInfo.TestRunCanceledEvent.fields = { + testRun: { + typeInfo: exports.TypeInfo.TestRun + } +}; +exports.TypeInfo.TestRunCreatedEvent.fields = { + testRun: { + typeInfo: exports.TypeInfo.TestRun + } +}; +exports.TypeInfo.TestRunEvent.fields = { + testRun: { + typeInfo: exports.TypeInfo.TestRun + } +}; +exports.TypeInfo.TestRunEx2.fields = { + createdDate: { + isDate: true, + }, + dateTimeValue: { + isDate: true, + } +}; +exports.TypeInfo.TestRunStartedEvent.fields = { + testRun: { + typeInfo: exports.TypeInfo.TestRun + } +}; +exports.TypeInfo.TestRunStatistic.fields = { + runStatistics: { + isArray: true, + typeInfo: exports.TypeInfo.RunStatistic + } +}; +exports.TypeInfo.TestRunSummary2.fields = { + testRunCompletedDate: { + isDate: true, + } +}; +exports.TypeInfo.TestRunWithDtlEnvEvent.fields = { + testRun: { + typeInfo: exports.TypeInfo.TestRun + } +}; +exports.TypeInfo.TestSession.fields = { + endDate: { + isDate: true, + }, + lastUpdatedDate: { + isDate: true, + }, + source: { + enumType: exports.TypeInfo.TestSessionSource + }, + startDate: { + isDate: true, + }, + state: { + enumType: exports.TypeInfo.TestSessionState + } +}; +exports.TypeInfo.TestSessionExploredWorkItemReference.fields = { + endTime: { + isDate: true, + }, + startTime: { + isDate: true, + } +}; +exports.TypeInfo.TestSettings2.fields = { + createdDate: { + isDate: true, + }, + lastUpdatedDate: { + isDate: true, + } +}; +exports.TypeInfo.TestSubResult.fields = { + completedDate: { + isDate: true, + }, + lastUpdatedDate: { + isDate: true, + }, + resultGroupType: { + enumType: exports.TypeInfo.ResultGroupType + }, + startedDate: { + isDate: true, + }, + subResults: { + isArray: true, + typeInfo: exports.TypeInfo.TestSubResult + } +}; +exports.TypeInfo.TestSuite.fields = { + children: { + isArray: true, + typeInfo: exports.TypeInfo.TestSuite + }, + lastPopulatedDate: { + isDate: true, + }, + lastUpdatedDate: { + isDate: true, + } +}; +exports.TypeInfo.TestSummaryForWorkItem.fields = { + summary: { + typeInfo: exports.TypeInfo.AggregatedDataForResultTrend + } +}; +exports.TypeInfo.UpdatedProperties.fields = { + lastUpdated: { + isDate: true, + } +}; +exports.TypeInfo.UpdateTestRunRequest.fields = { + attachmentsToAdd: { + isArray: true, + typeInfo: exports.TypeInfo.TestResultAttachment + }, + testRun: { + typeInfo: exports.TypeInfo.LegacyTestRun + } +}; +exports.TypeInfo.UpdateTestRunResponse.fields = { + updatedProperties: { + typeInfo: exports.TypeInfo.UpdatedProperties + } +}; +exports.TypeInfo.WorkItemToTestLinks.fields = { + executedIn: { + enumType: exports.TypeInfo.Service + } +}; + + +/***/ }), + +/***/ 9003: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const TfsCoreInterfaces = __nccwpck_require__(3931); +var ItemContentType; +(function (ItemContentType) { + ItemContentType[ItemContentType["RawText"] = 0] = "RawText"; + ItemContentType[ItemContentType["Base64Encoded"] = 1] = "Base64Encoded"; +})(ItemContentType = exports.ItemContentType || (exports.ItemContentType = {})); +/** + * Options for Version handling. + */ +var TfvcVersionOption; +(function (TfvcVersionOption) { + /** + * None. + */ + TfvcVersionOption[TfvcVersionOption["None"] = 0] = "None"; + /** + * Return the previous version. + */ + TfvcVersionOption[TfvcVersionOption["Previous"] = 1] = "Previous"; + /** + * Only usuable with versiontype MergeSource and integer versions, uses RenameSource identifier instead of Merge identifier. + */ + TfvcVersionOption[TfvcVersionOption["UseRename"] = 2] = "UseRename"; +})(TfvcVersionOption = exports.TfvcVersionOption || (exports.TfvcVersionOption = {})); +/** + * Type of Version object + */ +var TfvcVersionType; +(function (TfvcVersionType) { + /** + * Version is treated as a ChangesetId. + */ + TfvcVersionType[TfvcVersionType["None"] = 0] = "None"; + /** + * Version is treated as a ChangesetId. + */ + TfvcVersionType[TfvcVersionType["Changeset"] = 1] = "Changeset"; + /** + * Version is treated as a Shelveset name and owner. + */ + TfvcVersionType[TfvcVersionType["Shelveset"] = 2] = "Shelveset"; + /** + * Version is treated as a Change. + */ + TfvcVersionType[TfvcVersionType["Change"] = 3] = "Change"; + /** + * Version is treated as a Date. + */ + TfvcVersionType[TfvcVersionType["Date"] = 4] = "Date"; + /** + * If Version is defined the Latest of that Version will be used, if no version is defined the latest ChangesetId will be used. + */ + TfvcVersionType[TfvcVersionType["Latest"] = 5] = "Latest"; + /** + * Version will be treated as a Tip, if no version is defined latest will be used. + */ + TfvcVersionType[TfvcVersionType["Tip"] = 6] = "Tip"; + /** + * Version will be treated as a MergeSource. + */ + TfvcVersionType[TfvcVersionType["MergeSource"] = 7] = "MergeSource"; +})(TfvcVersionType = exports.TfvcVersionType || (exports.TfvcVersionType = {})); +var VersionControlChangeType; +(function (VersionControlChangeType) { + VersionControlChangeType[VersionControlChangeType["None"] = 0] = "None"; + VersionControlChangeType[VersionControlChangeType["Add"] = 1] = "Add"; + VersionControlChangeType[VersionControlChangeType["Edit"] = 2] = "Edit"; + VersionControlChangeType[VersionControlChangeType["Encoding"] = 4] = "Encoding"; + VersionControlChangeType[VersionControlChangeType["Rename"] = 8] = "Rename"; + VersionControlChangeType[VersionControlChangeType["Delete"] = 16] = "Delete"; + VersionControlChangeType[VersionControlChangeType["Undelete"] = 32] = "Undelete"; + VersionControlChangeType[VersionControlChangeType["Branch"] = 64] = "Branch"; + VersionControlChangeType[VersionControlChangeType["Merge"] = 128] = "Merge"; + VersionControlChangeType[VersionControlChangeType["Lock"] = 256] = "Lock"; + VersionControlChangeType[VersionControlChangeType["Rollback"] = 512] = "Rollback"; + VersionControlChangeType[VersionControlChangeType["SourceRename"] = 1024] = "SourceRename"; + VersionControlChangeType[VersionControlChangeType["TargetRename"] = 2048] = "TargetRename"; + VersionControlChangeType[VersionControlChangeType["Property"] = 4096] = "Property"; + VersionControlChangeType[VersionControlChangeType["All"] = 8191] = "All"; +})(VersionControlChangeType = exports.VersionControlChangeType || (exports.VersionControlChangeType = {})); +var VersionControlRecursionType; +(function (VersionControlRecursionType) { + /** + * Only return the specified item. + */ + VersionControlRecursionType[VersionControlRecursionType["None"] = 0] = "None"; + /** + * Return the specified item and its direct children. + */ + VersionControlRecursionType[VersionControlRecursionType["OneLevel"] = 1] = "OneLevel"; + /** + * Return the specified item and its direct children, as well as recursive chains of nested child folders that only contain a single folder. + */ + VersionControlRecursionType[VersionControlRecursionType["OneLevelPlusNestedEmptyFolders"] = 4] = "OneLevelPlusNestedEmptyFolders"; + /** + * Return specified item and all descendants + */ + VersionControlRecursionType[VersionControlRecursionType["Full"] = 120] = "Full"; +})(VersionControlRecursionType = exports.VersionControlRecursionType || (exports.VersionControlRecursionType = {})); +exports.TypeInfo = { + Change: {}, + GitRepository: {}, + GitRepositoryRef: {}, + ItemContent: {}, + ItemContentType: { + enumValues: { + "rawText": 0, + "base64Encoded": 1 + } + }, + TfvcBranch: {}, + TfvcBranchRef: {}, + TfvcChange: {}, + TfvcChangeset: {}, + TfvcChangesetRef: {}, + TfvcItem: {}, + TfvcItemDescriptor: {}, + TfvcItemRequestData: {}, + TfvcLabel: {}, + TfvcLabelRef: {}, + TfvcShelveset: {}, + TfvcShelvesetRef: {}, + TfvcVersionDescriptor: {}, + TfvcVersionOption: { + enumValues: { + "none": 0, + "previous": 1, + "useRename": 2 + } + }, + TfvcVersionType: { + enumValues: { + "none": 0, + "changeset": 1, + "shelveset": 2, + "change": 3, + "date": 4, + "latest": 5, + "tip": 6, + "mergeSource": 7 + } + }, + VersionControlChangeType: { + enumValues: { + "none": 0, + "add": 1, + "edit": 2, + "encoding": 4, + "rename": 8, + "delete": 16, + "undelete": 32, + "branch": 64, + "merge": 128, + "lock": 256, + "rollback": 512, + "sourceRename": 1024, + "targetRename": 2048, + "property": 4096, + "all": 8191 + } + }, + VersionControlProjectInfo: {}, + VersionControlRecursionType: { + enumValues: { + "none": 0, + "oneLevel": 1, + "oneLevelPlusNestedEmptyFolders": 4, + "full": 120 + } + }, +}; +exports.TypeInfo.Change.fields = { + changeType: { + enumType: exports.TypeInfo.VersionControlChangeType + }, + newContent: { + typeInfo: exports.TypeInfo.ItemContent + } +}; +exports.TypeInfo.GitRepository.fields = { + parentRepository: { + typeInfo: exports.TypeInfo.GitRepositoryRef + }, + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + } +}; +exports.TypeInfo.GitRepositoryRef.fields = { + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + } +}; +exports.TypeInfo.ItemContent.fields = { + contentType: { + enumType: exports.TypeInfo.ItemContentType + } +}; +exports.TypeInfo.TfvcBranch.fields = { + children: { + isArray: true, + typeInfo: exports.TypeInfo.TfvcBranch + }, + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcBranchRef.fields = { + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcChange.fields = { + changeType: { + enumType: exports.TypeInfo.VersionControlChangeType + }, + newContent: { + typeInfo: exports.TypeInfo.ItemContent + } +}; +exports.TypeInfo.TfvcChangeset.fields = { + changes: { + isArray: true, + typeInfo: exports.TypeInfo.TfvcChange + }, + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcChangesetRef.fields = { + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcItem.fields = { + changeDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcItemDescriptor.fields = { + recursionLevel: { + enumType: exports.TypeInfo.VersionControlRecursionType + }, + versionOption: { + enumType: exports.TypeInfo.TfvcVersionOption + }, + versionType: { + enumType: exports.TypeInfo.TfvcVersionType + } +}; +exports.TypeInfo.TfvcItemRequestData.fields = { + itemDescriptors: { + isArray: true, + typeInfo: exports.TypeInfo.TfvcItemDescriptor + } +}; +exports.TypeInfo.TfvcLabel.fields = { + items: { + isArray: true, + typeInfo: exports.TypeInfo.TfvcItem + }, + modifiedDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcLabelRef.fields = { + modifiedDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcShelveset.fields = { + changes: { + isArray: true, + typeInfo: exports.TypeInfo.TfvcChange + }, + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcShelvesetRef.fields = { + createdDate: { + isDate: true, + } +}; +exports.TypeInfo.TfvcVersionDescriptor.fields = { + versionOption: { + enumType: exports.TypeInfo.TfvcVersionOption + }, + versionType: { + enumType: exports.TypeInfo.TfvcVersionType + } +}; +exports.TypeInfo.VersionControlProjectInfo.fields = { + defaultSourceControlType: { + enumType: TfsCoreInterfaces.TypeInfo.SourceControlTypes + }, + project: { + typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference + } +}; + + +/***/ }), + +/***/ 5787: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const GitInterfaces = __nccwpck_require__(9803); +/** + * Wiki types. + */ +var WikiType; +(function (WikiType) { + /** + * Indicates that the wiki is provisioned for the team project + */ + WikiType[WikiType["ProjectWiki"] = 0] = "ProjectWiki"; + /** + * Indicates that the wiki is published from a git repository + */ + WikiType[WikiType["CodeWiki"] = 1] = "CodeWiki"; +})(WikiType = exports.WikiType || (exports.WikiType = {})); +exports.TypeInfo = { + Wiki: {}, + WikiCreateBaseParameters: {}, + WikiCreateParametersV2: {}, + WikiPageDetail: {}, + WikiPageStat: {}, + WikiPageViewStats: {}, + WikiType: { + enumValues: { + "projectWiki": 0, + "codeWiki": 1 + } + }, + WikiUpdateParameters: {}, + WikiV2: {}, +}; +exports.TypeInfo.Wiki.fields = { + repository: { + typeInfo: GitInterfaces.TypeInfo.GitRepository + } +}; +exports.TypeInfo.WikiCreateBaseParameters.fields = { + type: { + enumType: exports.TypeInfo.WikiType + } +}; +exports.TypeInfo.WikiCreateParametersV2.fields = { + type: { + enumType: exports.TypeInfo.WikiType + }, + version: { + typeInfo: GitInterfaces.TypeInfo.GitVersionDescriptor + } +}; +exports.TypeInfo.WikiPageDetail.fields = { + viewStats: { + isArray: true, + typeInfo: exports.TypeInfo.WikiPageStat + } +}; +exports.TypeInfo.WikiPageStat.fields = { + day: { + isDate: true, + } +}; +exports.TypeInfo.WikiPageViewStats.fields = { + lastViewedTime: { + isDate: true, + } +}; +exports.TypeInfo.WikiUpdateParameters.fields = { + versions: { + isArray: true, + typeInfo: GitInterfaces.TypeInfo.GitVersionDescriptor + } +}; +exports.TypeInfo.WikiV2.fields = { + type: { + enumType: exports.TypeInfo.WikiType + }, + versions: { + isArray: true, + typeInfo: GitInterfaces.TypeInfo.GitVersionDescriptor + } +}; + + +/***/ }), + +/***/ 7480: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const SystemInterfaces = __nccwpck_require__(6790); +/** + * Definition of the type of backlog level + */ +var BacklogType; +(function (BacklogType) { + /** + * Portfolio backlog level + */ + BacklogType[BacklogType["Portfolio"] = 0] = "Portfolio"; + /** + * Requirement backlog level + */ + BacklogType[BacklogType["Requirement"] = 1] = "Requirement"; + /** + * Task backlog level + */ + BacklogType[BacklogType["Task"] = 2] = "Task"; +})(BacklogType = exports.BacklogType || (exports.BacklogType = {})); +/** + * Determines what columns to include on the board badge + */ +var BoardBadgeColumnOptions; +(function (BoardBadgeColumnOptions) { + /** + * Only include In Progress columns + */ + BoardBadgeColumnOptions[BoardBadgeColumnOptions["InProgressColumns"] = 0] = "InProgressColumns"; + /** + * Include all columns + */ + BoardBadgeColumnOptions[BoardBadgeColumnOptions["AllColumns"] = 1] = "AllColumns"; + /** + * Include a custom set of columns + */ + BoardBadgeColumnOptions[BoardBadgeColumnOptions["CustomColumns"] = 2] = "CustomColumns"; +})(BoardBadgeColumnOptions = exports.BoardBadgeColumnOptions || (exports.BoardBadgeColumnOptions = {})); +var BoardColumnType; +(function (BoardColumnType) { + BoardColumnType[BoardColumnType["Incoming"] = 0] = "Incoming"; + BoardColumnType[BoardColumnType["InProgress"] = 1] = "InProgress"; + BoardColumnType[BoardColumnType["Outgoing"] = 2] = "Outgoing"; +})(BoardColumnType = exports.BoardColumnType || (exports.BoardColumnType = {})); +/** + * The behavior of the work item types that are in the work item category specified in the BugWorkItems section in the Process Configuration + */ +var BugsBehavior; +(function (BugsBehavior) { + BugsBehavior[BugsBehavior["Off"] = 0] = "Off"; + BugsBehavior[BugsBehavior["AsRequirements"] = 1] = "AsRequirements"; + BugsBehavior[BugsBehavior["AsTasks"] = 2] = "AsTasks"; +})(BugsBehavior = exports.BugsBehavior || (exports.BugsBehavior = {})); +var FieldType; +(function (FieldType) { + FieldType[FieldType["String"] = 0] = "String"; + FieldType[FieldType["PlainText"] = 1] = "PlainText"; + FieldType[FieldType["Integer"] = 2] = "Integer"; + FieldType[FieldType["DateTime"] = 3] = "DateTime"; + FieldType[FieldType["TreePath"] = 4] = "TreePath"; + FieldType[FieldType["Boolean"] = 5] = "Boolean"; + FieldType[FieldType["Double"] = 6] = "Double"; +})(FieldType = exports.FieldType || (exports.FieldType = {})); +/** + * Enum for the various modes of identity picker + */ +var IdentityDisplayFormat; +(function (IdentityDisplayFormat) { + /** + * Display avatar only + */ + IdentityDisplayFormat[IdentityDisplayFormat["AvatarOnly"] = 0] = "AvatarOnly"; + /** + * Display Full name only + */ + IdentityDisplayFormat[IdentityDisplayFormat["FullName"] = 1] = "FullName"; + /** + * Display Avatar and Full name + */ + IdentityDisplayFormat[IdentityDisplayFormat["AvatarAndFullName"] = 2] = "AvatarAndFullName"; +})(IdentityDisplayFormat = exports.IdentityDisplayFormat || (exports.IdentityDisplayFormat = {})); +/** + * Enum for the various types of plans + */ +var PlanType; +(function (PlanType) { + PlanType[PlanType["DeliveryTimelineView"] = 0] = "DeliveryTimelineView"; +})(PlanType = exports.PlanType || (exports.PlanType = {})); +/** + * Flag for permissions a user can have for this plan. + */ +var PlanUserPermissions; +(function (PlanUserPermissions) { + /** + * None + */ + PlanUserPermissions[PlanUserPermissions["None"] = 0] = "None"; + /** + * Permission to view this plan. + */ + PlanUserPermissions[PlanUserPermissions["View"] = 1] = "View"; + /** + * Permission to update this plan. + */ + PlanUserPermissions[PlanUserPermissions["Edit"] = 2] = "Edit"; + /** + * Permission to delete this plan. + */ + PlanUserPermissions[PlanUserPermissions["Delete"] = 4] = "Delete"; + /** + * Permission to manage this plan. + */ + PlanUserPermissions[PlanUserPermissions["Manage"] = 8] = "Manage"; + /** + * Full control permission for this plan. + */ + PlanUserPermissions[PlanUserPermissions["AllPermissions"] = 15] = "AllPermissions"; +})(PlanUserPermissions = exports.PlanUserPermissions || (exports.PlanUserPermissions = {})); +var TimeFrame; +(function (TimeFrame) { + TimeFrame[TimeFrame["Past"] = 0] = "Past"; + TimeFrame[TimeFrame["Current"] = 1] = "Current"; + TimeFrame[TimeFrame["Future"] = 2] = "Future"; +})(TimeFrame = exports.TimeFrame || (exports.TimeFrame = {})); +var TimelineCriteriaStatusCode; +(function (TimelineCriteriaStatusCode) { + /** + * No error - filter is good. + */ + TimelineCriteriaStatusCode[TimelineCriteriaStatusCode["OK"] = 0] = "OK"; + /** + * One of the filter clause is invalid. + */ + TimelineCriteriaStatusCode[TimelineCriteriaStatusCode["InvalidFilterClause"] = 1] = "InvalidFilterClause"; + /** + * Unknown error. + */ + TimelineCriteriaStatusCode[TimelineCriteriaStatusCode["Unknown"] = 2] = "Unknown"; +})(TimelineCriteriaStatusCode = exports.TimelineCriteriaStatusCode || (exports.TimelineCriteriaStatusCode = {})); +var TimelineIterationStatusCode; +(function (TimelineIterationStatusCode) { + /** + * No error - iteration data is good. + */ + TimelineIterationStatusCode[TimelineIterationStatusCode["OK"] = 0] = "OK"; + /** + * This iteration overlaps with another iteration, no data is returned for this iteration. + */ + TimelineIterationStatusCode[TimelineIterationStatusCode["IsOverlapping"] = 1] = "IsOverlapping"; +})(TimelineIterationStatusCode = exports.TimelineIterationStatusCode || (exports.TimelineIterationStatusCode = {})); +var TimelineTeamStatusCode; +(function (TimelineTeamStatusCode) { + /** + * No error - all data for team is good. + */ + TimelineTeamStatusCode[TimelineTeamStatusCode["OK"] = 0] = "OK"; + /** + * Team does not exist or access is denied. + */ + TimelineTeamStatusCode[TimelineTeamStatusCode["DoesntExistOrAccessDenied"] = 1] = "DoesntExistOrAccessDenied"; + /** + * Maximum number of teams was exceeded. No team data will be returned for this team. + */ + TimelineTeamStatusCode[TimelineTeamStatusCode["MaxTeamsExceeded"] = 2] = "MaxTeamsExceeded"; + /** + * Maximum number of team fields (ie Area paths) have been exceeded. No team data will be returned for this team. + */ + TimelineTeamStatusCode[TimelineTeamStatusCode["MaxTeamFieldsExceeded"] = 3] = "MaxTeamFieldsExceeded"; + /** + * Backlog does not exist or is missing crucial information. + */ + TimelineTeamStatusCode[TimelineTeamStatusCode["BacklogInError"] = 4] = "BacklogInError"; + /** + * Team field value is not set for this team. No team data will be returned for this team + */ + TimelineTeamStatusCode[TimelineTeamStatusCode["MissingTeamFieldValue"] = 5] = "MissingTeamFieldValue"; + /** + * Team does not have a single iteration with date range. + */ + TimelineTeamStatusCode[TimelineTeamStatusCode["NoIterationsExist"] = 6] = "NoIterationsExist"; +})(TimelineTeamStatusCode = exports.TimelineTeamStatusCode || (exports.TimelineTeamStatusCode = {})); +exports.TypeInfo = { + BacklogConfiguration: {}, + BacklogLevelConfiguration: {}, + BacklogType: { + enumValues: { + "portfolio": 0, + "requirement": 1, + "task": 2 + } + }, + Board: {}, + BoardBadgeColumnOptions: { + enumValues: { + "inProgressColumns": 0, + "allColumns": 1, + "customColumns": 2 + } + }, + BoardColumn: {}, + BoardColumnType: { + enumValues: { + "incoming": 0, + "inProgress": 1, + "outgoing": 2 + } + }, + BugsBehavior: { + enumValues: { + "off": 0, + "asRequirements": 1, + "asTasks": 2 + } + }, + CapacityContractBase: {}, + CapacityPatch: {}, + CardFieldSettings: {}, + CardSettings: {}, + CreatePlan: {}, + DateRange: {}, + DeliveryViewData: {}, + DeliveryViewPropertyCollection: {}, + FieldInfo: {}, + FieldType: { + enumValues: { + "string": 0, + "plainText": 1, + "integer": 2, + "dateTime": 3, + "treePath": 4, + "boolean": 5, + "double": 6 + } + }, + IdentityDisplayFormat: { + enumValues: { + "avatarOnly": 0, + "fullName": 1, + "avatarAndFullName": 2 + } + }, + Marker: {}, + Plan: {}, + PlanMetadata: {}, + PlanType: { + enumValues: { + "deliveryTimelineView": 0 + } + }, + PlanUserPermissions: { + enumValues: { + "none": 0, + "view": 1, + "edit": 2, + "delete": 4, + "manage": 8, + "allPermissions": 15 + } + }, + TeamCapacity: {}, + TeamIterationAttributes: {}, + TeamMemberCapacity: {}, + TeamMemberCapacityIdentityRef: {}, + TeamSetting: {}, + TeamSettingsDaysOff: {}, + TeamSettingsDaysOffPatch: {}, + TeamSettingsIteration: {}, + TeamSettingsPatch: {}, + TimeFrame: { + enumValues: { + "past": 0, + "current": 1, + "future": 2 + } + }, + TimelineCriteriaStatus: {}, + TimelineCriteriaStatusCode: { + enumValues: { + "ok": 0, + "invalidFilterClause": 1, + "unknown": 2 + } + }, + TimelineIterationStatus: {}, + TimelineIterationStatusCode: { + enumValues: { + "ok": 0, + "isOverlapping": 1 + } + }, + TimelineTeamData: {}, + TimelineTeamIteration: {}, + TimelineTeamStatus: {}, + TimelineTeamStatusCode: { + enumValues: { + "ok": 0, + "doesntExistOrAccessDenied": 1, + "maxTeamsExceeded": 2, + "maxTeamFieldsExceeded": 3, + "backlogInError": 4, + "missingTeamFieldValue": 5, + "noIterationsExist": 6 + } + }, + UpdatePlan: {}, +}; +exports.TypeInfo.BacklogConfiguration.fields = { + bugsBehavior: { + enumType: exports.TypeInfo.BugsBehavior + }, + portfolioBacklogs: { + isArray: true, + typeInfo: exports.TypeInfo.BacklogLevelConfiguration + }, + requirementBacklog: { + typeInfo: exports.TypeInfo.BacklogLevelConfiguration + }, + taskBacklog: { + typeInfo: exports.TypeInfo.BacklogLevelConfiguration + } +}; +exports.TypeInfo.BacklogLevelConfiguration.fields = { + type: { + enumType: exports.TypeInfo.BacklogType + } +}; +exports.TypeInfo.Board.fields = { + columns: { + isArray: true, + typeInfo: exports.TypeInfo.BoardColumn + } +}; +exports.TypeInfo.BoardColumn.fields = { + columnType: { + enumType: exports.TypeInfo.BoardColumnType + } +}; +exports.TypeInfo.CapacityContractBase.fields = { + daysOff: { + isArray: true, + typeInfo: exports.TypeInfo.DateRange + } +}; +exports.TypeInfo.CapacityPatch.fields = { + daysOff: { + isArray: true, + typeInfo: exports.TypeInfo.DateRange + } +}; +exports.TypeInfo.CardFieldSettings.fields = { + additionalFields: { + isArray: true, + typeInfo: exports.TypeInfo.FieldInfo + }, + assignedToDisplayFormat: { + enumType: exports.TypeInfo.IdentityDisplayFormat + }, + coreFields: { + isArray: true, + typeInfo: exports.TypeInfo.FieldInfo + } +}; +exports.TypeInfo.CardSettings.fields = { + fields: { + typeInfo: exports.TypeInfo.CardFieldSettings + } +}; +exports.TypeInfo.CreatePlan.fields = { + type: { + enumType: exports.TypeInfo.PlanType + } +}; +exports.TypeInfo.DateRange.fields = { + end: { + isDate: true, + }, + start: { + isDate: true, + } +}; +exports.TypeInfo.DeliveryViewData.fields = { + criteriaStatus: { + typeInfo: exports.TypeInfo.TimelineCriteriaStatus + }, + endDate: { + isDate: true, + }, + startDate: { + isDate: true, + }, + teams: { + isArray: true, + typeInfo: exports.TypeInfo.TimelineTeamData + } +}; +exports.TypeInfo.DeliveryViewPropertyCollection.fields = { + cardSettings: { + typeInfo: exports.TypeInfo.CardSettings + }, + markers: { + isArray: true, + typeInfo: exports.TypeInfo.Marker + } +}; +exports.TypeInfo.FieldInfo.fields = { + fieldType: { + enumType: exports.TypeInfo.FieldType + } +}; +exports.TypeInfo.Marker.fields = { + date: { + isDate: true, + } +}; +exports.TypeInfo.Plan.fields = { + createdDate: { + isDate: true, + }, + modifiedDate: { + isDate: true, + }, + type: { + enumType: exports.TypeInfo.PlanType + }, + userPermissions: { + enumType: exports.TypeInfo.PlanUserPermissions + } +}; +exports.TypeInfo.PlanMetadata.fields = { + modifiedDate: { + isDate: true, + }, + userPermissions: { + enumType: exports.TypeInfo.PlanUserPermissions + } +}; +exports.TypeInfo.TeamCapacity.fields = { + teamMembers: { + isArray: true, + typeInfo: exports.TypeInfo.TeamMemberCapacityIdentityRef + } +}; +exports.TypeInfo.TeamIterationAttributes.fields = { + finishDate: { + isDate: true, + }, + startDate: { + isDate: true, + }, + timeFrame: { + enumType: exports.TypeInfo.TimeFrame + } +}; +exports.TypeInfo.TeamMemberCapacity.fields = { + daysOff: { + isArray: true, + typeInfo: exports.TypeInfo.DateRange + } +}; +exports.TypeInfo.TeamMemberCapacityIdentityRef.fields = { + daysOff: { + isArray: true, + typeInfo: exports.TypeInfo.DateRange + } +}; +exports.TypeInfo.TeamSetting.fields = { + backlogIteration: { + typeInfo: exports.TypeInfo.TeamSettingsIteration + }, + bugsBehavior: { + enumType: exports.TypeInfo.BugsBehavior + }, + defaultIteration: { + typeInfo: exports.TypeInfo.TeamSettingsIteration + }, + workingDays: { + isArray: true, + enumType: SystemInterfaces.TypeInfo.DayOfWeek + } +}; +exports.TypeInfo.TeamSettingsDaysOff.fields = { + daysOff: { + isArray: true, + typeInfo: exports.TypeInfo.DateRange + } +}; +exports.TypeInfo.TeamSettingsDaysOffPatch.fields = { + daysOff: { + isArray: true, + typeInfo: exports.TypeInfo.DateRange + } +}; +exports.TypeInfo.TeamSettingsIteration.fields = { + attributes: { + typeInfo: exports.TypeInfo.TeamIterationAttributes + } +}; +exports.TypeInfo.TeamSettingsPatch.fields = { + bugsBehavior: { + enumType: exports.TypeInfo.BugsBehavior + }, + workingDays: { + isArray: true, + enumType: SystemInterfaces.TypeInfo.DayOfWeek + } +}; +exports.TypeInfo.TimelineCriteriaStatus.fields = { + type: { + enumType: exports.TypeInfo.TimelineCriteriaStatusCode + } +}; +exports.TypeInfo.TimelineIterationStatus.fields = { + type: { + enumType: exports.TypeInfo.TimelineIterationStatusCode + } +}; +exports.TypeInfo.TimelineTeamData.fields = { + iterations: { + isArray: true, + typeInfo: exports.TypeInfo.TimelineTeamIteration + }, + status: { + typeInfo: exports.TypeInfo.TimelineTeamStatus + } +}; +exports.TypeInfo.TimelineTeamIteration.fields = { + finishDate: { + isDate: true, + }, + startDate: { + isDate: true, + }, + status: { + typeInfo: exports.TypeInfo.TimelineIterationStatus + } +}; +exports.TypeInfo.TimelineTeamStatus.fields = { + type: { + enumType: exports.TypeInfo.TimelineTeamStatusCode + } +}; +exports.TypeInfo.UpdatePlan.fields = { + type: { + enumType: exports.TypeInfo.PlanType + } +}; + + +/***/ }), + +/***/ 6938: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +/** + * Flag to control error policy in a batch classification nodes get request. + */ +var ClassificationNodesErrorPolicy; +(function (ClassificationNodesErrorPolicy) { + ClassificationNodesErrorPolicy[ClassificationNodesErrorPolicy["Fail"] = 1] = "Fail"; + ClassificationNodesErrorPolicy[ClassificationNodesErrorPolicy["Omit"] = 2] = "Omit"; +})(ClassificationNodesErrorPolicy = exports.ClassificationNodesErrorPolicy || (exports.ClassificationNodesErrorPolicy = {})); +/** + * Specifies the additional data retrieval options for work item comments. + */ +var CommentExpandOptions; +(function (CommentExpandOptions) { + CommentExpandOptions[CommentExpandOptions["None"] = 0] = "None"; + /** + * Include comment reactions. + */ + CommentExpandOptions[CommentExpandOptions["Reactions"] = 1] = "Reactions"; + /** + * Include the rendered text (html) in addition to MD text. + */ + CommentExpandOptions[CommentExpandOptions["RenderedText"] = 8] = "RenderedText"; + /** + * If specified, then ONLY rendered text (html) will be returned, w/o markdown. Supposed to be used internally from data provides for optimization purposes. + */ + CommentExpandOptions[CommentExpandOptions["RenderedTextOnly"] = 16] = "RenderedTextOnly"; + CommentExpandOptions[CommentExpandOptions["All"] = -17] = "All"; +})(CommentExpandOptions = exports.CommentExpandOptions || (exports.CommentExpandOptions = {})); +/** + * Represents different reaction types for a work item comment. + */ +var CommentReactionType; +(function (CommentReactionType) { + CommentReactionType[CommentReactionType["Like"] = 0] = "Like"; + CommentReactionType[CommentReactionType["Dislike"] = 1] = "Dislike"; + CommentReactionType[CommentReactionType["Heart"] = 2] = "Heart"; + CommentReactionType[CommentReactionType["Hooray"] = 3] = "Hooray"; + CommentReactionType[CommentReactionType["Smile"] = 4] = "Smile"; + CommentReactionType[CommentReactionType["Confused"] = 5] = "Confused"; +})(CommentReactionType = exports.CommentReactionType || (exports.CommentReactionType = {})); +var CommentSortOrder; +(function (CommentSortOrder) { + /** + * The results will be sorted in Ascending order. + */ + CommentSortOrder[CommentSortOrder["Asc"] = 1] = "Asc"; + /** + * The results will be sorted in Descending order. + */ + CommentSortOrder[CommentSortOrder["Desc"] = 2] = "Desc"; +})(CommentSortOrder = exports.CommentSortOrder || (exports.CommentSortOrder = {})); +/** + * Enum for field types. + */ +var FieldType; +(function (FieldType) { + /** + * String field type. + */ + FieldType[FieldType["String"] = 0] = "String"; + /** + * Integer field type. + */ + FieldType[FieldType["Integer"] = 1] = "Integer"; + /** + * Datetime field type. + */ + FieldType[FieldType["DateTime"] = 2] = "DateTime"; + /** + * Plain text field type. + */ + FieldType[FieldType["PlainText"] = 3] = "PlainText"; + /** + * HTML (Multiline) field type. + */ + FieldType[FieldType["Html"] = 4] = "Html"; + /** + * Treepath field type. + */ + FieldType[FieldType["TreePath"] = 5] = "TreePath"; + /** + * History field type. + */ + FieldType[FieldType["History"] = 6] = "History"; + /** + * Double field type. + */ + FieldType[FieldType["Double"] = 7] = "Double"; + /** + * Guid field type. + */ + FieldType[FieldType["Guid"] = 8] = "Guid"; + /** + * Boolean field type. + */ + FieldType[FieldType["Boolean"] = 9] = "Boolean"; + /** + * Identity field type. + */ + FieldType[FieldType["Identity"] = 10] = "Identity"; + /** + * String picklist field type. When creating a string picklist field from REST API, use "String" FieldType. + */ + FieldType[FieldType["PicklistString"] = 11] = "PicklistString"; + /** + * Integer picklist field type. When creating a integer picklist field from REST API, use "Integer" FieldType. + */ + FieldType[FieldType["PicklistInteger"] = 12] = "PicklistInteger"; + /** + * Double picklist field type. When creating a double picklist field from REST API, use "Double" FieldType. + */ + FieldType[FieldType["PicklistDouble"] = 13] = "PicklistDouble"; +})(FieldType = exports.FieldType || (exports.FieldType = {})); +/** + * Enum for field usages. + */ +var FieldUsage; +(function (FieldUsage) { + /** + * Empty usage. + */ + FieldUsage[FieldUsage["None"] = 0] = "None"; + /** + * Work item field usage. + */ + FieldUsage[FieldUsage["WorkItem"] = 1] = "WorkItem"; + /** + * Work item link field usage. + */ + FieldUsage[FieldUsage["WorkItemLink"] = 2] = "WorkItemLink"; + /** + * Treenode field usage. + */ + FieldUsage[FieldUsage["Tree"] = 3] = "Tree"; + /** + * Work Item Type Extension usage. + */ + FieldUsage[FieldUsage["WorkItemTypeExtension"] = 4] = "WorkItemTypeExtension"; +})(FieldUsage = exports.FieldUsage || (exports.FieldUsage = {})); +/** + * Flag to expand types of fields. + */ +var GetFieldsExpand; +(function (GetFieldsExpand) { + /** + * Default behavior. + */ + GetFieldsExpand[GetFieldsExpand["None"] = 0] = "None"; + /** + * Adds extension fields to the response. + */ + GetFieldsExpand[GetFieldsExpand["ExtensionFields"] = 1] = "ExtensionFields"; + /** + * Includes fields that have been deleted. + */ + GetFieldsExpand[GetFieldsExpand["IncludeDeleted"] = 2] = "IncludeDeleted"; +})(GetFieldsExpand = exports.GetFieldsExpand || (exports.GetFieldsExpand = {})); +/** + * The link query mode which determines the behavior of the query. + */ +var LinkQueryMode; +(function (LinkQueryMode) { + /** + * Returns flat list of work items. + */ + LinkQueryMode[LinkQueryMode["WorkItems"] = 0] = "WorkItems"; + /** + * Returns work items where the source, target, and link criteria are all satisfied. + */ + LinkQueryMode[LinkQueryMode["LinksOneHopMustContain"] = 1] = "LinksOneHopMustContain"; + /** + * Returns work items that satisfy the source and link criteria, even if no linked work item satisfies the target criteria. + */ + LinkQueryMode[LinkQueryMode["LinksOneHopMayContain"] = 2] = "LinksOneHopMayContain"; + /** + * Returns work items that satisfy the source, only if no linked work item satisfies the link and target criteria. + */ + LinkQueryMode[LinkQueryMode["LinksOneHopDoesNotContain"] = 3] = "LinksOneHopDoesNotContain"; + LinkQueryMode[LinkQueryMode["LinksRecursiveMustContain"] = 4] = "LinksRecursiveMustContain"; + /** + * Returns work items a hierarchy of work items that by default satisfy the source + */ + LinkQueryMode[LinkQueryMode["LinksRecursiveMayContain"] = 5] = "LinksRecursiveMayContain"; + LinkQueryMode[LinkQueryMode["LinksRecursiveDoesNotContain"] = 6] = "LinksRecursiveDoesNotContain"; +})(LinkQueryMode = exports.LinkQueryMode || (exports.LinkQueryMode = {})); +var LogicalOperation; +(function (LogicalOperation) { + LogicalOperation[LogicalOperation["NONE"] = 0] = "NONE"; + LogicalOperation[LogicalOperation["AND"] = 1] = "AND"; + LogicalOperation[LogicalOperation["OR"] = 2] = "OR"; +})(LogicalOperation = exports.LogicalOperation || (exports.LogicalOperation = {})); +/** + * Enumerates the possible provisioning actions that can be triggered on process template update. + */ +var ProvisioningActionType; +(function (ProvisioningActionType) { + ProvisioningActionType[ProvisioningActionType["Import"] = 0] = "Import"; + ProvisioningActionType[ProvisioningActionType["Validate"] = 1] = "Validate"; +})(ProvisioningActionType = exports.ProvisioningActionType || (exports.ProvisioningActionType = {})); +/** + * Enum to control error policy in a query batch request. + */ +var QueryErrorPolicy; +(function (QueryErrorPolicy) { + QueryErrorPolicy[QueryErrorPolicy["Fail"] = 1] = "Fail"; + QueryErrorPolicy[QueryErrorPolicy["Omit"] = 2] = "Omit"; +})(QueryErrorPolicy = exports.QueryErrorPolicy || (exports.QueryErrorPolicy = {})); +/** + * Determines which set of additional query properties to display + */ +var QueryExpand; +(function (QueryExpand) { + /** + * Expands Columns, Links and ChangeInfo + */ + QueryExpand[QueryExpand["None"] = 0] = "None"; + /** + * Expands Columns, Links, ChangeInfo and WIQL text + */ + QueryExpand[QueryExpand["Wiql"] = 1] = "Wiql"; + /** + * Expands Columns, Links, ChangeInfo, WIQL text and clauses + */ + QueryExpand[QueryExpand["Clauses"] = 2] = "Clauses"; + /** + * Expands all properties + */ + QueryExpand[QueryExpand["All"] = 3] = "All"; + /** + * Displays minimal properties and the WIQL text + */ + QueryExpand[QueryExpand["Minimal"] = 4] = "Minimal"; +})(QueryExpand = exports.QueryExpand || (exports.QueryExpand = {})); +var QueryOption; +(function (QueryOption) { + QueryOption[QueryOption["Doing"] = 1] = "Doing"; + QueryOption[QueryOption["Done"] = 2] = "Done"; + QueryOption[QueryOption["Followed"] = 3] = "Followed"; +})(QueryOption = exports.QueryOption || (exports.QueryOption = {})); +/** + * Determines whether a tree query matches parents or children first. + */ +var QueryRecursionOption; +(function (QueryRecursionOption) { + /** + * Returns work items that satisfy the source, even if no linked work item satisfies the target and link criteria. + */ + QueryRecursionOption[QueryRecursionOption["ParentFirst"] = 0] = "ParentFirst"; + /** + * Returns work items that satisfy the target criteria, even if no work item satisfies the source and link criteria. + */ + QueryRecursionOption[QueryRecursionOption["ChildFirst"] = 1] = "ChildFirst"; +})(QueryRecursionOption = exports.QueryRecursionOption || (exports.QueryRecursionOption = {})); +/** + * The query result type + */ +var QueryResultType; +(function (QueryResultType) { + /** + * A list of work items (for flat queries). + */ + QueryResultType[QueryResultType["WorkItem"] = 1] = "WorkItem"; + /** + * A list of work item links (for OneHop and Tree queries). + */ + QueryResultType[QueryResultType["WorkItemLink"] = 2] = "WorkItemLink"; +})(QueryResultType = exports.QueryResultType || (exports.QueryResultType = {})); +/** + * The type of query. + */ +var QueryType; +(function (QueryType) { + /** + * Gets a flat list of work items. + */ + QueryType[QueryType["Flat"] = 1] = "Flat"; + /** + * Gets a tree of work items showing their link hierarchy. + */ + QueryType[QueryType["Tree"] = 2] = "Tree"; + /** + * Gets a list of work items and their direct links. + */ + QueryType[QueryType["OneHop"] = 3] = "OneHop"; +})(QueryType = exports.QueryType || (exports.QueryType = {})); +/** + * The reporting revision expand level. + */ +var ReportingRevisionsExpand; +(function (ReportingRevisionsExpand) { + /** + * Default behavior. + */ + ReportingRevisionsExpand[ReportingRevisionsExpand["None"] = 0] = "None"; + /** + * Add fields to the response. + */ + ReportingRevisionsExpand[ReportingRevisionsExpand["Fields"] = 1] = "Fields"; +})(ReportingRevisionsExpand = exports.ReportingRevisionsExpand || (exports.ReportingRevisionsExpand = {})); +/** + * Enumerates types of supported xml templates used for customization. + */ +var TemplateType; +(function (TemplateType) { + TemplateType[TemplateType["WorkItemType"] = 0] = "WorkItemType"; + TemplateType[TemplateType["GlobalWorkflow"] = 1] = "GlobalWorkflow"; +})(TemplateType = exports.TemplateType || (exports.TemplateType = {})); +/** + * Types of tree node structures. + */ +var TreeNodeStructureType; +(function (TreeNodeStructureType) { + /** + * Area type. + */ + TreeNodeStructureType[TreeNodeStructureType["Area"] = 0] = "Area"; + /** + * Iteration type. + */ + TreeNodeStructureType[TreeNodeStructureType["Iteration"] = 1] = "Iteration"; +})(TreeNodeStructureType = exports.TreeNodeStructureType || (exports.TreeNodeStructureType = {})); +/** + * Types of tree structures groups. + */ +var TreeStructureGroup; +(function (TreeStructureGroup) { + TreeStructureGroup[TreeStructureGroup["Areas"] = 0] = "Areas"; + TreeStructureGroup[TreeStructureGroup["Iterations"] = 1] = "Iterations"; +})(TreeStructureGroup = exports.TreeStructureGroup || (exports.TreeStructureGroup = {})); +/** + * Enum to control error policy in a bulk get work items request. + */ +var WorkItemErrorPolicy; +(function (WorkItemErrorPolicy) { + /** + * Fail work error policy. + */ + WorkItemErrorPolicy[WorkItemErrorPolicy["Fail"] = 1] = "Fail"; + /** + * Omit work error policy. + */ + WorkItemErrorPolicy[WorkItemErrorPolicy["Omit"] = 2] = "Omit"; +})(WorkItemErrorPolicy = exports.WorkItemErrorPolicy || (exports.WorkItemErrorPolicy = {})); +/** + * Flag to control payload properties from get work item command. + */ +var WorkItemExpand; +(function (WorkItemExpand) { + /** + * Default behavior. + */ + WorkItemExpand[WorkItemExpand["None"] = 0] = "None"; + /** + * Relations work item expand. + */ + WorkItemExpand[WorkItemExpand["Relations"] = 1] = "Relations"; + /** + * Fields work item expand. + */ + WorkItemExpand[WorkItemExpand["Fields"] = 2] = "Fields"; + /** + * Links work item expand. + */ + WorkItemExpand[WorkItemExpand["Links"] = 3] = "Links"; + /** + * Expands all. + */ + WorkItemExpand[WorkItemExpand["All"] = 4] = "All"; +})(WorkItemExpand = exports.WorkItemExpand || (exports.WorkItemExpand = {})); +/** + * Type of the activity + */ +var WorkItemRecentActivityType; +(function (WorkItemRecentActivityType) { + WorkItemRecentActivityType[WorkItemRecentActivityType["Visited"] = 0] = "Visited"; + WorkItemRecentActivityType[WorkItemRecentActivityType["Edited"] = 1] = "Edited"; + WorkItemRecentActivityType[WorkItemRecentActivityType["Deleted"] = 2] = "Deleted"; + WorkItemRecentActivityType[WorkItemRecentActivityType["Restored"] = 3] = "Restored"; +})(WorkItemRecentActivityType = exports.WorkItemRecentActivityType || (exports.WorkItemRecentActivityType = {})); +/** + * Expand options for the work item field(s) request. + */ +var WorkItemTypeFieldsExpandLevel; +(function (WorkItemTypeFieldsExpandLevel) { + /** + * Includes only basic properties of the field. + */ + WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel["None"] = 0] = "None"; + /** + * Includes allowed values for the field. + */ + WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel["AllowedValues"] = 1] = "AllowedValues"; + /** + * Includes dependent fields of the field. + */ + WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel["DependentFields"] = 2] = "DependentFields"; + /** + * Includes allowed values and dependent fields of the field. + */ + WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel["All"] = 3] = "All"; +})(WorkItemTypeFieldsExpandLevel = exports.WorkItemTypeFieldsExpandLevel || (exports.WorkItemTypeFieldsExpandLevel = {})); +exports.TypeInfo = { + AccountMyWorkResult: {}, + AccountRecentActivityWorkItemModel: {}, + AccountRecentActivityWorkItemModel2: {}, + AccountRecentActivityWorkItemModelBase: {}, + AccountRecentMentionWorkItemModel: {}, + AccountWorkWorkItemModel: {}, + ClassificationNodesErrorPolicy: { + enumValues: { + "fail": 1, + "omit": 2 + } + }, + Comment: {}, + CommentExpandOptions: { + enumValues: { + "none": 0, + "reactions": 1, + "renderedText": 8, + "renderedTextOnly": 16, + "all": -17 + } + }, + CommentList: {}, + CommentReaction: {}, + CommentReactionType: { + enumValues: { + "like": 0, + "dislike": 1, + "heart": 2, + "hooray": 3, + "smile": 4, + "confused": 5 + } + }, + CommentSortOrder: { + enumValues: { + "asc": 1, + "desc": 2 + } + }, + CommentVersion: {}, + ExternalDeployment: {}, + FieldType: { + enumValues: { + "string": 0, + "integer": 1, + "dateTime": 2, + "plainText": 3, + "html": 4, + "treePath": 5, + "history": 6, + "double": 7, + "guid": 8, + "boolean": 9, + "identity": 10, + "picklistString": 11, + "picklistInteger": 12, + "picklistDouble": 13 + } + }, + FieldUsage: { + enumValues: { + "none": 0, + "workItem": 1, + "workItemLink": 2, + "tree": 3, + "workItemTypeExtension": 4 + } + }, + GetFieldsExpand: { + enumValues: { + "none": 0, + "extensionFields": 1, + "includeDeleted": 2 + } + }, + LinkQueryMode: { + enumValues: { + "workItems": 0, + "linksOneHopMustContain": 1, + "linksOneHopMayContain": 2, + "linksOneHopDoesNotContain": 3, + "linksRecursiveMustContain": 4, + "linksRecursiveMayContain": 5, + "linksRecursiveDoesNotContain": 6 + } + }, + LogicalOperation: { + enumValues: { + "none": 0, + "and": 1, + "or": 2 + } + }, + ProvisioningActionType: { + enumValues: { + "import": 0, + "validate": 1 + } + }, + QueryBatchGetRequest: {}, + QueryErrorPolicy: { + enumValues: { + "fail": 1, + "omit": 2 + } + }, + QueryExpand: { + enumValues: { + "none": 0, + "wiql": 1, + "clauses": 2, + "all": 3, + "minimal": 4 + } + }, + QueryHierarchyItem: {}, + QueryHierarchyItemsResult: {}, + QueryOption: { + enumValues: { + "doing": 1, + "done": 2, + "followed": 3 + } + }, + QueryRecursionOption: { + enumValues: { + "parentFirst": 0, + "childFirst": 1 + } + }, + QueryResultType: { + enumValues: { + "workItem": 1, + "workItemLink": 2 + } + }, + QueryType: { + enumValues: { + "flat": 1, + "tree": 2, + "oneHop": 3 + } + }, + ReportingRevisionsExpand: { + enumValues: { + "none": 0, + "fields": 1 + } + }, + TemplateType: { + enumValues: { + "workItemType": 0, + "globalWorkflow": 1 + } + }, + TreeNodeStructureType: { + enumValues: { + "area": 0, + "iteration": 1 + } + }, + TreeStructureGroup: { + enumValues: { + "areas": 0, + "iterations": 1 + } + }, + WorkItemBatchGetRequest: {}, + WorkItemClassificationNode: {}, + WorkItemComment: {}, + WorkItemComments: {}, + WorkItemErrorPolicy: { + enumValues: { + "fail": 1, + "omit": 2 + } + }, + WorkItemExpand: { + enumValues: { + "none": 0, + "relations": 1, + "fields": 2, + "links": 3, + "all": 4 + } + }, + WorkItemField: {}, + WorkItemHistory: {}, + WorkItemQueryClause: {}, + WorkItemQueryResult: {}, + WorkItemRecentActivityType: { + enumValues: { + "visited": 0, + "edited": 1, + "deleted": 2, + "restored": 3 + } + }, + WorkItemTypeFieldsExpandLevel: { + enumValues: { + "none": 0, + "allowedValues": 1, + "dependentFields": 2, + "all": 3 + } + }, + WorkItemTypeTemplateUpdateModel: {}, + WorkItemUpdate: {}, +}; +exports.TypeInfo.AccountMyWorkResult.fields = { + workItemDetails: { + isArray: true, + typeInfo: exports.TypeInfo.AccountWorkWorkItemModel + } +}; +exports.TypeInfo.AccountRecentActivityWorkItemModel.fields = { + activityDate: { + isDate: true, + }, + activityType: { + enumType: exports.TypeInfo.WorkItemRecentActivityType + }, + changedDate: { + isDate: true, + } +}; +exports.TypeInfo.AccountRecentActivityWorkItemModel2.fields = { + activityDate: { + isDate: true, + }, + activityType: { + enumType: exports.TypeInfo.WorkItemRecentActivityType + }, + changedDate: { + isDate: true, + } +}; +exports.TypeInfo.AccountRecentActivityWorkItemModelBase.fields = { + activityDate: { + isDate: true, + }, + activityType: { + enumType: exports.TypeInfo.WorkItemRecentActivityType + }, + changedDate: { + isDate: true, + } +}; +exports.TypeInfo.AccountRecentMentionWorkItemModel.fields = { + mentionedDateField: { + isDate: true, + } +}; +exports.TypeInfo.AccountWorkWorkItemModel.fields = { + changedDate: { + isDate: true, + } +}; +exports.TypeInfo.Comment.fields = { + createdDate: { + isDate: true, + }, + createdOnBehalfDate: { + isDate: true, + }, + modifiedDate: { + isDate: true, + }, + reactions: { + isArray: true, + typeInfo: exports.TypeInfo.CommentReaction + } +}; +exports.TypeInfo.CommentList.fields = { + comments: { + isArray: true, + typeInfo: exports.TypeInfo.Comment + } +}; +exports.TypeInfo.CommentReaction.fields = { + type: { + enumType: exports.TypeInfo.CommentReactionType + } +}; +exports.TypeInfo.CommentVersion.fields = { + createdDate: { + isDate: true, + }, + createdOnBehalfDate: { + isDate: true, + }, + modifiedDate: { + isDate: true, + } +}; +exports.TypeInfo.ExternalDeployment.fields = { + statusDate: { + isDate: true, + } +}; +exports.TypeInfo.QueryBatchGetRequest.fields = { + $expand: { + enumType: exports.TypeInfo.QueryExpand + }, + errorPolicy: { + enumType: exports.TypeInfo.QueryErrorPolicy + } +}; +exports.TypeInfo.QueryHierarchyItem.fields = { + children: { + isArray: true, + typeInfo: exports.TypeInfo.QueryHierarchyItem + }, + clauses: { + typeInfo: exports.TypeInfo.WorkItemQueryClause + }, + createdDate: { + isDate: true, + }, + filterOptions: { + enumType: exports.TypeInfo.LinkQueryMode + }, + lastExecutedDate: { + isDate: true, + }, + lastModifiedDate: { + isDate: true, + }, + linkClauses: { + typeInfo: exports.TypeInfo.WorkItemQueryClause + }, + queryRecursionOption: { + enumType: exports.TypeInfo.QueryRecursionOption + }, + queryType: { + enumType: exports.TypeInfo.QueryType + }, + sourceClauses: { + typeInfo: exports.TypeInfo.WorkItemQueryClause + }, + targetClauses: { + typeInfo: exports.TypeInfo.WorkItemQueryClause + } +}; +exports.TypeInfo.QueryHierarchyItemsResult.fields = { + value: { + isArray: true, + typeInfo: exports.TypeInfo.QueryHierarchyItem + } +}; +exports.TypeInfo.WorkItemBatchGetRequest.fields = { + $expand: { + enumType: exports.TypeInfo.WorkItemExpand + }, + asOf: { + isDate: true, + }, + errorPolicy: { + enumType: exports.TypeInfo.WorkItemErrorPolicy + } +}; +exports.TypeInfo.WorkItemClassificationNode.fields = { + children: { + isArray: true, + typeInfo: exports.TypeInfo.WorkItemClassificationNode + }, + structureType: { + enumType: exports.TypeInfo.TreeNodeStructureType + } +}; +exports.TypeInfo.WorkItemComment.fields = { + revisedDate: { + isDate: true, + } +}; +exports.TypeInfo.WorkItemComments.fields = { + comments: { + isArray: true, + typeInfo: exports.TypeInfo.WorkItemComment + } +}; +exports.TypeInfo.WorkItemField.fields = { + type: { + enumType: exports.TypeInfo.FieldType + }, + usage: { + enumType: exports.TypeInfo.FieldUsage + } +}; +exports.TypeInfo.WorkItemHistory.fields = { + revisedDate: { + isDate: true, + } +}; +exports.TypeInfo.WorkItemQueryClause.fields = { + clauses: { + isArray: true, + typeInfo: exports.TypeInfo.WorkItemQueryClause + }, + logicalOperator: { + enumType: exports.TypeInfo.LogicalOperation + } +}; +exports.TypeInfo.WorkItemQueryResult.fields = { + asOf: { + isDate: true, + }, + queryResultType: { + enumType: exports.TypeInfo.QueryResultType + }, + queryType: { + enumType: exports.TypeInfo.QueryType + } +}; +exports.TypeInfo.WorkItemTypeTemplateUpdateModel.fields = { + actionType: { + enumType: exports.TypeInfo.ProvisioningActionType + }, + templateType: { + enumType: exports.TypeInfo.TemplateType + } +}; +exports.TypeInfo.WorkItemUpdate.fields = { + revisedDate: { + isDate: true, + } +}; + + +/***/ }), + +/***/ 1655: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +/** + * Enum for the type of a field. + */ +var FieldType; +(function (FieldType) { + /** + * String field type. + */ + FieldType[FieldType["String"] = 1] = "String"; + /** + * Integer field type. + */ + FieldType[FieldType["Integer"] = 2] = "Integer"; + /** + * Datetime field type. + */ + FieldType[FieldType["DateTime"] = 3] = "DateTime"; + /** + * Plain Text field type. + */ + FieldType[FieldType["PlainText"] = 5] = "PlainText"; + /** + * HTML (Multiline) field type. + */ + FieldType[FieldType["Html"] = 7] = "Html"; + /** + * Treepath field type. + */ + FieldType[FieldType["TreePath"] = 8] = "TreePath"; + /** + * History field type. + */ + FieldType[FieldType["History"] = 9] = "History"; + /** + * Double field type. + */ + FieldType[FieldType["Double"] = 10] = "Double"; + /** + * Guid field type. + */ + FieldType[FieldType["Guid"] = 11] = "Guid"; + /** + * Boolean field type. + */ + FieldType[FieldType["Boolean"] = 12] = "Boolean"; + /** + * Identity field type. + */ + FieldType[FieldType["Identity"] = 13] = "Identity"; + /** + * Integer picklist field type. + */ + FieldType[FieldType["PicklistInteger"] = 14] = "PicklistInteger"; + /** + * String picklist field type. + */ + FieldType[FieldType["PicklistString"] = 15] = "PicklistString"; + /** + * Double picklist field type. + */ + FieldType[FieldType["PicklistDouble"] = 16] = "PicklistDouble"; +})(FieldType = exports.FieldType || (exports.FieldType = {})); +var GetWorkItemTypeExpand; +(function (GetWorkItemTypeExpand) { + GetWorkItemTypeExpand[GetWorkItemTypeExpand["None"] = 0] = "None"; + GetWorkItemTypeExpand[GetWorkItemTypeExpand["States"] = 1] = "States"; + GetWorkItemTypeExpand[GetWorkItemTypeExpand["Behaviors"] = 2] = "Behaviors"; + GetWorkItemTypeExpand[GetWorkItemTypeExpand["Layout"] = 4] = "Layout"; +})(GetWorkItemTypeExpand = exports.GetWorkItemTypeExpand || (exports.GetWorkItemTypeExpand = {})); +/** + * Type of page + */ +var PageType; +(function (PageType) { + PageType[PageType["Custom"] = 1] = "Custom"; + PageType[PageType["History"] = 2] = "History"; + PageType[PageType["Links"] = 3] = "Links"; + PageType[PageType["Attachments"] = 4] = "Attachments"; +})(PageType = exports.PageType || (exports.PageType = {})); +/** + * Work item type classes' + */ +var WorkItemTypeClass; +(function (WorkItemTypeClass) { + WorkItemTypeClass[WorkItemTypeClass["System"] = 0] = "System"; + WorkItemTypeClass[WorkItemTypeClass["Derived"] = 1] = "Derived"; + WorkItemTypeClass[WorkItemTypeClass["Custom"] = 2] = "Custom"; +})(WorkItemTypeClass = exports.WorkItemTypeClass || (exports.WorkItemTypeClass = {})); +exports.TypeInfo = { + FieldModel: {}, + FieldType: { + enumValues: { + "string": 1, + "integer": 2, + "dateTime": 3, + "plainText": 5, + "html": 7, + "treePath": 8, + "history": 9, + "double": 10, + "guid": 11, + "boolean": 12, + "identity": 13, + "picklistInteger": 14, + "picklistString": 15, + "picklistDouble": 16 + } + }, + FormLayout: {}, + GetWorkItemTypeExpand: { + enumValues: { + "none": 0, + "states": 1, + "behaviors": 2, + "layout": 4 + } + }, + Page: {}, + PageType: { + enumValues: { + "custom": 1, + "history": 2, + "links": 3, + "attachments": 4 + } + }, + WorkItemTypeClass: { + enumValues: { + "system": 0, + "derived": 1, + "custom": 2 + } + }, + WorkItemTypeFieldModel: {}, + WorkItemTypeFieldModel2: {}, + WorkItemTypeModel: {}, +}; +exports.TypeInfo.FieldModel.fields = { + type: { + enumType: exports.TypeInfo.FieldType + } +}; +exports.TypeInfo.FormLayout.fields = { + pages: { + isArray: true, + typeInfo: exports.TypeInfo.Page + } +}; +exports.TypeInfo.Page.fields = { + pageType: { + enumType: exports.TypeInfo.PageType + } +}; +exports.TypeInfo.WorkItemTypeFieldModel.fields = { + type: { + enumType: exports.TypeInfo.FieldType + } +}; +exports.TypeInfo.WorkItemTypeFieldModel2.fields = { + type: { + enumType: exports.TypeInfo.FieldType + } +}; +exports.TypeInfo.WorkItemTypeModel.fields = { + class: { + enumType: exports.TypeInfo.WorkItemTypeClass + }, + layout: { + typeInfo: exports.TypeInfo.FormLayout + } +}; + + +/***/ }), + +/***/ 4524: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +/** + * Indicates the customization-type. Customization-type is System if is system generated or by default. Customization-type is Inherited if the existing workitemtype of inherited process is customized. Customization-type is Custom if the newly created workitemtype is customized. + */ +var CustomizationType; +(function (CustomizationType) { + /** + * Customization-type is System if is system generated workitemtype. + */ + CustomizationType[CustomizationType["System"] = 1] = "System"; + /** + * Customization-type is Inherited if the existing workitemtype of inherited process is customized. + */ + CustomizationType[CustomizationType["Inherited"] = 2] = "Inherited"; + /** + * Customization-type is Custom if the newly created workitemtype is customized. + */ + CustomizationType[CustomizationType["Custom"] = 3] = "Custom"; +})(CustomizationType = exports.CustomizationType || (exports.CustomizationType = {})); +/** + * Enum for the type of a field. + */ +var FieldType; +(function (FieldType) { + /** + * String field type. + */ + FieldType[FieldType["String"] = 1] = "String"; + /** + * Integer field type. + */ + FieldType[FieldType["Integer"] = 2] = "Integer"; + /** + * DateTime field type. + */ + FieldType[FieldType["DateTime"] = 3] = "DateTime"; + /** + * Plain text field type. + */ + FieldType[FieldType["PlainText"] = 5] = "PlainText"; + /** + * HTML (Multiline) field type. + */ + FieldType[FieldType["Html"] = 7] = "Html"; + /** + * Treepath field type. + */ + FieldType[FieldType["TreePath"] = 8] = "TreePath"; + /** + * History field type. + */ + FieldType[FieldType["History"] = 9] = "History"; + /** + * Double field type. + */ + FieldType[FieldType["Double"] = 10] = "Double"; + /** + * Guid field type. + */ + FieldType[FieldType["Guid"] = 11] = "Guid"; + /** + * Boolean field type. + */ + FieldType[FieldType["Boolean"] = 12] = "Boolean"; + /** + * Identity field type. + */ + FieldType[FieldType["Identity"] = 13] = "Identity"; + /** + * Integer picklist field type. + */ + FieldType[FieldType["PicklistInteger"] = 14] = "PicklistInteger"; + /** + * String picklist field type. + */ + FieldType[FieldType["PicklistString"] = 15] = "PicklistString"; + /** + * Double picklist field type. + */ + FieldType[FieldType["PicklistDouble"] = 16] = "PicklistDouble"; +})(FieldType = exports.FieldType || (exports.FieldType = {})); +/** + * Expand options to fetch fields for behaviors API. + */ +var GetBehaviorsExpand; +(function (GetBehaviorsExpand) { + /** + * Default none option. + */ + GetBehaviorsExpand[GetBehaviorsExpand["None"] = 0] = "None"; + /** + * This option returns fields associated with a behavior. + */ + GetBehaviorsExpand[GetBehaviorsExpand["Fields"] = 1] = "Fields"; + /** + * This option returns fields associated with this behavior and all behaviors from which it inherits. + */ + GetBehaviorsExpand[GetBehaviorsExpand["CombinedFields"] = 2] = "CombinedFields"; +})(GetBehaviorsExpand = exports.GetBehaviorsExpand || (exports.GetBehaviorsExpand = {})); +/** + * The expand level of returned processes. + */ +var GetProcessExpandLevel; +(function (GetProcessExpandLevel) { + /** + * No expand level. + */ + GetProcessExpandLevel[GetProcessExpandLevel["None"] = 0] = "None"; + /** + * Projects expand level. + */ + GetProcessExpandLevel[GetProcessExpandLevel["Projects"] = 1] = "Projects"; +})(GetProcessExpandLevel = exports.GetProcessExpandLevel || (exports.GetProcessExpandLevel = {})); +/** + * Flag to define what properties to return in get work item type response. + */ +var GetWorkItemTypeExpand; +(function (GetWorkItemTypeExpand) { + /** + * Returns no properties in get work item type response. + */ + GetWorkItemTypeExpand[GetWorkItemTypeExpand["None"] = 0] = "None"; + /** + * Returns states property in get work item type response. + */ + GetWorkItemTypeExpand[GetWorkItemTypeExpand["States"] = 1] = "States"; + /** + * Returns behaviors property in get work item type response. + */ + GetWorkItemTypeExpand[GetWorkItemTypeExpand["Behaviors"] = 2] = "Behaviors"; + /** + * Returns layout property in get work item type response. + */ + GetWorkItemTypeExpand[GetWorkItemTypeExpand["Layout"] = 4] = "Layout"; +})(GetWorkItemTypeExpand = exports.GetWorkItemTypeExpand || (exports.GetWorkItemTypeExpand = {})); +/** + * Enum for the types of pages in the work item form layout + */ +var PageType; +(function (PageType) { + /** + * Custom page type. + */ + PageType[PageType["Custom"] = 1] = "Custom"; + /** + * History page type. + */ + PageType[PageType["History"] = 2] = "History"; + /** + * Link page type. + */ + PageType[PageType["Links"] = 3] = "Links"; + /** + * Attachment page type. + */ + PageType[PageType["Attachments"] = 4] = "Attachments"; +})(PageType = exports.PageType || (exports.PageType = {})); +var ProcessClass; +(function (ProcessClass) { + ProcessClass[ProcessClass["System"] = 0] = "System"; + ProcessClass[ProcessClass["Derived"] = 1] = "Derived"; + ProcessClass[ProcessClass["Custom"] = 2] = "Custom"; +})(ProcessClass = exports.ProcessClass || (exports.ProcessClass = {})); +/** + * Expand options for the work item field(s) request. + */ +var ProcessWorkItemTypeFieldsExpandLevel; +(function (ProcessWorkItemTypeFieldsExpandLevel) { + /** + * Includes only basic properties of the field. + */ + ProcessWorkItemTypeFieldsExpandLevel[ProcessWorkItemTypeFieldsExpandLevel["None"] = 0] = "None"; + /** + * Includes allowed values for the field. + */ + ProcessWorkItemTypeFieldsExpandLevel[ProcessWorkItemTypeFieldsExpandLevel["AllowedValues"] = 1] = "AllowedValues"; + /** + * Includes allowed values and dependent fields of the field. + */ + ProcessWorkItemTypeFieldsExpandLevel[ProcessWorkItemTypeFieldsExpandLevel["All"] = 2] = "All"; +})(ProcessWorkItemTypeFieldsExpandLevel = exports.ProcessWorkItemTypeFieldsExpandLevel || (exports.ProcessWorkItemTypeFieldsExpandLevel = {})); +/** + * Type of action to take when the rule is triggered. + */ +var RuleActionType; +(function (RuleActionType) { + /** + * Make the target field required. Example : {"actionType":"$makeRequired","targetField":"Microsoft.VSTS.Common.Activity","value":""} + */ + RuleActionType[RuleActionType["MakeRequired"] = 1] = "MakeRequired"; + /** + * Make the target field read-only. Example : {"actionType":"$makeReadOnly","targetField":"Microsoft.VSTS.Common.Activity","value":""} + */ + RuleActionType[RuleActionType["MakeReadOnly"] = 2] = "MakeReadOnly"; + /** + * Set a default value on the target field. This is used if the user creates a integer/string field and sets a default value of this field. + */ + RuleActionType[RuleActionType["SetDefaultValue"] = 3] = "SetDefaultValue"; + /** + * Set the default value on the target field from server clock. This is used if user creates the field like Date/Time and uses default value. + */ + RuleActionType[RuleActionType["SetDefaultFromClock"] = 4] = "SetDefaultFromClock"; + /** + * Set the default current user value on the target field. This is used if the user creates the field of type identity and uses default value. + */ + RuleActionType[RuleActionType["SetDefaultFromCurrentUser"] = 5] = "SetDefaultFromCurrentUser"; + /** + * Set the default value on from existing field to the target field. This used wants to set a existing field value to the current field. + */ + RuleActionType[RuleActionType["SetDefaultFromField"] = 6] = "SetDefaultFromField"; + /** + * Set the value of target field to given value. Example : {actionType: "$copyValue", targetField: "ScrumInherited.mypicklist", value: "samplevalue"} + */ + RuleActionType[RuleActionType["CopyValue"] = 7] = "CopyValue"; + /** + * Set the value from clock. + */ + RuleActionType[RuleActionType["CopyFromClock"] = 8] = "CopyFromClock"; + /** + * Set the current user to the target field. Example : {"actionType":"$copyFromCurrentUser","targetField":"System.AssignedTo","value":""}. + */ + RuleActionType[RuleActionType["CopyFromCurrentUser"] = 9] = "CopyFromCurrentUser"; + /** + * Copy the value from a specified field and set to target field. Example : {actionType: "$copyFromField", targetField: "System.AssignedTo", value:"System.ChangedBy"}. Here, value is copied from "System.ChangedBy" and set to "System.AssingedTo" field. + */ + RuleActionType[RuleActionType["CopyFromField"] = 10] = "CopyFromField"; + /** + * Set the value of the target field to empty. + */ + RuleActionType[RuleActionType["SetValueToEmpty"] = 11] = "SetValueToEmpty"; + /** + * Use the current time to set the value of the target field. Example : {actionType: "$copyFromServerClock", targetField: "System.CreatedDate", value: ""} + */ + RuleActionType[RuleActionType["CopyFromServerClock"] = 12] = "CopyFromServerClock"; + /** + * Use the current user to set the value of the target field. + */ + RuleActionType[RuleActionType["CopyFromServerCurrentUser"] = 13] = "CopyFromServerCurrentUser"; + /** + * Hides target field from the form. This is a server side only action. + */ + RuleActionType[RuleActionType["HideTargetField"] = 14] = "HideTargetField"; + /** + * Disallows a field from being set to a specific value. + */ + RuleActionType[RuleActionType["DisallowValue"] = 15] = "DisallowValue"; +})(RuleActionType = exports.RuleActionType || (exports.RuleActionType = {})); +/** + * Type of rule condition. + */ +var RuleConditionType; +(function (RuleConditionType) { + /** + * $When. This condition limits the execution of its children to cases when another field has a particular value, i.e. when the Is value of the referenced field is equal to the given literal value. + */ + RuleConditionType[RuleConditionType["When"] = 1] = "When"; + /** + * $WhenNot.This condition limits the execution of its children to cases when another field does not have a particular value, i.e.when the Is value of the referenced field is not equal to the given literal value. + */ + RuleConditionType[RuleConditionType["WhenNot"] = 2] = "WhenNot"; + /** + * $WhenChanged.This condition limits the execution of its children to cases when another field has changed, i.e.when the Is value of the referenced field is not equal to the Was value of that field. + */ + RuleConditionType[RuleConditionType["WhenChanged"] = 3] = "WhenChanged"; + /** + * $WhenNotChanged.This condition limits the execution of its children to cases when another field has not changed, i.e.when the Is value of the referenced field is equal to the Was value of that field. + */ + RuleConditionType[RuleConditionType["WhenNotChanged"] = 4] = "WhenNotChanged"; + RuleConditionType[RuleConditionType["WhenWas"] = 5] = "WhenWas"; + RuleConditionType[RuleConditionType["WhenStateChangedTo"] = 6] = "WhenStateChangedTo"; + RuleConditionType[RuleConditionType["WhenStateChangedFromAndTo"] = 7] = "WhenStateChangedFromAndTo"; + RuleConditionType[RuleConditionType["WhenWorkItemIsCreated"] = 8] = "WhenWorkItemIsCreated"; + RuleConditionType[RuleConditionType["WhenValueIsDefined"] = 9] = "WhenValueIsDefined"; + RuleConditionType[RuleConditionType["WhenValueIsNotDefined"] = 10] = "WhenValueIsNotDefined"; + RuleConditionType[RuleConditionType["WhenCurrentUserIsMemberOfGroup"] = 11] = "WhenCurrentUserIsMemberOfGroup"; + RuleConditionType[RuleConditionType["WhenCurrentUserIsNotMemberOfGroup"] = 12] = "WhenCurrentUserIsNotMemberOfGroup"; +})(RuleConditionType = exports.RuleConditionType || (exports.RuleConditionType = {})); +var WorkItemTypeClass; +(function (WorkItemTypeClass) { + WorkItemTypeClass[WorkItemTypeClass["System"] = 0] = "System"; + WorkItemTypeClass[WorkItemTypeClass["Derived"] = 1] = "Derived"; + WorkItemTypeClass[WorkItemTypeClass["Custom"] = 2] = "Custom"; +})(WorkItemTypeClass = exports.WorkItemTypeClass || (exports.WorkItemTypeClass = {})); +exports.TypeInfo = { + CreateProcessRuleRequest: {}, + CustomizationType: { + enumValues: { + "system": 1, + "inherited": 2, + "custom": 3 + } + }, + FieldModel: {}, + FieldType: { + enumValues: { + "string": 1, + "integer": 2, + "dateTime": 3, + "plainText": 5, + "html": 7, + "treePath": 8, + "history": 9, + "double": 10, + "guid": 11, + "boolean": 12, + "identity": 13, + "picklistInteger": 14, + "picklistString": 15, + "picklistDouble": 16 + } + }, + FormLayout: {}, + GetBehaviorsExpand: { + enumValues: { + "none": 0, + "fields": 1, + "combinedFields": 2 + } + }, + GetProcessExpandLevel: { + enumValues: { + "none": 0, + "projects": 1 + } + }, + GetWorkItemTypeExpand: { + enumValues: { + "none": 0, + "states": 1, + "behaviors": 2, + "layout": 4 + } + }, + Page: {}, + PageType: { + enumValues: { + "custom": 1, + "history": 2, + "links": 3, + "attachments": 4 + } + }, + ProcessBehavior: {}, + ProcessClass: { + enumValues: { + "system": 0, + "derived": 1, + "custom": 2 + } + }, + ProcessInfo: {}, + ProcessModel: {}, + ProcessProperties: {}, + ProcessRule: {}, + ProcessWorkItemType: {}, + ProcessWorkItemTypeField: {}, + ProcessWorkItemTypeFieldsExpandLevel: { + enumValues: { + "none": 0, + "allowedValues": 1, + "all": 2 + } + }, + RuleAction: {}, + RuleActionType: { + enumValues: { + "makeRequired": 1, + "makeReadOnly": 2, + "setDefaultValue": 3, + "setDefaultFromClock": 4, + "setDefaultFromCurrentUser": 5, + "setDefaultFromField": 6, + "copyValue": 7, + "copyFromClock": 8, + "copyFromCurrentUser": 9, + "copyFromField": 10, + "setValueToEmpty": 11, + "copyFromServerClock": 12, + "copyFromServerCurrentUser": 13, + "hideTargetField": 14, + "disallowValue": 15 + } + }, + RuleCondition: {}, + RuleConditionType: { + enumValues: { + "when": 1, + "whenNot": 2, + "whenChanged": 3, + "whenNotChanged": 4, + "whenWas": 5, + "whenStateChangedTo": 6, + "whenStateChangedFromAndTo": 7, + "whenWorkItemIsCreated": 8, + "whenValueIsDefined": 9, + "whenValueIsNotDefined": 10, + "whenCurrentUserIsMemberOfGroup": 11, + "whenCurrentUserIsNotMemberOfGroup": 12 + } + }, + UpdateProcessRuleRequest: {}, + WorkItemStateResultModel: {}, + WorkItemTypeClass: { + enumValues: { + "system": 0, + "derived": 1, + "custom": 2 + } + }, + WorkItemTypeModel: {}, +}; +exports.TypeInfo.CreateProcessRuleRequest.fields = { + actions: { + isArray: true, + typeInfo: exports.TypeInfo.RuleAction + }, + conditions: { + isArray: true, + typeInfo: exports.TypeInfo.RuleCondition + } +}; +exports.TypeInfo.FieldModel.fields = { + type: { + enumType: exports.TypeInfo.FieldType + } +}; +exports.TypeInfo.FormLayout.fields = { + pages: { + isArray: true, + typeInfo: exports.TypeInfo.Page + } +}; +exports.TypeInfo.Page.fields = { + pageType: { + enumType: exports.TypeInfo.PageType + } +}; +exports.TypeInfo.ProcessBehavior.fields = { + customization: { + enumType: exports.TypeInfo.CustomizationType + } +}; +exports.TypeInfo.ProcessInfo.fields = { + customizationType: { + enumType: exports.TypeInfo.CustomizationType + } +}; +exports.TypeInfo.ProcessModel.fields = { + properties: { + typeInfo: exports.TypeInfo.ProcessProperties + } +}; +exports.TypeInfo.ProcessProperties.fields = { + class: { + enumType: exports.TypeInfo.ProcessClass + } +}; +exports.TypeInfo.ProcessRule.fields = { + actions: { + isArray: true, + typeInfo: exports.TypeInfo.RuleAction + }, + conditions: { + isArray: true, + typeInfo: exports.TypeInfo.RuleCondition + }, + customizationType: { + enumType: exports.TypeInfo.CustomizationType + } +}; +exports.TypeInfo.ProcessWorkItemType.fields = { + customization: { + enumType: exports.TypeInfo.CustomizationType + }, + layout: { + typeInfo: exports.TypeInfo.FormLayout + }, + states: { + isArray: true, + typeInfo: exports.TypeInfo.WorkItemStateResultModel + } +}; +exports.TypeInfo.ProcessWorkItemTypeField.fields = { + customization: { + enumType: exports.TypeInfo.CustomizationType + }, + type: { + enumType: exports.TypeInfo.FieldType + } +}; +exports.TypeInfo.RuleAction.fields = { + actionType: { + enumType: exports.TypeInfo.RuleActionType + } +}; +exports.TypeInfo.RuleCondition.fields = { + conditionType: { + enumType: exports.TypeInfo.RuleConditionType + } +}; +exports.TypeInfo.UpdateProcessRuleRequest.fields = { + actions: { + isArray: true, + typeInfo: exports.TypeInfo.RuleAction + }, + conditions: { + isArray: true, + typeInfo: exports.TypeInfo.RuleCondition + } +}; +exports.TypeInfo.WorkItemStateResultModel.fields = { + customizationType: { + enumType: exports.TypeInfo.CustomizationType + } +}; +exports.TypeInfo.WorkItemTypeModel.fields = { + class: { + enumType: exports.TypeInfo.WorkItemTypeClass + }, + layout: { + typeInfo: exports.TypeInfo.FormLayout + }, + states: { + isArray: true, + typeInfo: exports.TypeInfo.WorkItemStateResultModel + } +}; + + +/***/ }), + +/***/ 3627: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* +* --------------------------------------------------------- +* Copyright(C) Microsoft Corporation. All rights reserved. +* --------------------------------------------------------- +* +* --------------------------------------------------------- +* Generated file, DO NOT EDIT +* --------------------------------------------------------- +* +* See following wiki page for instructions on how to regenerate: +* https://vsowiki.com/index.php?title=Rest_Client_Generation +*/ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +var InputDataType; +(function (InputDataType) { + /** + * No data type is specified. + */ + InputDataType[InputDataType["None"] = 0] = "None"; + /** + * Represents a textual value. + */ + InputDataType[InputDataType["String"] = 10] = "String"; + /** + * Represents a numberic value. + */ + InputDataType[InputDataType["Number"] = 20] = "Number"; + /** + * Represents a value of true or false. + */ + InputDataType[InputDataType["Boolean"] = 30] = "Boolean"; + /** + * Represents a Guid. + */ + InputDataType[InputDataType["Guid"] = 40] = "Guid"; + /** + * Represents a URI. + */ + InputDataType[InputDataType["Uri"] = 50] = "Uri"; +})(InputDataType = exports.InputDataType || (exports.InputDataType = {})); +var InputFilterOperator; +(function (InputFilterOperator) { + InputFilterOperator[InputFilterOperator["Equals"] = 0] = "Equals"; + InputFilterOperator[InputFilterOperator["NotEquals"] = 1] = "NotEquals"; +})(InputFilterOperator = exports.InputFilterOperator || (exports.InputFilterOperator = {})); +var InputMode; +(function (InputMode) { + /** + * This input should not be shown in the UI + */ + InputMode[InputMode["None"] = 0] = "None"; + /** + * An input text box should be shown + */ + InputMode[InputMode["TextBox"] = 10] = "TextBox"; + /** + * An password input box should be shown + */ + InputMode[InputMode["PasswordBox"] = 20] = "PasswordBox"; + /** + * A select/combo control should be shown + */ + InputMode[InputMode["Combo"] = 30] = "Combo"; + /** + * Radio buttons should be shown + */ + InputMode[InputMode["RadioButtons"] = 40] = "RadioButtons"; + /** + * Checkbox should be shown(for true/false values) + */ + InputMode[InputMode["CheckBox"] = 50] = "CheckBox"; + /** + * A multi-line text area should be shown + */ + InputMode[InputMode["TextArea"] = 60] = "TextArea"; +})(InputMode = exports.InputMode || (exports.InputMode = {})); +exports.TypeInfo = { + InputDataType: { + enumValues: { + "none": 0, + "string": 10, + "number": 20, + "boolean": 30, + "guid": 40, + "uri": 50, + } + }, + InputDescriptor: { + fields: null + }, + InputFilter: { + fields: null + }, + InputFilterCondition: { + fields: null + }, + InputFilterOperator: { + enumValues: { + "equals": 0, + "notEquals": 1, + } + }, + InputMode: { + enumValues: { + "none": 0, + "textBox": 10, + "passwordBox": 20, + "combo": 30, + "radioButtons": 40, + "checkBox": 50, + "textArea": 60, + } + }, + InputValidation: { + fields: null + }, + InputValue: { + fields: null + }, + InputValues: { + fields: null + }, + InputValuesError: { + fields: null + }, + InputValuesQuery: { + fields: null + }, +}; +exports.TypeInfo.InputDescriptor.fields = { + inputMode: { + enumType: exports.TypeInfo.InputMode + }, + validation: { + typeInfo: exports.TypeInfo.InputValidation + }, + values: { + typeInfo: exports.TypeInfo.InputValues + }, +}; +exports.TypeInfo.InputFilter.fields = { + conditions: { + isArray: true, + typeInfo: exports.TypeInfo.InputFilterCondition + }, +}; +exports.TypeInfo.InputFilterCondition.fields = { + operator: { + enumType: exports.TypeInfo.InputFilterOperator + }, +}; +exports.TypeInfo.InputValidation.fields = { + dataType: { + enumType: exports.TypeInfo.InputDataType + }, +}; +exports.TypeInfo.InputValue.fields = {}; +exports.TypeInfo.InputValues.fields = { + error: { + typeInfo: exports.TypeInfo.InputValuesError + }, + possibleValues: { + isArray: true, + typeInfo: exports.TypeInfo.InputValue + }, +}; +exports.TypeInfo.InputValuesError.fields = {}; +exports.TypeInfo.InputValuesQuery.fields = { + inputValues: { + isArray: true, + typeInfo: exports.TypeInfo.InputValues + }, +}; + + +/***/ }), + +/***/ 3052: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* +* --------------------------------------------------------- +* Copyright(C) Microsoft Corporation. All rights reserved. +* --------------------------------------------------------- +* +* --------------------------------------------------------- +* Generated file, DO NOT EDIT +* --------------------------------------------------------- +*/ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +var OperationStatus; +(function (OperationStatus) { + /** + * The operation object does not have the status set. + */ + OperationStatus[OperationStatus["NotSet"] = 0] = "NotSet"; + /** + * The operation has been queued. + */ + OperationStatus[OperationStatus["Queued"] = 1] = "Queued"; + /** + * The operation is in progress. + */ + OperationStatus[OperationStatus["InProgress"] = 2] = "InProgress"; + /** + * The operation was cancelled by the user. + */ + OperationStatus[OperationStatus["Cancelled"] = 3] = "Cancelled"; + /** + * The operation completed successfully. + */ + OperationStatus[OperationStatus["Succeeded"] = 4] = "Succeeded"; + /** + * The operation completed with a failure. + */ + OperationStatus[OperationStatus["Failed"] = 5] = "Failed"; +})(OperationStatus = exports.OperationStatus || (exports.OperationStatus = {})); +exports.TypeInfo = { + OperationReference: { + fields: null + }, + OperationStatus: { + enumValues: { + "notSet": 0, + "queued": 1, + "inProgress": 2, + "cancelled": 3, + "succeeded": 4, + "failed": 5, + } + }, +}; +exports.TypeInfo.OperationReference.fields = { + status: { + enumType: exports.TypeInfo.OperationStatus + }, +}; + + +/***/ }), + +/***/ 6790: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +var DayOfWeek; +(function (DayOfWeek) { + /** + * Indicates Sunday. + */ + DayOfWeek[DayOfWeek["Sunday"] = 0] = "Sunday"; + /** + * Indicates Monday. + */ + DayOfWeek[DayOfWeek["Monday"] = 1] = "Monday"; + /** + * Indicates Tuesday. + */ + DayOfWeek[DayOfWeek["Tuesday"] = 2] = "Tuesday"; + /** + * Indicates Wednesday. + */ + DayOfWeek[DayOfWeek["Wednesday"] = 3] = "Wednesday"; + /** + * Indicates Thursday. + */ + DayOfWeek[DayOfWeek["Thursday"] = 4] = "Thursday"; + /** + * Indicates Friday. + */ + DayOfWeek[DayOfWeek["Friday"] = 5] = "Friday"; + /** + * Indicates Saturday. + */ + DayOfWeek[DayOfWeek["Saturday"] = 6] = "Saturday"; +})(DayOfWeek = exports.DayOfWeek || (exports.DayOfWeek = {})); +exports.TypeInfo = { + DayOfWeek: { + enumValues: { + "sunday": 0, + "monday": 1, + "tuesday": 2, + "wednesday": 3, + "thursday": 4, + "friday": 5, + "saturday": 6 + } + } +}; + + +/***/ }), + +/***/ 4652: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +//---------------------------------------------------------- +// Copyright (C) Microsoft Corporation. All rights reserved. +//---------------------------------------------------------- +Object.defineProperty(exports, "__esModule", ({ value: true })); +/** + * Specifies SQL Server-specific data type of a field, property, for use in a System.Data.SqlClient.SqlParameter. + */ +var SqlDbType; +(function (SqlDbType) { + /** + * A 64-bit signed integer. + */ + SqlDbType[SqlDbType["BigInt"] = 0] = "BigInt"; + /** + * Array of type Byte. A fixed-length stream of binary data ranging between 1 and 8,000 bytes. + */ + SqlDbType[SqlDbType["Binary"] = 1] = "Binary"; + /** + * Boolean. An unsigned numeric value that can be 0, 1, or null. + */ + SqlDbType[SqlDbType["Bit"] = 2] = "Bit"; + /** + * String. A fixed-length stream of non-Unicode characters ranging between 1 and 8,000 characters. + */ + SqlDbType[SqlDbType["Char"] = 3] = "Char"; + /** + * DateTime. Date and time data ranging in value from January 1, 1753 to December 31, 9999 to an accuracy of 3.33 milliseconds. + */ + SqlDbType[SqlDbType["DateTime"] = 4] = "DateTime"; + /** + * Decimal. A fixed precision and scale numeric value between -10 38 -1 and 10 38 -1. + */ + SqlDbType[SqlDbType["Decimal"] = 5] = "Decimal"; + /** + * Double. A floating point number within the range of -1.79E +308 through 1.79E +308. + */ + SqlDbType[SqlDbType["Float"] = 6] = "Float"; + /** + * Array of type Byte. A variable-length stream of binary data ranging from 0 to 2 31 -1 (or 2,147,483,647) bytes. + */ + SqlDbType[SqlDbType["Image"] = 7] = "Image"; + /** + * Int32. A 32-bit signed integer. + */ + SqlDbType[SqlDbType["Int"] = 8] = "Int"; + /** + * Decimal. A currency value ranging from -2 63 (or -9,223,372,036,854,775,808) to 2 63 -1 (or +9,223,372,036,854,775,807) with an accuracy to a ten-thousandth of a currency unit. + */ + SqlDbType[SqlDbType["Money"] = 9] = "Money"; + /** + * String. A fixed-length stream of Unicode characters ranging between 1 and 4,000 characters. + */ + SqlDbType[SqlDbType["NChar"] = 10] = "NChar"; + /** + * String. A variable-length stream of Unicode data with a maximum length of 2 30 - 1 (or 1,073,741,823) characters. + */ + SqlDbType[SqlDbType["NText"] = 11] = "NText"; + /** + * String. A variable-length stream of Unicode characters ranging between 1 and 4,000 characters. Implicit conversion fails if the string is greater than 4,000 characters. Explicitly set the object when working with strings longer than 4,000 characters. Use System.Data.SqlDbType.NVarChar when the database column is nvarchar(max). + */ + SqlDbType[SqlDbType["NVarChar"] = 12] = "NVarChar"; + /** + * Single. A floating point number within the range of -3.40E +38 through 3.40E +38. + */ + SqlDbType[SqlDbType["Real"] = 13] = "Real"; + /** + * Guid. A globally unique identifier (or GUID). + */ + SqlDbType[SqlDbType["UniqueIdentifier"] = 14] = "UniqueIdentifier"; + /** + * DateTime. Date and time data ranging in value from January 1, 1900 to June 6, 2079 to an accuracy of one minute. + */ + SqlDbType[SqlDbType["SmallDateTime"] = 15] = "SmallDateTime"; + /** + * Int16. A 16-bit signed integer. + */ + SqlDbType[SqlDbType["SmallInt"] = 16] = "SmallInt"; + /** + * Decimal. A currency value ranging from -214,748.3648 to +214,748.3647 with an accuracy to a ten-thousandth of a currency unit. + */ + SqlDbType[SqlDbType["SmallMoney"] = 17] = "SmallMoney"; + /** + * String. A variable-length stream of non-Unicode data with a maximum length of 2 31 -1 (or 2,147,483,647) characters. + */ + SqlDbType[SqlDbType["Text"] = 18] = "Text"; + /** + * Array of type System.Byte. Automatically generated binary numbers, which are guaranteed to be unique within a database. timestamp is used typically as a mechanism for version-stamping table rows. The storage size is 8 bytes. + */ + SqlDbType[SqlDbType["Timestamp"] = 19] = "Timestamp"; + /** + * Byte. An 8-bit unsigned integer. + */ + SqlDbType[SqlDbType["TinyInt"] = 20] = "TinyInt"; + /** + * Array of type Byte. A variable-length stream of binary data ranging between 1 and 8,000 bytes. Implicit conversion fails if the byte array is greater than 8,000 bytes. Explicitly set the object when working with byte arrays larger than 8,000 bytes. + */ + SqlDbType[SqlDbType["VarBinary"] = 21] = "VarBinary"; + /** + * String. A variable-length stream of non-Unicode characters ranging between 1 and 8,000 characters. Use System.Data.SqlDbType.VarChar when the database column is varchar(max). + */ + SqlDbType[SqlDbType["VarChar"] = 22] = "VarChar"; + /** + * Object. A special data type that can contain numeric, string, binary, or date data as well as the SQL Server values Empty and Null, which is assumed if no other type is declared. + */ + SqlDbType[SqlDbType["Variant"] = 23] = "Variant"; + /** + * An XML value. Obtain the XML as a string using the System.Data.SqlClient.SqlDataReader.GetValue(System.Int32) method or System.Data.SqlTypes.SqlXml.Value property, or as an System.Xml.XmlReader by calling the System.Data.SqlTypes.SqlXml.CreateReader method. + */ + SqlDbType[SqlDbType["Xml"] = 25] = "Xml"; + /** + * A SQL Server user-defined type (UDT). + */ + SqlDbType[SqlDbType["Udt"] = 29] = "Udt"; + /** + * A special data type for specifying structured data contained in table-valued parameters. + */ + SqlDbType[SqlDbType["Structured"] = 30] = "Structured"; + /** + * Date data ranging in value from January 1,1 AD through December 31, 9999 AD. + */ + SqlDbType[SqlDbType["Date"] = 31] = "Date"; + /** + * Time data based on a 24-hour clock. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds. Corresponds to a SQL Server time value. + */ + SqlDbType[SqlDbType["Time"] = 32] = "Time"; + /** + * Date and time data. Date value range is from January 1,1 AD through December 31, 9999 AD. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds. + */ + SqlDbType[SqlDbType["DateTime2"] = 33] = "DateTime2"; + /** + * Date and time data with time zone awareness. Date value range is from January 1,1 AD through December 31, 9999 AD. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds. Time zone value range is -14:00 through +14:00. + */ + SqlDbType[SqlDbType["DateTimeOffset"] = 34] = "DateTimeOffset"; +})(SqlDbType = exports.SqlDbType || (exports.SqlDbType = {})); +exports.TypeInfo = { + SqlDbType: { + enumValues: { + "BigInt": 0, + "Binary": 1, + "Bit": 2, + "Char": 3, + "DateTime": 4, + "Decimal": 5, + "Float": 6, + "Image": 7, + "Int": 8, + "Money": 9, + "NChar": 10, + "NText": 11, + "NVarChar": 12, + "Real": 13, + "UniqueIdentifier": 14, + "SmallDateTime": 15, + "SmallInt": 16, + "SmallMoney": 17, + "Text": 18, + "Timestamp": 19, + "TinyInt": 20, + "VarBinary": 21, + "VarChar": 22, + "Variant": 23, + "Xml": 25, + "Udt": 29, + "Structured": 30, + "Date": 31, + "Time": 32, + "DateTime2": 33, + "DateTimeOffset": 34 + } + } +}; + + +/***/ }), + +/***/ 4498: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* + * --------------------------------------------------------- + * Copyright(C) Microsoft Corporation. All rights reserved. + * --------------------------------------------------------- + * + * --------------------------------------------------------- + * Generated file, DO NOT EDIT + * --------------------------------------------------------- + */ + +Object.defineProperty(exports, "__esModule", ({ value: true })); +/** + * Enumeration of the options that can be passed in on Connect. + */ +var ConnectOptions; +(function (ConnectOptions) { + /** + * Retrieve no optional data. + */ + ConnectOptions[ConnectOptions["None"] = 0] = "None"; + /** + * Includes information about AccessMappings and ServiceDefinitions. + */ + ConnectOptions[ConnectOptions["IncludeServices"] = 1] = "IncludeServices"; + /** + * Includes the last user access for this host. + */ + ConnectOptions[ConnectOptions["IncludeLastUserAccess"] = 2] = "IncludeLastUserAccess"; + /** + * This is only valid on the deployment host and when true. Will only return inherited definitions. + */ + ConnectOptions[ConnectOptions["IncludeInheritedDefinitionsOnly"] = 4] = "IncludeInheritedDefinitionsOnly"; + /** + * When true will only return non inherited definitions. Only valid at non-deployment host. + */ + ConnectOptions[ConnectOptions["IncludeNonInheritedDefinitionsOnly"] = 8] = "IncludeNonInheritedDefinitionsOnly"; +})(ConnectOptions = exports.ConnectOptions || (exports.ConnectOptions = {})); +var DeploymentFlags; +(function (DeploymentFlags) { + DeploymentFlags[DeploymentFlags["None"] = 0] = "None"; + DeploymentFlags[DeploymentFlags["Hosted"] = 1] = "Hosted"; + DeploymentFlags[DeploymentFlags["OnPremises"] = 2] = "OnPremises"; +})(DeploymentFlags = exports.DeploymentFlags || (exports.DeploymentFlags = {})); +var JWTAlgorithm; +(function (JWTAlgorithm) { + JWTAlgorithm[JWTAlgorithm["None"] = 0] = "None"; + JWTAlgorithm[JWTAlgorithm["HS256"] = 1] = "HS256"; + JWTAlgorithm[JWTAlgorithm["RS256"] = 2] = "RS256"; +})(JWTAlgorithm = exports.JWTAlgorithm || (exports.JWTAlgorithm = {})); +var Operation; +(function (Operation) { + Operation[Operation["Add"] = 0] = "Add"; + Operation[Operation["Remove"] = 1] = "Remove"; + Operation[Operation["Replace"] = 2] = "Replace"; + Operation[Operation["Move"] = 3] = "Move"; + Operation[Operation["Copy"] = 4] = "Copy"; + Operation[Operation["Test"] = 5] = "Test"; +})(Operation = exports.Operation || (exports.Operation = {})); +exports.TypeInfo = { + ConnectOptions: { + enumValues: { + "none": 0, + "includeServices": 1, + "includeLastUserAccess": 2, + "includeInheritedDefinitionsOnly": 4, + "includeNonInheritedDefinitionsOnly": 8 + } + }, + DeploymentFlags: { + enumValues: { + "none": 0, + "hosted": 1, + "onPremises": 2 + } + }, + JsonPatchOperation: {}, + JWTAlgorithm: { + enumValues: { + "none": 0, + "hS256": 1, + "rS256": 2 + } + }, + Operation: { + enumValues: { + "add": 0, + "remove": 1, + "replace": 2, + "move": 3, + "copy": 4, + "test": 5 + } + }, + SignedUrl: {}, + TraceFilter: {}, + VssNotificationEvent: {}, +}; +exports.TypeInfo.JsonPatchOperation.fields = { + op: { + enumType: exports.TypeInfo.Operation + } +}; +exports.TypeInfo.SignedUrl.fields = { + signatureExpires: { + isDate: true, + } +}; +exports.TypeInfo.TraceFilter.fields = { + timeCreated: { + isDate: true, + } +}; +exports.TypeInfo.VssNotificationEvent.fields = { + sourceEventCreatedTime: { + isDate: true, + } +}; + + +/***/ }), + +/***/ 3682: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var register = __nccwpck_require__(4670) +var addHook = __nccwpck_require__(5549) +var removeHook = __nccwpck_require__(6819) + +// bind with array of arguments: https://stackoverflow.com/a/21792913 +var bind = Function.bind +var bindable = bind.bind(bind) + +function bindApi (hook, state, name) { + var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state]) + hook.api = { remove: removeHookRef } + hook.remove = removeHookRef + + ;['before', 'error', 'after', 'wrap'].forEach(function (kind) { + var args = name ? [state, kind, name] : [state, kind] + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args) + }) +} + +function HookSingular () { + var singularHookName = 'h' + var singularHookState = { + registry: {} + } + var singularHook = register.bind(null, singularHookState, singularHookName) + bindApi(singularHook, singularHookState, singularHookName) + return singularHook +} + +function HookCollection () { + var state = { + registry: {} + } + + var hook = register.bind(null, state) + bindApi(hook, state) + + return hook +} + +var collectionHookDeprecationMessageDisplayed = false +function Hook () { + if (!collectionHookDeprecationMessageDisplayed) { + console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4') + collectionHookDeprecationMessageDisplayed = true + } + return HookCollection() +} + +Hook.Singular = HookSingular.bind() +Hook.Collection = HookCollection.bind() + +module.exports = Hook +// expose constructors as a named property for TypeScript +module.exports.Hook = Hook +module.exports.Singular = Hook.Singular +module.exports.Collection = Hook.Collection + + +/***/ }), + +/***/ 5549: +/***/ ((module) => { + +module.exports = addHook; + +function addHook(state, kind, name, hook) { + var orig = hook; + if (!state.registry[name]) { + state.registry[name] = []; + } + + if (kind === "before") { + hook = function (method, options) { + return Promise.resolve() + .then(orig.bind(null, options)) + .then(method.bind(null, options)); + }; + } + + if (kind === "after") { + hook = function (method, options) { + var result; + return Promise.resolve() + .then(method.bind(null, options)) + .then(function (result_) { + result = result_; + return orig(result, options); + }) + .then(function () { + return result; + }); + }; + } + + if (kind === "error") { + hook = function (method, options) { + return Promise.resolve() + .then(method.bind(null, options)) + .catch(function (error) { + return orig(error, options); + }); + }; + } + + state.registry[name].push({ + hook: hook, + orig: orig, + }); +} + + +/***/ }), + +/***/ 4670: +/***/ ((module) => { + +module.exports = register; + +function register(state, name, method, options) { + if (typeof method !== "function") { + throw new Error("method for before hook must be a function"); + } + + if (!options) { + options = {}; + } + + if (Array.isArray(name)) { + return name.reverse().reduce(function (callback, name) { + return register.bind(null, state, name, callback, options); + }, method)(); + } + + return Promise.resolve().then(function () { + if (!state.registry[name]) { + return method(options); + } + + return state.registry[name].reduce(function (method, registered) { + return registered.hook.bind(null, method, options); + }, method)(); + }); +} + + +/***/ }), + +/***/ 6819: +/***/ ((module) => { + +module.exports = removeHook; + +function removeHook(state, name, method) { + if (!state.registry[name]) { + return; + } + + var index = state.registry[name] + .map(function (registered) { + return registered.orig; + }) + .indexOf(method); + + if (index === -1) { + return; + } + + state.registry[name].splice(index, 1); +} + + +/***/ }), + +/***/ 8803: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +var GetIntrinsic = __nccwpck_require__(4538); + +var callBind = __nccwpck_require__(2977); + +var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf')); + +module.exports = function callBoundIntrinsic(name, allowMissing) { + var intrinsic = GetIntrinsic(name, !!allowMissing); + if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { + return callBind(intrinsic); + } + return intrinsic; +}; + + +/***/ }), + +/***/ 2977: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +var bind = __nccwpck_require__(8334); +var GetIntrinsic = __nccwpck_require__(4538); + +var $apply = GetIntrinsic('%Function.prototype.apply%'); +var $call = GetIntrinsic('%Function.prototype.call%'); +var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply); + +var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true); +var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); +var $max = GetIntrinsic('%Math.max%'); + +if ($defineProperty) { + try { + $defineProperty({}, 'a', { value: 1 }); + } catch (e) { + // IE 8 has a broken defineProperty + $defineProperty = null; + } +} + +module.exports = function callBind(originalFunction) { + var func = $reflectApply(bind, $call, arguments); + if ($gOPD && $defineProperty) { + var desc = $gOPD(func, 'length'); + if (desc.configurable) { + // original length, plus the receiver, minus any additional arguments (after the receiver) + $defineProperty( + func, + 'length', + { value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) } + ); + } + } + return func; +}; + +var applyBind = function applyBind() { + return $reflectApply(bind, $apply, arguments); +}; + +if ($defineProperty) { + $defineProperty(module.exports, 'apply', { value: applyBind }); +} else { + module.exports.apply = applyBind; +} + + +/***/ }), + +/***/ 8932: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = 'Deprecation'; + } + +} + +exports.Deprecation = Deprecation; + + +/***/ }), + +/***/ 9320: +/***/ ((module) => { + +"use strict"; + + +/* eslint no-invalid-this: 1 */ + +var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; +var slice = Array.prototype.slice; +var toStr = Object.prototype.toString; +var funcType = '[object Function]'; + +module.exports = function bind(that) { + var target = this; + if (typeof target !== 'function' || toStr.call(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slice.call(arguments, 1); + + var bound; + var binder = function () { + if (this instanceof bound) { + var result = target.apply( + this, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return this; + } else { + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + } + }; + + var boundLength = Math.max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs.push('$' + i); + } + + bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder); + + if (target.prototype) { + var Empty = function Empty() {}; + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + + return bound; +}; + + +/***/ }), + +/***/ 8334: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +var implementation = __nccwpck_require__(9320); + +module.exports = Function.prototype.bind || implementation; + + +/***/ }), + +/***/ 4538: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +var undefined; + +var $SyntaxError = SyntaxError; +var $Function = Function; +var $TypeError = TypeError; + +// eslint-disable-next-line consistent-return +var getEvalledConstructor = function (expressionSyntax) { + try { + return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')(); + } catch (e) {} +}; + +var $gOPD = Object.getOwnPropertyDescriptor; +if ($gOPD) { + try { + $gOPD({}, ''); + } catch (e) { + $gOPD = null; // this is IE 8, which has a broken gOPD + } +} + +var throwTypeError = function () { + throw new $TypeError(); +}; +var ThrowTypeError = $gOPD + ? (function () { + try { + // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties + arguments.callee; // IE 8 does not throw here + return throwTypeError; + } catch (calleeThrows) { + try { + // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '') + return $gOPD(arguments, 'callee').get; + } catch (gOPDthrows) { + return throwTypeError; + } + } + }()) + : throwTypeError; + +var hasSymbols = __nccwpck_require__(587)(); + +var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto + +var needsEval = {}; + +var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array); + +var INTRINSICS = { + '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError, + '%Array%': Array, + '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, + '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined, + '%AsyncFromSyncIteratorPrototype%': undefined, + '%AsyncFunction%': needsEval, + '%AsyncGenerator%': needsEval, + '%AsyncGeneratorFunction%': needsEval, + '%AsyncIteratorPrototype%': needsEval, + '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, + '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt, + '%Boolean%': Boolean, + '%DataView%': typeof DataView === 'undefined' ? undefined : DataView, + '%Date%': Date, + '%decodeURI%': decodeURI, + '%decodeURIComponent%': decodeURIComponent, + '%encodeURI%': encodeURI, + '%encodeURIComponent%': encodeURIComponent, + '%Error%': Error, + '%eval%': eval, // eslint-disable-line no-eval + '%EvalError%': EvalError, + '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array, + '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array, + '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry, + '%Function%': $Function, + '%GeneratorFunction%': needsEval, + '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array, + '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array, + '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, + '%isFinite%': isFinite, + '%isNaN%': isNaN, + '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined, + '%JSON%': typeof JSON === 'object' ? JSON : undefined, + '%Map%': typeof Map === 'undefined' ? undefined : Map, + '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()), + '%Math%': Math, + '%Number%': Number, + '%Object%': Object, + '%parseFloat%': parseFloat, + '%parseInt%': parseInt, + '%Promise%': typeof Promise === 'undefined' ? undefined : Promise, + '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy, + '%RangeError%': RangeError, + '%ReferenceError%': ReferenceError, + '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, + '%RegExp%': RegExp, + '%Set%': typeof Set === 'undefined' ? undefined : Set, + '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()), + '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, + '%String%': String, + '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined, + '%Symbol%': hasSymbols ? Symbol : undefined, + '%SyntaxError%': $SyntaxError, + '%ThrowTypeError%': ThrowTypeError, + '%TypedArray%': TypedArray, + '%TypeError%': $TypeError, + '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array, + '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray, + '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array, + '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array, + '%URIError%': URIError, + '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap, + '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef, + '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet +}; + +var doEval = function doEval(name) { + var value; + if (name === '%AsyncFunction%') { + value = getEvalledConstructor('async function () {}'); + } else if (name === '%GeneratorFunction%') { + value = getEvalledConstructor('function* () {}'); + } else if (name === '%AsyncGeneratorFunction%') { + value = getEvalledConstructor('async function* () {}'); + } else if (name === '%AsyncGenerator%') { + var fn = doEval('%AsyncGeneratorFunction%'); + if (fn) { + value = fn.prototype; + } + } else if (name === '%AsyncIteratorPrototype%') { + var gen = doEval('%AsyncGenerator%'); + if (gen) { + value = getProto(gen.prototype); + } + } + + INTRINSICS[name] = value; + + return value; +}; + +var LEGACY_ALIASES = { + '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'], + '%ArrayPrototype%': ['Array', 'prototype'], + '%ArrayProto_entries%': ['Array', 'prototype', 'entries'], + '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'], + '%ArrayProto_keys%': ['Array', 'prototype', 'keys'], + '%ArrayProto_values%': ['Array', 'prototype', 'values'], + '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'], + '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'], + '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'], + '%BooleanPrototype%': ['Boolean', 'prototype'], + '%DataViewPrototype%': ['DataView', 'prototype'], + '%DatePrototype%': ['Date', 'prototype'], + '%ErrorPrototype%': ['Error', 'prototype'], + '%EvalErrorPrototype%': ['EvalError', 'prototype'], + '%Float32ArrayPrototype%': ['Float32Array', 'prototype'], + '%Float64ArrayPrototype%': ['Float64Array', 'prototype'], + '%FunctionPrototype%': ['Function', 'prototype'], + '%Generator%': ['GeneratorFunction', 'prototype'], + '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'], + '%Int8ArrayPrototype%': ['Int8Array', 'prototype'], + '%Int16ArrayPrototype%': ['Int16Array', 'prototype'], + '%Int32ArrayPrototype%': ['Int32Array', 'prototype'], + '%JSONParse%': ['JSON', 'parse'], + '%JSONStringify%': ['JSON', 'stringify'], + '%MapPrototype%': ['Map', 'prototype'], + '%NumberPrototype%': ['Number', 'prototype'], + '%ObjectPrototype%': ['Object', 'prototype'], + '%ObjProto_toString%': ['Object', 'prototype', 'toString'], + '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'], + '%PromisePrototype%': ['Promise', 'prototype'], + '%PromiseProto_then%': ['Promise', 'prototype', 'then'], + '%Promise_all%': ['Promise', 'all'], + '%Promise_reject%': ['Promise', 'reject'], + '%Promise_resolve%': ['Promise', 'resolve'], + '%RangeErrorPrototype%': ['RangeError', 'prototype'], + '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'], + '%RegExpPrototype%': ['RegExp', 'prototype'], + '%SetPrototype%': ['Set', 'prototype'], + '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'], + '%StringPrototype%': ['String', 'prototype'], + '%SymbolPrototype%': ['Symbol', 'prototype'], + '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'], + '%TypedArrayPrototype%': ['TypedArray', 'prototype'], + '%TypeErrorPrototype%': ['TypeError', 'prototype'], + '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'], + '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'], + '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'], + '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'], + '%URIErrorPrototype%': ['URIError', 'prototype'], + '%WeakMapPrototype%': ['WeakMap', 'prototype'], + '%WeakSetPrototype%': ['WeakSet', 'prototype'] +}; + +var bind = __nccwpck_require__(8334); +var hasOwn = __nccwpck_require__(6339); +var $concat = bind.call(Function.call, Array.prototype.concat); +var $spliceApply = bind.call(Function.apply, Array.prototype.splice); +var $replace = bind.call(Function.call, String.prototype.replace); +var $strSlice = bind.call(Function.call, String.prototype.slice); + +/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */ +var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; +var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */ +var stringToPath = function stringToPath(string) { + var first = $strSlice(string, 0, 1); + var last = $strSlice(string, -1); + if (first === '%' && last !== '%') { + throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`'); + } else if (last === '%' && first !== '%') { + throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`'); + } + var result = []; + $replace(string, rePropName, function (match, number, quote, subString) { + result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match; + }); + return result; +}; +/* end adaptation */ + +var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) { + var intrinsicName = name; + var alias; + if (hasOwn(LEGACY_ALIASES, intrinsicName)) { + alias = LEGACY_ALIASES[intrinsicName]; + intrinsicName = '%' + alias[0] + '%'; + } + + if (hasOwn(INTRINSICS, intrinsicName)) { + var value = INTRINSICS[intrinsicName]; + if (value === needsEval) { + value = doEval(intrinsicName); + } + if (typeof value === 'undefined' && !allowMissing) { + throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!'); + } + + return { + alias: alias, + name: intrinsicName, + value: value + }; + } + + throw new $SyntaxError('intrinsic ' + name + ' does not exist!'); +}; + +module.exports = function GetIntrinsic(name, allowMissing) { + if (typeof name !== 'string' || name.length === 0) { + throw new $TypeError('intrinsic name must be a non-empty string'); + } + if (arguments.length > 1 && typeof allowMissing !== 'boolean') { + throw new $TypeError('"allowMissing" argument must be a boolean'); + } + + var parts = stringToPath(name); + var intrinsicBaseName = parts.length > 0 ? parts[0] : ''; + + var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing); + var intrinsicRealName = intrinsic.name; + var value = intrinsic.value; + var skipFurtherCaching = false; + + var alias = intrinsic.alias; + if (alias) { + intrinsicBaseName = alias[0]; + $spliceApply(parts, $concat([0, 1], alias)); + } + + for (var i = 1, isOwn = true; i < parts.length; i += 1) { + var part = parts[i]; + var first = $strSlice(part, 0, 1); + var last = $strSlice(part, -1); + if ( + ( + (first === '"' || first === "'" || first === '`') + || (last === '"' || last === "'" || last === '`') + ) + && first !== last + ) { + throw new $SyntaxError('property names with quotes must have matching quotes'); + } + if (part === 'constructor' || !isOwn) { + skipFurtherCaching = true; + } + + intrinsicBaseName += '.' + part; + intrinsicRealName = '%' + intrinsicBaseName + '%'; + + if (hasOwn(INTRINSICS, intrinsicRealName)) { + value = INTRINSICS[intrinsicRealName]; + } else if (value != null) { + if (!(part in value)) { + if (!allowMissing) { + throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.'); + } + return void undefined; + } + if ($gOPD && (i + 1) >= parts.length) { + var desc = $gOPD(value, part); + isOwn = !!desc; + + // By convention, when a data property is converted to an accessor + // property to emulate a data property that does not suffer from + // the override mistake, that accessor's getter is marked with + // an `originalValue` property. Here, when we detect this, we + // uphold the illusion by pretending to see that original data + // property, i.e., returning the value rather than the getter + // itself. + if (isOwn && 'get' in desc && !('originalValue' in desc.get)) { + value = desc.get; + } else { + value = value[part]; + } + } else { + isOwn = hasOwn(value, part); + value = value[part]; + } + + if (isOwn && !skipFurtherCaching) { + INTRINSICS[intrinsicRealName] = value; + } + } + } + return value; +}; + + +/***/ }), + +/***/ 587: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +var origSymbol = global.Symbol; +var hasSymbolSham = __nccwpck_require__(7747); + +module.exports = function hasNativeSymbols() { + if (typeof origSymbol !== 'function') { return false; } + if (typeof Symbol !== 'function') { return false; } + if (typeof origSymbol('foo') !== 'symbol') { return false; } + if (typeof Symbol('bar') !== 'symbol') { return false; } + + return hasSymbolSham(); +}; + + +/***/ }), + +/***/ 7747: +/***/ ((module) => { + +"use strict"; + + +/* eslint complexity: [2, 18], max-statements: [2, 33] */ +module.exports = function hasSymbols() { + if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } + if (typeof Symbol.iterator === 'symbol') { return true; } + + var obj = {}; + var sym = Symbol('test'); + var symObj = Object(sym); + if (typeof sym === 'string') { return false; } + + if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; } + if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; } + + // temp disabled per https://github.com/ljharb/object.assign/issues/17 + // if (sym instanceof Symbol) { return false; } + // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4 + // if (!(symObj instanceof Symbol)) { return false; } + + // if (typeof Symbol.prototype.toString !== 'function') { return false; } + // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; } + + var symVal = 42; + obj[sym] = symVal; + for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax + if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } + + if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } + + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { return false; } + + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } + + if (typeof Object.getOwnPropertyDescriptor === 'function') { + var descriptor = Object.getOwnPropertyDescriptor(obj, sym); + if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; } + } + + return true; +}; + + +/***/ }), + +/***/ 6339: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +var bind = __nccwpck_require__(8334); + +module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); + + +/***/ }), + +/***/ 3287: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObject(o) { + return Object.prototype.toString.call(o) === '[object Object]'; +} + +function isPlainObject(o) { + var ctor,prot; + + if (isObject(o) === false) return false; + + // If has modified constructor + ctor = o.constructor; + if (ctor === undefined) return true; + + // If has modified prototype + prot = ctor.prototype; + if (isObject(prot) === false) return false; + + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + + // Most likely a plain Object + return true; +} + +exports.isPlainObject = isPlainObject; + + +/***/ }), + +/***/ 467: +/***/ ((module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var Stream = _interopDefault(__nccwpck_require__(2413)); +var http = _interopDefault(__nccwpck_require__(8605)); +var Url = _interopDefault(__nccwpck_require__(8835)); +var https = _interopDefault(__nccwpck_require__(7211)); +var zlib = _interopDefault(__nccwpck_require__(8761)); + +// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js + +// fix for "Readable" isn't a named export issue +const Readable = Stream.Readable; + +const BUFFER = Symbol('buffer'); +const TYPE = Symbol('type'); + +class Blob { + constructor() { + this[TYPE] = ''; + + const blobParts = arguments[0]; + const options = arguments[1]; + + const buffers = []; + let size = 0; + + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from(typeof element === 'string' ? element : String(element)); + } + size += buffer.length; + buffers.push(buffer); + } + } + + this[BUFFER] = Buffer.concat(buffers); + + let type = options && options.type !== undefined && String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function () {}; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return '[object Blob]'; + } + slice() { + const size = this.size; + + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === undefined) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === undefined) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); + + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); + const blob = new Blob([], { type: arguments[2] }); + blob[BUFFER] = slicedBuffer; + return blob; + } +} + +Object.defineProperties(Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } +}); + +Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: 'Blob', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * fetch-error.js + * + * FetchError interface for operational errors + */ + +/** + * Create FetchError instance + * + * @param String message Error message for human + * @param String type Error type for machine + * @param String systemError For Node.js system error + * @return FetchError + */ +function FetchError(message, type, systemError) { + Error.call(this, message); + + this.message = message; + this.type = type; + + // when err.type is `system`, err.code contains system error code + if (systemError) { + this.code = this.errno = systemError.code; + } + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +FetchError.prototype = Object.create(Error.prototype); +FetchError.prototype.constructor = FetchError; +FetchError.prototype.name = 'FetchError'; + +let convert; +try { + convert = __nccwpck_require__(2877).convert; +} catch (e) {} + +const INTERNALS = Symbol('Body internals'); + +// fix an issue where "PassThrough" isn't a named export for node <10 +const PassThrough = Stream.PassThrough; + +/** + * Body mixin + * + * Ref: https://fetch.spec.whatwg.org/#body + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +function Body(body) { + var _this = this; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$size = _ref.size; + + let size = _ref$size === undefined ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; + + if (body == null) { + // body is undefined or null + body = null; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + body = Buffer.from(body.toString()); + } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { + // body is ArrayBuffer + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream) ; else { + // none of the above + // coerce to string then buffer + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null + }; + this.size = size; + this.timeout = timeout; + + if (body instanceof Stream) { + body.on('error', function (err) { + const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); + _this[INTERNALS].error = error; + }); + } +} + +Body.prototype = { + get body() { + return this[INTERNALS].body; + }, + + get bodyUsed() { + return this[INTERNALS].disturbed; + }, + + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function (buf) { + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + }); + }, + + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = this.headers && this.headers.get('content-type') || ''; + return consumeBody.call(this).then(function (buf) { + return Object.assign( + // Prevent copying + new Blob([], { + type: ct.toLowerCase() + }), { + [BUFFER]: buf + }); + }); + }, + + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; + + return consumeBody.call(this).then(function (buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); + } + }); + }, + + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function (buffer) { + return buffer.toString(); + }); + }, + + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, + + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; + + return consumeBody.call(this).then(function (buffer) { + return convertBody(buffer, _this3.headers); + }); + } +}; + +// In browsers, all properties are enumerable. +Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true } +}); + +Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } +}; + +/** + * Consume and convert an entire Body to a Buffer. + * + * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * + * @return Promise + */ +function consumeBody() { + var _this4 = this; + + if (this[INTERNALS].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } + + this[INTERNALS].disturbed = true; + + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + + let body = this.body; + + // body is null + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is blob + if (isBlob(body)) { + body = body.stream(); + } + + // body is buffer + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + + // istanbul ignore if: should never happen + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is stream + // get ready to actually consume the body + let accum = []; + let accumBytes = 0; + let abort = false; + + return new Body.Promise(function (resolve, reject) { + let resTimeout; + + // allow timeout on slow response body + if (_this4.timeout) { + resTimeout = setTimeout(function () { + abort = true; + reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); + }, _this4.timeout); + } + + // handle stream errors + body.on('error', function (err) { + if (err.name === 'AbortError') { + // if the request was aborted, reject with this Error + abort = true; + reject(err); + } else { + // other errors, such as incorrect content-encoding + reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + + body.on('data', function (chunk) { + if (abort || chunk === null) { + return; + } + + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); + return; + } + + accumBytes += chunk.length; + accum.push(chunk); + }); + + body.on('end', function () { + if (abort) { + return; + } + + clearTimeout(resTimeout); + + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + // handle streams that have accumulated too much data (issue #414) + reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + }); +} + +/** + * Detect buffer encoding and convert to target encoding + * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * + * @param Buffer buffer Incoming buffer + * @param String encoding Target encoding + * @return String + */ +function convertBody(buffer, headers) { + if (typeof convert !== 'function') { + throw new Error('The package `encoding` must be installed to use the textConverted() function'); + } + + const ct = headers.get('content-type'); + let charset = 'utf-8'; + let res, str; + + // header + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } + + // no charset in content type, peek at response body for at most 1024 bytes + str = buffer.slice(0, 1024).toString(); + + // html5 + if (!res && str) { + res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; + + this[MAP] = Object.create(null); + + if (init instanceof Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); + + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } + + return; + } + + // We don't worry about converting prop to ByteString here as append() + // will handle it. + if (init == null) ; else if (typeof init === 'object') { + const method = init[Symbol.iterator]; + if (method != null) { + if (typeof method !== 'function') { + throw new TypeError('Header pairs must be iterable'); + } + + // sequence> + // Note: per spec we have to first exhaust the lists then process them + const pairs = []; + for (const pair of init) { + if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { + throw new TypeError('Each header pair must be iterable'); + } + pairs.push(Array.from(pair)); + } + + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple'); + } + this.append(pair[0], pair[1]); + } + } else { + // record + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError('Provided initializer must be an object'); + } + } + + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === undefined) { + return null; + } + + return this[MAP][key].join(', '); + } + + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], + value = _pairs$i[1]; + + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } + + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== undefined ? key : name] = [value]; + } + + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== undefined) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } + + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== undefined; + } + + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== undefined) { + delete this[MAP][key]; + } + } + + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } + + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, 'key'); + } + + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, 'value'); + } + + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value'); + } +} +Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + +Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true } +}); + +function getHeaders(headers) { + let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + + const keys = Object.keys(headers[MAP]).sort(); + return keys.map(kind === 'key' ? function (k) { + return k.toLowerCase(); + } : kind === 'value' ? function (k) { + return headers[MAP][k].join(', '); + } : function (k) { + return [k.toLowerCase(), headers[MAP][k].join(', ')]; + }); +} + +const INTERNAL = Symbol('internal'); + +function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0 + }; + return iterator; +} + +const HeadersIteratorPrototype = Object.setPrototypeOf({ + next() { + // istanbul ignore if + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError('Value of `this` is not a HeadersIterator'); + } + + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, + kind = _INTERNAL.kind, + index = _INTERNAL.index; + + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: undefined, + done: true + }; + } + + this[INTERNAL].index = index + 1; + + return { + value: values[index], + done: false + }; + } +}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + +Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * Export the Headers object in a form that Node.js can consume. + * + * @param Headers headers + * @return Object + */ +function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + + // http.request() only supports string as Host header. This hack makes + // specifying custom Host header possible. + const hostHeaderKey = find(headers[MAP], 'Host'); + if (hostHeaderKey !== undefined) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + + return obj; +} + +/** + * Create a Headers object from an object of headers, ignoring those that do + * not conform to HTTP grammar productions. + * + * @param Object obj Object of headers + * @return Headers + */ +function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === undefined) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; +} + +const INTERNALS$1 = Symbol('Response internals'); + +// fix an issue where "STATUS_CODES" aren't a named export for node <10 +const STATUS_CODES = http.STATUS_CODES; + +/** + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +class Response { + constructor() { + let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + Body.call(this, body, opts); + + const status = opts.status || 200; + const headers = new Headers(opts.headers); + + if (body != null && !headers.has('Content-Type')) { + const contentType = extractContentType(body); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter + }; + } + + get url() { + return this[INTERNALS$1].url || ''; + } + + get status() { + return this[INTERNALS$1].status; + } + + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; + } + + get redirected() { + return this[INTERNALS$1].counter > 0; + } + + get statusText() { + return this[INTERNALS$1].statusText; + } + + get headers() { + return this[INTERNALS$1].headers; + } + + /** + * Clone this response + * + * @return Response + */ + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected + }); + } +} + +Body.mixIn(Response.prototype); + +Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } +}); + +Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true +}); + +const INTERNALS$2 = Symbol('Request internals'); + +// fix an issue where "format", "parse" aren't a named export for node <10 +const parse_url = Url.parse; +const format_url = Url.format; + +const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; + +/** + * Check if a value is an instance of Request. + * + * @param Mixed input + * @return Boolean + */ +function isRequest(input) { + return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; +} + +function isAbortSignal(signal) { + const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === 'AbortSignal'); +} + +/** + * Request class + * + * @param Mixed input Url or Request instance + * @param Object init Custom options + * @return Void + */ +class Request { + constructor(input) { + let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + let parsedURL; + + // normalize input + if (!isRequest(input)) { + if (input && input.href) { + // in order to support Node.js' Url objects; though WHATWG's URL objects + // will fall into this branch also (since their `toString()` will return + // `href` property anyway) + parsedURL = parse_url(input.href); + } else { + // coerce input to a string before attempting to parse + parsedURL = parse_url(`${input}`); + } + input = {}; + } else { + parsedURL = parse_url(input.url); + } + + let method = init.method || input.method || 'GET'; + method = method.toUpperCase(); + + if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body'); + } + + let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; + + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0 + }); + + const headers = new Headers(init.headers || input.headers || {}); + + if (inputBody != null && !headers.has('Content-Type')) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + let signal = isRequest(input) ? input.signal : null; + if ('signal' in init) signal = init.signal; + + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError('Expected signal to be an instanceof AbortSignal'); + } + + this[INTERNALS$2] = { + method, + redirect: init.redirect || input.redirect || 'follow', + headers, + parsedURL, + signal + }; + + // node-fetch-only options + this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; + this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; + } + + get method() { + return this[INTERNALS$2].method; + } + + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } + + get headers() { + return this[INTERNALS$2].headers; + } + + get redirect() { + return this[INTERNALS$2].redirect; + } + + get signal() { + return this[INTERNALS$2].signal; + } + + /** + * Clone this request + * + * @return Request + */ + clone() { + return new Request(this); + } +} + +Body.mixIn(Request.prototype); + +Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: 'Request', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true } +}); + +/** + * Convert a Request to Node.js http request options. + * + * @param Request A Request instance + * @return Object The options object to be passed to http.request + */ +function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); + + // fetch step 1.3 + if (!headers.has('Accept')) { + headers.set('Accept', '*/*'); + } + + // Basic fetch + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError('Only absolute URLs are supported'); + } + + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError('Only HTTP(S) protocols are supported'); + } + + if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { + throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); + } + + // HTTP-network-or-cache fetch steps 2.4-2.7 + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = '0'; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === 'number') { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set('Content-Length', contentLengthValue); + } + + // HTTP-network-or-cache fetch step 2.11 + if (!headers.has('User-Agent')) { + headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); + } + + // HTTP-network-or-cache fetch step 2.15 + if (request.compress && !headers.has('Accept-Encoding')) { + headers.set('Accept-Encoding', 'gzip,deflate'); + } + + let agent = request.agent; + if (typeof agent === 'function') { + agent = agent(parsedURL); + } + + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } + + // HTTP-network fetch step 4.2 + // chunked encoding is handled by Node.js + + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent + }); +} + +/** + * abort-error.js + * + * AbortError interface for cancelled requests + */ + +/** + * Create AbortError instance + * + * @param String message Error message for human + * @return AbortError + */ +function AbortError(message) { + Error.call(this, message); + + this.type = 'aborted'; + this.message = message; + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +AbortError.prototype = Object.create(Error.prototype); +AbortError.prototype.constructor = AbortError; +AbortError.prototype.name = 'AbortError'; + +// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 +const PassThrough$1 = Stream.PassThrough; +const resolve_url = Url.resolve; + +/** + * Fetch function + * + * @param Mixed url Absolute url or Request instance + * @param Object opts Fetch options + * @return Promise + */ +function fetch(url, opts) { + + // allow custom promise + if (!fetch.Promise) { + throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); + } + + Body.Promise = fetch.Promise; + + // wrap http.request into fetch + return new fetch.Promise(function (resolve, reject) { + // build request object + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); + + const send = (options.protocol === 'https:' ? https : http).request; + const signal = request.signal; + + let response = null; + + const abort = function abort() { + let error = new AbortError('The user aborted a request.'); + reject(error); + if (request.body && request.body instanceof Stream.Readable) { + request.body.destroy(error); + } + if (!response || !response.body) return; + response.body.emit('error', error); + }; + + if (signal && signal.aborted) { + abort(); + return; + } + + const abortAndFinalize = function abortAndFinalize() { + abort(); + finalize(); + }; + + // send request + const req = send(options); + let reqTimeout; + + if (signal) { + signal.addEventListener('abort', abortAndFinalize); + } + + function finalize() { + req.abort(); + if (signal) signal.removeEventListener('abort', abortAndFinalize); + clearTimeout(reqTimeout); + } + + if (request.timeout) { + req.once('socket', function (socket) { + reqTimeout = setTimeout(function () { + reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); + finalize(); + }, request.timeout); + }); + } + + req.on('error', function (err) { + reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); + finalize(); + }); + + req.on('response', function (res) { + clearTimeout(reqTimeout); + + const headers = createHeadersLenient(res.headers); + + // HTTP fetch step 5 + if (fetch.isRedirect(res.statusCode)) { + // HTTP fetch step 5.2 + const location = headers.get('Location'); + + // HTTP fetch step 5.3 + const locationURL = location === null ? null : resolve_url(request.url, location); + + // HTTP fetch step 5.5 + switch (request.redirect) { + case 'error': + reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); + finalize(); + return; + case 'manual': + // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. + if (locationURL !== null) { + // handle corrupted header + try { + headers.set('Location', locationURL); + } catch (err) { + // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request + reject(err); + } + } + break; + case 'follow': + // HTTP-redirect fetch step 2 + if (locationURL === null) { + break; + } + + // HTTP-redirect fetch step 5 + if (request.counter >= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 6 (counter increment) + // Create a new Request object. + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout, + size: request.size + }; + + // HTTP-redirect fetch step 9 + if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { + reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 11 + if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { + requestOpts.method = 'GET'; + requestOpts.body = undefined; + requestOpts.headers.delete('content-length'); + } + + // HTTP-redirect fetch step 15 + resolve(fetch(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } + + // prepare response + res.once('end', function () { + if (signal) signal.removeEventListener('abort', abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); + + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers: headers, + size: request.size, + timeout: request.timeout, + counter: request.counter + }; + + // HTTP-network fetch step 12.1.1.3 + const codings = headers.get('Content-Encoding'); + + // HTTP-network fetch step 12.1.1.4: handle content codings + + // in following scenarios we ignore compression support + // 1. compression support is disabled + // 2. HEAD request + // 3. no Content-Encoding header + // 4. no content response (204) + // 5. content not modified response (304) + if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { + response = new Response(body, response_options); + resolve(response); + return; + } + + // For Node v6+ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + + // for gzip + if (codings == 'gzip' || codings == 'x-gzip') { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + + // for deflate + if (codings == 'deflate' || codings == 'x-deflate') { + // handle the infamous raw deflate response from old servers + // a hack for old IIS and Apache servers + const raw = res.pipe(new PassThrough$1()); + raw.once('data', function (chunk) { + // see http://stackoverflow.com/questions/37519828 + if ((chunk[0] & 0x0F) === 0x08) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + return; + } + + // for br + if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + + // otherwise, use response as-is + response = new Response(body, response_options); + resolve(response); + }); + + writeToStream(req, request); + }); +} +/** + * Redirect code matching + * + * @param Number code Status code + * @return Boolean + */ +fetch.isRedirect = function (code) { + return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; +}; + +// expose Promise +fetch.Promise = global.Promise; + +module.exports = exports = fetch; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.default = exports; +exports.Headers = Headers; +exports.Request = Request; +exports.Response = Response; +exports.FetchError = FetchError; + + +/***/ }), + +/***/ 1223: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var wrappy = __nccwpck_require__(2940) +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) + +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) + + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) + +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) + } + f.called = false + return f +} + +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f +} + + +/***/ }), + +/***/ 4907: +/***/ ((module) => { + +"use strict"; + + +var replace = String.prototype.replace; +var percentTwenties = /%20/g; + +var Format = { + RFC1738: 'RFC1738', + RFC3986: 'RFC3986' +}; + +module.exports = { + 'default': Format.RFC3986, + formatters: { + RFC1738: function (value) { + return replace.call(value, percentTwenties, '+'); + }, + RFC3986: function (value) { + return String(value); + } + }, + RFC1738: Format.RFC1738, + RFC3986: Format.RFC3986 +}; + + +/***/ }), + +/***/ 2760: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +var stringify = __nccwpck_require__(9954); +var parse = __nccwpck_require__(3912); +var formats = __nccwpck_require__(4907); + +module.exports = { + formats: formats, + parse: parse, + stringify: stringify +}; + + +/***/ }), + +/***/ 3912: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +var utils = __nccwpck_require__(2360); + +var has = Object.prototype.hasOwnProperty; +var isArray = Array.isArray; + +var defaults = { + allowDots: false, + allowPrototypes: false, + allowSparse: false, + arrayLimit: 20, + charset: 'utf-8', + charsetSentinel: false, + comma: false, + decoder: utils.decode, + delimiter: '&', + depth: 5, + ignoreQueryPrefix: false, + interpretNumericEntities: false, + parameterLimit: 1000, + parseArrays: true, + plainObjects: false, + strictNullHandling: false +}; + +var interpretNumericEntities = function (str) { + return str.replace(/&#(\d+);/g, function ($0, numberStr) { + return String.fromCharCode(parseInt(numberStr, 10)); + }); +}; + +var parseArrayValue = function (val, options) { + if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) { + return val.split(','); + } + + return val; +}; + +// This is what browsers will submit when the ✓ character occurs in an +// application/x-www-form-urlencoded body and the encoding of the page containing +// the form is iso-8859-1, or when the submitted form has an accept-charset +// attribute of iso-8859-1. Presumably also with other charsets that do not contain +// the ✓ character, such as us-ascii. +var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓') + +// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded. +var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓') + +var parseValues = function parseQueryStringValues(str, options) { + var obj = {}; + var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str; + var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit; + var parts = cleanStr.split(options.delimiter, limit); + var skipIndex = -1; // Keep track of where the utf8 sentinel was found + var i; + + var charset = options.charset; + if (options.charsetSentinel) { + for (i = 0; i < parts.length; ++i) { + if (parts[i].indexOf('utf8=') === 0) { + if (parts[i] === charsetSentinel) { + charset = 'utf-8'; + } else if (parts[i] === isoSentinel) { + charset = 'iso-8859-1'; + } + skipIndex = i; + i = parts.length; // The eslint settings do not allow break; + } + } + } + + for (i = 0; i < parts.length; ++i) { + if (i === skipIndex) { + continue; + } + var part = parts[i]; + + var bracketEqualsPos = part.indexOf(']='); + var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1; + + var key, val; + if (pos === -1) { + key = options.decoder(part, defaults.decoder, charset, 'key'); + val = options.strictNullHandling ? null : ''; + } else { + key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key'); + val = utils.maybeMap( + parseArrayValue(part.slice(pos + 1), options), + function (encodedVal) { + return options.decoder(encodedVal, defaults.decoder, charset, 'value'); + } + ); + } + + if (val && options.interpretNumericEntities && charset === 'iso-8859-1') { + val = interpretNumericEntities(val); + } + + if (part.indexOf('[]=') > -1) { + val = isArray(val) ? [val] : val; + } + + if (has.call(obj, key)) { + obj[key] = utils.combine(obj[key], val); + } else { + obj[key] = val; + } + } + + return obj; +}; + +var parseObject = function (chain, val, options, valuesParsed) { + var leaf = valuesParsed ? val : parseArrayValue(val, options); + + for (var i = chain.length - 1; i >= 0; --i) { + var obj; + var root = chain[i]; + + if (root === '[]' && options.parseArrays) { + obj = [].concat(leaf); + } else { + obj = options.plainObjects ? Object.create(null) : {}; + var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root; + var index = parseInt(cleanRoot, 10); + if (!options.parseArrays && cleanRoot === '') { + obj = { 0: leaf }; + } else if ( + !isNaN(index) + && root !== cleanRoot + && String(index) === cleanRoot + && index >= 0 + && (options.parseArrays && index <= options.arrayLimit) + ) { + obj = []; + obj[index] = leaf; + } else { + obj[cleanRoot] = leaf; + } + } + + leaf = obj; + } + + return leaf; +}; + +var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) { + if (!givenKey) { + return; + } + + // Transform dot notation to bracket notation + var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey; + + // The regex chunks + + var brackets = /(\[[^[\]]*])/; + var child = /(\[[^[\]]*])/g; + + // Get the parent + + var segment = options.depth > 0 && brackets.exec(key); + var parent = segment ? key.slice(0, segment.index) : key; + + // Stash the parent if it exists + + var keys = []; + if (parent) { + // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties + if (!options.plainObjects && has.call(Object.prototype, parent)) { + if (!options.allowPrototypes) { + return; + } + } + + keys.push(parent); + } + + // Loop through children appending to the array until we hit depth + + var i = 0; + while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) { + i += 1; + if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) { + if (!options.allowPrototypes) { + return; + } + } + keys.push(segment[1]); + } + + // If there's a remainder, just add whatever is left + + if (segment) { + keys.push('[' + key.slice(segment.index) + ']'); + } + + return parseObject(keys, val, options, valuesParsed); +}; + +var normalizeParseOptions = function normalizeParseOptions(opts) { + if (!opts) { + return defaults; + } + + if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') { + throw new TypeError('Decoder has to be a function.'); + } + + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset; + + return { + allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, + allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes, + allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse, + arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma, + decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder, + delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter, + // eslint-disable-next-line no-implicit-coercion, no-extra-parens + depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth, + ignoreQueryPrefix: opts.ignoreQueryPrefix === true, + interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities, + parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit, + parseArrays: opts.parseArrays !== false, + plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (str, opts) { + var options = normalizeParseOptions(opts); + + if (str === '' || str === null || typeof str === 'undefined') { + return options.plainObjects ? Object.create(null) : {}; + } + + var tempObj = typeof str === 'string' ? parseValues(str, options) : str; + var obj = options.plainObjects ? Object.create(null) : {}; + + // Iterate over the keys and setup the new object + + var keys = Object.keys(tempObj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string'); + obj = utils.merge(obj, newObj, options); + } + + if (options.allowSparse === true) { + return obj; + } + + return utils.compact(obj); +}; + + +/***/ }), + +/***/ 9954: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +var getSideChannel = __nccwpck_require__(4334); +var utils = __nccwpck_require__(2360); +var formats = __nccwpck_require__(4907); +var has = Object.prototype.hasOwnProperty; + +var arrayPrefixGenerators = { + brackets: function brackets(prefix) { + return prefix + '[]'; + }, + comma: 'comma', + indices: function indices(prefix, key) { + return prefix + '[' + key + ']'; + }, + repeat: function repeat(prefix) { + return prefix; + } +}; + +var isArray = Array.isArray; +var push = Array.prototype.push; +var pushToArray = function (arr, valueOrArray) { + push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]); +}; + +var toISO = Date.prototype.toISOString; + +var defaultFormat = formats['default']; +var defaults = { + addQueryPrefix: false, + allowDots: false, + charset: 'utf-8', + charsetSentinel: false, + delimiter: '&', + encode: true, + encoder: utils.encode, + encodeValuesOnly: false, + format: defaultFormat, + formatter: formats.formatters[defaultFormat], + // deprecated + indices: false, + serializeDate: function serializeDate(date) { + return toISO.call(date); + }, + skipNulls: false, + strictNullHandling: false +}; + +var isNonNullishPrimitive = function isNonNullishPrimitive(v) { + return typeof v === 'string' + || typeof v === 'number' + || typeof v === 'boolean' + || typeof v === 'symbol' + || typeof v === 'bigint'; +}; + +var stringify = function stringify( + object, + prefix, + generateArrayPrefix, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset, + sideChannel +) { + var obj = object; + + if (sideChannel.has(object)) { + throw new RangeError('Cyclic object value'); + } + + if (typeof filter === 'function') { + obj = filter(prefix, obj); + } else if (obj instanceof Date) { + obj = serializeDate(obj); + } else if (generateArrayPrefix === 'comma' && isArray(obj)) { + obj = utils.maybeMap(obj, function (value) { + if (value instanceof Date) { + return serializeDate(value); + } + return value; + }); + } + + if (obj === null) { + if (strictNullHandling) { + return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix; + } + + obj = ''; + } + + if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) { + if (encoder) { + var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format); + return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))]; + } + return [formatter(prefix) + '=' + formatter(String(obj))]; + } + + var values = []; + + if (typeof obj === 'undefined') { + return values; + } + + var objKeys; + if (generateArrayPrefix === 'comma' && isArray(obj)) { + // we need to join elements in + objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : undefined }]; + } else if (isArray(filter)) { + objKeys = filter; + } else { + var keys = Object.keys(obj); + objKeys = sort ? keys.sort(sort) : keys; + } + + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + var value = typeof key === 'object' && key.value !== undefined ? key.value : obj[key]; + + if (skipNulls && value === null) { + continue; + } + + var keyPrefix = isArray(obj) + ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix + : prefix + (allowDots ? '.' + key : '[' + key + ']'); + + sideChannel.set(object, true); + var valueSideChannel = getSideChannel(); + pushToArray(values, stringify( + value, + keyPrefix, + generateArrayPrefix, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset, + valueSideChannel + )); + } + + return values; +}; + +var normalizeStringifyOptions = function normalizeStringifyOptions(opts) { + if (!opts) { + return defaults; + } + + if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') { + throw new TypeError('Encoder has to be a function.'); + } + + var charset = opts.charset || defaults.charset; + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + + var format = formats['default']; + if (typeof opts.format !== 'undefined') { + if (!has.call(formats.formatters, opts.format)) { + throw new TypeError('Unknown format option provided.'); + } + format = opts.format; + } + var formatter = formats.formatters[format]; + + var filter = defaults.filter; + if (typeof opts.filter === 'function' || isArray(opts.filter)) { + filter = opts.filter; + } + + return { + addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix, + allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter, + encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode, + encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder, + encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly, + filter: filter, + format: format, + formatter: formatter, + serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate, + skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls, + sort: typeof opts.sort === 'function' ? opts.sort : null, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (object, opts) { + var obj = object; + var options = normalizeStringifyOptions(opts); + + var objKeys; + var filter; + + if (typeof options.filter === 'function') { + filter = options.filter; + obj = filter('', obj); + } else if (isArray(options.filter)) { + filter = options.filter; + objKeys = filter; + } + + var keys = []; + + if (typeof obj !== 'object' || obj === null) { + return ''; + } + + var arrayFormat; + if (opts && opts.arrayFormat in arrayPrefixGenerators) { + arrayFormat = opts.arrayFormat; + } else if (opts && 'indices' in opts) { + arrayFormat = opts.indices ? 'indices' : 'repeat'; + } else { + arrayFormat = 'indices'; + } + + var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; + + if (!objKeys) { + objKeys = Object.keys(obj); + } + + if (options.sort) { + objKeys.sort(options.sort); + } + + var sideChannel = getSideChannel(); + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + + if (options.skipNulls && obj[key] === null) { + continue; + } + pushToArray(keys, stringify( + obj[key], + key, + generateArrayPrefix, + options.strictNullHandling, + options.skipNulls, + options.encode ? options.encoder : null, + options.filter, + options.sort, + options.allowDots, + options.serializeDate, + options.format, + options.formatter, + options.encodeValuesOnly, + options.charset, + sideChannel + )); + } + + var joined = keys.join(options.delimiter); + var prefix = options.addQueryPrefix === true ? '?' : ''; + + if (options.charsetSentinel) { + if (options.charset === 'iso-8859-1') { + // encodeURIComponent('✓'), the "numeric entity" representation of a checkmark + prefix += 'utf8=%26%2310003%3B&'; + } else { + // encodeURIComponent('✓') + prefix += 'utf8=%E2%9C%93&'; + } + } + + return joined.length > 0 ? prefix + joined : ''; +}; + + +/***/ }), + +/***/ 2360: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +var formats = __nccwpck_require__(4907); + +var has = Object.prototype.hasOwnProperty; +var isArray = Array.isArray; + +var hexTable = (function () { + var array = []; + for (var i = 0; i < 256; ++i) { + array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase()); + } + + return array; +}()); + +var compactQueue = function compactQueue(queue) { + while (queue.length > 1) { + var item = queue.pop(); + var obj = item.obj[item.prop]; + + if (isArray(obj)) { + var compacted = []; + + for (var j = 0; j < obj.length; ++j) { + if (typeof obj[j] !== 'undefined') { + compacted.push(obj[j]); + } + } + + item.obj[item.prop] = compacted; + } + } +}; + +var arrayToObject = function arrayToObject(source, options) { + var obj = options && options.plainObjects ? Object.create(null) : {}; + for (var i = 0; i < source.length; ++i) { + if (typeof source[i] !== 'undefined') { + obj[i] = source[i]; + } + } + + return obj; +}; + +var merge = function merge(target, source, options) { + /* eslint no-param-reassign: 0 */ + if (!source) { + return target; + } + + if (typeof source !== 'object') { + if (isArray(target)) { + target.push(source); + } else if (target && typeof target === 'object') { + if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) { + target[source] = true; + } + } else { + return [target, source]; + } + + return target; + } + + if (!target || typeof target !== 'object') { + return [target].concat(source); + } + + var mergeTarget = target; + if (isArray(target) && !isArray(source)) { + mergeTarget = arrayToObject(target, options); + } + + if (isArray(target) && isArray(source)) { + source.forEach(function (item, i) { + if (has.call(target, i)) { + var targetItem = target[i]; + if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') { + target[i] = merge(targetItem, item, options); + } else { + target.push(item); + } + } else { + target[i] = item; + } + }); + return target; + } + + return Object.keys(source).reduce(function (acc, key) { + var value = source[key]; + + if (has.call(acc, key)) { + acc[key] = merge(acc[key], value, options); + } else { + acc[key] = value; + } + return acc; + }, mergeTarget); +}; + +var assign = function assignSingleSource(target, source) { + return Object.keys(source).reduce(function (acc, key) { + acc[key] = source[key]; + return acc; + }, target); +}; + +var decode = function (str, decoder, charset) { + var strWithoutPlus = str.replace(/\+/g, ' '); + if (charset === 'iso-8859-1') { + // unescape never throws, no try...catch needed: + return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape); + } + // utf-8 + try { + return decodeURIComponent(strWithoutPlus); + } catch (e) { + return strWithoutPlus; + } +}; + +var encode = function encode(str, defaultEncoder, charset, kind, format) { + // This code was originally written by Brian White (mscdex) for the io.js core querystring library. + // It has been adapted here for stricter adherence to RFC 3986 + if (str.length === 0) { + return str; + } + + var string = str; + if (typeof str === 'symbol') { + string = Symbol.prototype.toString.call(str); + } else if (typeof str !== 'string') { + string = String(str); + } + + if (charset === 'iso-8859-1') { + return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) { + return '%26%23' + parseInt($0.slice(2), 16) + '%3B'; + }); + } + + var out = ''; + for (var i = 0; i < string.length; ++i) { + var c = string.charCodeAt(i); + + if ( + c === 0x2D // - + || c === 0x2E // . + || c === 0x5F // _ + || c === 0x7E // ~ + || (c >= 0x30 && c <= 0x39) // 0-9 + || (c >= 0x41 && c <= 0x5A) // a-z + || (c >= 0x61 && c <= 0x7A) // A-Z + || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( ) + ) { + out += string.charAt(i); + continue; + } + + if (c < 0x80) { + out = out + hexTable[c]; + continue; + } + + if (c < 0x800) { + out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]); + continue; + } + + if (c < 0xD800 || c >= 0xE000) { + out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); + continue; + } + + i += 1; + c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF)); + out += hexTable[0xF0 | (c >> 18)] + + hexTable[0x80 | ((c >> 12) & 0x3F)] + + hexTable[0x80 | ((c >> 6) & 0x3F)] + + hexTable[0x80 | (c & 0x3F)]; + } + + return out; +}; + +var compact = function compact(value) { + var queue = [{ obj: { o: value }, prop: 'o' }]; + var refs = []; + + for (var i = 0; i < queue.length; ++i) { + var item = queue[i]; + var obj = item.obj[item.prop]; + + var keys = Object.keys(obj); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + var val = obj[key]; + if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) { + queue.push({ obj: obj, prop: key }); + refs.push(val); + } + } + } + + compactQueue(queue); + + return value; +}; + +var isRegExp = function isRegExp(obj) { + return Object.prototype.toString.call(obj) === '[object RegExp]'; +}; + +var isBuffer = function isBuffer(obj) { + if (!obj || typeof obj !== 'object') { + return false; + } + + return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); +}; + +var combine = function combine(a, b) { + return [].concat(a, b); +}; + +var maybeMap = function maybeMap(val, fn) { + if (isArray(val)) { + var mapped = []; + for (var i = 0; i < val.length; i += 1) { + mapped.push(fn(val[i])); + } + return mapped; + } + return fn(val); +}; + +module.exports = { + arrayToObject: arrayToObject, + assign: assign, + combine: combine, + compact: compact, + decode: decode, + encode: encode, + isBuffer: isBuffer, + isRegExp: isRegExp, + maybeMap: maybeMap, + merge: merge +}; + + +/***/ }), + +/***/ 4334: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +var GetIntrinsic = __nccwpck_require__(4538); +var callBound = __nccwpck_require__(8803); +var inspect = __nccwpck_require__(9909); + +var $TypeError = GetIntrinsic('%TypeError%'); +var $WeakMap = GetIntrinsic('%WeakMap%', true); +var $Map = GetIntrinsic('%Map%', true); + +var $weakMapGet = callBound('WeakMap.prototype.get', true); +var $weakMapSet = callBound('WeakMap.prototype.set', true); +var $weakMapHas = callBound('WeakMap.prototype.has', true); +var $mapGet = callBound('Map.prototype.get', true); +var $mapSet = callBound('Map.prototype.set', true); +var $mapHas = callBound('Map.prototype.has', true); + +/* + * This function traverses the list returning the node corresponding to the + * given key. + * + * That node is also moved to the head of the list, so that if it's accessed + * again we don't need to traverse the whole list. By doing so, all the recently + * used nodes can be accessed relatively quickly. + */ +var listGetNode = function (list, key) { // eslint-disable-line consistent-return + for (var prev = list, curr; (curr = prev.next) !== null; prev = curr) { + if (curr.key === key) { + prev.next = curr.next; + curr.next = list.next; + list.next = curr; // eslint-disable-line no-param-reassign + return curr; + } + } +}; + +var listGet = function (objects, key) { + var node = listGetNode(objects, key); + return node && node.value; +}; +var listSet = function (objects, key, value) { + var node = listGetNode(objects, key); + if (node) { + node.value = value; + } else { + // Prepend the new node to the beginning of the list + objects.next = { // eslint-disable-line no-param-reassign + key: key, + next: objects.next, + value: value + }; + } +}; +var listHas = function (objects, key) { + return !!listGetNode(objects, key); +}; + +module.exports = function getSideChannel() { + var $wm; + var $m; + var $o; + var channel = { + assert: function (key) { + if (!channel.has(key)) { + throw new $TypeError('Side channel does not contain ' + inspect(key)); + } + }, + get: function (key) { // eslint-disable-line consistent-return + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if ($wm) { + return $weakMapGet($wm, key); + } + } else if ($Map) { + if ($m) { + return $mapGet($m, key); + } + } else { + if ($o) { // eslint-disable-line no-lonely-if + return listGet($o, key); + } + } + }, + has: function (key) { + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if ($wm) { + return $weakMapHas($wm, key); + } + } else if ($Map) { + if ($m) { + return $mapHas($m, key); + } + } else { + if ($o) { // eslint-disable-line no-lonely-if + return listHas($o, key); + } + } + return false; + }, + set: function (key, value) { + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if (!$wm) { + $wm = new $WeakMap(); + } + $weakMapSet($wm, key, value); + } else if ($Map) { + if (!$m) { + $m = new $Map(); + } + $mapSet($m, key, value); + } else { + if (!$o) { + /* + * Initialize the linked list as an empty node, so that we don't have + * to special-case handling of the first node: we can always refer to + * it as (previous node).next, instead of something like (list).head + */ + $o = { key: {}, next: null }; + } + listSet($o, key, value); + } + } + }; + return channel; +}; + + +/***/ }), + +/***/ 9909: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var hasMap = typeof Map === 'function' && Map.prototype; +var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null; +var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null; +var mapForEach = hasMap && Map.prototype.forEach; +var hasSet = typeof Set === 'function' && Set.prototype; +var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null; +var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null; +var setForEach = hasSet && Set.prototype.forEach; +var hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype; +var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null; +var hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype; +var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null; +var hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype; +var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null; +var booleanValueOf = Boolean.prototype.valueOf; +var objectToString = Object.prototype.toString; +var functionToString = Function.prototype.toString; +var match = String.prototype.match; +var bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null; +var gOPS = Object.getOwnPropertySymbols; +var symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null; +var hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object'; +var isEnumerable = Object.prototype.propertyIsEnumerable; + +var gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ( + [].__proto__ === Array.prototype // eslint-disable-line no-proto + ? function (O) { + return O.__proto__; // eslint-disable-line no-proto + } + : null +); + +var inspectCustom = __nccwpck_require__(2284).custom; +var inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null; +var toStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag !== 'undefined' ? Symbol.toStringTag : null; + +module.exports = function inspect_(obj, options, depth, seen) { + var opts = options || {}; + + if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) { + throw new TypeError('option "quoteStyle" must be "single" or "double"'); + } + if ( + has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number' + ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity + : opts.maxStringLength !== null + ) + ) { + throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`'); + } + var customInspect = has(opts, 'customInspect') ? opts.customInspect : true; + if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') { + throw new TypeError('option "customInspect", if provided, must be `true`, `false`, or `\'symbol\'`'); + } + + if ( + has(opts, 'indent') + && opts.indent !== null + && opts.indent !== '\t' + && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0) + ) { + throw new TypeError('options "indent" must be "\\t", an integer > 0, or `null`'); + } + + if (typeof obj === 'undefined') { + return 'undefined'; + } + if (obj === null) { + return 'null'; + } + if (typeof obj === 'boolean') { + return obj ? 'true' : 'false'; + } + + if (typeof obj === 'string') { + return inspectString(obj, opts); + } + if (typeof obj === 'number') { + if (obj === 0) { + return Infinity / obj > 0 ? '0' : '-0'; + } + return String(obj); + } + if (typeof obj === 'bigint') { + return String(obj) + 'n'; + } + + var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth; + if (typeof depth === 'undefined') { depth = 0; } + if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') { + return isArray(obj) ? '[Array]' : '[Object]'; + } + + var indent = getIndent(opts, depth); + + if (typeof seen === 'undefined') { + seen = []; + } else if (indexOf(seen, obj) >= 0) { + return '[Circular]'; + } + + function inspect(value, from, noIndent) { + if (from) { + seen = seen.slice(); + seen.push(from); + } + if (noIndent) { + var newOpts = { + depth: opts.depth + }; + if (has(opts, 'quoteStyle')) { + newOpts.quoteStyle = opts.quoteStyle; + } + return inspect_(value, newOpts, depth + 1, seen); + } + return inspect_(value, opts, depth + 1, seen); + } + + if (typeof obj === 'function') { + var name = nameOf(obj); + var keys = arrObjKeys(obj, inspect); + return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : ''); + } + if (isSymbol(obj)) { + var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\(.*\))_[^)]*$/, '$1') : symToString.call(obj); + return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString; + } + if (isElement(obj)) { + var s = '<' + String(obj.nodeName).toLowerCase(); + var attrs = obj.attributes || []; + for (var i = 0; i < attrs.length; i++) { + s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts); + } + s += '>'; + if (obj.childNodes && obj.childNodes.length) { s += '...'; } + s += ''; + return s; + } + if (isArray(obj)) { + if (obj.length === 0) { return '[]'; } + var xs = arrObjKeys(obj, inspect); + if (indent && !singleLineValues(xs)) { + return '[' + indentedJoin(xs, indent) + ']'; + } + return '[ ' + xs.join(', ') + ' ]'; + } + if (isError(obj)) { + var parts = arrObjKeys(obj, inspect); + if (parts.length === 0) { return '[' + String(obj) + ']'; } + return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }'; + } + if (typeof obj === 'object' && customInspect) { + if (inspectSymbol && typeof obj[inspectSymbol] === 'function') { + return obj[inspectSymbol](); + } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') { + return obj.inspect(); + } + } + if (isMap(obj)) { + var mapParts = []; + mapForEach.call(obj, function (value, key) { + mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj)); + }); + return collectionOf('Map', mapSize.call(obj), mapParts, indent); + } + if (isSet(obj)) { + var setParts = []; + setForEach.call(obj, function (value) { + setParts.push(inspect(value, obj)); + }); + return collectionOf('Set', setSize.call(obj), setParts, indent); + } + if (isWeakMap(obj)) { + return weakCollectionOf('WeakMap'); + } + if (isWeakSet(obj)) { + return weakCollectionOf('WeakSet'); + } + if (isWeakRef(obj)) { + return weakCollectionOf('WeakRef'); + } + if (isNumber(obj)) { + return markBoxed(inspect(Number(obj))); + } + if (isBigInt(obj)) { + return markBoxed(inspect(bigIntValueOf.call(obj))); + } + if (isBoolean(obj)) { + return markBoxed(booleanValueOf.call(obj)); + } + if (isString(obj)) { + return markBoxed(inspect(String(obj))); + } + if (!isDate(obj) && !isRegExp(obj)) { + var ys = arrObjKeys(obj, inspect); + var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object; + var protoTag = obj instanceof Object ? '' : 'null prototype'; + var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : ''; + var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : ''; + var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : ''); + if (ys.length === 0) { return tag + '{}'; } + if (indent) { + return tag + '{' + indentedJoin(ys, indent) + '}'; + } + return tag + '{ ' + ys.join(', ') + ' }'; + } + return String(obj); +}; + +function wrapQuotes(s, defaultStyle, opts) { + var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '"' : "'"; + return quoteChar + s + quoteChar; +} + +function quote(s) { + return String(s).replace(/"/g, '"'); +} + +function isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } + +// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives +function isSymbol(obj) { + if (hasShammedSymbols) { + return obj && typeof obj === 'object' && obj instanceof Symbol; + } + if (typeof obj === 'symbol') { + return true; + } + if (!obj || typeof obj !== 'object' || !symToString) { + return false; + } + try { + symToString.call(obj); + return true; + } catch (e) {} + return false; +} + +function isBigInt(obj) { + if (!obj || typeof obj !== 'object' || !bigIntValueOf) { + return false; + } + try { + bigIntValueOf.call(obj); + return true; + } catch (e) {} + return false; +} + +var hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; }; +function has(obj, key) { + return hasOwn.call(obj, key); +} + +function toStr(obj) { + return objectToString.call(obj); +} + +function nameOf(f) { + if (f.name) { return f.name; } + var m = match.call(functionToString.call(f), /^function\s*([\w$]+)/); + if (m) { return m[1]; } + return null; +} + +function indexOf(xs, x) { + if (xs.indexOf) { return xs.indexOf(x); } + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) { return i; } + } + return -1; +} + +function isMap(x) { + if (!mapSize || !x || typeof x !== 'object') { + return false; + } + try { + mapSize.call(x); + try { + setSize.call(x); + } catch (s) { + return true; + } + return x instanceof Map; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isWeakMap(x) { + if (!weakMapHas || !x || typeof x !== 'object') { + return false; + } + try { + weakMapHas.call(x, weakMapHas); + try { + weakSetHas.call(x, weakSetHas); + } catch (s) { + return true; + } + return x instanceof WeakMap; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isWeakRef(x) { + if (!weakRefDeref || !x || typeof x !== 'object') { + return false; + } + try { + weakRefDeref.call(x); + return true; + } catch (e) {} + return false; +} + +function isSet(x) { + if (!setSize || !x || typeof x !== 'object') { + return false; + } + try { + setSize.call(x); + try { + mapSize.call(x); + } catch (m) { + return true; + } + return x instanceof Set; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isWeakSet(x) { + if (!weakSetHas || !x || typeof x !== 'object') { + return false; + } + try { + weakSetHas.call(x, weakSetHas); + try { + weakMapHas.call(x, weakMapHas); + } catch (s) { + return true; + } + return x instanceof WeakSet; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isElement(x) { + if (!x || typeof x !== 'object') { return false; } + if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) { + return true; + } + return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function'; +} + +function inspectString(str, opts) { + if (str.length > opts.maxStringLength) { + var remaining = str.length - opts.maxStringLength; + var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : ''); + return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer; + } + // eslint-disable-next-line no-control-regex + var s = str.replace(/(['\\])/g, '\\$1').replace(/[\x00-\x1f]/g, lowbyte); + return wrapQuotes(s, 'single', opts); +} + +function lowbyte(c) { + var n = c.charCodeAt(0); + var x = { + 8: 'b', + 9: 't', + 10: 'n', + 12: 'f', + 13: 'r' + }[n]; + if (x) { return '\\' + x; } + return '\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase(); +} + +function markBoxed(str) { + return 'Object(' + str + ')'; +} + +function weakCollectionOf(type) { + return type + ' { ? }'; +} + +function collectionOf(type, size, entries, indent) { + var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', '); + return type + ' (' + size + ') {' + joinedEntries + '}'; +} + +function singleLineValues(xs) { + for (var i = 0; i < xs.length; i++) { + if (indexOf(xs[i], '\n') >= 0) { + return false; + } + } + return true; +} + +function getIndent(opts, depth) { + var baseIndent; + if (opts.indent === '\t') { + baseIndent = '\t'; + } else if (typeof opts.indent === 'number' && opts.indent > 0) { + baseIndent = Array(opts.indent + 1).join(' '); + } else { + return null; + } + return { + base: baseIndent, + prev: Array(depth + 1).join(baseIndent) + }; +} + +function indentedJoin(xs, indent) { + if (xs.length === 0) { return ''; } + var lineJoiner = '\n' + indent.prev + indent.base; + return lineJoiner + xs.join(',' + lineJoiner) + '\n' + indent.prev; +} + +function arrObjKeys(obj, inspect) { + var isArr = isArray(obj); + var xs = []; + if (isArr) { + xs.length = obj.length; + for (var i = 0; i < obj.length; i++) { + xs[i] = has(obj, i) ? inspect(obj[i], obj) : ''; + } + } + var syms = typeof gOPS === 'function' ? gOPS(obj) : []; + var symMap; + if (hasShammedSymbols) { + symMap = {}; + for (var k = 0; k < syms.length; k++) { + symMap['$' + syms[k]] = syms[k]; + } + } + + for (var key in obj) { // eslint-disable-line no-restricted-syntax + if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue + if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue + if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) { + // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section + continue; // eslint-disable-line no-restricted-syntax, no-continue + } else if ((/[^\w$]/).test(key)) { + xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj)); + } else { + xs.push(key + ': ' + inspect(obj[key], obj)); + } + } + if (typeof gOPS === 'function') { + for (var j = 0; j < syms.length; j++) { + if (isEnumerable.call(obj, syms[j])) { + xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj)); + } + } + } + return xs; +} + + +/***/ }), + +/***/ 2284: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +module.exports = __nccwpck_require__(1669).inspect; + + +/***/ }), + +/***/ 4294: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +module.exports = __nccwpck_require__(4219); + + +/***/ }), + +/***/ 4219: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +var net = __nccwpck_require__(1631); +var tls = __nccwpck_require__(4016); +var http = __nccwpck_require__(8605); +var https = __nccwpck_require__(7211); +var events = __nccwpck_require__(8614); +var assert = __nccwpck_require__(2357); +var util = __nccwpck_require__(1669); + + +exports.httpOverHttp = httpOverHttp; +exports.httpsOverHttp = httpsOverHttp; +exports.httpOverHttps = httpOverHttps; +exports.httpsOverHttps = httpsOverHttps; + + +function httpOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + return agent; +} + +function httpsOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} + +function httpOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + return agent; +} + +function httpsOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} + + +function TunnelingAgent(options) { + var self = this; + self.options = options || {}; + self.proxyOptions = self.options.proxy || {}; + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; + self.requests = []; + self.sockets = []; + + self.on('free', function onFree(socket, host, port, localAddress) { + var options = toOptions(host, port, localAddress); + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i]; + if (pending.host === options.host && pending.port === options.port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; + } + } + socket.destroy(); + self.removeSocket(socket); + }); +} +util.inherits(TunnelingAgent, events.EventEmitter); + +TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { + var self = this; + var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress)); + + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push(options); + return; + } + + // If we are under maxSockets create a new one. + self.createSocket(options, function(socket) { + socket.on('free', onFree); + socket.on('close', onCloseOrRemove); + socket.on('agentRemove', onCloseOrRemove); + req.onSocket(socket); + + function onFree() { + self.emit('free', socket, options); + } + + function onCloseOrRemove(err) { + self.removeSocket(socket); + socket.removeListener('free', onFree); + socket.removeListener('close', onCloseOrRemove); + socket.removeListener('agentRemove', onCloseOrRemove); + } + }); +}; + +TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this; + var placeholder = {}; + self.sockets.push(placeholder); + + var connectOptions = mergeOptions({}, self.proxyOptions, { + method: 'CONNECT', + path: options.host + ':' + options.port, + agent: false, + headers: { + host: options.host + ':' + options.port + } + }); + if (options.localAddress) { + connectOptions.localAddress = options.localAddress; + } + if (connectOptions.proxyAuth) { + connectOptions.headers = connectOptions.headers || {}; + connectOptions.headers['Proxy-Authorization'] = 'Basic ' + + new Buffer(connectOptions.proxyAuth).toString('base64'); + } + + debug('making CONNECT request'); + var connectReq = self.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; // for v0.6 + connectReq.once('response', onResponse); // for v0.6 + connectReq.once('upgrade', onUpgrade); // for v0.6 + connectReq.once('connect', onConnect); // for v0.7 or later + connectReq.once('error', onError); + connectReq.end(); + + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true; + } + + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head); + }); + } + + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); + + if (res.statusCode !== 200) { + debug('tunneling socket could not be established, statusCode=%d', + res.statusCode); + socket.destroy(); + var error = new Error('tunneling socket could not be established, ' + + 'statusCode=' + res.statusCode); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + return; + } + if (head.length > 0) { + debug('got illegal response body from proxy'); + socket.destroy(); + var error = new Error('got illegal response body from proxy'); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + return; + } + debug('tunneling connection has established'); + self.sockets[self.sockets.indexOf(placeholder)] = socket; + return cb(socket); + } + + function onError(cause) { + connectReq.removeAllListeners(); + + debug('tunneling socket could not be established, cause=%s\n', + cause.message, cause.stack); + var error = new Error('tunneling socket could not be established, ' + + 'cause=' + cause.message); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + } +}; + +TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { + var pos = this.sockets.indexOf(socket) + if (pos === -1) { + return; + } + this.sockets.splice(pos, 1); + + var pending = this.requests.shift(); + if (pending) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket); + }); + } +}; + +function createSecureSocket(options, cb) { + var self = this; + TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { + var hostHeader = options.request.getHeader('host'); + var tlsOptions = mergeOptions({}, self.options, { + socket: socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host + }); + + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); +} + + +function toOptions(host, port, localAddress) { + if (typeof host === 'string') { // since v0.10 + return { + host: host, + port: port, + localAddress: localAddress + }; + } + return host; // for v0.11 or later +} + +function mergeOptions(target) { + for (var i = 1, len = arguments.length; i < len; ++i) { + var overrides = arguments[i]; + if (typeof overrides === 'object') { + var keys = Object.keys(overrides); + for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { + var k = keys[j]; + if (overrides[k] !== undefined) { + target[k] = overrides[k]; + } + } + } + } + return target; +} + + +var debug; +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = function() { + var args = Array.prototype.slice.call(arguments); + if (typeof args[0] === 'string') { + args[0] = 'TUNNEL: ' + args[0]; + } else { + args.unshift('TUNNEL:'); + } + console.error.apply(console, args); + } +} else { + debug = function() {}; +} +exports.debug = debug; // for test + + +/***/ }), + +/***/ 4442: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +var basiccreds_1 = __nccwpck_require__(7954); +exports.BasicCredentialHandler = basiccreds_1.BasicCredentialHandler; +var bearertoken_1 = __nccwpck_require__(7431); +exports.BearerCredentialHandler = bearertoken_1.BearerCredentialHandler; +var ntlm_1 = __nccwpck_require__(4157); +exports.NtlmCredentialHandler = ntlm_1.NtlmCredentialHandler; +var personalaccesstoken_1 = __nccwpck_require__(7799); +exports.PersonalAccessTokenCredentialHandler = personalaccesstoken_1.PersonalAccessTokenCredentialHandler; + + +/***/ }), + +/***/ 5538: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const url = __nccwpck_require__(8835); +const http = __nccwpck_require__(8605); +const https = __nccwpck_require__(7211); +const util = __nccwpck_require__(9470); +let fs; +let tunnel; +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); +const HttpRedirectCodes = [HttpCodes.MovedPermanently, HttpCodes.ResourceMoved, HttpCodes.SeeOther, HttpCodes.TemporaryRedirect, HttpCodes.PermanentRedirect]; +const HttpResponseRetryCodes = [HttpCodes.BadGateway, HttpCodes.ServiceUnavailable, HttpCodes.GatewayTimeout]; +const NetworkRetryErrors = ['ECONNRESET', 'ENOTFOUND', 'ESOCKETTIMEDOUT', 'ETIMEDOUT', 'ECONNREFUSED']; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientResponse { + constructor(message) { + this.message = message; + } + readBody() { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let buffer = Buffer.alloc(0); + const encodingCharset = util.obtainContentCharset(this); + // Extract Encoding from header: 'content-encoding' + // Match `gzip`, `gzip, deflate` variations of GZIP encoding + const contentEncoding = this.message.headers['content-encoding'] || ''; + const isGzippedEncoded = new RegExp('(gzip$)|(gzip, *deflate)').test(contentEncoding); + this.message.on('data', function (data) { + const chunk = (typeof data === 'string') ? Buffer.from(data, encodingCharset) : data; + buffer = Buffer.concat([buffer, chunk]); + }).on('end', function () { + return __awaiter(this, void 0, void 0, function* () { + if (isGzippedEncoded) { // Process GZipped Response Body HERE + const gunzippedBody = yield util.decompressGzippedContent(buffer, encodingCharset); + resolve(gunzippedBody); + } + else { + resolve(buffer.toString(encodingCharset)); + } + }); + }).on('error', function (err) { + reject(err); + }); + })); + } +} +exports.HttpClientResponse = HttpClientResponse; +function isHttps(requestUrl) { + let parsedUrl = url.parse(requestUrl); + return parsedUrl.protocol === 'https:'; +} +exports.isHttps = isHttps; +var EnvironmentVariables; +(function (EnvironmentVariables) { + EnvironmentVariables["HTTP_PROXY"] = "HTTP_PROXY"; + EnvironmentVariables["HTTPS_PROXY"] = "HTTPS_PROXY"; + EnvironmentVariables["NO_PROXY"] = "NO_PROXY"; +})(EnvironmentVariables || (EnvironmentVariables = {})); +class HttpClient { + constructor(userAgent, handlers, requestOptions) { + this._ignoreSslError = false; + this._allowRedirects = true; + this._allowRedirectDowngrade = false; + this._maxRedirects = 50; + this._allowRetries = false; + this._maxRetries = 1; + this._keepAlive = false; + this._disposed = false; + this.userAgent = userAgent; + this.handlers = handlers || []; + let no_proxy = process.env[EnvironmentVariables.NO_PROXY]; + if (no_proxy) { + this._httpProxyBypassHosts = []; + no_proxy.split(',').forEach(bypass => { + this._httpProxyBypassHosts.push(util.buildProxyBypassRegexFromEnv(bypass)); + }); + } + this.requestOptions = requestOptions; + if (requestOptions) { + if (requestOptions.ignoreSslError != null) { + this._ignoreSslError = requestOptions.ignoreSslError; + } + this._socketTimeout = requestOptions.socketTimeout; + this._httpProxy = requestOptions.proxy; + if (requestOptions.proxy && requestOptions.proxy.proxyBypassHosts) { + this._httpProxyBypassHosts = []; + requestOptions.proxy.proxyBypassHosts.forEach(bypass => { + this._httpProxyBypassHosts.push(new RegExp(bypass, 'i')); + }); + } + this._certConfig = requestOptions.cert; + if (this._certConfig) { + // If using cert, need fs + fs = __nccwpck_require__(5747); + // cache the cert content into memory, so we don't have to read it from disk every time + if (this._certConfig.caFile && fs.existsSync(this._certConfig.caFile)) { + this._ca = fs.readFileSync(this._certConfig.caFile, 'utf8'); + } + if (this._certConfig.certFile && fs.existsSync(this._certConfig.certFile)) { + this._cert = fs.readFileSync(this._certConfig.certFile, 'utf8'); + } + if (this._certConfig.keyFile && fs.existsSync(this._certConfig.keyFile)) { + this._key = fs.readFileSync(this._certConfig.keyFile, 'utf8'); + } + } + if (requestOptions.allowRedirects != null) { + this._allowRedirects = requestOptions.allowRedirects; + } + if (requestOptions.allowRedirectDowngrade != null) { + this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; + } + if (requestOptions.maxRedirects != null) { + this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); + } + if (requestOptions.keepAlive != null) { + this._keepAlive = requestOptions.keepAlive; + } + if (requestOptions.allowRetries != null) { + this._allowRetries = requestOptions.allowRetries; + } + if (requestOptions.maxRetries != null) { + this._maxRetries = requestOptions.maxRetries; + } + } + } + options(requestUrl, additionalHeaders) { + return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); + } + get(requestUrl, additionalHeaders) { + return this.request('GET', requestUrl, null, additionalHeaders || {}); + } + del(requestUrl, additionalHeaders) { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); + } + post(requestUrl, data, additionalHeaders) { + return this.request('POST', requestUrl, data, additionalHeaders || {}); + } + patch(requestUrl, data, additionalHeaders) { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + } + put(requestUrl, data, additionalHeaders) { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + } + head(requestUrl, additionalHeaders) { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return this.request(verb, requestUrl, stream, additionalHeaders); + } + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ + request(verb, requestUrl, data, headers) { + return __awaiter(this, void 0, void 0, function* () { + if (this._disposed) { + throw new Error("Client has already been disposed."); + } + let parsedUrl = url.parse(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + let maxTries = (this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1) ? this._maxRetries + 1 : 1; + let numTries = 0; + let response; + while (numTries < maxTries) { + try { + response = yield this.requestRaw(info, data); + } + catch (err) { + numTries++; + if (err && err.code && NetworkRetryErrors.indexOf(err.code) > -1 && numTries < maxTries) { + yield this._performExponentialBackoff(numTries); + continue; + } + throw err; + } + // Check if it's an authentication challenge + if (response && response.message && response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (let i = 0; i < this.handlers.length; i++) { + if (this.handlers[i].canHandleAuthentication(response)) { + authenticationHandler = this.handlers[i]; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 + && this._allowRedirects + && redirectsRemaining > 0) { + const redirectUrl = response.message.headers["location"]; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + let parsedRedirectUrl = url.parse(redirectUrl); + if (parsedUrl.protocol == 'https:' && parsedUrl.protocol != parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) { + throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true."); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + yield response.readBody(); + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = yield this.requestRaw(info, data); + redirectsRemaining--; + } + if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + yield response.readBody(); + yield this._performExponentialBackoff(numTries); + } + } + return response; + }); + } + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { + this._agent.destroy(); + } + this._disposed = true; + } + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info, data) { + return new Promise((resolve, reject) => { + let callbackForResult = function (err, res) { + if (err) { + reject(err); + } + resolve(res); + }; + this.requestRawWithCallback(info, data, callbackForResult); + }); + } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + let socket; + if (typeof (data) === 'string') { + info.options.headers["Content-Length"] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + let handleResult = (err, res) => { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + }; + let req = info.httpModule.request(info.options, (msg) => { + let res = new HttpClientResponse(msg); + handleResult(null, res); + }); + req.on('socket', (sock) => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.destroy(); + } + handleResult(new Error('Request timeout: ' + info.options.path), null); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err, null); + }); + if (data && typeof (data) === 'string') { + req.write(data, 'utf8'); + } + if (data && typeof (data) !== 'string') { + data.on('close', function () { + req.end(); + }); + data.pipe(req); + } + else { + req.end(); + } + } + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port ? parseInt(info.parsedUrl.port) : defaultPort; + info.options.path = (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.timeout = (this.requestOptions && this.requestOptions.socketTimeout) || this._socketTimeout; + this._socketTimeout = info.options.timeout; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers["user-agent"] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers && !this._isPresigned(url.format(requestUrl))) { + this.handlers.forEach((handler) => { + handler.prepareRequest(info.options); + }); + } + return info; + } + _isPresigned(requestUrl) { + if (this.requestOptions && this.requestOptions.presignedUrlPatterns) { + const patterns = this.requestOptions.presignedUrlPatterns; + for (let i = 0; i < patterns.length; i++) { + if (requestUrl.match(patterns[i])) { + return true; + } + } + } + return false; + } + _mergeHeaders(headers) { + const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => (c[k.toLowerCase()] = obj[k], c), {}); + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers)); + } + return lowercaseKeys(headers || {}); + } + _getAgent(parsedUrl) { + let agent; + let proxy = this._getProxy(parsedUrl); + let useProxy = proxy.proxyUrl && proxy.proxyUrl.hostname && !this._isMatchInBypassProxyList(parsedUrl); + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (this._keepAlive && !useProxy) { + agent = this._agent; + } + // if agent is already assigned use that agent. + if (!!agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (!!this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + if (useProxy) { + // If using proxy, need tunnel + if (!tunnel) { + tunnel = __nccwpck_require__(4294); + } + const agentOptions = { + maxSockets: maxSockets, + keepAlive: this._keepAlive, + proxy: { + proxyAuth: proxy.proxyAuth, + host: proxy.proxyUrl.hostname, + port: proxy.proxyUrl.port + }, + }; + let tunnelAgent; + const overHttps = proxy.proxyUrl.protocol === 'https:'; + if (usingSsl) { + tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; + } + else { + tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; + } + agent = tunnelAgent(agentOptions); + this._proxyAgent = agent; + } + // if reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { keepAlive: this._keepAlive, maxSockets: maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { + agent = usingSsl ? https.globalAgent : http.globalAgent; + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { rejectUnauthorized: false }); + } + if (usingSsl && this._certConfig) { + agent.options = Object.assign(agent.options || {}, { ca: this._ca, cert: this._cert, key: this._key, passphrase: this._certConfig.passphrase }); + } + return agent; + } + _getProxy(parsedUrl) { + let usingSsl = parsedUrl.protocol === 'https:'; + let proxyConfig = this._httpProxy; + // fallback to http_proxy and https_proxy env + let https_proxy = process.env[EnvironmentVariables.HTTPS_PROXY]; + let http_proxy = process.env[EnvironmentVariables.HTTP_PROXY]; + if (!proxyConfig) { + if (https_proxy && usingSsl) { + proxyConfig = { + proxyUrl: https_proxy + }; + } + else if (http_proxy) { + proxyConfig = { + proxyUrl: http_proxy + }; + } + } + let proxyUrl; + let proxyAuth; + if (proxyConfig) { + if (proxyConfig.proxyUrl.length > 0) { + proxyUrl = url.parse(proxyConfig.proxyUrl); + } + if (proxyConfig.proxyUsername || proxyConfig.proxyPassword) { + proxyAuth = proxyConfig.proxyUsername + ":" + proxyConfig.proxyPassword; + } + } + return { proxyUrl: proxyUrl, proxyAuth: proxyAuth }; + } + _isMatchInBypassProxyList(parsedUrl) { + if (!this._httpProxyBypassHosts) { + return false; + } + let bypass = false; + this._httpProxyBypassHosts.forEach(bypassHost => { + if (bypassHost.test(parsedUrl.href)) { + bypass = true; + } + }); + return bypass; + } + _performExponentialBackoff(retryNumber) { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + } +} +exports.HttpClient = HttpClient; + + +/***/ }), + +/***/ 7405: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const httpm = __nccwpck_require__(5538); +const util = __nccwpck_require__(9470); +class RestClient { + /** + * Creates an instance of the RestClient + * @constructor + * @param {string} userAgent - userAgent for requests + * @param {string} baseUrl - (Optional) If not specified, use full urls per request. If supplied and a function passes a relative url, it will be appended to this + * @param {ifm.IRequestHandler[]} handlers - handlers are typically auth handlers (basic, bearer, ntlm supplied) + * @param {ifm.IRequestOptions} requestOptions - options for each http requests (http proxy setting, socket timeout) + */ + constructor(userAgent, baseUrl, handlers, requestOptions) { + this.client = new httpm.HttpClient(userAgent, handlers, requestOptions); + if (baseUrl) { + this._baseUrl = baseUrl; + } + } + /** + * Gets a resource from an endpoint + * Be aware that not found returns a null. Other error conditions reject the promise + * @param {string} requestUrl - fully qualified or relative url + * @param {IRequestOptions} requestOptions - (optional) requestOptions object + */ + options(requestUrl, options) { + return __awaiter(this, void 0, void 0, function* () { + let url = util.getUrl(requestUrl, this._baseUrl); + let res = yield this.client.options(url, this._headersFromOptions(options)); + return this.processResponse(res, options); + }); + } + /** + * Gets a resource from an endpoint + * Be aware that not found returns a null. Other error conditions reject the promise + * @param {string} resource - fully qualified url or relative path + * @param {IRequestOptions} requestOptions - (optional) requestOptions object + */ + get(resource, options) { + return __awaiter(this, void 0, void 0, function* () { + let url = util.getUrl(resource, this._baseUrl, (options || {}).queryParameters); + let res = yield this.client.get(url, this._headersFromOptions(options)); + return this.processResponse(res, options); + }); + } + /** + * Deletes a resource from an endpoint + * Be aware that not found returns a null. Other error conditions reject the promise + * @param {string} resource - fully qualified or relative url + * @param {IRequestOptions} requestOptions - (optional) requestOptions object + */ + del(resource, options) { + return __awaiter(this, void 0, void 0, function* () { + let url = util.getUrl(resource, this._baseUrl, (options || {}).queryParameters); + let res = yield this.client.del(url, this._headersFromOptions(options)); + return this.processResponse(res, options); + }); + } + /** + * Creates resource(s) from an endpoint + * T type of object returned. + * Be aware that not found returns a null. Other error conditions reject the promise + * @param {string} resource - fully qualified or relative url + * @param {IRequestOptions} requestOptions - (optional) requestOptions object + */ + create(resource, resources, options) { + return __awaiter(this, void 0, void 0, function* () { + let url = util.getUrl(resource, this._baseUrl); + let headers = this._headersFromOptions(options, true); + let data = JSON.stringify(resources, null, 2); + let res = yield this.client.post(url, data, headers); + return this.processResponse(res, options); + }); + } + /** + * Updates resource(s) from an endpoint + * T type of object returned. + * Be aware that not found returns a null. Other error conditions reject the promise + * @param {string} resource - fully qualified or relative url + * @param {IRequestOptions} requestOptions - (optional) requestOptions object + */ + update(resource, resources, options) { + return __awaiter(this, void 0, void 0, function* () { + let url = util.getUrl(resource, this._baseUrl); + let headers = this._headersFromOptions(options, true); + let data = JSON.stringify(resources, null, 2); + let res = yield this.client.patch(url, data, headers); + return this.processResponse(res, options); + }); + } + /** + * Replaces resource(s) from an endpoint + * T type of object returned. + * Be aware that not found returns a null. Other error conditions reject the promise + * @param {string} resource - fully qualified or relative url + * @param {IRequestOptions} requestOptions - (optional) requestOptions object + */ + replace(resource, resources, options) { + return __awaiter(this, void 0, void 0, function* () { + let url = util.getUrl(resource, this._baseUrl); + let headers = this._headersFromOptions(options, true); + let data = JSON.stringify(resources, null, 2); + let res = yield this.client.put(url, data, headers); + return this.processResponse(res, options); + }); + } + uploadStream(verb, requestUrl, stream, options) { + return __awaiter(this, void 0, void 0, function* () { + let url = util.getUrl(requestUrl, this._baseUrl); + let headers = this._headersFromOptions(options, true); + let res = yield this.client.sendStream(verb, url, stream, headers); + return this.processResponse(res, options); + }); + } + _headersFromOptions(options, contentType) { + options = options || {}; + let headers = options.additionalHeaders || {}; + headers["Accept"] = options.acceptHeader || "application/json"; + if (contentType) { + let found = false; + for (let header in headers) { + if (header.toLowerCase() == "content-type") { + found = true; + } + } + if (!found) { + headers["Content-Type"] = 'application/json; charset=utf-8'; + } + } + return headers; + } + static dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + let a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + processResponse(res, options) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + const statusCode = res.message.statusCode; + const response = { + statusCode: statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode == httpm.HttpCodes.NotFound) { + resolve(response); + } + let obj; + let contents; + // get the result from the body + try { + contents = yield res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, RestClient.dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + if (options && options.responseProcessor) { + response.result = options.responseProcessor(obj); + } + else { + response.result = obj; + } + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = "Failed request: (" + statusCode + ")"; + } + let err = new Error(msg); + // attach statusCode and body obj (if available) to the error object + err['statusCode'] = statusCode; + if (response.result) { + err['result'] = response.result; + } + reject(err); + } + else { + resolve(response); + } + })); + }); + } +} +exports.RestClient = RestClient; + + +/***/ }), + +/***/ 9470: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const qs = __nccwpck_require__(2760); +const url = __nccwpck_require__(8835); +const path = __nccwpck_require__(5622); +const zlib = __nccwpck_require__(8761); +/** + * creates an url from a request url and optional base url (http://server:8080) + * @param {string} resource - a fully qualified url or relative path + * @param {string} baseUrl - an optional baseUrl (http://server:8080) + * @param {IRequestOptions} options - an optional options object, could include QueryParameters e.g. + * @return {string} - resultant url + */ +function getUrl(resource, baseUrl, queryParams) { + const pathApi = path.posix || path; + let requestUrl = ''; + if (!baseUrl) { + requestUrl = resource; + } + else if (!resource) { + requestUrl = baseUrl; + } + else { + const base = url.parse(baseUrl); + const resultantUrl = url.parse(resource); + // resource (specific per request) elements take priority + resultantUrl.protocol = resultantUrl.protocol || base.protocol; + resultantUrl.auth = resultantUrl.auth || base.auth; + resultantUrl.host = resultantUrl.host || base.host; + resultantUrl.pathname = pathApi.resolve(base.pathname, resultantUrl.pathname); + if (!resultantUrl.pathname.endsWith('/') && resource.endsWith('/')) { + resultantUrl.pathname += '/'; + } + requestUrl = url.format(resultantUrl); + } + return queryParams ? + getUrlWithParsedQueryParams(requestUrl, queryParams) : + requestUrl; +} +exports.getUrl = getUrl; +/** + * + * @param {string} requestUrl + * @param {IRequestQueryParams} queryParams + * @return {string} - Request's URL with Query Parameters appended/parsed. + */ +function getUrlWithParsedQueryParams(requestUrl, queryParams) { + const url = requestUrl.replace(/\?$/g, ''); // Clean any extra end-of-string "?" character + const parsedQueryParams = qs.stringify(queryParams.params, buildParamsStringifyOptions(queryParams)); + return `${url}${parsedQueryParams}`; +} +/** + * Build options for QueryParams Stringifying. + * + * @param {IRequestQueryParams} queryParams + * @return {object} + */ +function buildParamsStringifyOptions(queryParams) { + let options = { + addQueryPrefix: true, + delimiter: (queryParams.options || {}).separator || '&', + allowDots: (queryParams.options || {}).shouldAllowDots || false, + arrayFormat: (queryParams.options || {}).arrayFormat || 'repeat', + encodeValuesOnly: (queryParams.options || {}).shouldOnlyEncodeValues || true + }; + return options; +} +/** + * Decompress/Decode gzip encoded JSON + * Using Node.js built-in zlib module + * + * @param {Buffer} buffer + * @param {string} charset? - optional; defaults to 'utf-8' + * @return {Promise} + */ +function decompressGzippedContent(buffer, charset) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + zlib.gunzip(buffer, function (error, buffer) { + if (error) { + reject(error); + } + resolve(buffer.toString(charset || 'utf-8')); + }); + })); + }); +} +exports.decompressGzippedContent = decompressGzippedContent; +/** + * Builds a RegExp to test urls against for deciding + * wether to bypass proxy from an entry of the + * environment variable setting NO_PROXY + * + * @param {string} bypass + * @return {RegExp} + */ +function buildProxyBypassRegexFromEnv(bypass) { + try { + // We need to keep this around for back-compat purposes + return new RegExp(bypass, 'i'); + } + catch (err) { + if (err instanceof SyntaxError && (bypass || "").startsWith("*")) { + let wildcardEscaped = bypass.replace('*', '(.*)'); + return new RegExp(wildcardEscaped, 'i'); + } + throw err; + } +} +exports.buildProxyBypassRegexFromEnv = buildProxyBypassRegexFromEnv; +/** + * Obtain Response's Content Charset. + * Through inspecting `content-type` response header. + * It Returns 'utf-8' if NO charset specified/matched. + * + * @param {IHttpClientResponse} response + * @return {string} - Content Encoding Charset; Default=utf-8 + */ +function obtainContentCharset(response) { + // Find the charset, if specified. + // Search for the `charset=CHARSET` string, not including `;,\r\n` + // Example: content-type: 'application/json;charset=utf-8' + // |__ matches would be ['charset=utf-8', 'utf-8', index: 18, input: 'application/json; charset=utf-8'] + // |_____ matches[1] would have the charset :tada: , in our example it's utf-8 + // However, if the matches Array was empty or no charset found, 'utf-8' would be returned by default. + const nodeSupportedEncodings = ['ascii', 'utf8', 'utf16le', 'ucs2', 'base64', 'binary', 'hex']; + const contentType = response.message.headers['content-type'] || ''; + const matches = contentType.match(/charset=([^;,\r\n]+)/i); + return (matches && matches[1] && nodeSupportedEncodings.indexOf(matches[1]) != -1) ? matches[1] : 'utf-8'; +} +exports.obtainContentCharset = obtainContentCharset; + + +/***/ }), + +/***/ 7954: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +Object.defineProperty(exports, "__esModule", ({ value: true })); +class BasicCredentialHandler { + constructor(username, password, allowCrossOriginAuthentication) { + this.username = username; + this.password = password; + this.allowCrossOriginAuthentication = allowCrossOriginAuthentication; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!this.origin) { + this.origin = options.host; + } + // If this is a redirection, don't set the Authorization header + if (this.origin === options.host || this.allowCrossOriginAuthentication) { + options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; + } + options.headers['X-TFS-FedAuthRedirect'] = 'Suppress'; + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } +} +exports.BasicCredentialHandler = BasicCredentialHandler; + + +/***/ }), + +/***/ 7431: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +Object.defineProperty(exports, "__esModule", ({ value: true })); +class BearerCredentialHandler { + constructor(token, allowCrossOriginAuthentication) { + this.token = token; + this.allowCrossOriginAuthentication = allowCrossOriginAuthentication; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!this.origin) { + this.origin = options.host; + } + // If this is a redirection, don't set the Authorization header + if (this.origin === options.host || this.allowCrossOriginAuthentication) { + options.headers['Authorization'] = `Bearer ${this.token}`; + } + options.headers['X-TFS-FedAuthRedirect'] = 'Suppress'; + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } +} +exports.BearerCredentialHandler = BearerCredentialHandler; + + +/***/ }), + +/***/ 4157: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +Object.defineProperty(exports, "__esModule", ({ value: true })); +const http = __nccwpck_require__(8605); +const https = __nccwpck_require__(7211); +const _ = __nccwpck_require__(3571); +const ntlm = __nccwpck_require__(2673); +class NtlmCredentialHandler { + constructor(username, password, workstation, domain) { + this._ntlmOptions = {}; + this._ntlmOptions.username = username; + this._ntlmOptions.password = password; + this._ntlmOptions.domain = domain || ''; + this._ntlmOptions.workstation = workstation || ''; + } + prepareRequest(options) { + // No headers or options need to be set. We keep the credentials on the handler itself. + // If a (proxy) agent is set, remove it as we don't support proxy for NTLM at this time + if (options.agent) { + delete options.agent; + } + } + canHandleAuthentication(response) { + if (response && response.message && response.message.statusCode === 401) { + // Ensure that we're talking NTLM here + // Once we have the www-authenticate header, split it so we can ensure we can talk NTLM + const wwwAuthenticate = response.message.headers['www-authenticate']; + return wwwAuthenticate && (wwwAuthenticate.split(', ').indexOf("NTLM") >= 0); + } + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return new Promise((resolve, reject) => { + const callbackForResult = function (err, res) { + if (err) { + reject(err); + } + // We have to readbody on the response before continuing otherwise there is a hang. + res.readBody().then(() => { + resolve(res); + }); + }; + this.handleAuthenticationPrivate(httpClient, requestInfo, objs, callbackForResult); + }); + } + handleAuthenticationPrivate(httpClient, requestInfo, objs, finalCallback) { + // Set up the headers for NTLM authentication + requestInfo.options = _.extend(requestInfo.options, { + username: this._ntlmOptions.username, + password: this._ntlmOptions.password, + domain: this._ntlmOptions.domain, + workstation: this._ntlmOptions.workstation + }); + requestInfo.options.agent = httpClient.isSsl ? + new https.Agent({ keepAlive: true }) : + new http.Agent({ keepAlive: true }); + let self = this; + // The following pattern of sending the type1 message following immediately (in a setImmediate) is + // critical for the NTLM exchange to happen. If we removed setImmediate (or call in a different manner) + // the NTLM exchange will always fail with a 401. + this.sendType1Message(httpClient, requestInfo, objs, function (err, res) { + if (err) { + return finalCallback(err, null, null); + } + /// We have to readbody on the response before continuing otherwise there is a hang. + res.readBody().then(() => { + // It is critical that we have setImmediate here due to how connection requests are queued. + // If setImmediate is removed then the NTLM handshake will not work. + // setImmediate allows us to queue a second request on the same connection. If this second + // request is not queued on the connection when the first request finishes then node closes + // the connection. NTLM requires both requests to be on the same connection so we need this. + setImmediate(function () { + self.sendType3Message(httpClient, requestInfo, objs, res, finalCallback); + }); + }); + }); + } + // The following method is an adaptation of code found at https://github.com/SamDecrock/node-http-ntlm/blob/master/httpntlm.js + sendType1Message(httpClient, requestInfo, objs, finalCallback) { + const type1HexBuffer = ntlm.encodeType1(this._ntlmOptions.workstation, this._ntlmOptions.domain); + const type1msg = `NTLM ${type1HexBuffer.toString('base64')}`; + const type1options = { + headers: { + 'Connection': 'keep-alive', + 'Authorization': type1msg + }, + timeout: requestInfo.options.timeout || 0, + agent: requestInfo.httpModule, + }; + const type1info = {}; + type1info.httpModule = requestInfo.httpModule; + type1info.parsedUrl = requestInfo.parsedUrl; + type1info.options = _.extend(type1options, _.omit(requestInfo.options, 'headers')); + return httpClient.requestRawWithCallback(type1info, objs, finalCallback); + } + // The following method is an adaptation of code found at https://github.com/SamDecrock/node-http-ntlm/blob/master/httpntlm.js + sendType3Message(httpClient, requestInfo, objs, res, callback) { + if (!res.message.headers && !res.message.headers['www-authenticate']) { + throw new Error('www-authenticate not found on response of second request'); + } + /** + * Server will respond with challenge/nonce + * assigned to response's "WWW-AUTHENTICATE" header + * and should adhere to RegExp /^NTLM\s+(.+?)(,|\s+|$)/ + */ + const serverNonceRegex = /^NTLM\s+(.+?)(,|\s+|$)/; + const serverNonce = Buffer.from((res.message.headers['www-authenticate'].match(serverNonceRegex) || [])[1], 'base64'); + let type2msg; + /** + * Wrap decoding the Server's challenge/nonce in + * try-catch block to throw more comprehensive + * Error with clear message to consumer + */ + try { + type2msg = ntlm.decodeType2(serverNonce); + } + catch (error) { + throw new Error(`Decoding Server's Challenge to Obtain Type2Message failed with error: ${error.message}`); + } + const type3msg = ntlm.encodeType3(this._ntlmOptions.username, this._ntlmOptions.workstation, this._ntlmOptions.domain, type2msg, this._ntlmOptions.password).toString('base64'); + const type3options = { + headers: { + 'Authorization': `NTLM ${type3msg}`, + 'Connection': 'Close' + }, + agent: requestInfo.httpModule, + }; + const type3info = {}; + type3info.httpModule = requestInfo.httpModule; + type3info.parsedUrl = requestInfo.parsedUrl; + type3options.headers = _.extend(type3options.headers, requestInfo.options.headers); + type3info.options = _.extend(type3options, _.omit(requestInfo.options, 'headers')); + return httpClient.requestRawWithCallback(type3info, objs, callback); + } +} +exports.NtlmCredentialHandler = NtlmCredentialHandler; + + +/***/ }), + +/***/ 7799: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. +Object.defineProperty(exports, "__esModule", ({ value: true })); +class PersonalAccessTokenCredentialHandler { + constructor(token, allowCrossOriginAuthentication) { + this.token = token; + this.allowCrossOriginAuthentication = allowCrossOriginAuthentication; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!this.origin) { + this.origin = options.host; + } + // If this is a redirection, don't set the Authorization header + if (this.origin === options.host || this.allowCrossOriginAuthentication) { + options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; + } + options.headers['X-TFS-FedAuthRedirect'] = 'Suppress'; + } + // This handler cannot handle 401 + canHandleAuthentication(response) { + return false; + } + handleAuthentication(httpClient, requestInfo, objs) { + return null; + } +} +exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; + + +/***/ }), + +/***/ 2352: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var crypto = __nccwpck_require__(6417); + +function zeroextend(str, len) +{ + while (str.length < len) + str = '0' + str; + return (str); +} + +/* + * Fix (odd) parity bits in a 64-bit DES key. + */ +function oddpar(buf) +{ + for (var j = 0; j < buf.length; j++) { + var par = 1; + for (var i = 1; i < 8; i++) { + par = (par + ((buf[j] >> i) & 1)) % 2; + } + buf[j] |= par & 1; + } + return buf; +} + +/* + * Expand a 56-bit key buffer to the full 64-bits for DES. + * + * Based on code sample in: + * http://www.innovation.ch/personal/ronald/ntlm.html + */ +function expandkey(key56) +{ + var key64 = new Buffer(8); + + key64[0] = key56[0] & 0xFE; + key64[1] = ((key56[0] << 7) & 0xFF) | (key56[1] >> 1); + key64[2] = ((key56[1] << 6) & 0xFF) | (key56[2] >> 2); + key64[3] = ((key56[2] << 5) & 0xFF) | (key56[3] >> 3); + key64[4] = ((key56[3] << 4) & 0xFF) | (key56[4] >> 4); + key64[5] = ((key56[4] << 3) & 0xFF) | (key56[5] >> 5); + key64[6] = ((key56[5] << 2) & 0xFF) | (key56[6] >> 6); + key64[7] = (key56[6] << 1) & 0xFF; + + return key64; +} + +/* + * Convert a binary string to a hex string + */ +function bintohex(bin) +{ + var buf = (Buffer.isBuffer(buf) ? buf : new Buffer(bin, 'binary')); + var str = buf.toString('hex').toUpperCase(); + return zeroextend(str, 32); +} + + +module.exports.zeroextend = zeroextend; +module.exports.oddpar = oddpar; +module.exports.expandkey = expandkey; +module.exports.bintohex = bintohex; + + +/***/ }), + +/***/ 2673: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +var log = console.log; +var crypto = __nccwpck_require__(6417); +var $ = __nccwpck_require__(2352); +var lmhashbuf = __nccwpck_require__(8657).lmhashbuf; +var nthashbuf = __nccwpck_require__(8657).nthashbuf; + + +function encodeType1(hostname, ntdomain) { + hostname = hostname.toUpperCase(); + ntdomain = ntdomain.toUpperCase(); + var hostnamelen = Buffer.byteLength(hostname, 'ascii'); + var ntdomainlen = Buffer.byteLength(ntdomain, 'ascii'); + + var pos = 0; + var buf = new Buffer(32 + hostnamelen + ntdomainlen); + + buf.write('NTLMSSP', pos, 7, 'ascii'); // byte protocol[8]; + pos += 7; + buf.writeUInt8(0, pos); + pos++; + + buf.writeUInt8(0x01, pos); // byte type; + pos++; + + buf.fill(0x00, pos, pos + 3); // byte zero[3]; + pos += 3; + + buf.writeUInt16LE(0xb203, pos); // short flags; + pos += 2; + + buf.fill(0x00, pos, pos + 2); // byte zero[2]; + pos += 2; + + buf.writeUInt16LE(ntdomainlen, pos); // short dom_len; + pos += 2; + buf.writeUInt16LE(ntdomainlen, pos); // short dom_len; + pos += 2; + + var ntdomainoff = 0x20 + hostnamelen; + buf.writeUInt16LE(ntdomainoff, pos); // short dom_off; + pos += 2; + + buf.fill(0x00, pos, pos + 2); // byte zero[2]; + pos += 2; + + buf.writeUInt16LE(hostnamelen, pos); // short host_len; + pos += 2; + buf.writeUInt16LE(hostnamelen, pos); // short host_len; + pos += 2; + + buf.writeUInt16LE(0x20, pos); // short host_off; + pos += 2; + + buf.fill(0x00, pos, pos + 2); // byte zero[2]; + pos += 2; + + buf.write(hostname, 0x20, hostnamelen, 'ascii'); + buf.write(ntdomain, ntdomainoff, ntdomainlen, 'ascii'); + + return buf; +} + + +/* + * + */ +function decodeType2(buf) +{ + var proto = buf.toString('ascii', 0, 7); + if (buf[7] !== 0x00 || proto !== 'NTLMSSP') + throw new Error('magic was not NTLMSSP'); + + var type = buf.readUInt8(8); + if (type !== 0x02) + throw new Error('message was not NTLMSSP type 0x02'); + + //var msg_len = buf.readUInt16LE(16); + + //var flags = buf.readUInt16LE(20); + + var nonce = buf.slice(24, 32); + return nonce; +} + +function encodeType3(username, hostname, ntdomain, nonce, password) { + hostname = hostname.toUpperCase(); + ntdomain = ntdomain.toUpperCase(); + + var lmh = new Buffer(21); + lmhashbuf(password).copy(lmh); + lmh.fill(0x00, 16); // null pad to 21 bytes + var nth = new Buffer(21); + nthashbuf(password).copy(nth); + nth.fill(0x00, 16); // null pad to 21 bytes + + var lmr = makeResponse(lmh, nonce); + var ntr = makeResponse(nth, nonce); + + var usernamelen = Buffer.byteLength(username, 'ucs2'); + var hostnamelen = Buffer.byteLength(hostname, 'ucs2'); + var ntdomainlen = Buffer.byteLength(ntdomain, 'ucs2'); + var lmrlen = 0x18; + var ntrlen = 0x18; + + var ntdomainoff = 0x40; + var usernameoff = ntdomainoff + ntdomainlen; + var hostnameoff = usernameoff + usernamelen; + var lmroff = hostnameoff + hostnamelen; + var ntroff = lmroff + lmrlen; + + var pos = 0; + var msg_len = 64 + ntdomainlen + usernamelen + hostnamelen + lmrlen + ntrlen; + var buf = new Buffer(msg_len); + + buf.write('NTLMSSP', pos, 7, 'ascii'); // byte protocol[8]; + pos += 7; + buf.writeUInt8(0, pos); + pos++; + + buf.writeUInt8(0x03, pos); // byte type; + pos++; + + buf.fill(0x00, pos, pos + 3); // byte zero[3]; + pos += 3; + + buf.writeUInt16LE(lmrlen, pos); // short lm_resp_len; + pos += 2; + buf.writeUInt16LE(lmrlen, pos); // short lm_resp_len; + pos += 2; + buf.writeUInt16LE(lmroff, pos); // short lm_resp_off; + pos += 2; + buf.fill(0x00, pos, pos + 2); // byte zero[2]; + pos += 2; + + buf.writeUInt16LE(ntrlen, pos); // short nt_resp_len; + pos += 2; + buf.writeUInt16LE(ntrlen, pos); // short nt_resp_len; + pos += 2; + buf.writeUInt16LE(ntroff, pos); // short nt_resp_off; + pos += 2; + buf.fill(0x00, pos, pos + 2); // byte zero[2]; + pos += 2; + + buf.writeUInt16LE(ntdomainlen, pos); // short dom_len; + pos += 2; + buf.writeUInt16LE(ntdomainlen, pos); // short dom_len; + pos += 2; + buf.writeUInt16LE(ntdomainoff, pos); // short dom_off; + pos += 2; + buf.fill(0x00, pos, pos + 2); // byte zero[2]; + pos += 2; + + buf.writeUInt16LE(usernamelen, pos); // short user_len; + pos += 2; + buf.writeUInt16LE(usernamelen, pos); // short user_len; + pos += 2; + buf.writeUInt16LE(usernameoff, pos); // short user_off; + pos += 2; + buf.fill(0x00, pos, pos + 2); // byte zero[2]; + pos += 2; + + buf.writeUInt16LE(hostnamelen, pos); // short host_len; + pos += 2; + buf.writeUInt16LE(hostnamelen, pos); // short host_len; + pos += 2; + buf.writeUInt16LE(hostnameoff, pos); // short host_off; + pos += 2; + buf.fill(0x00, pos, pos + 6); // byte zero[6]; + pos += 6; + + buf.writeUInt16LE(msg_len, pos); // short msg_len; + pos += 2; + buf.fill(0x00, pos, pos + 2); // byte zero[2]; + pos += 2; + + buf.writeUInt16LE(0x8201, pos); // short flags; + pos += 2; + buf.fill(0x00, pos, pos + 2); // byte zero[2]; + pos += 2; + + buf.write(ntdomain, ntdomainoff, ntdomainlen, 'ucs2'); + buf.write(username, usernameoff, usernamelen, 'ucs2'); + buf.write(hostname, hostnameoff, hostnamelen, 'ucs2'); + lmr.copy(buf, lmroff, 0, lmrlen); + ntr.copy(buf, ntroff, 0, ntrlen); + + return buf; +} + +function makeResponse(hash, nonce) +{ + var out = new Buffer(24); + for (var i = 0; i < 3; i++) { + var keybuf = $.oddpar($.expandkey(hash.slice(i * 7, i * 7 + 7))); + var des = crypto.createCipheriv('DES-ECB', keybuf, ''); + var str = des.update(nonce.toString('binary'), 'binary', 'binary'); + out.write(str, i * 8, i * 8 + 8, 'binary'); + } + return out; +} + +exports.encodeType1 = encodeType1; +exports.decodeType2 = decodeType2; +exports.encodeType3 = encodeType3; + +// Convenience methods. + +exports.challengeHeader = function (hostname, domain) { + return 'NTLM ' + exports.encodeType1(hostname, domain).toString('base64'); +}; + +exports.responseHeader = function (res, url, domain, username, password) { + var serverNonce = new Buffer((res.headers['www-authenticate'].match(/^NTLM\s+(.+?)(,|\s+|$)/) || [])[1], 'base64'); + var hostname = __nccwpck_require__(8835).parse(url).hostname; + return 'NTLM ' + exports.encodeType3(username, hostname, domain, exports.decodeType2(serverNonce), password).toString('base64') +}; + +// Import smbhash module. + +exports.smbhash = __nccwpck_require__(8657); + + +/***/ }), + +/***/ 8657: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var crypto = __nccwpck_require__(6417); +var $ = __nccwpck_require__(2352); + +/* + * Generate the LM Hash + */ +function lmhashbuf(inputstr) +{ + /* ASCII --> uppercase */ + var x = inputstr.substring(0, 14).toUpperCase(); + var xl = Buffer.byteLength(x, 'ascii'); + + /* null pad to 14 bytes */ + var y = new Buffer(14); + y.write(x, 0, xl, 'ascii'); + y.fill(0, xl); + + /* insert odd parity bits in key */ + var halves = [ + $.oddpar($.expandkey(y.slice(0, 7))), + $.oddpar($.expandkey(y.slice(7, 14))) + ]; + + /* DES encrypt magic number "KGS!@#$%" to two + * 8-byte ciphertexts, (ECB, no padding) + */ + var buf = new Buffer(16); + var pos = 0; + var cts = halves.forEach(function(z) { + var des = crypto.createCipheriv('DES-ECB', z, ''); + var str = des.update('KGS!@#$%', 'binary', 'binary'); + buf.write(str, pos, pos + 8, 'binary'); + pos += 8; + }); + + /* concat the two ciphertexts to form 16byte value, + * the LM hash */ + return buf; +} + +function nthashbuf(str) +{ + /* take MD4 hash of UCS-2 encoded password */ + var ucs2 = new Buffer(str, 'ucs2'); + var md4 = crypto.createHash('md4'); + md4.update(ucs2); + return new Buffer(md4.digest('binary'), 'binary'); +} + +function lmhash(is) +{ + return $.bintohex(lmhashbuf(is)); +} + +function nthash(is) +{ + return $.bintohex(nthashbuf(is)); +} + +module.exports.nthashbuf = nthashbuf; +module.exports.lmhashbuf = lmhashbuf; + +module.exports.nthash = nthash; +module.exports.lmhash = lmhash; + + +/***/ }), + +/***/ 5030: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } + + if (typeof process === "object" && "version" in process) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; + } + + return ""; +} + +exports.getUserAgent = getUserAgent; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 2940: +/***/ ((module) => { + +// Returns a wrapper function that returns a wrapped callback +// The wrapper function should do some stuff, and return a +// presumably different callback function. +// This makes sure that own properties are retained, so that +// decorations and such are not lost along the way. +module.exports = wrappy +function wrappy (fn, cb) { + if (fn && cb) return wrappy(fn)(cb) + + if (typeof fn !== 'function') + throw new TypeError('need wrapper function') + + Object.keys(fn).forEach(function (k) { + wrapper[k] = fn[k] + }) + + return wrapper + + function wrapper() { + var args = new Array(arguments.length) + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] + } + var ret = fn.apply(this, args) + var cb = args[args.length-1] + if (typeof ret === 'function' && ret !== cb) { + Object.keys(cb).forEach(function (k) { + ret[k] = cb[k] + }) + } + return ret + } +} + + +/***/ }), + +/***/ 2877: +/***/ ((module) => { + +module.exports = eval("require")("encoding"); + + +/***/ }), + +/***/ 1641: +/***/ ((__unused_webpack_module, exports) => { + +// Underscore.js 1.13.1 +// https://underscorejs.org +// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors +// Underscore may be freely distributed under the MIT license. + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +// Current version. +var VERSION = '1.13.1'; + +// Establish the root object, `window` (`self`) in the browser, `global` +// on the server, or `this` in some virtual machines. We use `self` +// instead of `window` for `WebWorker` support. +var root = typeof self == 'object' && self.self === self && self || + typeof global == 'object' && global.global === global && global || + Function('return this')() || + {}; + +// Save bytes in the minified (but not gzipped) version: +var ArrayProto = Array.prototype, ObjProto = Object.prototype; +var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null; + +// Create quick reference variables for speed access to core prototypes. +var push = ArrayProto.push, + slice = ArrayProto.slice, + toString = ObjProto.toString, + hasOwnProperty = ObjProto.hasOwnProperty; + +// Modern feature detection. +var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined', + supportsDataView = typeof DataView !== 'undefined'; + +// All **ECMAScript 5+** native function implementations that we hope to use +// are declared here. +var nativeIsArray = Array.isArray, + nativeKeys = Object.keys, + nativeCreate = Object.create, + nativeIsView = supportsArrayBuffer && ArrayBuffer.isView; + +// Create references to these builtin functions because we override them. +var _isNaN = isNaN, + _isFinite = isFinite; + +// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed. +var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString'); +var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString', + 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; + +// The largest integer that can be represented exactly. +var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1; + +// Some functions take a variable number of arguments, or a few expected +// arguments at the beginning and then a variable number of values to operate +// on. This helper accumulates all remaining arguments past the function’s +// argument length (or an explicit `startIndex`), into an array that becomes +// the last argument. Similar to ES6’s "rest parameter". +function restArguments(func, startIndex) { + startIndex = startIndex == null ? func.length - 1 : +startIndex; + return function() { + var length = Math.max(arguments.length - startIndex, 0), + rest = Array(length), + index = 0; + for (; index < length; index++) { + rest[index] = arguments[index + startIndex]; + } + switch (startIndex) { + case 0: return func.call(this, rest); + case 1: return func.call(this, arguments[0], rest); + case 2: return func.call(this, arguments[0], arguments[1], rest); + } + var args = Array(startIndex + 1); + for (index = 0; index < startIndex; index++) { + args[index] = arguments[index]; + } + args[startIndex] = rest; + return func.apply(this, args); + }; +} + +// Is a given variable an object? +function isObject(obj) { + var type = typeof obj; + return type === 'function' || type === 'object' && !!obj; +} + +// Is a given value equal to null? +function isNull(obj) { + return obj === null; +} + +// Is a given variable undefined? +function isUndefined(obj) { + return obj === void 0; +} + +// Is a given value a boolean? +function isBoolean(obj) { + return obj === true || obj === false || toString.call(obj) === '[object Boolean]'; +} + +// Is a given value a DOM element? +function isElement(obj) { + return !!(obj && obj.nodeType === 1); +} + +// Internal function for creating a `toString`-based type tester. +function tagTester(name) { + var tag = '[object ' + name + ']'; + return function(obj) { + return toString.call(obj) === tag; + }; +} + +var isString = tagTester('String'); + +var isNumber = tagTester('Number'); + +var isDate = tagTester('Date'); + +var isRegExp = tagTester('RegExp'); + +var isError = tagTester('Error'); + +var isSymbol = tagTester('Symbol'); + +var isArrayBuffer = tagTester('ArrayBuffer'); + +var isFunction = tagTester('Function'); + +// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old +// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236). +var nodelist = root.document && root.document.childNodes; +if ( true && typeof Int8Array != 'object' && typeof nodelist != 'function') { + isFunction = function(obj) { + return typeof obj == 'function' || false; + }; +} + +var isFunction$1 = isFunction; + +var hasObjectTag = tagTester('Object'); + +// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`. +// In IE 11, the most common among them, this problem also applies to +// `Map`, `WeakMap` and `Set`. +var hasStringTagBug = ( + supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8))) + ), + isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map)); + +var isDataView = tagTester('DataView'); + +// In IE 10 - Edge 13, we need a different heuristic +// to determine whether an object is a `DataView`. +function ie10IsDataView(obj) { + return obj != null && isFunction$1(obj.getInt8) && isArrayBuffer(obj.buffer); +} + +var isDataView$1 = (hasStringTagBug ? ie10IsDataView : isDataView); + +// Is a given value an array? +// Delegates to ECMA5's native `Array.isArray`. +var isArray = nativeIsArray || tagTester('Array'); + +// Internal function to check whether `key` is an own property name of `obj`. +function has$1(obj, key) { + return obj != null && hasOwnProperty.call(obj, key); +} + +var isArguments = tagTester('Arguments'); + +// Define a fallback version of the method in browsers (ahem, IE < 9), where +// there isn't any inspectable "Arguments" type. +(function() { + if (!isArguments(arguments)) { + isArguments = function(obj) { + return has$1(obj, 'callee'); + }; + } +}()); + +var isArguments$1 = isArguments; + +// Is a given object a finite number? +function isFinite$1(obj) { + return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj)); +} + +// Is the given value `NaN`? +function isNaN$1(obj) { + return isNumber(obj) && _isNaN(obj); +} + +// Predicate-generating function. Often useful outside of Underscore. +function constant(value) { + return function() { + return value; + }; +} + +// Common internal logic for `isArrayLike` and `isBufferLike`. +function createSizePropertyCheck(getSizeProperty) { + return function(collection) { + var sizeProperty = getSizeProperty(collection); + return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX; + } +} + +// Internal helper to generate a function to obtain property `key` from `obj`. +function shallowProperty(key) { + return function(obj) { + return obj == null ? void 0 : obj[key]; + }; +} + +// Internal helper to obtain the `byteLength` property of an object. +var getByteLength = shallowProperty('byteLength'); + +// Internal helper to determine whether we should spend extensive checks against +// `ArrayBuffer` et al. +var isBufferLike = createSizePropertyCheck(getByteLength); + +// Is a given value a typed array? +var typedArrayPattern = /\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/; +function isTypedArray(obj) { + // `ArrayBuffer.isView` is the most future-proof, so use it when available. + // Otherwise, fall back on the above regular expression. + return nativeIsView ? (nativeIsView(obj) && !isDataView$1(obj)) : + isBufferLike(obj) && typedArrayPattern.test(toString.call(obj)); +} + +var isTypedArray$1 = supportsArrayBuffer ? isTypedArray : constant(false); + +// Internal helper to obtain the `length` property of an object. +var getLength = shallowProperty('length'); + +// Internal helper to create a simple lookup structure. +// `collectNonEnumProps` used to depend on `_.contains`, but this led to +// circular imports. `emulatedSet` is a one-off solution that only works for +// arrays of strings. +function emulatedSet(keys) { + var hash = {}; + for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true; + return { + contains: function(key) { return hash[key]; }, + push: function(key) { + hash[key] = true; + return keys.push(key); + } + }; +} + +// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't +// be iterated by `for key in ...` and thus missed. Extends `keys` in place if +// needed. +function collectNonEnumProps(obj, keys) { + keys = emulatedSet(keys); + var nonEnumIdx = nonEnumerableProps.length; + var constructor = obj.constructor; + var proto = isFunction$1(constructor) && constructor.prototype || ObjProto; + + // Constructor is a special case. + var prop = 'constructor'; + if (has$1(obj, prop) && !keys.contains(prop)) keys.push(prop); + + while (nonEnumIdx--) { + prop = nonEnumerableProps[nonEnumIdx]; + if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) { + keys.push(prop); + } + } +} + +// Retrieve the names of an object's own properties. +// Delegates to **ECMAScript 5**'s native `Object.keys`. +function keys(obj) { + if (!isObject(obj)) return []; + if (nativeKeys) return nativeKeys(obj); + var keys = []; + for (var key in obj) if (has$1(obj, key)) keys.push(key); + // Ahem, IE < 9. + if (hasEnumBug) collectNonEnumProps(obj, keys); + return keys; +} + +// Is a given array, string, or object empty? +// An "empty" object has no enumerable own-properties. +function isEmpty(obj) { + if (obj == null) return true; + // Skip the more expensive `toString`-based type checks if `obj` has no + // `.length`. + var length = getLength(obj); + if (typeof length == 'number' && ( + isArray(obj) || isString(obj) || isArguments$1(obj) + )) return length === 0; + return getLength(keys(obj)) === 0; +} + +// Returns whether an object has a given set of `key:value` pairs. +function isMatch(object, attrs) { + var _keys = keys(attrs), length = _keys.length; + if (object == null) return !length; + var obj = Object(object); + for (var i = 0; i < length; i++) { + var key = _keys[i]; + if (attrs[key] !== obj[key] || !(key in obj)) return false; + } + return true; +} + +// If Underscore is called as a function, it returns a wrapped object that can +// be used OO-style. This wrapper holds altered versions of all functions added +// through `_.mixin`. Wrapped objects may be chained. +function _$1(obj) { + if (obj instanceof _$1) return obj; + if (!(this instanceof _$1)) return new _$1(obj); + this._wrapped = obj; +} + +_$1.VERSION = VERSION; + +// Extracts the result from a wrapped and chained object. +_$1.prototype.value = function() { + return this._wrapped; +}; + +// Provide unwrapping proxies for some methods used in engine operations +// such as arithmetic and JSON stringification. +_$1.prototype.valueOf = _$1.prototype.toJSON = _$1.prototype.value; + +_$1.prototype.toString = function() { + return String(this._wrapped); +}; + +// Internal function to wrap or shallow-copy an ArrayBuffer, +// typed array or DataView to a new view, reusing the buffer. +function toBufferView(bufferSource) { + return new Uint8Array( + bufferSource.buffer || bufferSource, + bufferSource.byteOffset || 0, + getByteLength(bufferSource) + ); +} + +// We use this string twice, so give it a name for minification. +var tagDataView = '[object DataView]'; + +// Internal recursive comparison function for `_.isEqual`. +function eq(a, b, aStack, bStack) { + // Identical objects are equal. `0 === -0`, but they aren't identical. + // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal). + if (a === b) return a !== 0 || 1 / a === 1 / b; + // `null` or `undefined` only equal to itself (strict comparison). + if (a == null || b == null) return false; + // `NaN`s are equivalent, but non-reflexive. + if (a !== a) return b !== b; + // Exhaust primitive checks + var type = typeof a; + if (type !== 'function' && type !== 'object' && typeof b != 'object') return false; + return deepEq(a, b, aStack, bStack); +} + +// Internal recursive comparison function for `_.isEqual`. +function deepEq(a, b, aStack, bStack) { + // Unwrap any wrapped objects. + if (a instanceof _$1) a = a._wrapped; + if (b instanceof _$1) b = b._wrapped; + // Compare `[[Class]]` names. + var className = toString.call(a); + if (className !== toString.call(b)) return false; + // Work around a bug in IE 10 - Edge 13. + if (hasStringTagBug && className == '[object Object]' && isDataView$1(a)) { + if (!isDataView$1(b)) return false; + className = tagDataView; + } + switch (className) { + // These types are compared by value. + case '[object RegExp]': + // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i') + case '[object String]': + // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is + // equivalent to `new String("5")`. + return '' + a === '' + b; + case '[object Number]': + // `NaN`s are equivalent, but non-reflexive. + // Object(NaN) is equivalent to NaN. + if (+a !== +a) return +b !== +b; + // An `egal` comparison is performed for other numeric values. + return +a === 0 ? 1 / +a === 1 / b : +a === +b; + case '[object Date]': + case '[object Boolean]': + // Coerce dates and booleans to numeric primitive values. Dates are compared by their + // millisecond representations. Note that invalid dates with millisecond representations + // of `NaN` are not equivalent. + return +a === +b; + case '[object Symbol]': + return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b); + case '[object ArrayBuffer]': + case tagDataView: + // Coerce to typed array so we can fall through. + return deepEq(toBufferView(a), toBufferView(b), aStack, bStack); + } + + var areArrays = className === '[object Array]'; + if (!areArrays && isTypedArray$1(a)) { + var byteLength = getByteLength(a); + if (byteLength !== getByteLength(b)) return false; + if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true; + areArrays = true; + } + if (!areArrays) { + if (typeof a != 'object' || typeof b != 'object') return false; + + // Objects with different constructors are not equivalent, but `Object`s or `Array`s + // from different frames are. + var aCtor = a.constructor, bCtor = b.constructor; + if (aCtor !== bCtor && !(isFunction$1(aCtor) && aCtor instanceof aCtor && + isFunction$1(bCtor) && bCtor instanceof bCtor) + && ('constructor' in a && 'constructor' in b)) { + return false; + } + } + // Assume equality for cyclic structures. The algorithm for detecting cyclic + // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. + + // Initializing stack of traversed objects. + // It's done here since we only need them for objects and arrays comparison. + aStack = aStack || []; + bStack = bStack || []; + var length = aStack.length; + while (length--) { + // Linear search. Performance is inversely proportional to the number of + // unique nested structures. + if (aStack[length] === a) return bStack[length] === b; + } + + // Add the first object to the stack of traversed objects. + aStack.push(a); + bStack.push(b); + + // Recursively compare objects and arrays. + if (areArrays) { + // Compare array lengths to determine if a deep comparison is necessary. + length = a.length; + if (length !== b.length) return false; + // Deep compare the contents, ignoring non-numeric properties. + while (length--) { + if (!eq(a[length], b[length], aStack, bStack)) return false; + } + } else { + // Deep compare objects. + var _keys = keys(a), key; + length = _keys.length; + // Ensure that both objects contain the same number of properties before comparing deep equality. + if (keys(b).length !== length) return false; + while (length--) { + // Deep compare each member + key = _keys[length]; + if (!(has$1(b, key) && eq(a[key], b[key], aStack, bStack))) return false; + } + } + // Remove the first object from the stack of traversed objects. + aStack.pop(); + bStack.pop(); + return true; +} + +// Perform a deep comparison to check if two objects are equal. +function isEqual(a, b) { + return eq(a, b); +} + +// Retrieve all the enumerable property names of an object. +function allKeys(obj) { + if (!isObject(obj)) return []; + var keys = []; + for (var key in obj) keys.push(key); + // Ahem, IE < 9. + if (hasEnumBug) collectNonEnumProps(obj, keys); + return keys; +} + +// Since the regular `Object.prototype.toString` type tests don't work for +// some types in IE 11, we use a fingerprinting heuristic instead, based +// on the methods. It's not great, but it's the best we got. +// The fingerprint method lists are defined below. +function ie11fingerprint(methods) { + var length = getLength(methods); + return function(obj) { + if (obj == null) return false; + // `Map`, `WeakMap` and `Set` have no enumerable keys. + var keys = allKeys(obj); + if (getLength(keys)) return false; + for (var i = 0; i < length; i++) { + if (!isFunction$1(obj[methods[i]])) return false; + } + // If we are testing against `WeakMap`, we need to ensure that + // `obj` doesn't have a `forEach` method in order to distinguish + // it from a regular `Map`. + return methods !== weakMapMethods || !isFunction$1(obj[forEachName]); + }; +} + +// In the interest of compact minification, we write +// each string in the fingerprints only once. +var forEachName = 'forEach', + hasName = 'has', + commonInit = ['clear', 'delete'], + mapTail = ['get', hasName, 'set']; + +// `Map`, `WeakMap` and `Set` each have slightly different +// combinations of the above sublists. +var mapMethods = commonInit.concat(forEachName, mapTail), + weakMapMethods = commonInit.concat(mapTail), + setMethods = ['add'].concat(commonInit, forEachName, hasName); + +var isMap = isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map'); + +var isWeakMap = isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap'); + +var isSet = isIE11 ? ie11fingerprint(setMethods) : tagTester('Set'); + +var isWeakSet = tagTester('WeakSet'); + +// Retrieve the values of an object's properties. +function values(obj) { + var _keys = keys(obj); + var length = _keys.length; + var values = Array(length); + for (var i = 0; i < length; i++) { + values[i] = obj[_keys[i]]; + } + return values; +} + +// Convert an object into a list of `[key, value]` pairs. +// The opposite of `_.object` with one argument. +function pairs(obj) { + var _keys = keys(obj); + var length = _keys.length; + var pairs = Array(length); + for (var i = 0; i < length; i++) { + pairs[i] = [_keys[i], obj[_keys[i]]]; + } + return pairs; +} + +// Invert the keys and values of an object. The values must be serializable. +function invert(obj) { + var result = {}; + var _keys = keys(obj); + for (var i = 0, length = _keys.length; i < length; i++) { + result[obj[_keys[i]]] = _keys[i]; + } + return result; +} + +// Return a sorted list of the function names available on the object. +function functions(obj) { + var names = []; + for (var key in obj) { + if (isFunction$1(obj[key])) names.push(key); + } + return names.sort(); +} + +// An internal function for creating assigner functions. +function createAssigner(keysFunc, defaults) { + return function(obj) { + var length = arguments.length; + if (defaults) obj = Object(obj); + if (length < 2 || obj == null) return obj; + for (var index = 1; index < length; index++) { + var source = arguments[index], + keys = keysFunc(source), + l = keys.length; + for (var i = 0; i < l; i++) { + var key = keys[i]; + if (!defaults || obj[key] === void 0) obj[key] = source[key]; + } + } + return obj; + }; +} + +// Extend a given object with all the properties in passed-in object(s). +var extend = createAssigner(allKeys); + +// Assigns a given object with all the own properties in the passed-in +// object(s). +// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) +var extendOwn = createAssigner(keys); + +// Fill in a given object with default properties. +var defaults = createAssigner(allKeys, true); + +// Create a naked function reference for surrogate-prototype-swapping. +function ctor() { + return function(){}; +} + +// An internal function for creating a new object that inherits from another. +function baseCreate(prototype) { + if (!isObject(prototype)) return {}; + if (nativeCreate) return nativeCreate(prototype); + var Ctor = ctor(); + Ctor.prototype = prototype; + var result = new Ctor; + Ctor.prototype = null; + return result; +} + +// Creates an object that inherits from the given prototype object. +// If additional properties are provided then they will be added to the +// created object. +function create(prototype, props) { + var result = baseCreate(prototype); + if (props) extendOwn(result, props); + return result; +} + +// Create a (shallow-cloned) duplicate of an object. +function clone(obj) { + if (!isObject(obj)) return obj; + return isArray(obj) ? obj.slice() : extend({}, obj); +} + +// Invokes `interceptor` with the `obj` and then returns `obj`. +// The primary purpose of this method is to "tap into" a method chain, in +// order to perform operations on intermediate results within the chain. +function tap(obj, interceptor) { + interceptor(obj); + return obj; +} + +// Normalize a (deep) property `path` to array. +// Like `_.iteratee`, this function can be customized. +function toPath$1(path) { + return isArray(path) ? path : [path]; +} +_$1.toPath = toPath$1; + +// Internal wrapper for `_.toPath` to enable minification. +// Similar to `cb` for `_.iteratee`. +function toPath(path) { + return _$1.toPath(path); +} + +// Internal function to obtain a nested property in `obj` along `path`. +function deepGet(obj, path) { + var length = path.length; + for (var i = 0; i < length; i++) { + if (obj == null) return void 0; + obj = obj[path[i]]; + } + return length ? obj : void 0; +} + +// Get the value of the (deep) property on `path` from `object`. +// If any property in `path` does not exist or if the value is +// `undefined`, return `defaultValue` instead. +// The `path` is normalized through `_.toPath`. +function get(object, path, defaultValue) { + var value = deepGet(object, toPath(path)); + return isUndefined(value) ? defaultValue : value; +} + +// Shortcut function for checking if an object has a given property directly on +// itself (in other words, not on a prototype). Unlike the internal `has` +// function, this public version can also traverse nested properties. +function has(obj, path) { + path = toPath(path); + var length = path.length; + for (var i = 0; i < length; i++) { + var key = path[i]; + if (!has$1(obj, key)) return false; + obj = obj[key]; + } + return !!length; +} + +// Keep the identity function around for default iteratees. +function identity(value) { + return value; +} + +// Returns a predicate for checking whether an object has a given set of +// `key:value` pairs. +function matcher(attrs) { + attrs = extendOwn({}, attrs); + return function(obj) { + return isMatch(obj, attrs); + }; +} + +// Creates a function that, when passed an object, will traverse that object’s +// properties down the given `path`, specified as an array of keys or indices. +function property(path) { + path = toPath(path); + return function(obj) { + return deepGet(obj, path); + }; +} + +// Internal function that returns an efficient (for current engines) version +// of the passed-in callback, to be repeatedly applied in other Underscore +// functions. +function optimizeCb(func, context, argCount) { + if (context === void 0) return func; + switch (argCount == null ? 3 : argCount) { + case 1: return function(value) { + return func.call(context, value); + }; + // The 2-argument case is omitted because we’re not using it. + case 3: return function(value, index, collection) { + return func.call(context, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(context, accumulator, value, index, collection); + }; + } + return function() { + return func.apply(context, arguments); + }; +} + +// An internal function to generate callbacks that can be applied to each +// element in a collection, returning the desired result — either `_.identity`, +// an arbitrary callback, a property matcher, or a property accessor. +function baseIteratee(value, context, argCount) { + if (value == null) return identity; + if (isFunction$1(value)) return optimizeCb(value, context, argCount); + if (isObject(value) && !isArray(value)) return matcher(value); + return property(value); +} + +// External wrapper for our callback generator. Users may customize +// `_.iteratee` if they want additional predicate/iteratee shorthand styles. +// This abstraction hides the internal-only `argCount` argument. +function iteratee(value, context) { + return baseIteratee(value, context, Infinity); +} +_$1.iteratee = iteratee; + +// The function we call internally to generate a callback. It invokes +// `_.iteratee` if overridden, otherwise `baseIteratee`. +function cb(value, context, argCount) { + if (_$1.iteratee !== iteratee) return _$1.iteratee(value, context); + return baseIteratee(value, context, argCount); +} + +// Returns the results of applying the `iteratee` to each element of `obj`. +// In contrast to `_.map` it returns an object. +function mapObject(obj, iteratee, context) { + iteratee = cb(iteratee, context); + var _keys = keys(obj), + length = _keys.length, + results = {}; + for (var index = 0; index < length; index++) { + var currentKey = _keys[index]; + results[currentKey] = iteratee(obj[currentKey], currentKey, obj); + } + return results; +} + +// Predicate-generating function. Often useful outside of Underscore. +function noop(){} + +// Generates a function for a given object that returns a given property. +function propertyOf(obj) { + if (obj == null) return noop; + return function(path) { + return get(obj, path); + }; +} + +// Run a function **n** times. +function times(n, iteratee, context) { + var accum = Array(Math.max(0, n)); + iteratee = optimizeCb(iteratee, context, 1); + for (var i = 0; i < n; i++) accum[i] = iteratee(i); + return accum; +} + +// Return a random integer between `min` and `max` (inclusive). +function random(min, max) { + if (max == null) { + max = min; + min = 0; + } + return min + Math.floor(Math.random() * (max - min + 1)); +} + +// A (possibly faster) way to get the current timestamp as an integer. +var now = Date.now || function() { + return new Date().getTime(); +}; + +// Internal helper to generate functions for escaping and unescaping strings +// to/from HTML interpolation. +function createEscaper(map) { + var escaper = function(match) { + return map[match]; + }; + // Regexes for identifying a key that needs to be escaped. + var source = '(?:' + keys(map).join('|') + ')'; + var testRegexp = RegExp(source); + var replaceRegexp = RegExp(source, 'g'); + return function(string) { + string = string == null ? '' : '' + string; + return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; + }; +} + +// Internal list of HTML entities for escaping. +var escapeMap = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`' +}; + +// Function for escaping strings to HTML interpolation. +var _escape = createEscaper(escapeMap); + +// Internal list of HTML entities for unescaping. +var unescapeMap = invert(escapeMap); + +// Function for unescaping strings from HTML interpolation. +var _unescape = createEscaper(unescapeMap); + +// By default, Underscore uses ERB-style template delimiters. Change the +// following template settings to use alternative delimiters. +var templateSettings = _$1.templateSettings = { + evaluate: /<%([\s\S]+?)%>/g, + interpolate: /<%=([\s\S]+?)%>/g, + escape: /<%-([\s\S]+?)%>/g +}; + +// When customizing `_.templateSettings`, if you don't want to define an +// interpolation, evaluation or escaping regex, we need one that is +// guaranteed not to match. +var noMatch = /(.)^/; + +// Certain characters need to be escaped so that they can be put into a +// string literal. +var escapes = { + "'": "'", + '\\': '\\', + '\r': 'r', + '\n': 'n', + '\u2028': 'u2028', + '\u2029': 'u2029' +}; + +var escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g; + +function escapeChar(match) { + return '\\' + escapes[match]; +} + +// In order to prevent third-party code injection through +// `_.templateSettings.variable`, we test it against the following regular +// expression. It is intentionally a bit more liberal than just matching valid +// identifiers, but still prevents possible loopholes through defaults or +// destructuring assignment. +var bareIdentifier = /^\s*(\w|\$)+\s*$/; + +// JavaScript micro-templating, similar to John Resig's implementation. +// Underscore templating handles arbitrary delimiters, preserves whitespace, +// and correctly escapes quotes within interpolated code. +// NB: `oldSettings` only exists for backwards compatibility. +function template(text, settings, oldSettings) { + if (!settings && oldSettings) settings = oldSettings; + settings = defaults({}, settings, _$1.templateSettings); + + // Combine delimiters into one regular expression via alternation. + var matcher = RegExp([ + (settings.escape || noMatch).source, + (settings.interpolate || noMatch).source, + (settings.evaluate || noMatch).source + ].join('|') + '|$', 'g'); + + // Compile the template source, escaping string literals appropriately. + var index = 0; + var source = "__p+='"; + text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { + source += text.slice(index, offset).replace(escapeRegExp, escapeChar); + index = offset + match.length; + + if (escape) { + source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; + } else if (interpolate) { + source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; + } else if (evaluate) { + source += "';\n" + evaluate + "\n__p+='"; + } + + // Adobe VMs need the match returned to produce the correct offset. + return match; + }); + source += "';\n"; + + var argument = settings.variable; + if (argument) { + // Insure against third-party code injection. (CVE-2021-23358) + if (!bareIdentifier.test(argument)) throw new Error( + 'variable is not a bare identifier: ' + argument + ); + } else { + // If a variable is not specified, place data values in local scope. + source = 'with(obj||{}){\n' + source + '}\n'; + argument = 'obj'; + } + + source = "var __t,__p='',__j=Array.prototype.join," + + "print=function(){__p+=__j.call(arguments,'');};\n" + + source + 'return __p;\n'; + + var render; + try { + render = new Function(argument, '_', source); + } catch (e) { + e.source = source; + throw e; + } + + var template = function(data) { + return render.call(this, data, _$1); + }; + + // Provide the compiled source as a convenience for precompilation. + template.source = 'function(' + argument + '){\n' + source + '}'; + + return template; +} + +// Traverses the children of `obj` along `path`. If a child is a function, it +// is invoked with its parent as context. Returns the value of the final +// child, or `fallback` if any child is undefined. +function result(obj, path, fallback) { + path = toPath(path); + var length = path.length; + if (!length) { + return isFunction$1(fallback) ? fallback.call(obj) : fallback; + } + for (var i = 0; i < length; i++) { + var prop = obj == null ? void 0 : obj[path[i]]; + if (prop === void 0) { + prop = fallback; + i = length; // Ensure we don't continue iterating. + } + obj = isFunction$1(prop) ? prop.call(obj) : prop; + } + return obj; +} + +// Generate a unique integer id (unique within the entire client session). +// Useful for temporary DOM ids. +var idCounter = 0; +function uniqueId(prefix) { + var id = ++idCounter + ''; + return prefix ? prefix + id : id; +} + +// Start chaining a wrapped Underscore object. +function chain(obj) { + var instance = _$1(obj); + instance._chain = true; + return instance; +} + +// Internal function to execute `sourceFunc` bound to `context` with optional +// `args`. Determines whether to execute a function as a constructor or as a +// normal function. +function executeBound(sourceFunc, boundFunc, context, callingContext, args) { + if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); + var self = baseCreate(sourceFunc.prototype); + var result = sourceFunc.apply(self, args); + if (isObject(result)) return result; + return self; +} + +// Partially apply a function by creating a version that has had some of its +// arguments pre-filled, without changing its dynamic `this` context. `_` acts +// as a placeholder by default, allowing any combination of arguments to be +// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument. +var partial = restArguments(function(func, boundArgs) { + var placeholder = partial.placeholder; + var bound = function() { + var position = 0, length = boundArgs.length; + var args = Array(length); + for (var i = 0; i < length; i++) { + args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i]; + } + while (position < arguments.length) args.push(arguments[position++]); + return executeBound(func, bound, this, this, args); + }; + return bound; +}); + +partial.placeholder = _$1; + +// Create a function bound to a given object (assigning `this`, and arguments, +// optionally). +var bind = restArguments(function(func, context, args) { + if (!isFunction$1(func)) throw new TypeError('Bind must be called on a function'); + var bound = restArguments(function(callArgs) { + return executeBound(func, bound, context, this, args.concat(callArgs)); + }); + return bound; +}); + +// Internal helper for collection methods to determine whether a collection +// should be iterated as an array or as an object. +// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength +// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094 +var isArrayLike = createSizePropertyCheck(getLength); + +// Internal implementation of a recursive `flatten` function. +function flatten$1(input, depth, strict, output) { + output = output || []; + if (!depth && depth !== 0) { + depth = Infinity; + } else if (depth <= 0) { + return output.concat(input); + } + var idx = output.length; + for (var i = 0, length = getLength(input); i < length; i++) { + var value = input[i]; + if (isArrayLike(value) && (isArray(value) || isArguments$1(value))) { + // Flatten current level of array or arguments object. + if (depth > 1) { + flatten$1(value, depth - 1, strict, output); + idx = output.length; + } else { + var j = 0, len = value.length; + while (j < len) output[idx++] = value[j++]; + } + } else if (!strict) { + output[idx++] = value; + } + } + return output; +} + +// Bind a number of an object's methods to that object. Remaining arguments +// are the method names to be bound. Useful for ensuring that all callbacks +// defined on an object belong to it. +var bindAll = restArguments(function(obj, keys) { + keys = flatten$1(keys, false, false); + var index = keys.length; + if (index < 1) throw new Error('bindAll must be passed function names'); + while (index--) { + var key = keys[index]; + obj[key] = bind(obj[key], obj); + } + return obj; +}); + +// Memoize an expensive function by storing its results. +function memoize(func, hasher) { + var memoize = function(key) { + var cache = memoize.cache; + var address = '' + (hasher ? hasher.apply(this, arguments) : key); + if (!has$1(cache, address)) cache[address] = func.apply(this, arguments); + return cache[address]; + }; + memoize.cache = {}; + return memoize; +} + +// Delays a function for the given number of milliseconds, and then calls +// it with the arguments supplied. +var delay = restArguments(function(func, wait, args) { + return setTimeout(function() { + return func.apply(null, args); + }, wait); +}); + +// Defers a function, scheduling it to run after the current call stack has +// cleared. +var defer = partial(delay, _$1, 1); + +// Returns a function, that, when invoked, will only be triggered at most once +// during a given window of time. Normally, the throttled function will run +// as much as it can, without ever going more than once per `wait` duration; +// but if you'd like to disable the execution on the leading edge, pass +// `{leading: false}`. To disable execution on the trailing edge, ditto. +function throttle(func, wait, options) { + var timeout, context, args, result; + var previous = 0; + if (!options) options = {}; + + var later = function() { + previous = options.leading === false ? 0 : now(); + timeout = null; + result = func.apply(context, args); + if (!timeout) context = args = null; + }; + + var throttled = function() { + var _now = now(); + if (!previous && options.leading === false) previous = _now; + var remaining = wait - (_now - previous); + context = this; + args = arguments; + if (remaining <= 0 || remaining > wait) { + if (timeout) { + clearTimeout(timeout); + timeout = null; + } + previous = _now; + result = func.apply(context, args); + if (!timeout) context = args = null; + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining); + } + return result; + }; + + throttled.cancel = function() { + clearTimeout(timeout); + previous = 0; + timeout = context = args = null; + }; + + return throttled; +} + +// When a sequence of calls of the returned function ends, the argument +// function is triggered. The end of a sequence is defined by the `wait` +// parameter. If `immediate` is passed, the argument function will be +// triggered at the beginning of the sequence instead of at the end. +function debounce(func, wait, immediate) { + var timeout, previous, args, result, context; + + var later = function() { + var passed = now() - previous; + if (wait > passed) { + timeout = setTimeout(later, wait - passed); + } else { + timeout = null; + if (!immediate) result = func.apply(context, args); + // This check is needed because `func` can recursively invoke `debounced`. + if (!timeout) args = context = null; + } + }; + + var debounced = restArguments(function(_args) { + context = this; + args = _args; + previous = now(); + if (!timeout) { + timeout = setTimeout(later, wait); + if (immediate) result = func.apply(context, args); + } + return result; + }); + + debounced.cancel = function() { + clearTimeout(timeout); + timeout = args = context = null; + }; + + return debounced; +} + +// Returns the first function passed as an argument to the second, +// allowing you to adjust arguments, run code before and after, and +// conditionally execute the original function. +function wrap(func, wrapper) { + return partial(wrapper, func); +} + +// Returns a negated version of the passed-in predicate. +function negate(predicate) { + return function() { + return !predicate.apply(this, arguments); + }; +} + +// Returns a function that is the composition of a list of functions, each +// consuming the return value of the function that follows. +function compose() { + var args = arguments; + var start = args.length - 1; + return function() { + var i = start; + var result = args[start].apply(this, arguments); + while (i--) result = args[i].call(this, result); + return result; + }; +} + +// Returns a function that will only be executed on and after the Nth call. +function after(times, func) { + return function() { + if (--times < 1) { + return func.apply(this, arguments); + } + }; +} + +// Returns a function that will only be executed up to (but not including) the +// Nth call. +function before(times, func) { + var memo; + return function() { + if (--times > 0) { + memo = func.apply(this, arguments); + } + if (times <= 1) func = null; + return memo; + }; +} + +// Returns a function that will be executed at most one time, no matter how +// often you call it. Useful for lazy initialization. +var once = partial(before, 2); + +// Returns the first key on an object that passes a truth test. +function findKey(obj, predicate, context) { + predicate = cb(predicate, context); + var _keys = keys(obj), key; + for (var i = 0, length = _keys.length; i < length; i++) { + key = _keys[i]; + if (predicate(obj[key], key, obj)) return key; + } +} + +// Internal function to generate `_.findIndex` and `_.findLastIndex`. +function createPredicateIndexFinder(dir) { + return function(array, predicate, context) { + predicate = cb(predicate, context); + var length = getLength(array); + var index = dir > 0 ? 0 : length - 1; + for (; index >= 0 && index < length; index += dir) { + if (predicate(array[index], index, array)) return index; + } + return -1; + }; +} + +// Returns the first index on an array-like that passes a truth test. +var findIndex = createPredicateIndexFinder(1); + +// Returns the last index on an array-like that passes a truth test. +var findLastIndex = createPredicateIndexFinder(-1); + +// Use a comparator function to figure out the smallest index at which +// an object should be inserted so as to maintain order. Uses binary search. +function sortedIndex(array, obj, iteratee, context) { + iteratee = cb(iteratee, context, 1); + var value = iteratee(obj); + var low = 0, high = getLength(array); + while (low < high) { + var mid = Math.floor((low + high) / 2); + if (iteratee(array[mid]) < value) low = mid + 1; else high = mid; + } + return low; +} + +// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions. +function createIndexFinder(dir, predicateFind, sortedIndex) { + return function(array, item, idx) { + var i = 0, length = getLength(array); + if (typeof idx == 'number') { + if (dir > 0) { + i = idx >= 0 ? idx : Math.max(idx + length, i); + } else { + length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; + } + } else if (sortedIndex && idx && length) { + idx = sortedIndex(array, item); + return array[idx] === item ? idx : -1; + } + if (item !== item) { + idx = predicateFind(slice.call(array, i, length), isNaN$1); + return idx >= 0 ? idx + i : -1; + } + for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) { + if (array[idx] === item) return idx; + } + return -1; + }; +} + +// Return the position of the first occurrence of an item in an array, +// or -1 if the item is not included in the array. +// If the array is large and already in sort order, pass `true` +// for **isSorted** to use binary search. +var indexOf = createIndexFinder(1, findIndex, sortedIndex); + +// Return the position of the last occurrence of an item in an array, +// or -1 if the item is not included in the array. +var lastIndexOf = createIndexFinder(-1, findLastIndex); + +// Return the first value which passes a truth test. +function find(obj, predicate, context) { + var keyFinder = isArrayLike(obj) ? findIndex : findKey; + var key = keyFinder(obj, predicate, context); + if (key !== void 0 && key !== -1) return obj[key]; +} + +// Convenience version of a common use case of `_.find`: getting the first +// object containing specific `key:value` pairs. +function findWhere(obj, attrs) { + return find(obj, matcher(attrs)); +} + +// The cornerstone for collection functions, an `each` +// implementation, aka `forEach`. +// Handles raw objects in addition to array-likes. Treats all +// sparse array-likes as if they were dense. +function each(obj, iteratee, context) { + iteratee = optimizeCb(iteratee, context); + var i, length; + if (isArrayLike(obj)) { + for (i = 0, length = obj.length; i < length; i++) { + iteratee(obj[i], i, obj); + } + } else { + var _keys = keys(obj); + for (i = 0, length = _keys.length; i < length; i++) { + iteratee(obj[_keys[i]], _keys[i], obj); + } + } + return obj; +} + +// Return the results of applying the iteratee to each element. +function map(obj, iteratee, context) { + iteratee = cb(iteratee, context); + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length, + results = Array(length); + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + results[index] = iteratee(obj[currentKey], currentKey, obj); + } + return results; +} + +// Internal helper to create a reducing function, iterating left or right. +function createReduce(dir) { + // Wrap code that reassigns argument variables in a separate function than + // the one that accesses `arguments.length` to avoid a perf hit. (#1991) + var reducer = function(obj, iteratee, memo, initial) { + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length, + index = dir > 0 ? 0 : length - 1; + if (!initial) { + memo = obj[_keys ? _keys[index] : index]; + index += dir; + } + for (; index >= 0 && index < length; index += dir) { + var currentKey = _keys ? _keys[index] : index; + memo = iteratee(memo, obj[currentKey], currentKey, obj); + } + return memo; + }; + + return function(obj, iteratee, memo, context) { + var initial = arguments.length >= 3; + return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial); + }; +} + +// **Reduce** builds up a single result from a list of values, aka `inject`, +// or `foldl`. +var reduce = createReduce(1); + +// The right-associative version of reduce, also known as `foldr`. +var reduceRight = createReduce(-1); + +// Return all the elements that pass a truth test. +function filter(obj, predicate, context) { + var results = []; + predicate = cb(predicate, context); + each(obj, function(value, index, list) { + if (predicate(value, index, list)) results.push(value); + }); + return results; +} + +// Return all the elements for which a truth test fails. +function reject(obj, predicate, context) { + return filter(obj, negate(cb(predicate)), context); +} + +// Determine whether all of the elements pass a truth test. +function every(obj, predicate, context) { + predicate = cb(predicate, context); + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + if (!predicate(obj[currentKey], currentKey, obj)) return false; + } + return true; +} + +// Determine if at least one element in the object passes a truth test. +function some(obj, predicate, context) { + predicate = cb(predicate, context); + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + if (predicate(obj[currentKey], currentKey, obj)) return true; + } + return false; +} + +// Determine if the array or object contains a given item (using `===`). +function contains(obj, item, fromIndex, guard) { + if (!isArrayLike(obj)) obj = values(obj); + if (typeof fromIndex != 'number' || guard) fromIndex = 0; + return indexOf(obj, item, fromIndex) >= 0; +} + +// Invoke a method (with arguments) on every item in a collection. +var invoke = restArguments(function(obj, path, args) { + var contextPath, func; + if (isFunction$1(path)) { + func = path; + } else { + path = toPath(path); + contextPath = path.slice(0, -1); + path = path[path.length - 1]; + } + return map(obj, function(context) { + var method = func; + if (!method) { + if (contextPath && contextPath.length) { + context = deepGet(context, contextPath); + } + if (context == null) return void 0; + method = context[path]; + } + return method == null ? method : method.apply(context, args); + }); +}); + +// Convenience version of a common use case of `_.map`: fetching a property. +function pluck(obj, key) { + return map(obj, property(key)); +} + +// Convenience version of a common use case of `_.filter`: selecting only +// objects containing specific `key:value` pairs. +function where(obj, attrs) { + return filter(obj, matcher(attrs)); +} + +// Return the maximum element (or element-based computation). +function max(obj, iteratee, context) { + var result = -Infinity, lastComputed = -Infinity, + value, computed; + if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) { + obj = isArrayLike(obj) ? obj : values(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value != null && value > result) { + result = value; + } + } + } else { + iteratee = cb(iteratee, context); + each(obj, function(v, index, list) { + computed = iteratee(v, index, list); + if (computed > lastComputed || computed === -Infinity && result === -Infinity) { + result = v; + lastComputed = computed; + } + }); + } + return result; +} + +// Return the minimum element (or element-based computation). +function min(obj, iteratee, context) { + var result = Infinity, lastComputed = Infinity, + value, computed; + if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) { + obj = isArrayLike(obj) ? obj : values(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value != null && value < result) { + result = value; + } + } + } else { + iteratee = cb(iteratee, context); + each(obj, function(v, index, list) { + computed = iteratee(v, index, list); + if (computed < lastComputed || computed === Infinity && result === Infinity) { + result = v; + lastComputed = computed; + } + }); + } + return result; +} + +// Sample **n** random values from a collection using the modern version of the +// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle). +// If **n** is not specified, returns a single random element. +// The internal `guard` argument allows it to work with `_.map`. +function sample(obj, n, guard) { + if (n == null || guard) { + if (!isArrayLike(obj)) obj = values(obj); + return obj[random(obj.length - 1)]; + } + var sample = isArrayLike(obj) ? clone(obj) : values(obj); + var length = getLength(sample); + n = Math.max(Math.min(n, length), 0); + var last = length - 1; + for (var index = 0; index < n; index++) { + var rand = random(index, last); + var temp = sample[index]; + sample[index] = sample[rand]; + sample[rand] = temp; + } + return sample.slice(0, n); +} + +// Shuffle a collection. +function shuffle(obj) { + return sample(obj, Infinity); +} + +// Sort the object's values by a criterion produced by an iteratee. +function sortBy(obj, iteratee, context) { + var index = 0; + iteratee = cb(iteratee, context); + return pluck(map(obj, function(value, key, list) { + return { + value: value, + index: index++, + criteria: iteratee(value, key, list) + }; + }).sort(function(left, right) { + var a = left.criteria; + var b = right.criteria; + if (a !== b) { + if (a > b || a === void 0) return 1; + if (a < b || b === void 0) return -1; + } + return left.index - right.index; + }), 'value'); +} + +// An internal function used for aggregate "group by" operations. +function group(behavior, partition) { + return function(obj, iteratee, context) { + var result = partition ? [[], []] : {}; + iteratee = cb(iteratee, context); + each(obj, function(value, index) { + var key = iteratee(value, index, obj); + behavior(result, value, key); + }); + return result; + }; +} + +// Groups the object's values by a criterion. Pass either a string attribute +// to group by, or a function that returns the criterion. +var groupBy = group(function(result, value, key) { + if (has$1(result, key)) result[key].push(value); else result[key] = [value]; +}); + +// Indexes the object's values by a criterion, similar to `_.groupBy`, but for +// when you know that your index values will be unique. +var indexBy = group(function(result, value, key) { + result[key] = value; +}); + +// Counts instances of an object that group by a certain criterion. Pass +// either a string attribute to count by, or a function that returns the +// criterion. +var countBy = group(function(result, value, key) { + if (has$1(result, key)) result[key]++; else result[key] = 1; +}); + +// Split a collection into two arrays: one whose elements all pass the given +// truth test, and one whose elements all do not pass the truth test. +var partition = group(function(result, value, pass) { + result[pass ? 0 : 1].push(value); +}, true); + +// Safely create a real, live array from anything iterable. +var reStrSymbol = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g; +function toArray(obj) { + if (!obj) return []; + if (isArray(obj)) return slice.call(obj); + if (isString(obj)) { + // Keep surrogate pair characters together. + return obj.match(reStrSymbol); + } + if (isArrayLike(obj)) return map(obj, identity); + return values(obj); +} + +// Return the number of elements in a collection. +function size(obj) { + if (obj == null) return 0; + return isArrayLike(obj) ? obj.length : keys(obj).length; +} + +// Internal `_.pick` helper function to determine whether `key` is an enumerable +// property name of `obj`. +function keyInObj(value, key, obj) { + return key in obj; +} + +// Return a copy of the object only containing the allowed properties. +var pick = restArguments(function(obj, keys) { + var result = {}, iteratee = keys[0]; + if (obj == null) return result; + if (isFunction$1(iteratee)) { + if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]); + keys = allKeys(obj); + } else { + iteratee = keyInObj; + keys = flatten$1(keys, false, false); + obj = Object(obj); + } + for (var i = 0, length = keys.length; i < length; i++) { + var key = keys[i]; + var value = obj[key]; + if (iteratee(value, key, obj)) result[key] = value; + } + return result; +}); + +// Return a copy of the object without the disallowed properties. +var omit = restArguments(function(obj, keys) { + var iteratee = keys[0], context; + if (isFunction$1(iteratee)) { + iteratee = negate(iteratee); + if (keys.length > 1) context = keys[1]; + } else { + keys = map(flatten$1(keys, false, false), String); + iteratee = function(value, key) { + return !contains(keys, key); + }; + } + return pick(obj, iteratee, context); +}); + +// Returns everything but the last entry of the array. Especially useful on +// the arguments object. Passing **n** will return all the values in +// the array, excluding the last N. +function initial(array, n, guard) { + return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n))); +} + +// Get the first element of an array. Passing **n** will return the first N +// values in the array. The **guard** check allows it to work with `_.map`. +function first(array, n, guard) { + if (array == null || array.length < 1) return n == null || guard ? void 0 : []; + if (n == null || guard) return array[0]; + return initial(array, array.length - n); +} + +// Returns everything but the first entry of the `array`. Especially useful on +// the `arguments` object. Passing an **n** will return the rest N values in the +// `array`. +function rest(array, n, guard) { + return slice.call(array, n == null || guard ? 1 : n); +} + +// Get the last element of an array. Passing **n** will return the last N +// values in the array. +function last(array, n, guard) { + if (array == null || array.length < 1) return n == null || guard ? void 0 : []; + if (n == null || guard) return array[array.length - 1]; + return rest(array, Math.max(0, array.length - n)); +} + +// Trim out all falsy values from an array. +function compact(array) { + return filter(array, Boolean); +} + +// Flatten out an array, either recursively (by default), or up to `depth`. +// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively. +function flatten(array, depth) { + return flatten$1(array, depth, false); +} + +// Take the difference between one array and a number of other arrays. +// Only the elements present in just the first array will remain. +var difference = restArguments(function(array, rest) { + rest = flatten$1(rest, true, true); + return filter(array, function(value){ + return !contains(rest, value); + }); +}); + +// Return a version of the array that does not contain the specified value(s). +var without = restArguments(function(array, otherArrays) { + return difference(array, otherArrays); +}); + +// Produce a duplicate-free version of the array. If the array has already +// been sorted, you have the option of using a faster algorithm. +// The faster algorithm will not work with an iteratee if the iteratee +// is not a one-to-one function, so providing an iteratee will disable +// the faster algorithm. +function uniq(array, isSorted, iteratee, context) { + if (!isBoolean(isSorted)) { + context = iteratee; + iteratee = isSorted; + isSorted = false; + } + if (iteratee != null) iteratee = cb(iteratee, context); + var result = []; + var seen = []; + for (var i = 0, length = getLength(array); i < length; i++) { + var value = array[i], + computed = iteratee ? iteratee(value, i, array) : value; + if (isSorted && !iteratee) { + if (!i || seen !== computed) result.push(value); + seen = computed; + } else if (iteratee) { + if (!contains(seen, computed)) { + seen.push(computed); + result.push(value); + } + } else if (!contains(result, value)) { + result.push(value); + } + } + return result; +} + +// Produce an array that contains the union: each distinct element from all of +// the passed-in arrays. +var union = restArguments(function(arrays) { + return uniq(flatten$1(arrays, true, true)); +}); + +// Produce an array that contains every item shared between all the +// passed-in arrays. +function intersection(array) { + var result = []; + var argsLength = arguments.length; + for (var i = 0, length = getLength(array); i < length; i++) { + var item = array[i]; + if (contains(result, item)) continue; + var j; + for (j = 1; j < argsLength; j++) { + if (!contains(arguments[j], item)) break; + } + if (j === argsLength) result.push(item); + } + return result; +} + +// Complement of zip. Unzip accepts an array of arrays and groups +// each array's elements on shared indices. +function unzip(array) { + var length = array && max(array, getLength).length || 0; + var result = Array(length); + + for (var index = 0; index < length; index++) { + result[index] = pluck(array, index); + } + return result; +} + +// Zip together multiple lists into a single array -- elements that share +// an index go together. +var zip = restArguments(unzip); + +// Converts lists into objects. Pass either a single array of `[key, value]` +// pairs, or two parallel arrays of the same length -- one of keys, and one of +// the corresponding values. Passing by pairs is the reverse of `_.pairs`. +function object(list, values) { + var result = {}; + for (var i = 0, length = getLength(list); i < length; i++) { + if (values) { + result[list[i]] = values[i]; + } else { + result[list[i][0]] = list[i][1]; + } + } + return result; +} + +// Generate an integer Array containing an arithmetic progression. A port of +// the native Python `range()` function. See +// [the Python documentation](https://docs.python.org/library/functions.html#range). +function range(start, stop, step) { + if (stop == null) { + stop = start || 0; + start = 0; + } + if (!step) { + step = stop < start ? -1 : 1; + } + + var length = Math.max(Math.ceil((stop - start) / step), 0); + var range = Array(length); + + for (var idx = 0; idx < length; idx++, start += step) { + range[idx] = start; + } + + return range; +} + +// Chunk a single array into multiple arrays, each containing `count` or fewer +// items. +function chunk(array, count) { + if (count == null || count < 1) return []; + var result = []; + var i = 0, length = array.length; + while (i < length) { + result.push(slice.call(array, i, i += count)); + } + return result; +} + +// Helper function to continue chaining intermediate results. +function chainResult(instance, obj) { + return instance._chain ? _$1(obj).chain() : obj; +} + +// Add your own custom functions to the Underscore object. +function mixin(obj) { + each(functions(obj), function(name) { + var func = _$1[name] = obj[name]; + _$1.prototype[name] = function() { + var args = [this._wrapped]; + push.apply(args, arguments); + return chainResult(this, func.apply(_$1, args)); + }; + }); + return _$1; +} + +// Add all mutator `Array` functions to the wrapper. +each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { + var method = ArrayProto[name]; + _$1.prototype[name] = function() { + var obj = this._wrapped; + if (obj != null) { + method.apply(obj, arguments); + if ((name === 'shift' || name === 'splice') && obj.length === 0) { + delete obj[0]; + } + } + return chainResult(this, obj); + }; +}); + +// Add all accessor `Array` functions to the wrapper. +each(['concat', 'join', 'slice'], function(name) { + var method = ArrayProto[name]; + _$1.prototype[name] = function() { + var obj = this._wrapped; + if (obj != null) obj = method.apply(obj, arguments); + return chainResult(this, obj); + }; +}); + +// Named Exports + +var allExports = { + __proto__: null, + VERSION: VERSION, + restArguments: restArguments, + isObject: isObject, + isNull: isNull, + isUndefined: isUndefined, + isBoolean: isBoolean, + isElement: isElement, + isString: isString, + isNumber: isNumber, + isDate: isDate, + isRegExp: isRegExp, + isError: isError, + isSymbol: isSymbol, + isArrayBuffer: isArrayBuffer, + isDataView: isDataView$1, + isArray: isArray, + isFunction: isFunction$1, + isArguments: isArguments$1, + isFinite: isFinite$1, + isNaN: isNaN$1, + isTypedArray: isTypedArray$1, + isEmpty: isEmpty, + isMatch: isMatch, + isEqual: isEqual, + isMap: isMap, + isWeakMap: isWeakMap, + isSet: isSet, + isWeakSet: isWeakSet, + keys: keys, + allKeys: allKeys, + values: values, + pairs: pairs, + invert: invert, + functions: functions, + methods: functions, + extend: extend, + extendOwn: extendOwn, + assign: extendOwn, + defaults: defaults, + create: create, + clone: clone, + tap: tap, + get: get, + has: has, + mapObject: mapObject, + identity: identity, + constant: constant, + noop: noop, + toPath: toPath$1, + property: property, + propertyOf: propertyOf, + matcher: matcher, + matches: matcher, + times: times, + random: random, + now: now, + escape: _escape, + unescape: _unescape, + templateSettings: templateSettings, + template: template, + result: result, + uniqueId: uniqueId, + chain: chain, + iteratee: iteratee, + partial: partial, + bind: bind, + bindAll: bindAll, + memoize: memoize, + delay: delay, + defer: defer, + throttle: throttle, + debounce: debounce, + wrap: wrap, + negate: negate, + compose: compose, + after: after, + before: before, + once: once, + findKey: findKey, + findIndex: findIndex, + findLastIndex: findLastIndex, + sortedIndex: sortedIndex, + indexOf: indexOf, + lastIndexOf: lastIndexOf, + find: find, + detect: find, + findWhere: findWhere, + each: each, + forEach: each, + map: map, + collect: map, + reduce: reduce, + foldl: reduce, + inject: reduce, + reduceRight: reduceRight, + foldr: reduceRight, + filter: filter, + select: filter, + reject: reject, + every: every, + all: every, + some: some, + any: some, + contains: contains, + includes: contains, + include: contains, + invoke: invoke, + pluck: pluck, + where: where, + max: max, + min: min, + shuffle: shuffle, + sample: sample, + sortBy: sortBy, + groupBy: groupBy, + indexBy: indexBy, + countBy: countBy, + partition: partition, + toArray: toArray, + size: size, + pick: pick, + omit: omit, + first: first, + head: first, + take: first, + initial: initial, + last: last, + rest: rest, + tail: rest, + drop: rest, + compact: compact, + flatten: flatten, + without: without, + uniq: uniq, + unique: uniq, + union: union, + intersection: intersection, + difference: difference, + unzip: unzip, + transpose: unzip, + zip: zip, + object: object, + range: range, + chunk: chunk, + mixin: mixin, + 'default': _$1 +}; + +// Default Export + +// Add all of the Underscore functions to the wrapper object. +var _ = mixin(allExports); +// Legacy Node.js API. +_._ = _; + +exports.VERSION = VERSION; +exports._ = _; +exports._escape = _escape; +exports._unescape = _unescape; +exports.after = after; +exports.allKeys = allKeys; +exports.before = before; +exports.bind = bind; +exports.bindAll = bindAll; +exports.chain = chain; +exports.chunk = chunk; +exports.clone = clone; +exports.compact = compact; +exports.compose = compose; +exports.constant = constant; +exports.contains = contains; +exports.countBy = countBy; +exports.create = create; +exports.debounce = debounce; +exports.defaults = defaults; +exports.defer = defer; +exports.delay = delay; +exports.difference = difference; +exports.each = each; +exports.every = every; +exports.extend = extend; +exports.extendOwn = extendOwn; +exports.filter = filter; +exports.find = find; +exports.findIndex = findIndex; +exports.findKey = findKey; +exports.findLastIndex = findLastIndex; +exports.findWhere = findWhere; +exports.first = first; +exports.flatten = flatten; +exports.functions = functions; +exports.get = get; +exports.groupBy = groupBy; +exports.has = has; +exports.identity = identity; +exports.indexBy = indexBy; +exports.indexOf = indexOf; +exports.initial = initial; +exports.intersection = intersection; +exports.invert = invert; +exports.invoke = invoke; +exports.isArguments = isArguments$1; +exports.isArray = isArray; +exports.isArrayBuffer = isArrayBuffer; +exports.isBoolean = isBoolean; +exports.isDataView = isDataView$1; +exports.isDate = isDate; +exports.isElement = isElement; +exports.isEmpty = isEmpty; +exports.isEqual = isEqual; +exports.isError = isError; +exports.isFinite = isFinite$1; +exports.isFunction = isFunction$1; +exports.isMap = isMap; +exports.isMatch = isMatch; +exports.isNaN = isNaN$1; +exports.isNull = isNull; +exports.isNumber = isNumber; +exports.isObject = isObject; +exports.isRegExp = isRegExp; +exports.isSet = isSet; +exports.isString = isString; +exports.isSymbol = isSymbol; +exports.isTypedArray = isTypedArray$1; +exports.isUndefined = isUndefined; +exports.isWeakMap = isWeakMap; +exports.isWeakSet = isWeakSet; +exports.iteratee = iteratee; +exports.keys = keys; +exports.last = last; +exports.lastIndexOf = lastIndexOf; +exports.map = map; +exports.mapObject = mapObject; +exports.matcher = matcher; +exports.max = max; +exports.memoize = memoize; +exports.min = min; +exports.mixin = mixin; +exports.negate = negate; +exports.noop = noop; +exports.now = now; +exports.object = object; +exports.omit = omit; +exports.once = once; +exports.pairs = pairs; +exports.partial = partial; +exports.partition = partition; +exports.pick = pick; +exports.pluck = pluck; +exports.property = property; +exports.propertyOf = propertyOf; +exports.random = random; +exports.range = range; +exports.reduce = reduce; +exports.reduceRight = reduceRight; +exports.reject = reject; +exports.rest = rest; +exports.restArguments = restArguments; +exports.result = result; +exports.sample = sample; +exports.shuffle = shuffle; +exports.size = size; +exports.some = some; +exports.sortBy = sortBy; +exports.sortedIndex = sortedIndex; +exports.tap = tap; +exports.template = template; +exports.templateSettings = templateSettings; +exports.throttle = throttle; +exports.times = times; +exports.toArray = toArray; +exports.toPath = toPath$1; +exports.union = union; +exports.uniq = uniq; +exports.uniqueId = uniqueId; +exports.unzip = unzip; +exports.values = values; +exports.where = where; +exports.without = without; +exports.wrap = wrap; +exports.zip = zip; +//# sourceMappingURL=underscore-node-f.cjs.map + + +/***/ }), + +/***/ 3571: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +// Underscore.js 1.13.1 +// https://underscorejs.org +// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors +// Underscore may be freely distributed under the MIT license. + +var underscoreNodeF = __nccwpck_require__(1641); + + + +module.exports = underscoreNodeF._; +//# sourceMappingURL=underscore-node.cjs.map + + +/***/ }), + +/***/ 2357: +/***/ ((module) => { + +"use strict"; +module.exports = require("assert"); + +/***/ }), + +/***/ 6417: +/***/ ((module) => { + +"use strict"; +module.exports = require("crypto"); + +/***/ }), + +/***/ 8614: +/***/ ((module) => { + +"use strict"; +module.exports = require("events"); + +/***/ }), + +/***/ 5747: +/***/ ((module) => { + +"use strict"; +module.exports = require("fs"); + +/***/ }), + +/***/ 8605: +/***/ ((module) => { + +"use strict"; +module.exports = require("http"); + +/***/ }), + +/***/ 7211: +/***/ ((module) => { + +"use strict"; +module.exports = require("https"); + +/***/ }), + +/***/ 1631: +/***/ ((module) => { + +"use strict"; +module.exports = require("net"); + +/***/ }), + +/***/ 2087: +/***/ ((module) => { + +"use strict"; +module.exports = require("os"); + +/***/ }), + +/***/ 5622: +/***/ ((module) => { + +"use strict"; +module.exports = require("path"); + +/***/ }), + +/***/ 2413: +/***/ ((module) => { + +"use strict"; +module.exports = require("stream"); + +/***/ }), + +/***/ 4016: +/***/ ((module) => { + +"use strict"; +module.exports = require("tls"); + +/***/ }), + +/***/ 8835: +/***/ ((module) => { + +"use strict"; +module.exports = require("url"); + +/***/ }), + +/***/ 1669: +/***/ ((module) => { + +"use strict"; +module.exports = require("util"); + +/***/ }), + +/***/ 8761: +/***/ ((module) => { + +"use strict"; +module.exports = require("zlib"); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __nccwpck_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ var threw = true; +/******/ try { +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nccwpck_require__); +/******/ threw = false; +/******/ } finally { +/******/ if(threw) delete __webpack_module_cache__[moduleId]; +/******/ } +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat */ +/******/ +/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = __dirname + "/"; +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module is referenced by other modules so it can't be inlined +/******/ var __webpack_exports__ = __nccwpck_require__(3109); +/******/ module.exports = __webpack_exports__; +/******/ +/******/ })() +; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map new file mode 100644 index 0000000..f4375cf --- /dev/null +++ b/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../webpack://github-ado-chatops/./lib/azureDevOpsClient.js","../webpack://github-ado-chatops/./lib/chatOpService.js","../webpack://github-ado-chatops/./lib/config.js","../webpack://github-ado-chatops/./lib/main.js","../webpack://github-ado-chatops/./node_modules/@actions/core/lib/command.js","../webpack://github-ado-chatops/./node_modules/@actions/core/lib/core.js","../webpack://github-ado-chatops/./node_modules/@actions/core/lib/file-command.js","../webpack://github-ado-chatops/./node_modules/@actions/core/lib/utils.js","../webpack://github-ado-chatops/./node_modules/@actions/github/lib/context.js","../webpack://github-ado-chatops/./node_modules/@actions/github/lib/github.js","../webpack://github-ado-chatops/./node_modules/@actions/github/lib/internal/utils.js","../webpack://github-ado-chatops/./node_modules/@actions/github/lib/utils.js","../webpack://github-ado-chatops/./node_modules/@actions/http-client/index.js","../webpack://github-ado-chatops/./node_modules/@actions/http-client/proxy.js","../webpack://github-ado-chatops/./node_modules/@octokit/auth-token/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/core/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/endpoint/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/graphql/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/plugin-paginate-rest/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/request-error/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/request/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/BuildApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/ClientApiBases.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/CoreApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/DashboardApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/ExtensionManagementApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/FeatureManagementApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/FileContainerApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/FileContainerApiBase.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/GalleryApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/GalleryCompatHttpClientBase.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/GitApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/LocationsApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/NotificationApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/PolicyApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/ProfileApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/ProjectAnalysisApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/ReleaseApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/SecurityRolesApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/Serialization.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/TaskAgentApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/TaskAgentApiBase.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/TaskApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/TestApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/TfvcApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/VsoClient.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WebApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WikiApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WorkApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WorkItemTrackingApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WorkItemTrackingProcessApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WorkItemTrackingProcessDefinitionsApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/handlers/basiccreds.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/handlers/bearertoken.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/handlers/ntlm.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/handlers/personalaccesstoken.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/BuildInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/CommentsInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/CoreInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/DashboardInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/ExtensionManagementInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/FeatureManagementInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/FileContainerInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/GalleryInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/GitInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/LocationsInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/NotificationInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/PolicyInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/ProfileInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/ProjectAnalysisInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/ReleaseInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/SecurityRolesInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/TaskAgentInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/TestInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/TfvcInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/WikiInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/WorkInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/WorkItemTrackingInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/WorkItemTrackingProcessDefinitionsInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/WorkItemTrackingProcessInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/common/FormInputInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/common/OperationsInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/common/System.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/common/SystemDataInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/common/VSSInterfaces.js","../webpack://github-ado-chatops/./node_modules/before-after-hook/index.js","../webpack://github-ado-chatops/./node_modules/before-after-hook/lib/add.js","../webpack://github-ado-chatops/./node_modules/before-after-hook/lib/register.js","../webpack://github-ado-chatops/./node_modules/before-after-hook/lib/remove.js","../webpack://github-ado-chatops/./node_modules/call-bind/callBound.js","../webpack://github-ado-chatops/./node_modules/call-bind/index.js","../webpack://github-ado-chatops/./node_modules/deprecation/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/function-bind/implementation.js","../webpack://github-ado-chatops/./node_modules/function-bind/index.js","../webpack://github-ado-chatops/./node_modules/get-intrinsic/index.js","../webpack://github-ado-chatops/./node_modules/has-symbols/index.js","../webpack://github-ado-chatops/./node_modules/has-symbols/shams.js","../webpack://github-ado-chatops/./node_modules/has/src/index.js","../webpack://github-ado-chatops/./node_modules/is-plain-object/dist/is-plain-object.js","../webpack://github-ado-chatops/./node_modules/node-fetch/lib/index.js","../webpack://github-ado-chatops/./node_modules/once/once.js","../webpack://github-ado-chatops/./node_modules/qs/lib/formats.js","../webpack://github-ado-chatops/./node_modules/qs/lib/index.js","../webpack://github-ado-chatops/./node_modules/qs/lib/parse.js","../webpack://github-ado-chatops/./node_modules/qs/lib/stringify.js","../webpack://github-ado-chatops/./node_modules/qs/lib/utils.js","../webpack://github-ado-chatops/./node_modules/side-channel/index.js","../webpack://github-ado-chatops/./node_modules/side-channel/node_modules/object-inspect/index.js","../webpack://github-ado-chatops/./node_modules/side-channel/node_modules/object-inspect/util.inspect.js","../webpack://github-ado-chatops/./node_modules/tunnel/index.js","../webpack://github-ado-chatops/./node_modules/tunnel/lib/tunnel.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/Handlers.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/HttpClient.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/RestClient.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/Util.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/handlers/basiccreds.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/handlers/bearertoken.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/handlers/ntlm.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/handlers/personalaccesstoken.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/opensource/Node-SMB/lib/common.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/opensource/Node-SMB/lib/ntlm.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/opensource/Node-SMB/lib/smbhash.js","../webpack://github-ado-chatops/./node_modules/universal-user-agent/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/wrappy/wrappy.js","../webpack://github-ado-chatops/./node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../webpack://github-ado-chatops/./node_modules/underscore/underscore-node-f.cjs","../webpack://github-ado-chatops/./node_modules/underscore/underscore-node.cjs","../webpack://github-ado-chatops/external \"assert\"","../webpack://github-ado-chatops/external \"crypto\"","../webpack://github-ado-chatops/external \"events\"","../webpack://github-ado-chatops/external \"fs\"","../webpack://github-ado-chatops/external \"http\"","../webpack://github-ado-chatops/external \"https\"","../webpack://github-ado-chatops/external \"net\"","../webpack://github-ado-chatops/external \"os\"","../webpack://github-ado-chatops/external \"path\"","../webpack://github-ado-chatops/external \"stream\"","../webpack://github-ado-chatops/external \"tls\"","../webpack://github-ado-chatops/external \"url\"","../webpack://github-ado-chatops/external \"util\"","../webpack://github-ado-chatops/external \"zlib\"","../webpack://github-ado-chatops/webpack/bootstrap","../webpack://github-ado-chatops/webpack/runtime/compat","../webpack://github-ado-chatops/webpack/startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AzureDevOpsClient = void 0;\nconst core = __importStar(require(\"@actions/core\"));\nconst azdev = __importStar(require(\"azure-devops-node-api\"));\nconst config_1 = require(\"./config\");\nclass AzureDevOpsClient {\n constructor(context, appConfig, azDevClient) {\n this._appConfig = config_1.Config.defaultAppConfig;\n this._context = context;\n this._appConfig = appConfig;\n this._azDevClient = azDevClient;\n }\n static build(context) {\n return __awaiter(this, void 0, void 0, function* () {\n const appConfig = (yield config_1.Config.build()).appConfig;\n const orgUrl = `https://${appConfig.ado_domain}/${appConfig.ado_org}`;\n core.debug(`orgUrl: ${orgUrl}`);\n const authHandler = azdev.getPersonalAccessTokenHandler(appConfig.ado_pat);\n const azDevClient = new azdev.WebApi(orgUrl, authHandler);\n return new AzureDevOpsClient(context, appConfig, azDevClient);\n });\n }\n createBranch(branchName, sourceBranch) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n core.debug('Getting the ADO git API...');\n const gitClient = yield this._azDevClient.getGitApi();\n core.debug('Getting repo...');\n const repo = yield this.getRepo(gitClient);\n core.debug('Got it.');\n let sourceBranchFinal = sourceBranch;\n if (!sourceBranchFinal) {\n core.debug('Getting the default branch in ADO...');\n sourceBranchFinal = this.getDefaultBranch(repo);\n core.debug('Got it...');\n }\n const result = yield this.createBranchInner(gitClient, repo, sourceBranchFinal, branchName);\n return result;\n }\n catch (error) {\n core.error(`POST to create branch [${branchName}] has failed`);\n throw new Error(`POST to create branch [${branchName}] has failed`);\n }\n });\n }\n deleteBranch(refName, refObjectId) {\n return __awaiter(this, void 0, void 0, function* () {\n const gitClient = yield this._azDevClient.getGitApi();\n const gitRefUpdates = [\n {\n oldObjectId: refObjectId,\n newObjectId: new Array(41).join('0'),\n name: refName\n }\n ];\n // create a new branch from the source\n const updateResults = yield gitClient.updateRefs(gitRefUpdates, this._appConfig.ado_repo, this._appConfig.ado_project);\n const refDeleteResult = updateResults[0];\n return refDeleteResult;\n });\n }\n getBranchUrl(branchName) {\n const uriEncodedBranchName = encodeURIComponent(branchName);\n return `https://${this._appConfig.ado_domain}/${this._appConfig.ado_org}/${this._appConfig.ado_project}/_git/${this._appConfig.ado_repo}?version=GB${uriEncodedBranchName}`;\n }\n createBranchInner(gitClient, repo, sourceBranch, branchName) {\n return __awaiter(this, void 0, void 0, function* () {\n core.debug(`Creating branch from ${sourceBranch}.`);\n core.debug(`Getting ${sourceBranch} refs...`);\n const gitRefs = yield gitClient.getRefs(repo.id, this._appConfig.ado_project, sourceBranch);\n const sourceRef = gitRefs[0];\n core.debug(\"Got 'em.\");\n const gitRefUpdates = [\n {\n oldObjectId: new Array(41).join('0'),\n newObjectId: sourceRef.objectId,\n name: `refs/heads/${branchName}`\n }\n ];\n // create a new branch from the source\n core.debug('Creating the branch...');\n const updateResults = yield gitClient.updateRefs(gitRefUpdates, this._appConfig.ado_repo, this._appConfig.ado_project);\n const refCreateResult = updateResults[0];\n core.info(`project ${this._appConfig.ado_project}, repo ${repo.name}, source branch ${sourceRef.name}`);\n core.info(`new branch ${refCreateResult.name} (success=${refCreateResult.success} status=${refCreateResult.updateStatus})`);\n return refCreateResult;\n });\n }\n getDefaultBranch(repo) {\n var _a;\n const defaultBranch = (_a = repo.defaultBranch) === null || _a === void 0 ? void 0 : _a.replace('refs/', '');\n if (!defaultBranch) {\n core.error(`${defaultBranch} does not exist`);\n throw new Error(`${defaultBranch} does not exist`);\n }\n return defaultBranch;\n }\n getRepo(gitClient) {\n return __awaiter(this, void 0, void 0, function* () {\n const repo = yield gitClient.getRepository(this._appConfig.ado_repo, this._appConfig.ado_project);\n if (!repo.id) {\n core.error(`Repo ${this._appConfig.ado_repo} does not exist in project ${this._appConfig.ado_project}`);\n throw new Error(`Repo ${this._appConfig.ado_repo} does not exist in project ${this._appConfig.ado_project}`);\n }\n return repo;\n });\n }\n}\nexports.AzureDevOpsClient = AzureDevOpsClient;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChatOpService = void 0;\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst azureDevOpsClient_1 = require(\"./azureDevOpsClient\");\nclass ChatOpService {\n constructor(octokit, adoClient) {\n // Maximum number of bytes in a git branch is 250\n // Therefore, trim branch name to 62 characters (assuming 32-bit/4-byte Unicode) => 238 bytes\n // (https://stackoverflow.com/questions/60045157/what-is-the-maximum-length-of-a-github-branch-name)\n this.maxNumOfChars = 62;\n this._octokit = octokit;\n this._adoClient = adoClient;\n }\n static build(context) {\n return __awaiter(this, void 0, void 0, function* () {\n const adoClient = yield azureDevOpsClient_1.AzureDevOpsClient.build(context);\n const githubToken = core.getInput('GITHUB_TOKEN');\n const octokit = github.getOctokit(githubToken);\n return new ChatOpService(octokit, adoClient);\n });\n }\n static containsChatOpCommand(comment, chatOps) {\n return chatOps.includes(comment.trim());\n }\n tryCreateBranch(context) {\n var _a, _b, _c, _d, _e;\n return __awaiter(this, void 0, void 0, function* () {\n const comment = (_a = context.payload.comment) === null || _a === void 0 ? void 0 : _a.body;\n // Check if the comment contains any createBranchChatCommands\n core.debug(comment.trim());\n if (!ChatOpService.containsChatOpCommand(comment.split(' ')[0], ChatOpService.createBranchChatOpCommands)) {\n core.debug(`Comment ${(_b = context.payload.comment) === null || _b === void 0 ? void 0 : _b.url} does not contain createBranchChatOps`);\n return false;\n }\n let username = (_c = context.payload.comment) === null || _c === void 0 ? void 0 : _c.user.login;\n core.debug(`username: ${username}`);\n // Check for username parameter\n if (comment.includes(ChatOpService.usernameParameter)) {\n username = this.parseParameter(comment, ChatOpService.usernameParameter);\n }\n // Check for branch parameter\n let sourceBranch;\n if (comment.includes(ChatOpService.branchParameter)) {\n sourceBranch = this.parseParameter(comment, ChatOpService.branchParameter);\n }\n // Build the branch name from the issue title\n const branchName = this.createBranchName(username, ((_d = context.payload.issue) === null || _d === void 0 ? void 0 : _d.number) || -1, (_e = context.payload.issue) === null || _e === void 0 ? void 0 : _e.title);\n core.info(`built branch name string: ${branchName}`);\n const issue = context.issue;\n // Create the branch in ADO\n try {\n this._adoClient.createBranch(branchName, sourceBranch);\n }\n catch (e) {\n // Create a comment that a failure occured\n const errorMessage = `Branch [${branchName}] was unable to be created in Azure DevOps\" ${e}`;\n core.error(errorMessage);\n yield this._octokit.issues.createComment({\n issue_number: issue.number,\n owner: issue.owner,\n repo: issue.repo,\n body: errorMessage\n });\n return false;\n }\n // Create a comment with a link to the newly created branch\n const result = `Branch [${branchName}](${this._adoClient.getBranchUrl(branchName)}) has been created in Azure DevOps`;\n yield this._octokit.rest.issues.createComment({\n issue_number: issue.number,\n owner: issue.owner,\n repo: issue.repo,\n body: result\n });\n return true;\n });\n }\n createBranchName(username, issueNum, issueTitle) {\n let branchString = `${issueNum}-${issueTitle}`;\n branchString = `users/${this.makeGitSafe(username)}/${this.makeGitSafe(branchString)}`;\n return branchString.substr(0, this.maxNumOfChars);\n }\n makeGitSafe(s) {\n const replacementChar = '-';\n const regexp = /(?![-/])[\\W]+/g;\n const result = s.replace(regexp, replacementChar).replace(/[/]+$/, '');\n return result;\n }\n parseParameter(comment, parameter) {\n const commentArr = comment.trim().split(' ');\n const paramIdx = commentArr.findIndex(x => x === parameter);\n // Check we're still in bounds\n if (paramIdx + 1 < commentArr.length) {\n return commentArr[paramIdx + 1];\n }\n // TODO: throw error?\n return '';\n }\n}\nexports.ChatOpService = ChatOpService;\nChatOpService.createBranchChatOpCommands = ['/create-branch-ado', '/cb-ado'];\nChatOpService.usernameParameter = 'username';\nChatOpService.branchParameter = 'branch';\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Config = void 0;\nconst core = __importStar(require(\"@actions/core\"));\nclass Config {\n constructor(appConfig) {\n this.appConfig = Config.defaultAppConfig;\n this.appConfig = appConfig;\n }\n static build() {\n return __awaiter(this, void 0, void 0, function* () {\n const loadedConfig = this.loadConfig();\n const config = Config.mergeDefaults(loadedConfig);\n const errorMessages = Config.validateConfig(config);\n if (errorMessages.length > 0) {\n const errorStr = errorMessages.join('\\n');\n core.error(errorStr);\n throw new Error(errorStr);\n }\n return new Config(config);\n });\n }\n static mergeDefaults(loadedConfig) {\n return {\n ado_domain: loadedConfig.ado_domain || Config.defaultAppConfig.ado_domain,\n ado_org: loadedConfig.ado_org,\n ado_pat: loadedConfig.ado_pat,\n ado_project: loadedConfig.ado_project,\n ado_repo: loadedConfig.ado_repo\n };\n }\n static validateConfig(config) {\n const errorMessages = [];\n // There are better ways to do this but I'm being lazy\n if (!config.ado_domain)\n errorMessages.push('No ado_org was found. Check your inputs');\n if (!config.ado_org)\n errorMessages.push('No ado_org was found. Check your inputs');\n if (!config.ado_pat)\n errorMessages.push('No ado_pat was found. Check your inputs');\n if (!config.ado_project)\n errorMessages.push('No ado_project was found. Check your inputs');\n if (!config.ado_repo)\n errorMessages.push('No ado_repo was found. Check your inputs');\n return errorMessages;\n }\n}\nexports.Config = Config;\nConfig.defaultAppConfig = {\n ado_domain: 'dev.azure.com',\n ado_org: '',\n ado_pat: '',\n ado_project: '',\n ado_repo: ''\n};\nConfig.loadConfig = () => {\n const ado_domain = core.getInput('ado_domain');\n const ado_org = core.getInput('ado_org');\n const ado_project = core.getInput('ado_project');\n const ado_repo = core.getInput('ado_repo');\n const ado_pat = core.getInput('ado_pat');\n // debug is only output if you set the secret `ACTIONS_RUNNER_DEBUG` to true\n core.debug(`ado_domain: ${ado_domain}!`);\n core.debug(`ado_org: ${ado_org}!`);\n core.debug(`ado_project: ${ado_project}!`);\n core.debug(`ado_repo: ${ado_repo}!`);\n core.debug(`ado_pat: ${ado_pat}!`);\n return {\n ado_domain,\n ado_org,\n ado_project,\n ado_repo,\n ado_pat\n };\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst chatOpService_1 = require(\"./chatOpService\");\nfunction run() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const context = github.context;\n if (context.eventName === 'issue_comment.created') {\n const chatOpService = yield chatOpService_1.ChatOpService.build(context);\n chatOpService.tryCreateBranch(context);\n }\n }\n catch (error) {\n core.setFailed(error.message);\n }\n });\n}\nrun();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n const delimiter = '_GitHubActionsFileCommandDelimeter_';\n const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;\n file_command_1.issueCommand('ENV', commandValue);\n }\n else {\n command_1.issueCommand('set-env', { name }, convertedVal);\n }\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n return inputs;\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, value);\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n */\nfunction error(message) {\n command_1.issue('error', message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds an warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n */\nfunction warning(message) {\n command_1.issue('warning', message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n command_1.issueCommand('save-state', { name }, value);\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issueCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueCommand = issueCommand;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options) {\n return new utils_1.GitHub(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nconst defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }),\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nasync function auth(token) {\n const tokenType = token.split(/\\./).length === 3 ? \"app\" : /^v\\d+\\./.test(token) ? \"installation\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.5.1\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.16.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /user/{username}/packages\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createContentAttachment: [\"POST /content_references/{content_reference_id}/attachments\", {\n mediaType: {\n previews: [\"corsair\"]\n }\n }],\n createContentAttachmentForRepo: [\"POST /repos/{owner}/{repo}/content_references/{content_reference_id}/attachments\", {\n mediaType: {\n previews: [\"corsair\"]\n }\n }],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/community/code_of_conduct\", {\n mediaType: {\n previews: [\"scarlet-witch\"]\n }\n }]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", {\n mediaType: {\n previews: [\"mockingbird\"]\n }\n }],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listForAuthenticatedUser: [\"GET /user/migrations\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listForOrg: [\"GET /orgs/{org}/migrations\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /user/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createCard: [\"POST /projects/columns/{column_id}/cards\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createColumn: [\"POST /projects/{project_id}/columns\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createForAuthenticatedUser: [\"POST /user/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createForOrg: [\"POST /orgs/{org}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n delete: [\"DELETE /projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n get: [\"GET /projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n getCard: [\"GET /projects/columns/cards/{card_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n getColumn: [\"GET /projects/columns/{column_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listCards: [\"GET /projects/columns/{column_id}/cards\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listColumns: [\"GET /projects/{project_id}/columns\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listForOrg: [\"GET /orgs/{org}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listForUser: [\"GET /users/{username}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n update: [\"PATCH /projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n updateColumn: [\"PATCH /projects/columns/{column_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\", {\n mediaType: {\n previews: [\"lydian\"]\n }\n }],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteLegacy: [\"DELETE /reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }, {\n deprecated: \"octokit.rest.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy\"\n }],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\", {\n mediaType: {\n previews: [\"dorian\"]\n }\n }],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\", {\n mediaType: {\n previews: [\"zzzax\"]\n }\n }],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\", {\n mediaType: {\n previews: [\"switcheroo\"]\n }\n }],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\", {\n mediaType: {\n previews: [\"baptiste\"]\n }\n }],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\", {\n mediaType: {\n previews: [\"zzzax\"]\n }\n }],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\", {\n mediaType: {\n previews: [\"switcheroo\"]\n }\n }],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\", {\n mediaType: {\n previews: [\"london\"]\n }\n }],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\", {\n mediaType: {\n previews: [\"dorian\"]\n }\n }],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\", {\n mediaType: {\n previews: [\"london\"]\n }\n }],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\", {\n mediaType: {\n previews: [\"dorian\"]\n }\n }],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\", {\n mediaType: {\n previews: [\"mercy\"]\n }\n }],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\", {\n mediaType: {\n previews: [\"zzzax\"]\n }\n }],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", {\n mediaType: {\n previews: [\"groot\"]\n }\n }],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", {\n mediaType: {\n previews: [\"groot\"]\n }\n }],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\", {\n mediaType: {\n previews: [\"mercy\"]\n }\n }],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\", {\n mediaType: {\n previews: [\"cloak\"]\n }\n }],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\", {\n mediaType: {\n previews: [\"mercy\"]\n }\n }],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.10.0\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.1\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst BuildInterfaces = require(\"./interfaces/BuildInterfaces\");\r\nclass BuildApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Build-api', options);\r\n }\r\n /**\r\n * Associates an artifact with a build.\r\n *\r\n * @param {BuildInterfaces.BuildArtifact} artifact - The artifact.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n createArtifact(artifact, project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.5\", \"build\", \"1db06c96-014e-44e1-ac91-90b2d4b3e984\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, artifact, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a specific artifact for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} artifactName - The name of the artifact.\r\n */\r\n getArtifact(project, buildId, artifactName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactName == null) {\r\n throw new TypeError('artifactName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n artifactName: artifactName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.5\", \"build\", \"1db06c96-014e-44e1-ac91-90b2d4b3e984\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a specific artifact for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} artifactName - The name of the artifact.\r\n */\r\n getArtifactContentZip(project, buildId, artifactName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactName == null) {\r\n throw new TypeError('artifactName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n artifactName: artifactName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.5\", \"build\", \"1db06c96-014e-44e1-ac91-90b2d4b3e984\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all artifacts for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n getArtifacts(project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.5\", \"build\", \"1db06c96-014e-44e1-ac91-90b2d4b3e984\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a file from the build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} artifactName - The name of the artifact.\r\n * @param {string} fileId - The primary key for the file.\r\n * @param {string} fileName - The name that the file will be set to.\r\n */\r\n getFile(project, buildId, artifactName, fileId, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactName == null) {\r\n throw new TypeError('artifactName can not be null or undefined');\r\n }\r\n if (fileId == null) {\r\n throw new TypeError('fileId can not be null or undefined');\r\n }\r\n if (fileName == null) {\r\n throw new TypeError('fileName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n artifactName: artifactName,\r\n fileId: fileId,\r\n fileName: fileName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.5\", \"build\", \"1db06c96-014e-44e1-ac91-90b2d4b3e984\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the list of attachments of a specific type that are associated with a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} type - The type of attachment.\r\n */\r\n getAttachments(project, buildId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"f2192269-89fa-4f94-baf6-8fb128c55159\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a specific attachment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} timelineId - The ID of the timeline.\r\n * @param {string} recordId - The ID of the timeline record.\r\n * @param {string} type - The type of the attachment.\r\n * @param {string} name - The name of the attachment.\r\n */\r\n getAttachment(project, buildId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"af5122d3-3438-485e-a25a-2dbbfde84ee6\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {BuildInterfaces.DefinitionResourceReference[]} resources\r\n * @param {string} project - Project ID or project name\r\n */\r\n authorizeProjectResources(resources, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"398c85bc-81aa-4822-947c-a194a05f0fef\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, resources, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type\r\n * @param {string} id\r\n */\r\n getProjectResources(project, type, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n type: type,\r\n id: id,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"398c85bc-81aa-4822-947c-a194a05f0fef\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that indicates the status of the most recent build for a definition. Note that this API is deprecated. Prefer StatusBadgeController.GetStatusBadge.\r\n *\r\n * @param {string} project - The project ID or name.\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {string} branchName - The name of the branch.\r\n */\r\n getBadge(project, definitionId, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n branchName: branchName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"de6a4df8-22cd-44ee-af2d-39f6aa7a4261\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of branches for the given source code repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - The vendor-specific identifier or the name of the repository to get branches. Can only be omitted for providers that do not support multiple repositories.\r\n * @param {string} branchName - If supplied, the name of the branch to check for specifically.\r\n */\r\n listBranches(project, providerName, serviceEndpointId, repository, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n branchName: branchName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"e05d4403-9b81-4244-8763-20fde28d1976\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that indicates the status of the most recent build for the specified branch.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repoType - The repository type.\r\n * @param {string} repoId - The repository ID.\r\n * @param {string} branchName - The branch name.\r\n */\r\n getBuildBadge(project, repoType, repoId, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repoType: repoType\r\n };\r\n let queryValues = {\r\n repoId: repoId,\r\n branchName: branchName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"21b3b9ce-fad5-4567-9ad0-80679794e003\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that indicates the status of the most recent build for the specified branch.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repoType - The repository type.\r\n * @param {string} repoId - The repository ID.\r\n * @param {string} branchName - The branch name.\r\n */\r\n getBuildBadgeData(project, repoType, repoId, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repoType: repoType\r\n };\r\n let queryValues = {\r\n repoId: repoId,\r\n branchName: branchName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"21b3b9ce-fad5-4567-9ad0-80679794e003\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n deleteBuild(project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a build\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} propertyFilters\r\n */\r\n getBuild(project, buildId, propertyFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n propertyFilters: propertyFilters,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of builds.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number[]} definitions - A comma-delimited list of definition IDs. If specified, filters to builds for these definitions.\r\n * @param {number[]} queues - A comma-delimited list of queue IDs. If specified, filters to builds that ran against these queues.\r\n * @param {string} buildNumber - If specified, filters to builds that match this build number. Append * to do a prefix search.\r\n * @param {Date} minTime - If specified, filters to builds that finished/started/queued after this date based on the queryOrder specified.\r\n * @param {Date} maxTime - If specified, filters to builds that finished/started/queued before this date based on the queryOrder specified.\r\n * @param {string} requestedFor - If specified, filters to builds requested for the specified user.\r\n * @param {BuildInterfaces.BuildReason} reasonFilter - If specified, filters to builds that match this reason.\r\n * @param {BuildInterfaces.BuildStatus} statusFilter - If specified, filters to builds that match this status.\r\n * @param {BuildInterfaces.BuildResult} resultFilter - If specified, filters to builds that match this result.\r\n * @param {string[]} tagFilters - A comma-delimited list of tags. If specified, filters to builds that have the specified tags.\r\n * @param {string[]} properties - A comma-delimited list of properties to retrieve.\r\n * @param {number} top - The maximum number of builds to return.\r\n * @param {string} continuationToken - A continuation token, returned by a previous call to this method, that can be used to return the next set of builds.\r\n * @param {number} maxBuildsPerDefinition - The maximum number of builds to return per definition.\r\n * @param {BuildInterfaces.QueryDeletedOption} deletedFilter - Indicates whether to exclude, include, or only return deleted builds.\r\n * @param {BuildInterfaces.BuildQueryOrder} queryOrder - The order in which builds should be returned.\r\n * @param {string} branchName - If specified, filters to builds that built branches that built this branch.\r\n * @param {number[]} buildIds - A comma-delimited list that specifies the IDs of builds to retrieve.\r\n * @param {string} repositoryId - If specified, filters to builds that built from this repository.\r\n * @param {string} repositoryType - If specified, filters to builds that built from repositories of this type.\r\n */\r\n getBuilds(project, definitions, queues, buildNumber, minTime, maxTime, requestedFor, reasonFilter, statusFilter, resultFilter, tagFilters, properties, top, continuationToken, maxBuildsPerDefinition, deletedFilter, queryOrder, branchName, buildIds, repositoryId, repositoryType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n definitions: definitions && definitions.join(\",\"),\r\n queues: queues && queues.join(\",\"),\r\n buildNumber: buildNumber,\r\n minTime: minTime,\r\n maxTime: maxTime,\r\n requestedFor: requestedFor,\r\n reasonFilter: reasonFilter,\r\n statusFilter: statusFilter,\r\n resultFilter: resultFilter,\r\n tagFilters: tagFilters && tagFilters.join(\",\"),\r\n properties: properties && properties.join(\",\"),\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n maxBuildsPerDefinition: maxBuildsPerDefinition,\r\n deletedFilter: deletedFilter,\r\n queryOrder: queryOrder,\r\n branchName: branchName,\r\n buildIds: buildIds && buildIds.join(\",\"),\r\n repositoryId: repositoryId,\r\n repositoryType: repositoryType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Queues a build\r\n *\r\n * @param {BuildInterfaces.Build} build\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} ignoreWarnings\r\n * @param {string} checkInTicket\r\n * @param {number} sourceBuildId\r\n * @param {number} definitionId - Optional definition id to queue a build without a body. Ignored if there's a valid body\r\n */\r\n queueBuild(build, project, ignoreWarnings, checkInTicket, sourceBuildId, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ignoreWarnings: ignoreWarnings,\r\n checkInTicket: checkInTicket,\r\n sourceBuildId: sourceBuildId,\r\n definitionId: definitionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, build, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a build.\r\n *\r\n * @param {BuildInterfaces.Build} build - The build.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {boolean} retry\r\n */\r\n updateBuild(build, project, buildId, retry) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n retry: retry,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, build, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates multiple builds.\r\n *\r\n * @param {BuildInterfaces.Build[]} builds - The builds to update.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateBuilds(builds, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, builds, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the changes associated with a build\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} continuationToken\r\n * @param {number} top - The maximum number of changes to return\r\n * @param {boolean} includeSourceChange\r\n */\r\n getBuildChanges(project, buildId, continuationToken, top, includeSourceChange) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n includeSourceChange: includeSourceChange,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"54572c7b-bbd3-45d4-80dc-28be08941620\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Change, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the changes made to the repository between two given builds.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} fromBuildId - The ID of the first build.\r\n * @param {number} toBuildId - The ID of the last build.\r\n * @param {number} top - The maximum number of changes to return.\r\n */\r\n getChangesBetweenBuilds(project, fromBuildId, toBuildId, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fromBuildId: fromBuildId,\r\n toBuildId: toBuildId,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"f10f0ea5-18a1-43ec-a8fb-2042c7be9b43\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Change, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a controller\r\n *\r\n * @param {number} controllerId\r\n */\r\n getBuildController(controllerId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n controllerId: controllerId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"fcac1932-2ee1-437f-9b6f-7f696be858f6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildController, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets controller, optionally filtered by name\r\n *\r\n * @param {string} name\r\n */\r\n getBuildControllers(name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n name: name,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"fcac1932-2ee1-437f-9b6f-7f696be858f6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildController, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new definition.\r\n *\r\n * @param {BuildInterfaces.BuildDefinition} definition - The definition.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionToCloneId\r\n * @param {number} definitionToCloneRevision\r\n */\r\n createDefinition(definition, project, definitionToCloneId, definitionToCloneRevision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n definitionToCloneId: definitionToCloneId,\r\n definitionToCloneRevision: definitionToCloneRevision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, definition, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a definition and all associated builds.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n */\r\n deleteDefinition(project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a definition, optionally at a specific revision.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {number} revision - The revision number to retrieve. If this is not specified, the latest version will be returned.\r\n * @param {Date} minMetricsTime - If specified, indicates the date from which metrics should be included.\r\n * @param {string[]} propertyFilters - A comma-delimited list of properties to include in the results.\r\n * @param {boolean} includeLatestBuilds\r\n */\r\n getDefinition(project, definitionId, revision, minMetricsTime, propertyFilters, includeLatestBuilds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n minMetricsTime: minMetricsTime,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n includeLatestBuilds: includeLatestBuilds,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of definitions.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} name - If specified, filters to definitions whose names match this pattern.\r\n * @param {string} repositoryId - A repository ID. If specified, filters to definitions that use this repository.\r\n * @param {string} repositoryType - If specified, filters to definitions that have a repository of this type.\r\n * @param {BuildInterfaces.DefinitionQueryOrder} queryOrder - Indicates the order in which definitions should be returned.\r\n * @param {number} top - The maximum number of definitions to return.\r\n * @param {string} continuationToken - A continuation token, returned by a previous call to this method, that can be used to return the next set of definitions.\r\n * @param {Date} minMetricsTime - If specified, indicates the date from which metrics should be included.\r\n * @param {number[]} definitionIds - A comma-delimited list that specifies the IDs of definitions to retrieve.\r\n * @param {string} path - If specified, filters to definitions under this folder.\r\n * @param {Date} builtAfter - If specified, filters to definitions that have builds after this date.\r\n * @param {Date} notBuiltAfter - If specified, filters to definitions that do not have builds after this date.\r\n * @param {boolean} includeAllProperties - Indicates whether the full definitions should be returned. By default, shallow representations of the definitions are returned.\r\n * @param {boolean} includeLatestBuilds - Indicates whether to return the latest and latest completed builds for this definition.\r\n * @param {string} taskIdFilter - If specified, filters to definitions that use the specified task.\r\n * @param {number} processType - If specified, filters to definitions with the given process type.\r\n * @param {string} yamlFilename - If specified, filters to YAML definitions that match the given filename.\r\n */\r\n getDefinitions(project, name, repositoryId, repositoryType, queryOrder, top, continuationToken, minMetricsTime, definitionIds, path, builtAfter, notBuiltAfter, includeAllProperties, includeLatestBuilds, taskIdFilter, processType, yamlFilename) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n name: name,\r\n repositoryId: repositoryId,\r\n repositoryType: repositoryType,\r\n queryOrder: queryOrder,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n minMetricsTime: minMetricsTime,\r\n definitionIds: definitionIds && definitionIds.join(\",\"),\r\n path: path,\r\n builtAfter: builtAfter,\r\n notBuiltAfter: notBuiltAfter,\r\n includeAllProperties: includeAllProperties,\r\n includeLatestBuilds: includeLatestBuilds,\r\n taskIdFilter: taskIdFilter,\r\n processType: processType,\r\n yamlFilename: yamlFilename,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionReference, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Restores a deleted definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The identifier of the definition to restore.\r\n * @param {boolean} deleted - When false, restores a deleted definition.\r\n */\r\n restoreDefinition(project, definitionId, deleted) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (deleted == null) {\r\n throw new TypeError('deleted can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n deleted: deleted,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing build definition. In order for this operation to succeed, the value of the \"Revision\" property of the request body must match the existing build definition's. It is recommended that you obtain the existing build definition by using GET, modify the build definition as necessary, and then submit the modified definition with PUT.\r\n *\r\n * @param {BuildInterfaces.BuildDefinition} definition - The new version of the definition. Its \"Revision\" property must match the existing definition for the update to be accepted.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {number} secretsSourceDefinitionId\r\n * @param {number} secretsSourceDefinitionRevision\r\n */\r\n updateDefinition(definition, project, definitionId, secretsSourceDefinitionId, secretsSourceDefinitionRevision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n secretsSourceDefinitionId: secretsSourceDefinitionId,\r\n secretsSourceDefinitionRevision: secretsSourceDefinitionRevision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, definition, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the contents of a file in the given source code repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get branches. Can only be omitted for providers that do not support multiple repositories.\r\n * @param {string} commitOrBranch - The identifier of the commit or branch from which a file's contents are retrieved.\r\n * @param {string} path - The path to the file to retrieve, relative to the root of the repository.\r\n */\r\n getFileContents(project, providerName, serviceEndpointId, repository, commitOrBranch, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n commitOrBranch: commitOrBranch,\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"29d12225-b1d9-425f-b668-6c594a981313\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new folder.\r\n *\r\n * @param {BuildInterfaces.Folder} folder - The folder.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - The full path of the folder.\r\n */\r\n createFolder(folder, project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"a906531b-d2da-4f55-bda7-f3e676cc50d9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, folder, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Folder, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a definition folder. Definitions and their corresponding builds will also be deleted.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - The full path to the folder.\r\n */\r\n deleteFolder(project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"a906531b-d2da-4f55-bda7-f3e676cc50d9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of build definition folders.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - The path to start with.\r\n * @param {BuildInterfaces.FolderQueryOrder} queryOrder - The order in which folders should be returned.\r\n */\r\n getFolders(project, path, queryOrder) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n path: path\r\n };\r\n let queryValues = {\r\n queryOrder: queryOrder,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"a906531b-d2da-4f55-bda7-f3e676cc50d9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Folder, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing folder at given existing path\r\n *\r\n * @param {BuildInterfaces.Folder} folder - The new version of the folder.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - The full path to the folder.\r\n */\r\n updateFolder(folder, project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"a906531b-d2da-4f55-bda7-f3e676cc50d9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, folder, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Folder, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets pipeline general settings.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getBuildGeneralSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"c4aefd19-30ff-405b-80ad-aca021e7242a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates pipeline general settings.\r\n *\r\n * @param {BuildInterfaces.PipelineGeneralSettings} newSettings\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateBuildGeneralSettings(newSettings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"c4aefd19-30ff-405b-80ad-aca021e7242a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, newSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the retention history for the project collection. This includes pipelines that have custom retention rules that may prevent the retention job from cleaning them up, runs per pipeline with retention type, files associated with pipelines owned by the collection with retention type, and the number of files per pipeline.\r\n *\r\n * @param {number} daysToLookback\r\n */\r\n getRetentionHistory(daysToLookback) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n daysToLookback: daysToLookback,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"1a9c48be-0ef5-4ec2-b94f-f053bdd2d3bf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildRetentionHistory, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the latest build for a definition, optionally scoped to a specific branch.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} definition - definition name with optional leading folder path, or the definition id\r\n * @param {string} branchName - optional parameter that indicates the specific branch to use. If not specified, the default branch is used.\r\n */\r\n getLatestBuild(project, definition, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definition: definition\r\n };\r\n let queryValues = {\r\n branchName: branchName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"54481611-01f4-47f3-998f-160da0f0c229\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds new leases for pipeline runs.\r\n *\r\n * @param {BuildInterfaces.NewRetentionLease[]} newLeases\r\n * @param {string} project - Project ID or project name\r\n */\r\n addRetentionLeases(newLeases, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, newLeases, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes specific retention leases.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number[]} ids\r\n */\r\n deleteRetentionLeasesById(project, ids) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the details of the retention lease given a lease id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} leaseId\r\n */\r\n getRetentionLease(project, leaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n leaseId: leaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns any leases matching the specified MinimalRetentionLeases\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {BuildInterfaces.MinimalRetentionLease[]} leasesToFetch - List of JSON-serialized MinimalRetentionLeases separated by '|'\r\n */\r\n getRetentionLeasesByMinimalRetentionLeases(project, leasesToFetch) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (leasesToFetch == null) {\r\n throw new TypeError('leasesToFetch can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n leasesToFetch: leasesToFetch && leasesToFetch.join(\"|\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns any leases owned by the specified entity, optionally scoped to a single pipeline definition and run.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} ownerId\r\n * @param {number} definitionId - An optional parameter to limit the search to a specific pipeline definition.\r\n * @param {number} runId - An optional parameter to limit the search to a single pipeline run. Requires definitionId.\r\n */\r\n getRetentionLeasesByOwnerId(project, ownerId, definitionId, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ownerId: ownerId,\r\n definitionId: definitionId,\r\n runId: runId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns any leases owned by the specified user, optionally scoped to a single pipeline definition and run.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} userOwnerId - The user id to search for.\r\n * @param {number} definitionId - An optional parameter to limit the search to a specific pipeline definition.\r\n * @param {number} runId - An optional parameter to limit the search to a single pipeline run. Requires definitionId.\r\n */\r\n getRetentionLeasesByUserId(project, userOwnerId, definitionId, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (userOwnerId == null) {\r\n throw new TypeError('userOwnerId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n userOwnerId: userOwnerId,\r\n definitionId: definitionId,\r\n runId: runId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets an individual log file for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {number} logId - The ID of the log file.\r\n * @param {number} startLine - The start line.\r\n * @param {number} endLine - The end line.\r\n */\r\n getBuildLog(project, buildId, logId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n logId: logId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"35a80daf-7f30-45fc-86e8-6b813d9c90df\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets an individual log file for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {number} logId - The ID of the log file.\r\n * @param {number} startLine - The start line.\r\n * @param {number} endLine - The end line.\r\n */\r\n getBuildLogLines(project, buildId, logId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n logId: logId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"35a80daf-7f30-45fc-86e8-6b813d9c90df\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the logs for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n getBuildLogs(project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"35a80daf-7f30-45fc-86e8-6b813d9c90df\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildLog, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the logs for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n getBuildLogsZip(project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"35a80daf-7f30-45fc-86e8-6b813d9c90df\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets an individual log file for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {number} logId - The ID of the log file.\r\n * @param {number} startLine - The start line.\r\n * @param {number} endLine - The end line.\r\n */\r\n getBuildLogZip(project, buildId, logId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n logId: logId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"35a80daf-7f30-45fc-86e8-6b813d9c90df\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets build metrics for a project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} metricAggregationType - The aggregation type to use (hourly, daily).\r\n * @param {Date} minMetricsTime - The date from which to calculate metrics.\r\n */\r\n getProjectMetrics(project, metricAggregationType, minMetricsTime) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n metricAggregationType: metricAggregationType\r\n };\r\n let queryValues = {\r\n minMetricsTime: minMetricsTime,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"7433fae7-a6bc-41dc-a6e2-eef9005ce41a\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildMetric, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets build metrics for a definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {Date} minMetricsTime - The date from which to calculate metrics.\r\n */\r\n getDefinitionMetrics(project, definitionId, minMetricsTime) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n minMetricsTime: minMetricsTime,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"d973b939-0ce0-4fec-91d8-da3940fa1827\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildMetric, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all build definition options supported by the system.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getBuildOptionDefinitions(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"591cb5a4-2d46-4f3a-a697-5cd42b6bd332\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildOptionDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the contents of a directory in the given source code repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get branches. Can only be omitted for providers that do not support multiple repositories.\r\n * @param {string} commitOrBranch - The identifier of the commit or branch from which a file's contents are retrieved.\r\n * @param {string} path - The path contents to list, relative to the root of the repository.\r\n */\r\n getPathContents(project, providerName, serviceEndpointId, repository, commitOrBranch, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n commitOrBranch: commitOrBranch,\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"7944d6fb-df01-4709-920a-7a189aa34037\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets properties for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string[]} filter - A comma-delimited list of properties. If specified, filters to these specific properties.\r\n */\r\n getBuildProperties(project, buildId, filter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n filter: filter && filter.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"0a6312e9-0627-49b7-8083-7d74a64849c9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates properties for a build.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} document - A json-patch document describing the properties to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n updateBuildProperties(customHeaders, document, project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"0a6312e9-0627-49b7-8083-7d74a64849c9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, document, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets properties for a definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {string[]} filter - A comma-delimited list of properties. If specified, filters to these specific properties.\r\n */\r\n getDefinitionProperties(project, definitionId, filter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n filter: filter && filter.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"d9826ad7-2a68-46a9-a6e9-677698777895\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates properties for a definition.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} document - A json-patch document describing the properties to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n */\r\n updateDefinitionProperties(customHeaders, document, project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"d9826ad7-2a68-46a9-a6e9-677698777895\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, document, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a pull request object from source provider.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} pullRequestId - Vendor-specific id of the pull request.\r\n * @param {string} repositoryId - Vendor-specific identifier or the name of the repository that contains the pull request.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n */\r\n getPullRequest(project, providerName, pullRequestId, repositoryId, serviceEndpointId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n repositoryId: repositoryId,\r\n serviceEndpointId: serviceEndpointId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"d8763ec7-9ff0-4fb4-b2b2-9d757906ff14\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a build report.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} type\r\n */\r\n getBuildReport(project, buildId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n type: type,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"45bcaa88-67e1-4042-a035-56d3b4a7d44c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a build report.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} type\r\n */\r\n getBuildReportHtmlContent(project, buildId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n type: type,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"45bcaa88-67e1-4042-a035-56d3b4a7d44c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/html\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of source code repositories.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - If specified, the vendor-specific identifier or the name of a single repository to get.\r\n * @param {BuildInterfaces.ResultSet} resultSet - 'top' for the repositories most relevant for the endpoint. If not set, all repositories are returned. Ignored if 'repository' is set.\r\n * @param {boolean} pageResults - If set to true, this will limit the set of results and will return a continuation token to continue the query.\r\n * @param {string} continuationToken - When paging results, this is a continuation token, returned by a previous call to this method, that can be used to return the next set of repositories.\r\n */\r\n listRepositories(project, providerName, serviceEndpointId, repository, resultSet, pageResults, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n resultSet: resultSet,\r\n pageResults: pageResults,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"d44d1680-f978-4834-9b93-8c6e132329c9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {BuildInterfaces.DefinitionResourceReference[]} resources\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId\r\n */\r\n authorizeDefinitionResources(resources, project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"ea623316-1967-45eb-89ab-e9e6110cf2d6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, resources, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId\r\n */\r\n getDefinitionResources(project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"ea623316-1967-45eb-89ab-e9e6110cf2d6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets information about build resources in the system.\r\n *\r\n */\r\n getResourceUsage() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"3813d06c-9e36-4ea1-aac3-61a485d60e3d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the project's retention settings.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRetentionSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"dadb46e7-5851-4c72-820e-ae8abb82f59f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the project's retention settings.\r\n *\r\n * @param {BuildInterfaces.UpdateProjectRetentionSettingModel} updateModel\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateRetentionSettings(updateModel, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"dadb46e7-5851-4c72-820e-ae8abb82f59f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all revisions of a definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n */\r\n getDefinitionRevisions(project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"7c116775-52e5-453e-8c5d-914d9762d8c4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionRevision, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the build settings.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getBuildSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"aa8c1c9c-ef8b-474a-b8c4-785c7b191d0d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the build settings.\r\n *\r\n * @param {BuildInterfaces.BuildSettings} settings - The new settings.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateBuildSettings(settings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"aa8c1c9c-ef8b-474a-b8c4-785c7b191d0d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, settings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of source providers and their capabilities.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n listSourceProviders(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"3ce81729-954f-423d-a581-9fea01d25186\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.SourceProviderAttributes, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a build stage\r\n *\r\n * @param {BuildInterfaces.UpdateStageParameters} updateParameters\r\n * @param {number} buildId\r\n * @param {string} stageRefName\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateStage(updateParameters, buildId, stageRefName, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n stageRefName: stageRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"b8aac6c9-744b-46e1-88fc-3550969f9313\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n *

Gets the build status for a definition, optionally scoped to a specific branch, stage, job, and configuration.

If there are more than one, then it is required to pass in a stageName value when specifying a jobName, and the same rule then applies for both if passing a configuration parameter.

\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} definition - Either the definition name with optional leading folder path, or the definition id.\r\n * @param {string} branchName - Only consider the most recent build for this branch. If not specified, the default branch is used.\r\n * @param {string} stageName - Use this stage within the pipeline to render the status.\r\n * @param {string} jobName - Use this job within a stage of the pipeline to render the status.\r\n * @param {string} configuration - Use this job configuration to render the status\r\n * @param {string} label - Replaces the default text on the left side of the badge.\r\n */\r\n getStatusBadge(project, definition, branchName, stageName, jobName, configuration, label) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definition: definition\r\n };\r\n let queryValues = {\r\n branchName: branchName,\r\n stageName: stageName,\r\n jobName: jobName,\r\n configuration: configuration,\r\n label: label,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"07acfdce-4757-4439-b422-ddd13a2fcc10\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a tag to a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} tag - The tag to add.\r\n */\r\n addBuildTag(project, buildId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"6e6114b2-8161-44c8-8f6c-c5505782427f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds tags to a build.\r\n *\r\n * @param {string[]} tags - The tags to add.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n addBuildTags(tags, project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"6e6114b2-8161-44c8-8f6c-c5505782427f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, tags, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a tag from a build. NOTE: This API will not work for tags with special characters. To remove tags with special characters, use the PATCH method instead (in 6.0+)\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} tag - The tag to remove.\r\n */\r\n deleteBuildTag(project, buildId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"6e6114b2-8161-44c8-8f6c-c5505782427f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the tags for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n getBuildTags(project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"6e6114b2-8161-44c8-8f6c-c5505782427f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds/Removes tags from a build.\r\n *\r\n * @param {BuildInterfaces.UpdateTagParameters} updateParameters - The tags to add/remove.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n updateBuildTags(updateParameters, project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"6e6114b2-8161-44c8-8f6c-c5505782427f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a tag to a definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {string} tag - The tag to add.\r\n */\r\n addDefinitionTag(project, definitionId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"cb894432-134a-4d31-a839-83beceaace4b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds multiple tags to a definition.\r\n *\r\n * @param {string[]} tags - The tags to add.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n */\r\n addDefinitionTags(tags, project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"cb894432-134a-4d31-a839-83beceaace4b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, tags, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a tag from a definition. NOTE: This API will not work for tags with special characters. To remove tags with special characters, use the PATCH method instead (in 6.0+)\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {string} tag - The tag to remove.\r\n */\r\n deleteDefinitionTag(project, definitionId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"cb894432-134a-4d31-a839-83beceaace4b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the tags for a definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {number} revision - The definition revision number. If not specified, uses the latest revision of the definition.\r\n */\r\n getDefinitionTags(project, definitionId, revision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"cb894432-134a-4d31-a839-83beceaace4b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds/Removes tags from a definition.\r\n *\r\n * @param {BuildInterfaces.UpdateTagParameters} updateParameters - The tags to add/remove.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n */\r\n updateDefinitionTags(updateParameters, project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"cb894432-134a-4d31-a839-83beceaace4b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a tag from builds, definitions, and from the tag store\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} tag - The tag to remove.\r\n */\r\n deleteTag(project, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"d84ac5c6-edc7-43d5-adc9-1b34be5dea09\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of all build tags in the project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getTags(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"d84ac5c6-edc7-43d5-adc9-1b34be5dea09\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a build definition template.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - The ID of the template.\r\n */\r\n deleteTemplate(project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"e884571e-7f92-4d6a-9274-3f5649900835\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a specific build definition template.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - The ID of the requested template.\r\n */\r\n getTemplate(project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"e884571e-7f92-4d6a-9274-3f5649900835\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionTemplate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all definition templates.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getTemplates(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"e884571e-7f92-4d6a-9274-3f5649900835\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionTemplate, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing build definition template.\r\n *\r\n * @param {BuildInterfaces.BuildDefinitionTemplate} template - The new version of the template.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - The ID of the template.\r\n */\r\n saveTemplate(template, project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"e884571e-7f92-4d6a-9274-3f5649900835\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, template, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionTemplate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets details for a build\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} timelineId\r\n * @param {number} changeId\r\n * @param {string} planId\r\n */\r\n getBuildTimeline(project, buildId, timelineId, changeId, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n timelineId: timelineId\r\n };\r\n let queryValues = {\r\n changeId: changeId,\r\n planId: planId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"8baac422-4c6e-4de5-8532-db96d92acffa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Timeline, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Recreates the webhooks for the specified triggers in the given source code repository.\r\n *\r\n * @param {BuildInterfaces.DefinitionTriggerType[]} triggerTypes - The types of triggers to restore webhooks for.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get webhooks. Can only be omitted for providers that do not support multiple repositories.\r\n */\r\n restoreWebhooks(triggerTypes, project, providerName, serviceEndpointId, repository) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"793bceb8-9736-4030-bd2f-fb3ce6d6b478\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, triggerTypes, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of webhooks installed in the given source code repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get webhooks. Can only be omitted for providers that do not support multiple repositories.\r\n */\r\n listWebhooks(project, providerName, serviceEndpointId, repository) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"8f20ff82-9498-4812-9f6e-9c01bdc50e99\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RepositoryWebhook, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the work items associated with a build. Only work items in the same project are returned.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {number} top - The maximum number of work items to return.\r\n */\r\n getBuildWorkItemsRefs(project, buildId, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"5a21f5d2-5642-47e4-a0bd-1356e6731bee\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the work items associated with a build, filtered to specific commits.\r\n *\r\n * @param {string[]} commitIds - A comma-delimited list of commit IDs.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {number} top - The maximum number of work items to return, or the number of commits to consider if no commit IDs are specified.\r\n */\r\n getBuildWorkItemsRefsFromCommits(commitIds, project, buildId, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"5a21f5d2-5642-47e4-a0bd-1356e6731bee\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, commitIds, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all the work items between two builds.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} fromBuildId - The ID of the first build.\r\n * @param {number} toBuildId - The ID of the last build.\r\n * @param {number} top - The maximum number of work items to return.\r\n */\r\n getWorkItemsBetweenBuilds(project, fromBuildId, toBuildId, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (fromBuildId == null) {\r\n throw new TypeError('fromBuildId can not be null or undefined');\r\n }\r\n if (toBuildId == null) {\r\n throw new TypeError('toBuildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fromBuildId: fromBuildId,\r\n toBuildId: toBuildId,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"52ba8915-5518-42e3-a4bb-b0182d159e2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Converts a definition to YAML, optionally at a specific revision.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {number} revision - The revision number to retrieve. If this is not specified, the latest version will be returned.\r\n * @param {Date} minMetricsTime - If specified, indicates the date from which metrics should be included.\r\n * @param {string[]} propertyFilters - A comma-delimited list of properties to include in the results.\r\n * @param {boolean} includeLatestBuilds\r\n */\r\n getDefinitionYaml(project, definitionId, revision, minMetricsTime, propertyFilters, includeLatestBuilds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n minMetricsTime: minMetricsTime,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n includeLatestBuilds: includeLatestBuilds,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"7c3df3a1-7e51-4150-8cf7-540347f8697f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nBuildApi.RESOURCE_AREA_ID = \"965220d5-5bb9-42cf-8d67-9b146df2a5a4\";\r\nexports.BuildApi = BuildApi;\r\n","\"use strict\";\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst vsom = require(\"./VsoClient\");\r\nconst serm = require(\"./Serialization\");\r\nconst rm = require(\"typed-rest-client/RestClient\");\r\nconst hm = require(\"typed-rest-client/HttpClient\");\r\nclass ClientApiBase {\r\n constructor(baseUrl, handlers, userAgent, options) {\r\n this.baseUrl = baseUrl;\r\n this.http = new hm.HttpClient(userAgent, handlers, options);\r\n this.rest = new rm.RestClient(userAgent, null, handlers, options);\r\n this.vsoClient = new vsom.VsoClient(baseUrl, this.rest);\r\n this.userAgent = userAgent;\r\n }\r\n createAcceptHeader(type, apiVersion) {\r\n return type + (apiVersion ? (';api-version=' + apiVersion) : '');\r\n }\r\n createRequestOptions(type, apiVersion) {\r\n let options = {};\r\n options.acceptHeader = this.createAcceptHeader(type, apiVersion);\r\n return options;\r\n }\r\n formatResponse(data, responseTypeMetadata, isCollection) {\r\n let serializationData = {\r\n responseTypeMetadata: responseTypeMetadata,\r\n responseIsCollection: isCollection\r\n };\r\n let deserializedResult = serm.ContractSerializer.deserialize(data, serializationData.responseTypeMetadata, false, serializationData.responseIsCollection);\r\n return deserializedResult;\r\n }\r\n}\r\nexports.ClientApiBase = ClientApiBase;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst CoreInterfaces = require(\"./interfaces/CoreInterfaces\");\r\nconst OperationsInterfaces = require(\"./interfaces/common/OperationsInterfaces\");\r\nclass CoreApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Core-api', options);\r\n }\r\n /**\r\n * Removes the avatar for the project.\r\n *\r\n * @param {string} projectId - The ID or name of the project.\r\n */\r\n removeProjectAvatar(projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"54b2a2a0-859b-4d05-827c-ec4c862f641a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Sets the avatar for the project.\r\n *\r\n * @param {CoreInterfaces.ProjectAvatar} avatarBlob - The avatar blob data object to upload.\r\n * @param {string} projectId - The ID or name of the project.\r\n */\r\n setProjectAvatar(avatarBlob, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"54b2a2a0-859b-4d05-827c-ec4c862f641a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, avatarBlob, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {CoreInterfaces.WebApiConnectedServiceDetails} connectedServiceCreationData\r\n * @param {string} projectId\r\n */\r\n createConnectedService(connectedServiceCreationData, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"b4f70219-e18b-42c5-abe3-98b07d35525e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, connectedServiceCreationData, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.WebApiConnectedService, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} projectId\r\n * @param {string} name\r\n */\r\n getConnectedServiceDetails(projectId, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"b4f70219-e18b-42c5-abe3-98b07d35525e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.WebApiConnectedServiceDetails, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} projectId\r\n * @param {CoreInterfaces.ConnectedServiceKind} kind\r\n */\r\n getConnectedServices(projectId, kind) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n let queryValues = {\r\n kind: kind,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"b4f70219-e18b-42c5-abe3-98b07d35525e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.WebApiConnectedService, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {CoreInterfaces.IdentityData} mruData\r\n * @param {string} mruName\r\n */\r\n createIdentityMru(mruData, mruName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n mruName: mruName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"5ead0b70-2572-4697-97e9-f341069a783a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, mruData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {CoreInterfaces.IdentityData} mruData\r\n * @param {string} mruName\r\n */\r\n deleteIdentityMru(mruData, mruName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n mruName: mruName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"5ead0b70-2572-4697-97e9-f341069a783a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} mruName\r\n */\r\n getIdentityMru(mruName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n mruName: mruName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"5ead0b70-2572-4697-97e9-f341069a783a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {CoreInterfaces.IdentityData} mruData\r\n * @param {string} mruName\r\n */\r\n updateIdentityMru(mruData, mruName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n mruName: mruName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"5ead0b70-2572-4697-97e9-f341069a783a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, mruData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of members for a specific team.\r\n *\r\n * @param {string} projectId - The name or ID (GUID) of the team project the team belongs to.\r\n * @param {string} teamId - The name or ID (GUID) of the team .\r\n * @param {number} top\r\n * @param {number} skip\r\n */\r\n getTeamMembersWithExtendedProperties(projectId, teamId, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n teamId: teamId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"294c494c-2600-4d7e-b76c-3dd50c3c95be\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a process by ID.\r\n *\r\n * @param {string} processId - ID for a process.\r\n */\r\n getProcessById(processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"93878975-88c5-4e6a-8abb-7ddd77a8a7d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.Process, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of processes.\r\n *\r\n */\r\n getProcesses() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"93878975-88c5-4e6a-8abb-7ddd77a8a7d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.Process, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get project collection with the specified id or name.\r\n *\r\n * @param {string} collectionId\r\n */\r\n getProjectCollection(collectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n collectionId: collectionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"8031090f-ef1d-4af6-85fc-698cd75d42bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.TeamProjectCollection, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get project collection references for this application.\r\n *\r\n * @param {number} top\r\n * @param {number} skip\r\n */\r\n getProjectCollections(top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"8031090f-ef1d-4af6-85fc-698cd75d42bf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the history of changes to the project.\r\n *\r\n * @param {number} minRevision - The minimum revision number to return in the history.\r\n */\r\n getProjectHistoryEntries(minRevision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n minRevision: minRevision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"6488a877-4749-4954-82ea-7340d36be9f2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.ProjectInfo, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get project with the specified id or name, optionally including capabilities.\r\n *\r\n * @param {string} projectId\r\n * @param {boolean} includeCapabilities - Include capabilities (such as source control) in the team project result (default: false).\r\n * @param {boolean} includeHistory - Search within renamed projects (that had such name in the past).\r\n */\r\n getProject(projectId, includeCapabilities, includeHistory) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n let queryValues = {\r\n includeCapabilities: includeCapabilities,\r\n includeHistory: includeHistory,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"core\", \"603fe2ac-9723-48b9-88ad-09305aa6c6e1\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.TeamProject, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all projects in the organization that the authenticated user has access to.\r\n *\r\n * @param {any} stateFilter - Filter on team projects in a specific team project state (default: WellFormed).\r\n * @param {number} top\r\n * @param {number} skip\r\n * @param {string} continuationToken\r\n * @param {boolean} getDefaultTeamImageUrl\r\n */\r\n getProjects(stateFilter, top, skip, continuationToken, getDefaultTeamImageUrl) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n stateFilter: stateFilter,\r\n '$top': top,\r\n '$skip': skip,\r\n continuationToken: continuationToken,\r\n getDefaultTeamImageUrl: getDefaultTeamImageUrl,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"core\", \"603fe2ac-9723-48b9-88ad-09305aa6c6e1\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.TeamProjectReference, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Queues a project to be created. Use the [GetOperation](../../operations/operations/get) to periodically check for create project status.\r\n *\r\n * @param {CoreInterfaces.TeamProject} projectToCreate - The project to create.\r\n */\r\n queueCreateProject(projectToCreate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"core\", \"603fe2ac-9723-48b9-88ad-09305aa6c6e1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, projectToCreate, options);\r\n let ret = this.formatResponse(res.result, OperationsInterfaces.TypeInfo.OperationReference, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Queues a project to be deleted. Use the [GetOperation](../../operations/operations/get) to periodically check for delete project status.\r\n *\r\n * @param {string} projectId - The project id of the project to delete.\r\n */\r\n queueDeleteProject(projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"core\", \"603fe2ac-9723-48b9-88ad-09305aa6c6e1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, OperationsInterfaces.TypeInfo.OperationReference, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update an existing project's name, abbreviation, description, or restore a project.\r\n *\r\n * @param {CoreInterfaces.TeamProject} projectUpdate - The updates for the project. The state must be set to wellFormed to restore the project.\r\n * @param {string} projectId - The project id of the project to update.\r\n */\r\n updateProject(projectUpdate, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"core\", \"603fe2ac-9723-48b9-88ad-09305aa6c6e1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, projectUpdate, options);\r\n let ret = this.formatResponse(res.result, OperationsInterfaces.TypeInfo.OperationReference, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a collection of team project properties for multiple projects.\r\n *\r\n * @param {string[]} projectIds - A comma-delimited string of team project IDs\r\n * @param {string[]} properties\r\n */\r\n getProjectsProperties(projectIds, properties) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (projectIds == null) {\r\n throw new TypeError('projectIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n projectIds: projectIds && projectIds.join(\",\"),\r\n properties: properties && properties.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"0a3ffdfc-fe94-47a6-bb27-79bf3f762eac\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a collection of team project properties.\r\n *\r\n * @param {string} projectId - The team project ID.\r\n * @param {string[]} keys - A comma-delimited string of team project property names. Wildcard characters (\"?\" and \"*\") are supported. If no key is specified, all properties will be returned.\r\n */\r\n getProjectProperties(projectId, keys) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n let queryValues = {\r\n keys: keys && keys.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"4976a71a-4487-49aa-8aab-a1eda469037a\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create, update, and delete team project properties.\r\n *\r\n * @param {string} projectId - The team project ID.\r\n * @param {VSSInterfaces.JsonPatchDocument} patchDocument - A JSON Patch document that represents an array of property operations. See RFC 6902 for more details on JSON Patch. The accepted operation verbs are Add and Remove, where Add is used for both creating and updating properties. The path consists of a forward slash and a property name.\r\n */\r\n setProjectProperties(customHeaders, projectId, patchDocument) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"4976a71a-4487-49aa-8aab-a1eda469037a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, patchDocument, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {CoreInterfaces.Proxy} proxy\r\n */\r\n createOrUpdateProxy(proxy) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"ec1f4311-f2b4-4c15-b2b8-8990b80d2908\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, proxy, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} proxyUrl\r\n * @param {string} site\r\n */\r\n deleteProxy(proxyUrl, site) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (proxyUrl == null) {\r\n throw new TypeError('proxyUrl can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n proxyUrl: proxyUrl,\r\n site: site,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"ec1f4311-f2b4-4c15-b2b8-8990b80d2908\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} proxyUrl\r\n */\r\n getProxies(proxyUrl) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n proxyUrl: proxyUrl,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"ec1f4311-f2b4-4c15-b2b8-8990b80d2908\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of all teams.\r\n *\r\n * @param {boolean} mine - If true, then return all teams requesting user is member. Otherwise return all teams user has read access.\r\n * @param {number} top - Maximum number of teams to return.\r\n * @param {number} skip - Number of teams to skip.\r\n * @param {boolean} expandIdentity - A value indicating whether or not to expand Identity information in the result WebApiTeam object.\r\n */\r\n getAllTeams(mine, top, skip, expandIdentity) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n '$mine': mine,\r\n '$top': top,\r\n '$skip': skip,\r\n '$expandIdentity': expandIdentity,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"7a4d9ee9-3433-4347-b47a-7a80f1cf307e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a team in a team project.\r\n *\r\n * @param {CoreInterfaces.WebApiTeam} team - The team data used to create the team.\r\n * @param {string} projectId - The name or ID (GUID) of the team project in which to create the team.\r\n */\r\n createTeam(team, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"d30a3dd1-f8ba-442a-b86a-bd0c0c383e59\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, team, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a team.\r\n *\r\n * @param {string} projectId - The name or ID (GUID) of the team project containing the team to delete.\r\n * @param {string} teamId - The name or ID of the team to delete.\r\n */\r\n deleteTeam(projectId, teamId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n teamId: teamId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"d30a3dd1-f8ba-442a-b86a-bd0c0c383e59\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a specific team.\r\n *\r\n * @param {string} projectId - The name or ID (GUID) of the team project containing the team.\r\n * @param {string} teamId - The name or ID (GUID) of the team.\r\n * @param {boolean} expandIdentity - A value indicating whether or not to expand Identity information in the result WebApiTeam object.\r\n */\r\n getTeam(projectId, teamId, expandIdentity) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n teamId: teamId\r\n };\r\n let queryValues = {\r\n '$expandIdentity': expandIdentity,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"d30a3dd1-f8ba-442a-b86a-bd0c0c383e59\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of teams.\r\n *\r\n * @param {string} projectId\r\n * @param {boolean} mine - If true return all the teams requesting user is member, otherwise return all the teams user has read access.\r\n * @param {number} top - Maximum number of teams to return.\r\n * @param {number} skip - Number of teams to skip.\r\n * @param {boolean} expandIdentity - A value indicating whether or not to expand Identity information in the result WebApiTeam object.\r\n */\r\n getTeams(projectId, mine, top, skip, expandIdentity) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n let queryValues = {\r\n '$mine': mine,\r\n '$top': top,\r\n '$skip': skip,\r\n '$expandIdentity': expandIdentity,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"d30a3dd1-f8ba-442a-b86a-bd0c0c383e59\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a team's name and/or description.\r\n *\r\n * @param {CoreInterfaces.WebApiTeam} teamData\r\n * @param {string} projectId - The name or ID (GUID) of the team project containing the team to update.\r\n * @param {string} teamId - The name of ID of the team to update.\r\n */\r\n updateTeam(teamData, projectId, teamId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n teamId: teamId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"d30a3dd1-f8ba-442a-b86a-bd0c0c383e59\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, teamData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nCoreApi.RESOURCE_AREA_ID = \"79134c72-4a58-4b42-976c-04e7115f32bf\";\r\nexports.CoreApi = CoreApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst DashboardInterfaces = require(\"./interfaces/DashboardInterfaces\");\r\nclass DashboardApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Dashboard-api', options);\r\n }\r\n /**\r\n * Create the supplied dashboard.\r\n *\r\n * @param {DashboardInterfaces.Dashboard} dashboard - The initial state of the dashboard\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n createDashboard(dashboard, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, dashboard, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a dashboard given its ID. This also deletes the widgets associated with this dashboard.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard to delete.\r\n */\r\n deleteDashboard(teamContext, dashboardId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a dashboard by its ID.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId\r\n */\r\n getDashboard(teamContext, dashboardId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of dashboards under a project.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getDashboardsByProject(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replace configuration for the specified dashboard. Replaces Widget list on Dashboard, only if property is supplied.\r\n *\r\n * @param {DashboardInterfaces.Dashboard} dashboard - The Configuration of the dashboard to replace.\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard to replace.\r\n */\r\n replaceDashboard(dashboard, teamContext, dashboardId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, dashboard, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the name and position of dashboards in the supplied group, and remove omitted dashboards. Does not modify dashboard content.\r\n *\r\n * @param {DashboardInterfaces.DashboardGroup} group\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n replaceDashboards(group, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, group, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.DashboardGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a widget on the specified dashboard.\r\n *\r\n * @param {DashboardInterfaces.Widget} widget - State of the widget to add\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of dashboard the widget will be added to.\r\n */\r\n createWidget(widget, teamContext, dashboardId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Dashboard\", \"bdcff53a-8355-4172-a00a-40497ea23afc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, widget, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete the specified widget.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard containing the widget.\r\n * @param {string} widgetId - ID of the widget to update.\r\n */\r\n deleteWidget(teamContext, dashboardId, widgetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId,\r\n widgetId: widgetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Dashboard\", \"bdcff53a-8355-4172-a00a-40497ea23afc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the current state of the specified widget.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard containing the widget.\r\n * @param {string} widgetId - ID of the widget to read.\r\n */\r\n getWidget(teamContext, dashboardId, widgetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId,\r\n widgetId: widgetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Dashboard\", \"bdcff53a-8355-4172-a00a-40497ea23afc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Override the state of the specified widget.\r\n *\r\n * @param {DashboardInterfaces.Widget} widget - State to be written for the widget.\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard containing the widget.\r\n * @param {string} widgetId - ID of the widget to update.\r\n */\r\n replaceWidget(widget, teamContext, dashboardId, widgetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId,\r\n widgetId: widgetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Dashboard\", \"bdcff53a-8355-4172-a00a-40497ea23afc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, widget, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Perform a partial update of the specified widget.\r\n *\r\n * @param {DashboardInterfaces.Widget} widget - Description of the widget changes to apply. All non-null fields will be replaced.\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard containing the widget.\r\n * @param {string} widgetId - ID of the widget to update.\r\n */\r\n updateWidget(widget, teamContext, dashboardId, widgetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId,\r\n widgetId: widgetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Dashboard\", \"bdcff53a-8355-4172-a00a-40497ea23afc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, widget, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the widget metadata satisfying the specified contribution ID.\r\n *\r\n * @param {string} contributionId - The ID of Contribution for the Widget\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWidgetMetadata(contributionId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n contributionId: contributionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Dashboard\", \"6b3628d3-e96f-4fc7-b176-50240b03b515\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.WidgetMetadataResponse, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all available widget metadata in alphabetical order, including widgets marked with isVisibleFromCatalog == false.\r\n *\r\n * @param {DashboardInterfaces.WidgetScope} scope\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWidgetTypes(scope, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (scope == null) {\r\n throw new TypeError('scope can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$scope': scope,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Dashboard\", \"6b3628d3-e96f-4fc7-b176-50240b03b515\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.WidgetTypesResponse, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nDashboardApi.RESOURCE_AREA_ID = \"31c84e0a-3ece-48fd-a29d-100849af99ba\";\r\nexports.DashboardApi = DashboardApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst ExtensionManagementInterfaces = require(\"./interfaces/ExtensionManagementInterfaces\");\r\nconst GalleryInterfaces = require(\"./interfaces/GalleryInterfaces\");\r\nclass ExtensionManagementApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-ExtensionManagement-api', options);\r\n }\r\n /**\r\n * @param {string} itemId\r\n * @param {boolean} testCommerce\r\n * @param {boolean} isFreeOrTrialInstall\r\n * @param {boolean} isAccountOwner\r\n * @param {boolean} isLinked\r\n * @param {boolean} isConnectedServer\r\n * @param {boolean} isBuyOperationValid\r\n */\r\n getAcquisitionOptions(itemId, testCommerce, isFreeOrTrialInstall, isAccountOwner, isLinked, isConnectedServer, isBuyOperationValid) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (itemId == null) {\r\n throw new TypeError('itemId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n itemId: itemId,\r\n testCommerce: testCommerce,\r\n isFreeOrTrialInstall: isFreeOrTrialInstall,\r\n isAccountOwner: isAccountOwner,\r\n isLinked: isLinked,\r\n isConnectedServer: isConnectedServer,\r\n isBuyOperationValid: isBuyOperationValid,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"288dff58-d13b-468e-9671-0fb754e9398c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.AcquisitionOptions, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ExtensionManagementInterfaces.ExtensionAcquisitionRequest} acquisitionRequest\r\n */\r\n requestAcquisition(acquisitionRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"da616457-eed3-4672-92d7-18d21f5c1658\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, acquisitionRequest, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.ExtensionAcquisitionRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n getAuditLog(publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"23a312e0-562d-42fb-a505-5a046b5635db\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.ExtensionAuditLog, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} registrationId\r\n */\r\n registerAuthorization(publisherName, extensionName, registrationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n registrationId: registrationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"f21cfc80-d2d2-4248-98bb-7820c74c4606\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} doc\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n */\r\n createDocumentByName(doc, publisherName, extensionName, scopeType, scopeValue, collectionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, doc, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n * @param {string} documentId\r\n */\r\n deleteDocumentByName(publisherName, extensionName, scopeType, scopeValue, collectionName, documentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName,\r\n documentId: documentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n * @param {string} documentId\r\n */\r\n getDocumentByName(publisherName, extensionName, scopeType, scopeValue, collectionName, documentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName,\r\n documentId: documentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n */\r\n getDocumentsByName(publisherName, extensionName, scopeType, scopeValue, collectionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} doc\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n */\r\n setDocumentByName(doc, publisherName, extensionName, scopeType, scopeValue, collectionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, doc, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} doc\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n */\r\n updateDocumentByName(doc, publisherName, extensionName, scopeType, scopeValue, collectionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, doc, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Query for one or more data collections for the specified extension. Note: the token used for authorization must have been issued on behalf of the specified extension.\r\n *\r\n * @param {ExtensionManagementInterfaces.ExtensionDataCollectionQuery} collectionQuery\r\n * @param {string} publisherName - Name of the publisher. Example: \"fabrikam\".\r\n * @param {string} extensionName - Name of the extension. Example: \"ops-tools\".\r\n */\r\n queryCollectionsByName(collectionQuery, publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"56c331f1-ce53-4318-adfd-4db5c52a7a2e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, collectionQuery, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List state and version information for all installed extensions.\r\n *\r\n * @param {boolean} includeDisabled - If true (the default), include disabled extensions in the results.\r\n * @param {boolean} includeErrors - If true, include installed extensions in an error state in the results.\r\n * @param {boolean} includeInstallationIssues\r\n * @param {boolean} forceRefresh\r\n */\r\n getStates(includeDisabled, includeErrors, includeInstallationIssues, forceRefresh) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n includeDisabled: includeDisabled,\r\n includeErrors: includeErrors,\r\n includeInstallationIssues: includeInstallationIssues,\r\n forceRefresh: forceRefresh,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"92755d3d-9a8a-42b3-8a4d-87359fe5aa93\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.ExtensionState, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ExtensionManagementInterfaces.InstalledExtensionQuery} query\r\n */\r\n queryExtensions(query) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"046c980f-1345-4ce2-bf85-b46d10ff4cfd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List the installed extensions in the account / project collection.\r\n *\r\n * @param {boolean} includeDisabledExtensions - If true (the default), include disabled extensions in the results.\r\n * @param {boolean} includeErrors - If true, include installed extensions with errors.\r\n * @param {string[]} assetTypes\r\n * @param {boolean} includeInstallationIssues\r\n */\r\n getInstalledExtensions(includeDisabledExtensions, includeErrors, assetTypes, includeInstallationIssues) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n includeDisabledExtensions: includeDisabledExtensions,\r\n includeErrors: includeErrors,\r\n assetTypes: assetTypes && assetTypes.join(\":\"),\r\n includeInstallationIssues: includeInstallationIssues,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"275424d0-c844-4fe2-bda6-04933a1357d8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update an installed extension. Typically this API is used to enable or disable an extension.\r\n *\r\n * @param {ExtensionManagementInterfaces.InstalledExtension} extension\r\n */\r\n updateInstalledExtension(extension) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"275424d0-c844-4fe2-bda6-04933a1357d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, extension, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get an installed extension by its publisher and extension name.\r\n *\r\n * @param {string} publisherName - Name of the publisher. Example: \"fabrikam\".\r\n * @param {string} extensionName - Name of the extension. Example: \"ops-tools\".\r\n * @param {string[]} assetTypes\r\n */\r\n getInstalledExtensionByName(publisherName, extensionName, assetTypes) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n assetTypes: assetTypes && assetTypes.join(\":\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"fb0da285-f23e-4b56-8b53-3ef5f9f6de66\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Install the specified extension into the account / project collection.\r\n *\r\n * @param {string} publisherName - Name of the publisher. Example: \"fabrikam\".\r\n * @param {string} extensionName - Name of the extension. Example: \"ops-tools\".\r\n * @param {string} version\r\n */\r\n installExtensionByName(publisherName, extensionName, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"fb0da285-f23e-4b56-8b53-3ef5f9f6de66\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Uninstall the specified extension from the account / project collection.\r\n *\r\n * @param {string} publisherName - Name of the publisher. Example: \"fabrikam\".\r\n * @param {string} extensionName - Name of the extension. Example: \"ops-tools\".\r\n * @param {string} reason\r\n * @param {string} reasonCode\r\n */\r\n uninstallExtensionByName(publisherName, extensionName, reason, reasonCode) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n reason: reason,\r\n reasonCode: reasonCode,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"fb0da285-f23e-4b56-8b53-3ef5f9f6de66\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} userId\r\n */\r\n getPolicies(userId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n userId: userId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"e5cc8c09-407b-4867-8319-2ae3338cbf6f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.UserExtensionPolicy, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} rejectMessage\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} requesterId\r\n * @param {ExtensionManagementInterfaces.ExtensionRequestState} state\r\n */\r\n resolveRequest(rejectMessage, publisherName, extensionName, requesterId, state) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (state == null) {\r\n throw new TypeError('state can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n requesterId: requesterId\r\n };\r\n let queryValues = {\r\n state: state,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"aa93e1f3-511c-4364-8b9c-eb98818f2e0b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, rejectMessage, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getRequests() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"216b978f-b164-424e-ada2-b77561e842b7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.RequestedExtension, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} rejectMessage\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {ExtensionManagementInterfaces.ExtensionRequestState} state\r\n */\r\n resolveAllRequests(rejectMessage, publisherName, extensionName, state) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (state == null) {\r\n throw new TypeError('state can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n state: state,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"ba93e1f3-511c-4364-8b9c-eb98818f2e0b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, rejectMessage, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n deleteRequest(publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"f5afca1e-a728-4294-aa2d-4af0173431b5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} requestMessage\r\n */\r\n requestExtension(publisherName, extensionName, requestMessage) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"f5afca1e-a728-4294-aa2d-4af0173431b5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, requestMessage, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.RequestedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getToken() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"3a2e24ed-1d6f-4cb2-9f3b-45a96bbfaf50\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nExtensionManagementApi.RESOURCE_AREA_ID = \"6c2b0933-3600-42ae-bf8b-93d4f7e83594\";\r\nexports.ExtensionManagementApi = ExtensionManagementApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst FeatureManagementInterfaces = require(\"./interfaces/FeatureManagementInterfaces\");\r\nclass FeatureManagementApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-FeatureManagement-api', options);\r\n }\r\n /**\r\n * Get a specific feature by its id\r\n *\r\n * @param {string} featureId - The contribution id of the feature\r\n */\r\n getFeature(featureId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n featureId: featureId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"c4209f25-7a27-41dd-9f04-06080c7b6afd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of all defined features\r\n *\r\n * @param {string} targetContributionId - Optional target contribution. If null/empty, return all features. If specified include the features that target the specified contribution.\r\n */\r\n getFeatures(targetContributionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n targetContributionId: targetContributionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"c4209f25-7a27-41dd-9f04-06080c7b6afd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the state of the specified feature for the given user/all-users scope\r\n *\r\n * @param {string} featureId - Contribution id of the feature\r\n * @param {string} userScope - User-Scope at which to get the value. Should be \"me\" for the current user or \"host\" for all users.\r\n */\r\n getFeatureState(featureId, userScope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n featureId: featureId,\r\n userScope: userScope\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"98911314-3f9b-4eaf-80e8-83900d8e85d9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Set the state of a feature\r\n *\r\n * @param {FeatureManagementInterfaces.ContributedFeatureState} feature - Posted feature state object. Should specify the effective value.\r\n * @param {string} featureId - Contribution id of the feature\r\n * @param {string} userScope - User-Scope at which to set the value. Should be \"me\" for the current user or \"host\" for all users.\r\n * @param {string} reason - Reason for changing the state\r\n * @param {string} reasonCode - Short reason code\r\n */\r\n setFeatureState(feature, featureId, userScope, reason, reasonCode) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n featureId: featureId,\r\n userScope: userScope\r\n };\r\n let queryValues = {\r\n reason: reason,\r\n reasonCode: reasonCode,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"98911314-3f9b-4eaf-80e8-83900d8e85d9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, feature, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the state of the specified feature for the given named scope\r\n *\r\n * @param {string} featureId - Contribution id of the feature\r\n * @param {string} userScope - User-Scope at which to get the value. Should be \"me\" for the current user or \"host\" for all users.\r\n * @param {string} scopeName - Scope at which to get the feature setting for (e.g. \"project\" or \"team\")\r\n * @param {string} scopeValue - Value of the scope (e.g. the project or team id)\r\n */\r\n getFeatureStateForScope(featureId, userScope, scopeName, scopeValue) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n featureId: featureId,\r\n userScope: userScope,\r\n scopeName: scopeName,\r\n scopeValue: scopeValue\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"dd291e43-aa9f-4cee-8465-a93c78e414a4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Set the state of a feature at a specific scope\r\n *\r\n * @param {FeatureManagementInterfaces.ContributedFeatureState} feature - Posted feature state object. Should specify the effective value.\r\n * @param {string} featureId - Contribution id of the feature\r\n * @param {string} userScope - User-Scope at which to set the value. Should be \"me\" for the current user or \"host\" for all users.\r\n * @param {string} scopeName - Scope at which to get the feature setting for (e.g. \"project\" or \"team\")\r\n * @param {string} scopeValue - Value of the scope (e.g. the project or team id)\r\n * @param {string} reason - Reason for changing the state\r\n * @param {string} reasonCode - Short reason code\r\n */\r\n setFeatureStateForScope(feature, featureId, userScope, scopeName, scopeValue, reason, reasonCode) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n featureId: featureId,\r\n userScope: userScope,\r\n scopeName: scopeName,\r\n scopeValue: scopeValue\r\n };\r\n let queryValues = {\r\n reason: reason,\r\n reasonCode: reasonCode,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"dd291e43-aa9f-4cee-8465-a93c78e414a4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, feature, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the effective state for a list of feature ids\r\n *\r\n * @param {FeatureManagementInterfaces.ContributedFeatureStateQuery} query - Features to query along with current scope values\r\n */\r\n queryFeatureStates(query) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"2b4486ad-122b-400c-ae65-17b6672c1f9d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureStateQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the states of the specified features for the default scope\r\n *\r\n * @param {FeatureManagementInterfaces.ContributedFeatureStateQuery} query - Query describing the features to query.\r\n * @param {string} userScope\r\n */\r\n queryFeatureStatesForDefaultScope(query, userScope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n userScope: userScope\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"3f810f28-03e2-4239-b0bc-788add3005e5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureStateQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the states of the specified features for the specific named scope\r\n *\r\n * @param {FeatureManagementInterfaces.ContributedFeatureStateQuery} query - Query describing the features to query.\r\n * @param {string} userScope\r\n * @param {string} scopeName\r\n * @param {string} scopeValue\r\n */\r\n queryFeatureStatesForNamedScope(query, userScope, scopeName, scopeValue) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n userScope: userScope,\r\n scopeName: scopeName,\r\n scopeValue: scopeValue\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"f29e997b-c2da-4d15-8380-765788a1a74c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureStateQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.FeatureManagementApi = FeatureManagementApi;\r\n","\"use strict\";\r\n/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nconst stream = require(\"stream\");\r\nconst zlib = require(\"zlib\");\r\nconst httpm = require(\"typed-rest-client/HttpClient\");\r\nconst FileContainerApiBase = require(\"./FileContainerApiBase\");\r\nconst FileContainerInterfaces = require(\"./interfaces/FileContainerInterfaces\");\r\nclass FileContainerApi extends FileContainerApiBase.FileContainerApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, options);\r\n }\r\n /**\r\n * @param {number} containerId\r\n * @param {string} scope\r\n * @param {string} itemPath\r\n * @param {string} downloadFileName\r\n */\r\n getItem(containerId, scope, itemPath, downloadFileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n containerId: containerId\r\n };\r\n let queryValues = {\r\n scope: scope,\r\n itemPath: itemPath,\r\n '$format': \"OctetStream\",\r\n downloadFileName: downloadFileName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"4.0-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/octet-stream', verData.apiVersion);\r\n let res = yield this.http.get(url);\r\n let rres = {};\r\n let statusCode = res.message.statusCode;\r\n rres.statusCode = statusCode;\r\n // not found leads to null obj returned\r\n if (statusCode == httpm.HttpCodes.NotFound) {\r\n resolve(rres);\r\n }\r\n if (statusCode > 299) {\r\n let msg;\r\n // if exception/error in body, attempt to get better error\r\n let contents = yield res.readBody();\r\n let obj;\r\n if (contents && contents.length > 0) {\r\n obj = JSON.parse(contents);\r\n if (options && options.responseProcessor) {\r\n rres.result = options.responseProcessor(obj);\r\n }\r\n else {\r\n rres.result = obj;\r\n }\r\n }\r\n if (obj && obj.message) {\r\n msg = obj.message;\r\n }\r\n else {\r\n msg = \"Failed request: (\" + statusCode + \") \" + res.message.url;\r\n }\r\n reject(new Error(msg));\r\n }\r\n else {\r\n // if the response is gzipped, unzip it\r\n if (res.message.headers[\"content-encoding\"] === \"gzip\") {\r\n let unzipStream = zlib.createGunzip();\r\n res.message.pipe(unzipStream);\r\n rres.result = unzipStream;\r\n }\r\n else {\r\n rres.result = res.message;\r\n }\r\n resolve(rres);\r\n }\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n createItem(contentStream, uncompressedLength, containerId, itemPath, scope, options) {\r\n return new Promise((resolve, reject) => {\r\n let chunkStream = new ChunkStream(this, uncompressedLength, containerId, itemPath, scope, options);\r\n chunkStream.on('finish', () => {\r\n resolve(chunkStream.getItem());\r\n });\r\n contentStream.pipe(chunkStream);\r\n });\r\n }\r\n // used by ChunkStream\r\n _createItem(customHeaders, contentStream, containerId, itemPath, scope, onResult) {\r\n var routeValues = {\r\n containerId: containerId\r\n };\r\n var queryValues = {\r\n itemPath: itemPath,\r\n scope: scope,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"\";\r\n this.vsoClient.getVersioningData(\"4.0-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues)\r\n .then((versioningData) => {\r\n var url = versioningData.requestUrl;\r\n var serializationData = { responseTypeMetadata: FileContainerInterfaces.TypeInfo.FileContainerItem, responseIsCollection: false };\r\n let options = this.createRequestOptions('application/octet-stream', versioningData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n this.rest.uploadStream('PUT', url, contentStream, options)\r\n .then((res) => {\r\n let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainerItem, false);\r\n onResult(null, res.statusCode, ret);\r\n })\r\n .catch((err) => {\r\n onResult(err, err.statusCode, null);\r\n });\r\n }, (error) => {\r\n onResult(error, error.statusCode, null);\r\n });\r\n }\r\n}\r\nexports.FileContainerApi = FileContainerApi;\r\nclass ChunkStream extends stream.Writable {\r\n constructor(api, uncompressedLength, containerId, itemPath, scope, options) {\r\n super();\r\n this._buffer = new Buffer(ChunkStream.ChunkSize);\r\n this._length = 0;\r\n this._startRange = 0;\r\n this._bytesToSend = 0;\r\n this._totalReceived = 0;\r\n this._api = api;\r\n this._options = options || {};\r\n this._uncompressedLength = uncompressedLength;\r\n this._containerId = containerId;\r\n this._itemPath = itemPath;\r\n this._scope = scope;\r\n this._bytesToSend = this._options.isGzipped ? this._options.compressedLength : uncompressedLength;\r\n }\r\n _write(data, encoding, callback) {\r\n let chunk = data;\r\n if (!chunk) {\r\n if (this._length == 0) {\r\n callback();\r\n }\r\n else {\r\n // last chunk\r\n this._sendChunk(callback);\r\n }\r\n return;\r\n }\r\n let newBuffer = null;\r\n if (this._length + chunk.length > ChunkStream.ChunkSize) {\r\n // overflow\r\n let overflowPosition = chunk.length - (ChunkStream.ChunkSize - this._length);\r\n chunk.copy(this._buffer, this._length, 0, overflowPosition);\r\n this._length += overflowPosition;\r\n newBuffer = chunk.slice(overflowPosition);\r\n }\r\n else {\r\n chunk.copy(this._buffer, this._length, 0, chunk.length);\r\n this._length += chunk.length;\r\n }\r\n this._totalReceived += chunk.length;\r\n if (this._length >= ChunkStream.ChunkSize || this._totalReceived >= this._bytesToSend) {\r\n this._sendChunk(callback, newBuffer);\r\n }\r\n else {\r\n callback();\r\n }\r\n }\r\n _sendChunk(callback, newBuffer) {\r\n let endRange = this._startRange + this._length;\r\n let headers = {\r\n \"Content-Range\": \"bytes \" + this._startRange + \"-\" + (endRange - 1) + \"/\" + this._bytesToSend,\r\n \"Content-Length\": this._length\r\n };\r\n if (this._options.isGzipped) {\r\n headers[\"Accept-Encoding\"] = \"gzip\";\r\n headers[\"Content-Encoding\"] = \"gzip\";\r\n headers[\"x-tfs-filelength\"] = this._uncompressedLength;\r\n }\r\n this._startRange = endRange;\r\n this._api._createItem(headers, new BufferStream(this._buffer, this._length), this._containerId, this._itemPath, this._scope, (err, statusCode, item) => {\r\n if (newBuffer) {\r\n this._length = newBuffer.length;\r\n newBuffer.copy(this._buffer);\r\n }\r\n else {\r\n this._length = 0;\r\n }\r\n this._item = item;\r\n callback(err);\r\n });\r\n }\r\n getItem() {\r\n return this._item;\r\n }\r\n}\r\nChunkStream.ChunkSize = (16 * 1024 * 1024);\r\nclass BufferStream extends stream.Readable {\r\n constructor(buffer, length) {\r\n super();\r\n this._position = 0;\r\n this._length = 0;\r\n this._buffer = buffer;\r\n this._length = length;\r\n }\r\n _read(size) {\r\n if (this._position >= this._length) {\r\n this.push(null);\r\n return;\r\n }\r\n let end = Math.min(this._position + size, this._length);\r\n this.push(this._buffer.slice(this._position, end));\r\n this._position = end;\r\n }\r\n}\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst FileContainerInterfaces = require(\"./interfaces/FileContainerInterfaces\");\r\nclass FileContainerApiBase extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-FileContainer-api', options);\r\n }\r\n /**\r\n * Creates the specified items in in the referenced container.\r\n *\r\n * @param {VSSInterfaces.VssJsonCollectionWrapperV} items\r\n * @param {number} containerId\r\n * @param {string} scope - A guid representing the scope of the container. This is often the project id.\r\n */\r\n createItems(items, containerId, scope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n containerId: containerId\r\n };\r\n let queryValues = {\r\n scope: scope,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, items, options);\r\n let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainerItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the specified items in a container.\r\n *\r\n * @param {number} containerId - Container Id.\r\n * @param {string} itemPath - Path to delete.\r\n * @param {string} scope - A guid representing the scope of the container. This is often the project id.\r\n */\r\n deleteItem(containerId, itemPath, scope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (itemPath == null) {\r\n throw new TypeError('itemPath can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n containerId: containerId\r\n };\r\n let queryValues = {\r\n itemPath: itemPath,\r\n scope: scope,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets containers filtered by a comma separated list of artifact uris within the same scope, if not specified returns all containers\r\n *\r\n * @param {string} scope - A guid representing the scope of the container. This is often the project id.\r\n * @param {string} artifactUris\r\n */\r\n getContainers(scope, artifactUris) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n scope: scope,\r\n artifactUris: artifactUris,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainer, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} containerId\r\n * @param {string} scope\r\n * @param {string} itemPath\r\n * @param {boolean} metadata\r\n * @param {string} format\r\n * @param {string} downloadFileName\r\n * @param {boolean} includeDownloadTickets\r\n * @param {boolean} isShallow\r\n * @param {boolean} ignoreRequestedMediaType\r\n * @param {boolean} includeBlobMetadata\r\n * @param {boolean} saveAbsolutePath\r\n */\r\n getItems(containerId, scope, itemPath, metadata, format, downloadFileName, includeDownloadTickets, isShallow, ignoreRequestedMediaType, includeBlobMetadata, saveAbsolutePath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n containerId: containerId\r\n };\r\n let queryValues = {\r\n scope: scope,\r\n itemPath: itemPath,\r\n metadata: metadata,\r\n '$format': format,\r\n downloadFileName: downloadFileName,\r\n includeDownloadTickets: includeDownloadTickets,\r\n isShallow: isShallow,\r\n ignoreRequestedMediaType: ignoreRequestedMediaType,\r\n includeBlobMetadata: includeBlobMetadata,\r\n saveAbsolutePath: saveAbsolutePath,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainerItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.FileContainerApiBase = FileContainerApiBase;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst compatBase = require(\"././GalleryCompatHttpClientBase\");\r\nconst GalleryInterfaces = require(\"./interfaces/GalleryInterfaces\");\r\nclass GalleryApi extends compatBase.GalleryCompatHttpClientBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Gallery-api', options);\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} accountName\r\n */\r\n shareExtensionById(extensionId, accountName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId,\r\n accountName: accountName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"1f19631b-a0b4-4a03-89c2-d79785d24360\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} accountName\r\n */\r\n unshareExtensionById(extensionId, accountName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId,\r\n accountName: accountName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"1f19631b-a0b4-4a03-89c2-d79785d24360\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} accountName\r\n */\r\n shareExtension(publisherName, extensionName, accountName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n accountName: accountName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"a1e66d8f-f5de-4d16-8309-91a4e015ee46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} accountName\r\n */\r\n unshareExtension(publisherName, extensionName, accountName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n accountName: accountName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"a1e66d8f-f5de-4d16-8309-91a4e015ee46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} itemId\r\n * @param {string} installationTarget\r\n * @param {boolean} testCommerce\r\n * @param {boolean} isFreeOrTrialInstall\r\n */\r\n getAcquisitionOptions(itemId, installationTarget, testCommerce, isFreeOrTrialInstall) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (installationTarget == null) {\r\n throw new TypeError('installationTarget can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n itemId: itemId\r\n };\r\n let queryValues = {\r\n installationTarget: installationTarget,\r\n testCommerce: testCommerce,\r\n isFreeOrTrialInstall: isFreeOrTrialInstall,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"9d0a0105-075e-4760-aa15-8bcf54d1bd7d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.AcquisitionOptions, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionAcquisitionRequest} acquisitionRequest\r\n */\r\n requestAcquisition(acquisitionRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"3adb1f2d-e328-446e-be73-9f6d98071c45\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, acquisitionRequest, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionAcquisitionRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n * @param {string} assetType\r\n * @param {string} accountToken\r\n * @param {boolean} acceptDefault\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getAssetByName(customHeaders, publisherName, extensionName, version, assetType, accountToken, acceptDefault, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version,\r\n assetType: assetType\r\n };\r\n let queryValues = {\r\n accountToken: accountToken,\r\n acceptDefault: acceptDefault,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"7529171f-a002-4180-93ba-685f358a0482\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} version\r\n * @param {string} assetType\r\n * @param {string} accountToken\r\n * @param {boolean} acceptDefault\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getAsset(customHeaders, extensionId, version, assetType, accountToken, acceptDefault, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId,\r\n version: version,\r\n assetType: assetType\r\n };\r\n let queryValues = {\r\n accountToken: accountToken,\r\n acceptDefault: acceptDefault,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"5d545f3d-ef47-488b-8be3-f5ee1517856c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n * @param {string} assetType\r\n * @param {string} accountToken\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getAssetAuthenticated(customHeaders, publisherName, extensionName, version, assetType, accountToken, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version,\r\n assetType: assetType\r\n };\r\n let queryValues = {\r\n accountToken: accountToken,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"506aff36-2622-4f70-8063-77cce6366d20\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} azurePublisherId\r\n */\r\n associateAzurePublisher(publisherName, azurePublisherId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (azurePublisherId == null) {\r\n throw new TypeError('azurePublisherId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n azurePublisherId: azurePublisherId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"efd202a6-9d87-4ebc-9229-d2b8ae2fdb6d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n */\r\n queryAssociatedAzurePublisher(publisherName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"efd202a6-9d87-4ebc-9229-d2b8ae2fdb6d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} languages\r\n */\r\n getCategories(languages) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n languages: languages,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"e0a5a71e-3ac3-43a0-ae7d-0bb5c3046a2a\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} categoryName\r\n * @param {string} languages\r\n * @param {string} product\r\n */\r\n getCategoryDetails(categoryName, languages, product) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n categoryName: categoryName\r\n };\r\n let queryValues = {\r\n languages: languages,\r\n product: product,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"75d3c04d-84d2-4973-acd2-22627587dabc\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} product\r\n * @param {string} categoryId\r\n * @param {number} lcid\r\n * @param {string} source\r\n * @param {string} productVersion\r\n * @param {string} skus\r\n * @param {string} subSkus\r\n */\r\n getCategoryTree(product, categoryId, lcid, source, productVersion, skus, subSkus) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n product: product,\r\n categoryId: categoryId\r\n };\r\n let queryValues = {\r\n lcid: lcid,\r\n source: source,\r\n productVersion: productVersion,\r\n skus: skus,\r\n subSkus: subSkus,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"1102bb42-82b0-4955-8d8a-435d6b4cedd3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} product\r\n * @param {number} lcid\r\n * @param {string} source\r\n * @param {string} productVersion\r\n * @param {string} skus\r\n * @param {string} subSkus\r\n */\r\n getRootCategories(product, lcid, source, productVersion, skus, subSkus) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n product: product\r\n };\r\n let queryValues = {\r\n lcid: lcid,\r\n source: source,\r\n productVersion: productVersion,\r\n skus: skus,\r\n subSkus: subSkus,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"31fba831-35b2-46f6-a641-d05de5a877d8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n */\r\n getCertificate(publisherName, extensionName, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"e905ad6a-3f1f-4d08-9f6d-7d357ff8b7d0\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n getContentVerificationLog(publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"c0f1c7c4-3557-4ffb-b774-1e48c4865e99\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.CustomerSupportRequest} customerSupportRequest\r\n */\r\n createSupportRequest(customerSupportRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"8eded385-026a-4c15-b810-b8eb402771f1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, customerSupportRequest, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n createDraftForEditExtension(publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"02b33873-4e61-496e-83a2-59d1df46b7d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionDraftPatch} draftPatch\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} draftId\r\n */\r\n performEditExtensionDraftOperation(draftPatch, publisherName, extensionName, draftId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n draftId: draftId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"02b33873-4e61-496e-83a2-59d1df46b7d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, draftPatch, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} draftId\r\n * @param {String} fileName - Header to pass the filename of the uploaded data\r\n */\r\n updatePayloadInDraftForEditExtension(customHeaders, contentStream, publisherName, extensionName, draftId, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n draftId: draftId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n customHeaders[\"X-Market-UploadFileName\"] = \"fileName\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"02b33873-4e61-496e-83a2-59d1df46b7d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} draftId\r\n * @param {string} assetType\r\n */\r\n addAssetForEditExtensionDraft(customHeaders, contentStream, publisherName, extensionName, draftId, assetType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n draftId: draftId,\r\n assetType: assetType\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"f1db9c47-6619-4998-a7e5-d7f9f41a4617\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {String} product - Header to pass the product type of the payload file\r\n * @param {String} fileName - Header to pass the filename of the uploaded data\r\n */\r\n createDraftForNewExtension(customHeaders, contentStream, publisherName, product, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n customHeaders[\"X-Market-UploadFileProduct\"] = \"product\";\r\n customHeaders[\"X-Market-UploadFileName\"] = \"fileName\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"b3ab127d-ebb9-4d22-b611-4e09593c8d79\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionDraftPatch} draftPatch\r\n * @param {string} publisherName\r\n * @param {string} draftId\r\n */\r\n performNewExtensionDraftOperation(draftPatch, publisherName, draftId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n draftId: draftId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"b3ab127d-ebb9-4d22-b611-4e09593c8d79\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, draftPatch, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {string} draftId\r\n * @param {String} fileName - Header to pass the filename of the uploaded data\r\n */\r\n updatePayloadInDraftForNewExtension(customHeaders, contentStream, publisherName, draftId, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n draftId: draftId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n customHeaders[\"X-Market-UploadFileName\"] = \"fileName\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"b3ab127d-ebb9-4d22-b611-4e09593c8d79\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {string} draftId\r\n * @param {string} assetType\r\n */\r\n addAssetForNewExtensionDraft(customHeaders, contentStream, publisherName, draftId, assetType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n draftId: draftId,\r\n assetType: assetType\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"88c0b1c8-b4f1-498a-9b2a-8446ef9f32e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} draftId\r\n * @param {string} assetType\r\n * @param {string} extensionName\r\n */\r\n getAssetFromEditExtensionDraft(publisherName, draftId, assetType, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (extensionName == null) {\r\n throw new TypeError('extensionName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n draftId: draftId,\r\n assetType: assetType\r\n };\r\n let queryValues = {\r\n extensionName: extensionName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"88c0b1c8-b4f1-498a-9b2a-8446ef9f32e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} draftId\r\n * @param {string} assetType\r\n */\r\n getAssetFromNewExtensionDraft(publisherName, draftId, assetType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n draftId: draftId,\r\n assetType: assetType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"88c0b1c8-b4f1-498a-9b2a-8446ef9f32e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get install/uninstall events of an extension. If both count and afterDate parameters are specified, count takes precedence.\r\n *\r\n * @param {string} publisherName - Name of the publisher\r\n * @param {string} extensionName - Name of the extension\r\n * @param {number} count - Count of events to fetch, applies to each event type.\r\n * @param {Date} afterDate - Fetch events that occurred on or after this date\r\n * @param {string} include - Filter options. Supported values: install, uninstall, review, acquisition, sales. Default is to fetch all types of events\r\n * @param {string} includeProperty - Event properties to include. Currently only 'lastContactDetails' is supported for uninstall events\r\n */\r\n getExtensionEvents(publisherName, extensionName, count, afterDate, include, includeProperty) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n count: count,\r\n afterDate: afterDate,\r\n include: include,\r\n includeProperty: includeProperty,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"3d13c499-2168-4d06-bef4-14aba185dcd5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionEvents, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * API endpoint to publish extension install/uninstall events. This is meant to be invoked by EMS only for sending us data related to install/uninstall of an extension.\r\n *\r\n * @param {GalleryInterfaces.ExtensionEvents[]} extensionEvents\r\n */\r\n publishExtensionEvents(extensionEvents) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"0bf2bd3a-70e0-4d5d-8bf7-bd4a9c2ab6e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, extensionEvents, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionQuery} extensionQuery\r\n * @param {string} accountToken\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n queryExtensions(customHeaders, extensionQuery, accountToken, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n accountToken: accountToken,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"eb9d5ee1-6d43-456b-b80e-8a96fbc014b6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.create(url, extensionQuery, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} extensionType\r\n * @param {string} reCaptchaToken\r\n */\r\n createExtension(customHeaders, contentStream, extensionType, reCaptchaToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n extensionType: extensionType,\r\n reCaptchaToken: reCaptchaToken,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} version\r\n */\r\n deleteExtensionById(extensionId, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId\r\n };\r\n let queryValues = {\r\n version: version,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} version\r\n * @param {GalleryInterfaces.ExtensionQueryFlags} flags\r\n */\r\n getExtensionById(extensionId, version, flags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId\r\n };\r\n let queryValues = {\r\n version: version,\r\n flags: flags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} reCaptchaToken\r\n */\r\n updateExtensionById(extensionId, reCaptchaToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId\r\n };\r\n let queryValues = {\r\n reCaptchaToken: reCaptchaToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {string} extensionType\r\n * @param {string} reCaptchaToken\r\n */\r\n createExtensionWithPublisher(customHeaders, contentStream, publisherName, extensionType, reCaptchaToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n extensionType: extensionType,\r\n reCaptchaToken: reCaptchaToken,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n */\r\n deleteExtension(publisherName, extensionName, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n version: version,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n * @param {GalleryInterfaces.ExtensionQueryFlags} flags\r\n * @param {string} accountToken\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getExtension(customHeaders, publisherName, extensionName, version, flags, accountToken, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n version: version,\r\n flags: flags,\r\n accountToken: accountToken,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * REST endpoint to update an extension.\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName - Name of the publisher\r\n * @param {string} extensionName - Name of the extension\r\n * @param {string} extensionType\r\n * @param {string} reCaptchaToken\r\n * @param {boolean} bypassScopeCheck - This parameter decides if the scope change check needs to be invoked or not\r\n */\r\n updateExtension(customHeaders, contentStream, publisherName, extensionName, extensionType, reCaptchaToken, bypassScopeCheck) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n extensionType: extensionType,\r\n reCaptchaToken: reCaptchaToken,\r\n bypassScopeCheck: bypassScopeCheck,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {GalleryInterfaces.PublishedExtensionFlags} flags\r\n */\r\n updateExtensionProperties(publisherName, extensionName, flags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (flags == null) {\r\n throw new TypeError('flags can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n flags: flags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} hostType\r\n * @param {string} hostName\r\n */\r\n shareExtensionWithHost(publisherName, extensionName, hostType, hostName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n hostType: hostType,\r\n hostName: hostName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"328a3af8-d124-46e9-9483-01690cd415b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} hostType\r\n * @param {string} hostName\r\n */\r\n unshareExtensionWithHost(publisherName, extensionName, hostType, hostName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n hostType: hostType,\r\n hostName: hostName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"328a3af8-d124-46e9-9483-01690cd415b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.AzureRestApiRequestModel} azureRestApiRequestModel\r\n */\r\n extensionValidator(azureRestApiRequestModel) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"05e8a5e1-8c59-4c2c-8856-0ff087d1a844\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, azureRestApiRequestModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Send Notification\r\n *\r\n * @param {GalleryInterfaces.NotificationsData} notificationData - Denoting the data needed to send notification\r\n */\r\n sendNotifications(notificationData) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"eab39817-413c-4602-a49f-07ad00844980\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, notificationData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * This endpoint gets hit when you download a VSTS extension from the Web UI\r\n *\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n * @param {string} accountToken\r\n * @param {boolean} acceptDefault\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getPackage(customHeaders, publisherName, extensionName, version, accountToken, acceptDefault, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n let queryValues = {\r\n accountToken: accountToken,\r\n acceptDefault: acceptDefault,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"7cb576f8-1cae-4c4b-b7b1-e4af5759e965\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n * @param {string} assetType\r\n * @param {string} assetToken\r\n * @param {string} accountToken\r\n * @param {boolean} acceptDefault\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getAssetWithToken(customHeaders, publisherName, extensionName, version, assetType, assetToken, accountToken, acceptDefault, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version,\r\n assetType: assetType,\r\n assetToken: assetToken\r\n };\r\n let queryValues = {\r\n accountToken: accountToken,\r\n acceptDefault: acceptDefault,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"364415a1-0077-4a41-a7a0-06edd4497492\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete publisher asset like logo\r\n *\r\n * @param {string} publisherName - Internal name of the publisher\r\n * @param {string} assetType - Type of asset. Default value is 'logo'.\r\n */\r\n deletePublisherAsset(publisherName, assetType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n assetType: assetType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"21143299-34f9-4c62-8ca8-53da691192f9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get publisher asset like logo as a stream\r\n *\r\n * @param {string} publisherName - Internal name of the publisher\r\n * @param {string} assetType - Type of asset. Default value is 'logo'.\r\n */\r\n getPublisherAsset(publisherName, assetType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n assetType: assetType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"21143299-34f9-4c62-8ca8-53da691192f9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update publisher asset like logo. It accepts asset file as an octet stream and file name is passed in header values.\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName - Internal name of the publisher\r\n * @param {string} assetType - Type of asset. Default value is 'logo'.\r\n * @param {String} fileName - Header to pass the filename of the uploaded data\r\n */\r\n updatePublisherAsset(customHeaders, contentStream, publisherName, assetType, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n assetType: assetType,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n customHeaders[\"X-Market-UploadFileName\"] = \"fileName\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"21143299-34f9-4c62-8ca8-53da691192f9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.PublisherQuery} publisherQuery\r\n */\r\n queryPublishers(publisherQuery) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"2ad6ee0a-b53f-4034-9d1d-d009fda1212e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, publisherQuery, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublisherQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.Publisher} publisher\r\n */\r\n createPublisher(publisher) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4ddec66a-e4f6-4f5d-999e-9e77710d7ff4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, publisher, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Publisher, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n */\r\n deletePublisher(publisherName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4ddec66a-e4f6-4f5d-999e-9e77710d7ff4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {number} flags\r\n */\r\n getPublisher(publisherName, flags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n flags: flags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4ddec66a-e4f6-4f5d-999e-9e77710d7ff4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Publisher, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.Publisher} publisher\r\n * @param {string} publisherName\r\n */\r\n updatePublisher(publisher, publisherName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4ddec66a-e4f6-4f5d-999e-9e77710d7ff4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, publisher, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Publisher, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Endpoint to add/modify publisher membership. Currently Supports only addition/modification of 1 user at a time Works only for adding members of same tenant.\r\n *\r\n * @param {GalleryInterfaces.PublisherUserRoleAssignmentRef[]} roleAssignments - List of user identifiers(email address) and role to be added. Currently only one entry is supported.\r\n * @param {string} publisherName - The name/id of publisher to which users have to be added\r\n * @param {boolean} limitToCallerIdentityDomain - Should cross tenant addtions be allowed or not.\r\n */\r\n updatePublisherMembers(roleAssignments, publisherName, limitToCallerIdentityDomain) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n limitToCallerIdentityDomain: limitToCallerIdentityDomain,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4ddec66a-e4f6-4f5d-999e-9e77710d7ff4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, roleAssignments, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublisherRoleAssignment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of questions with their responses associated with an extension.\r\n *\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} count - Number of questions to retrieve (defaults to 10).\r\n * @param {number} page - Page number from which set of questions are to be retrieved.\r\n * @param {Date} afterDate - If provided, results questions are returned which were posted after this date\r\n */\r\n getQuestions(publisherName, extensionName, count, page, afterDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n count: count,\r\n page: page,\r\n afterDate: afterDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"c010d03d-812c-4ade-ae07-c1862475eda5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.QuestionsResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Flags a concern with an existing question for an extension.\r\n *\r\n * @param {GalleryInterfaces.Concern} concern - User reported concern with a question for the extension.\r\n * @param {string} pubName - Name of the publisher who published the extension.\r\n * @param {string} extName - Name of the extension.\r\n * @param {number} questionId - Identifier of the question to be updated for the extension.\r\n */\r\n reportQuestion(concern, pubName, extName, questionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n pubName: pubName,\r\n extName: extName,\r\n questionId: questionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"784910cd-254a-494d-898b-0728549b2f10\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, concern, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Concern, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new question for an extension.\r\n *\r\n * @param {GalleryInterfaces.Question} question - Question to be created for the extension.\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n */\r\n createQuestion(question, publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"6d1d9741-eca8-4701-a3a5-235afc82dfa4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, question, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Question, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes an existing question and all its associated responses for an extension. (soft delete)\r\n *\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} questionId - Identifier of the question to be deleted for the extension.\r\n */\r\n deleteQuestion(publisherName, extensionName, questionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n questionId: questionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"6d1d9741-eca8-4701-a3a5-235afc82dfa4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing question for an extension.\r\n *\r\n * @param {GalleryInterfaces.Question} question - Updated question to be set for the extension.\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} questionId - Identifier of the question to be updated for the extension.\r\n */\r\n updateQuestion(question, publisherName, extensionName, questionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n questionId: questionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"6d1d9741-eca8-4701-a3a5-235afc82dfa4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, question, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Question, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new response for a given question for an extension.\r\n *\r\n * @param {GalleryInterfaces.Response} response - Response to be created for the extension.\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} questionId - Identifier of the question for which response is to be created for the extension.\r\n */\r\n createResponse(response, publisherName, extensionName, questionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n questionId: questionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"7f8ae5e0-46b0-438f-b2e8-13e8513517bd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, response, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Response, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a response for an extension. (soft delete)\r\n *\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} questionId - Identifies the question whose response is to be deleted.\r\n * @param {number} responseId - Identifies the response to be deleted.\r\n */\r\n deleteResponse(publisherName, extensionName, questionId, responseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n questionId: questionId,\r\n responseId: responseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"7f8ae5e0-46b0-438f-b2e8-13e8513517bd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing response for a given question for an extension.\r\n *\r\n * @param {GalleryInterfaces.Response} response - Updated response to be set for the extension.\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} questionId - Identifier of the question for which response is to be updated for the extension.\r\n * @param {number} responseId - Identifier of the response which has to be updated.\r\n */\r\n updateResponse(response, publisherName, extensionName, questionId, responseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n questionId: questionId,\r\n responseId: responseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"7f8ae5e0-46b0-438f-b2e8-13e8513517bd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, response, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Response, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns extension reports\r\n *\r\n * @param {string} publisherName - Name of the publisher who published the extension\r\n * @param {string} extensionName - Name of the extension\r\n * @param {number} days - Last n days report. If afterDate and days are specified, days will take priority\r\n * @param {number} count - Number of events to be returned\r\n * @param {Date} afterDate - Use if you want to fetch events newer than the specified date\r\n */\r\n getExtensionReports(publisherName, extensionName, days, count, afterDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n days: days,\r\n count: count,\r\n afterDate: afterDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"79e0c74f-157f-437e-845f-74fbb4121d4c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of reviews associated with an extension\r\n *\r\n * @param {string} publisherName - Name of the publisher who published the extension\r\n * @param {string} extensionName - Name of the extension\r\n * @param {number} count - Number of reviews to retrieve (defaults to 5)\r\n * @param {GalleryInterfaces.ReviewFilterOptions} filterOptions - FilterOptions to filter out empty reviews etcetera, defaults to none\r\n * @param {Date} beforeDate - Use if you want to fetch reviews older than the specified date, defaults to null\r\n * @param {Date} afterDate - Use if you want to fetch reviews newer than the specified date, defaults to null\r\n */\r\n getReviews(publisherName, extensionName, count, filterOptions, beforeDate, afterDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n count: count,\r\n filterOptions: filterOptions,\r\n beforeDate: beforeDate,\r\n afterDate: afterDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"5b3f819f-f247-42ad-8c00-dd9ab9ab246d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ReviewsResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a summary of the reviews\r\n *\r\n * @param {string} pubName - Name of the publisher who published the extension\r\n * @param {string} extName - Name of the extension\r\n * @param {Date} beforeDate - Use if you want to fetch summary of reviews older than the specified date, defaults to null\r\n * @param {Date} afterDate - Use if you want to fetch summary of reviews newer than the specified date, defaults to null\r\n */\r\n getReviewsSummary(pubName, extName, beforeDate, afterDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n pubName: pubName,\r\n extName: extName\r\n };\r\n let queryValues = {\r\n beforeDate: beforeDate,\r\n afterDate: afterDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"b7b44e21-209e-48f0-ae78-04727fc37d77\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new review for an extension\r\n *\r\n * @param {GalleryInterfaces.Review} review - Review to be created for the extension\r\n * @param {string} pubName - Name of the publisher who published the extension\r\n * @param {string} extName - Name of the extension\r\n */\r\n createReview(review, pubName, extName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n pubName: pubName,\r\n extName: extName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"e6e85b9d-aa70-40e6-aa28-d0fbf40b91a3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, review, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Review, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a review\r\n *\r\n * @param {string} pubName - Name of the publisher who published the extension\r\n * @param {string} extName - Name of the extension\r\n * @param {number} reviewId - Id of the review which needs to be updated\r\n */\r\n deleteReview(pubName, extName, reviewId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n pubName: pubName,\r\n extName: extName,\r\n reviewId: reviewId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"e6e85b9d-aa70-40e6-aa28-d0fbf40b91a3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates or Flags a review\r\n *\r\n * @param {GalleryInterfaces.ReviewPatch} reviewPatch - ReviewPatch object which contains the changes to be applied to the review\r\n * @param {string} pubName - Name of the publisher who published the extension\r\n * @param {string} extName - Name of the extension\r\n * @param {number} reviewId - Id of the review which needs to be updated\r\n */\r\n updateReview(reviewPatch, pubName, extName, reviewId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n pubName: pubName,\r\n extName: extName,\r\n reviewId: reviewId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"e6e85b9d-aa70-40e6-aa28-d0fbf40b91a3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, reviewPatch, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ReviewPatch, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionCategory} category\r\n */\r\n createCategory(category) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"476531a3-7024-4516-a76a-ed64d3008ad6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, category, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all setting entries for the given user/all-users scope\r\n *\r\n * @param {string} userScope - User-Scope at which to get the value. Should be \"me\" for the current user or \"host\" for all users.\r\n * @param {string} key - Optional key under which to filter all the entries\r\n */\r\n getGalleryUserSettings(userScope, key) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n userScope: userScope,\r\n key: key\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"9b75ece3-7960-401c-848b-148ac01ca350\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Set all setting entries for the given user/all-users scope\r\n *\r\n * @param {{ [key: string] : any; }} entries - A key-value pair of all settings that need to be set\r\n * @param {string} userScope - User-Scope at which to get the value. Should be \"me\" for the current user or \"host\" for all users.\r\n */\r\n setGalleryUserSettings(entries, userScope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n userScope: userScope\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"9b75ece3-7960-401c-848b-148ac01ca350\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, entries, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} keyType\r\n * @param {number} expireCurrentSeconds\r\n */\r\n generateKey(keyType, expireCurrentSeconds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n keyType: keyType\r\n };\r\n let queryValues = {\r\n expireCurrentSeconds: expireCurrentSeconds,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"92ed5cf4-c38b-465a-9059-2f2fb7c624b5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} keyType\r\n */\r\n getSigningKey(keyType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n keyType: keyType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"92ed5cf4-c38b-465a-9059-2f2fb7c624b5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionStatisticUpdate} extensionStatisticsUpdate\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n updateExtensionStatistics(extensionStatisticsUpdate, publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"a0ea3204-11e9-422d-a9ca-45851cc41400\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, extensionStatisticsUpdate, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {number} days\r\n * @param {GalleryInterfaces.ExtensionStatsAggregateType} aggregate\r\n * @param {Date} afterDate\r\n */\r\n getExtensionDailyStats(publisherName, extensionName, days, aggregate, afterDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n days: days,\r\n aggregate: aggregate,\r\n afterDate: afterDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"ae06047e-51c5-4fb4-ab65-7be488544416\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDailyStats, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * This route/location id only supports HTTP POST anonymously, so that the page view daily stat can be incremented from Marketplace client. Trying to call GET on this route should result in an exception. Without this explicit implementation, calling GET on this public route invokes the above GET implementation GetExtensionDailyStats.\r\n *\r\n * @param {string} publisherName - Name of the publisher\r\n * @param {string} extensionName - Name of the extension\r\n * @param {string} version - Version of the extension\r\n */\r\n getExtensionDailyStatsAnonymous(publisherName, extensionName, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4fa7adb6-ca65-4075-a232-5f28323288ea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDailyStats, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Increments a daily statistic associated with the extension\r\n *\r\n * @param {string} publisherName - Name of the publisher\r\n * @param {string} extensionName - Name of the extension\r\n * @param {string} version - Version of the extension\r\n * @param {string} statType - Type of stat to increment\r\n */\r\n incrementExtensionDailyStat(publisherName, extensionName, version, statType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (statType == null) {\r\n throw new TypeError('statType can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n let queryValues = {\r\n statType: statType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4fa7adb6-ca65-4075-a232-5f28323288ea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n */\r\n getVerificationLog(publisherName, extensionName, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"c5523abe-b843-437f-875b-5833064efe4d\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nGalleryApi.RESOURCE_AREA_ID = \"69d21c00-f135-441b-b5ce-3626378e0819\";\r\nexports.GalleryApi = GalleryApi;\r\n","\"use strict\";\r\n/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst GalleryInterfaces = require(\"./interfaces/GalleryInterfaces\");\r\nclass GalleryCompatHttpClientBase extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, userAgent, options) {\r\n super(baseUrl, handlers, userAgent, options);\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionPackage} extensionPackage\r\n */\r\n createExtensionJson(extensionPackage) {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.1-preview.1\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, extensionPackage, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionPackage} extensionPackage\r\n * @param {string} extensionId\r\n */\r\n updateExtensionByIdJson(extensionPackage, extensionId) {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.1-preview.1\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, extensionPackage, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionPackage} extensionPackage\r\n * @param {string} publisherName\r\n */\r\n createExtensionWithPublisherJson(extensionPackage, publisherName) {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.1-preview.1\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, extensionPackage, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionPackage} extensionPackage\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n updateExtensionJson(extensionPackage, publisherName, extensionName) {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.1-preview.1\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, extensionPackage, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n }\r\n}\r\nexports.GalleryCompatHttpClientBase = GalleryCompatHttpClientBase;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst GitInterfaces = require(\"./interfaces/GitInterfaces\");\r\nclass GitApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Git-api', options);\r\n }\r\n /**\r\n * Create an annotated tag.\r\n *\r\n * @param {GitInterfaces.GitAnnotatedTag} tagObject - Object containing details of tag to be created.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID or name of the repository.\r\n */\r\n createAnnotatedTag(tagObject, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5e8a8081-3851-4626-b677-9891cc04102e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, tagObject, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitAnnotatedTag, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get an annotated tag.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {string} objectId - ObjectId (Sha1Id) of tag to get.\r\n */\r\n getAnnotatedTag(project, repositoryId, objectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n objectId: objectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5e8a8081-3851-4626-b677-9891cc04102e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitAnnotatedTag, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single blob.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} sha1 - SHA1 hash of the file. You can get the SHA1 of a file using the \"Git/Items/Get Item\" endpoint.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} download - If true, prompt for a download rather than rendering in a browser. Note: this value defaults to true if $format is zip\r\n * @param {string} fileName - Provide a fileName to use for a download.\r\n * @param {boolean} resolveLfs - If true, try to resolve a blob to its LFS contents, if it's an LFS pointer file. Only compatible with octet-stream Accept headers or $format types\r\n */\r\n getBlob(repositoryId, sha1, project, download, fileName, resolveLfs) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n sha1: sha1\r\n };\r\n let queryValues = {\r\n download: download,\r\n fileName: fileName,\r\n resolveLfs: resolveLfs,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"7b28e929-2c99-405d-9c5c-6167a06e6816\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single blob.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} sha1 - SHA1 hash of the file. You can get the SHA1 of a file using the \"Git/Items/Get Item\" endpoint.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} download - If true, prompt for a download rather than rendering in a browser. Note: this value defaults to true if $format is zip\r\n * @param {string} fileName - Provide a fileName to use for a download.\r\n * @param {boolean} resolveLfs - If true, try to resolve a blob to its LFS contents, if it's an LFS pointer file. Only compatible with octet-stream Accept headers or $format types\r\n */\r\n getBlobContent(repositoryId, sha1, project, download, fileName, resolveLfs) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n sha1: sha1\r\n };\r\n let queryValues = {\r\n download: download,\r\n fileName: fileName,\r\n resolveLfs: resolveLfs,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"7b28e929-2c99-405d-9c5c-6167a06e6816\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets one or more blobs in a zip file download.\r\n *\r\n * @param {string[]} blobIds - Blob IDs (SHA1 hashes) to be returned in the zip file.\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} filename\r\n */\r\n getBlobsZip(blobIds, repositoryId, project, filename) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n filename: filename,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"7b28e929-2c99-405d-9c5c-6167a06e6816\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single blob.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} sha1 - SHA1 hash of the file. You can get the SHA1 of a file using the \"Git/Items/Get Item\" endpoint.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} download - If true, prompt for a download rather than rendering in a browser. Note: this value defaults to true if $format is zip\r\n * @param {string} fileName - Provide a fileName to use for a download.\r\n * @param {boolean} resolveLfs - If true, try to resolve a blob to its LFS contents, if it's an LFS pointer file. Only compatible with octet-stream Accept headers or $format types\r\n */\r\n getBlobZip(repositoryId, sha1, project, download, fileName, resolveLfs) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n sha1: sha1\r\n };\r\n let queryValues = {\r\n download: download,\r\n fileName: fileName,\r\n resolveLfs: resolveLfs,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"7b28e929-2c99-405d-9c5c-6167a06e6816\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve statistics about a single branch.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} name - Name of the branch.\r\n * @param {string} project - Project ID or project name\r\n * @param {GitInterfaces.GitVersionDescriptor} baseVersionDescriptor - Identifies the commit or branch to use as the base.\r\n */\r\n getBranch(repositoryId, name, project, baseVersionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (name == null) {\r\n throw new TypeError('name can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n name: name,\r\n baseVersionDescriptor: baseVersionDescriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d5b216de-d8d5-4d32-ae76-51df755b16d3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitBranchStats, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve statistics about all branches within a repository.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {GitInterfaces.GitVersionDescriptor} baseVersionDescriptor - Identifies the commit or branch to use as the base.\r\n */\r\n getBranches(repositoryId, project, baseVersionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n baseVersionDescriptor: baseVersionDescriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d5b216de-d8d5-4d32-ae76-51df755b16d3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitBranchStats, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GitInterfaces.GitQueryBranchStatsCriteria} searchCriteria\r\n * @param {string} repositoryId\r\n * @param {string} project - Project ID or project name\r\n */\r\n getBranchStatsBatch(searchCriteria, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d5b216de-d8d5-4d32-ae76-51df755b16d3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, searchCriteria, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitBranchStats, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve changes for a particular commit.\r\n *\r\n * @param {string} commitId - The id of the commit.\r\n * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - The maximum number of changes to return.\r\n * @param {number} skip - The number of changes to skip.\r\n */\r\n getChanges(commitId, repositoryId, project, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n commitId: commitId,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n top: top,\r\n skip: skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5bf884f5-3e07-42e9-afb8-1b872267bf16\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitChanges, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve one conflict for a cherry pick by ID\r\n *\r\n * @param {string} repositoryId\r\n * @param {number} cherryPickId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n getCherryPickConflict(repositoryId, cherryPickId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n cherryPickId: cherryPickId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1fe5aab2-d4c0-4b2f-a030-f3831e7aca26\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all conflicts for a cherry pick\r\n *\r\n * @param {string} repositoryId\r\n * @param {number} cherryPickId\r\n * @param {string} project - Project ID or project name\r\n * @param {string} continuationToken\r\n * @param {number} top\r\n * @param {boolean} excludeResolved\r\n * @param {boolean} onlyResolved\r\n * @param {boolean} includeObsolete\r\n */\r\n getCherryPickConflicts(repositoryId, cherryPickId, project, continuationToken, top, excludeResolved, onlyResolved, includeObsolete) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n cherryPickId: cherryPickId\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n excludeResolved: excludeResolved,\r\n onlyResolved: onlyResolved,\r\n includeObsolete: includeObsolete,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1fe5aab2-d4c0-4b2f-a030-f3831e7aca26\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update merge conflict resolution\r\n *\r\n * @param {GitInterfaces.GitConflict} conflict\r\n * @param {string} repositoryId\r\n * @param {number} cherryPickId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateCherryPickConflict(conflict, repositoryId, cherryPickId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n cherryPickId: cherryPickId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1fe5aab2-d4c0-4b2f-a030-f3831e7aca26\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflict, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update multiple merge conflict resolutions\r\n *\r\n * @param {GitInterfaces.GitConflict[]} conflictUpdates\r\n * @param {string} repositoryId\r\n * @param {number} cherryPickId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateCherryPickConflicts(conflictUpdates, repositoryId, cherryPickId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n cherryPickId: cherryPickId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1fe5aab2-d4c0-4b2f-a030-f3831e7aca26\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflictUpdates, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflictUpdateResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Given a commitId, returns a list of commits that are in the same cherry-pick family.\r\n *\r\n * @param {string} repositoryNameOrId\r\n * @param {string} commitId\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeLinks\r\n */\r\n getCherryPickRelationships(repositoryNameOrId, commitId, project, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId,\r\n commitId: commitId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"8af142a4-27c2-4168-9e82-46b8629aaa0d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Cherry pick a specific commit or commits that are associated to a pull request into a new branch.\r\n *\r\n * @param {GitInterfaces.GitAsyncRefOperationParameters} cherryPickToCreate\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID of the repository.\r\n */\r\n createCherryPick(cherryPickToCreate, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"033bad68-9a14-43d1-90e0-59cb8856fef6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, cherryPickToCreate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCherryPick, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve information about a cherry pick operation by cherry pick Id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} cherryPickId - ID of the cherry pick.\r\n * @param {string} repositoryId - ID of the repository.\r\n */\r\n getCherryPick(project, cherryPickId, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n cherryPickId: cherryPickId,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"033bad68-9a14-43d1-90e0-59cb8856fef6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCherryPick, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve information about a cherry pick operation for a specific branch. This operation is expensive due to the underlying object structure, so this API only looks at the 1000 most recent cherry pick operations.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID of the repository.\r\n * @param {string} refName - The GitAsyncRefOperationParameters generatedRefName used for the cherry pick operation.\r\n */\r\n getCherryPickForRefName(project, repositoryId, refName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (refName == null) {\r\n throw new TypeError('refName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n refName: refName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"033bad68-9a14-43d1-90e0-59cb8856fef6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCherryPick, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Find the closest common commit (the merge base) between base and target commits, and get the diff between either the base and target commits or common and target commits.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} diffCommonCommit - If true, diff between common and target commits. If false, diff between base and target commits.\r\n * @param {number} top - Maximum number of changes to return. Defaults to 100.\r\n * @param {number} skip - Number of changes to skip\r\n * @param {GitInterfaces.GitBaseVersionDescriptor} baseVersionDescriptor - Descriptor for base commit.\r\n * @param {GitInterfaces.GitTargetVersionDescriptor} targetVersionDescriptor - Descriptor for target commit.\r\n */\r\n getCommitDiffs(repositoryId, project, diffCommonCommit, top, skip, baseVersionDescriptor, targetVersionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n diffCommonCommit: diffCommonCommit,\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n if (baseVersionDescriptor) {\r\n queryValues.baseVersionType = baseVersionDescriptor.versionType;\r\n queryValues.baseVersion = baseVersionDescriptor.version;\r\n queryValues.baseVersionOptions = baseVersionDescriptor.versionOptions;\r\n }\r\n if (targetVersionDescriptor) {\r\n queryValues.targetVersionType = targetVersionDescriptor.versionType;\r\n queryValues.targetVersion = targetVersionDescriptor.version;\r\n queryValues.targetVersionOptions = targetVersionDescriptor.versionOptions;\r\n }\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"615588d5-c0c7-4b88-88f8-e625306446e8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitDiffs, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a particular commit.\r\n *\r\n * @param {string} commitId - The id of the commit.\r\n * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} changeCount - The number of changes to include in the result.\r\n */\r\n getCommit(commitId, repositoryId, project, changeCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n commitId: commitId,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n changeCount: changeCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"c2570c3b-5b3f-41b8-98bf-5407bfde8d58\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommit, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve git commits for a project\r\n *\r\n * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified.\r\n * @param {GitInterfaces.GitQueryCommitsCriteria} searchCriteria\r\n * @param {string} project - Project ID or project name\r\n * @param {number} skip\r\n * @param {number} top\r\n */\r\n getCommits(repositoryId, searchCriteria, project, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (searchCriteria == null) {\r\n throw new TypeError('searchCriteria can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n searchCriteria: searchCriteria,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"c2570c3b-5b3f-41b8-98bf-5407bfde8d58\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a list of commits associated with a particular push.\r\n *\r\n * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified.\r\n * @param {number} pushId - The id of the push.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - The maximum number of commits to return (\"get the top x commits\").\r\n * @param {number} skip - The number of commits to skip.\r\n * @param {boolean} includeLinks - Set to false to avoid including REST Url links for resources. Defaults to true.\r\n */\r\n getPushCommits(repositoryId, pushId, project, top, skip, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (pushId == null) {\r\n throw new TypeError('pushId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n pushId: pushId,\r\n top: top,\r\n skip: skip,\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"c2570c3b-5b3f-41b8-98bf-5407bfde8d58\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve git commits for a project matching the search criteria\r\n *\r\n * @param {GitInterfaces.GitQueryCommitsCriteria} searchCriteria - Search options\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} skip - Number of commits to skip.\r\n * @param {number} top - Maximum number of commits to return.\r\n * @param {boolean} includeStatuses - True to include additional commit status information.\r\n */\r\n getCommitsBatch(searchCriteria, repositoryId, project, skip, top, includeStatuses) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n '$skip': skip,\r\n '$top': top,\r\n includeStatuses: includeStatuses,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"6400dfb2-0bcb-462b-b992-5a57f8f1416c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, searchCriteria, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve deleted git repositories.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getDeletedRepositories(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"2b6869c4-cb25-42b5-b7a3-0d3e6be0a11a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitDeletedRepository, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the file diffs for each of the specified files\r\n *\r\n * @param {GitInterfaces.FileDiffsCriteria} fileDiffsCriteria - List of file parameters objects\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The name or ID of the repository\r\n */\r\n getFileDiffs(fileDiffsCriteria, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"c4c5a7e6-e9f3-4730-a92b-84baacff694b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, fileDiffsCriteria, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.FileDiff, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all forks of a repository in the collection.\r\n *\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {string} collectionId - Team project collection ID.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeLinks - True to include links.\r\n */\r\n getForks(repositoryNameOrId, collectionId, project, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId,\r\n collectionId: collectionId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"158c0340-bf6f-489c-9625-d572a1480d57\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepositoryRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Request that another repository's refs be fetched into this one. It syncs two existing forks. To create a fork, please see the repositories endpoint\r\n *\r\n * @param {GitInterfaces.GitForkSyncRequestParameters} syncParams - Source repository and ref mapping.\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeLinks - True to include links\r\n */\r\n createForkSyncRequest(syncParams, repositoryNameOrId, project, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1703f858-b9d1-46af-ab62-483e9e1055b5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, syncParams, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitForkSyncRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a specific fork sync operation's details.\r\n *\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {number} forkSyncOperationId - OperationId of the sync request.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeLinks - True to include links.\r\n */\r\n getForkSyncRequest(repositoryNameOrId, forkSyncOperationId, project, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId,\r\n forkSyncOperationId: forkSyncOperationId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1703f858-b9d1-46af-ab62-483e9e1055b5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitForkSyncRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all requested fork sync operations on this repository.\r\n *\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeAbandoned - True to include abandoned requests.\r\n * @param {boolean} includeLinks - True to include links.\r\n */\r\n getForkSyncRequests(repositoryNameOrId, project, includeAbandoned, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId\r\n };\r\n let queryValues = {\r\n includeAbandoned: includeAbandoned,\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1703f858-b9d1-46af-ab62-483e9e1055b5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitForkSyncRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create an import request.\r\n *\r\n * @param {GitInterfaces.GitImportRequest} importRequest - The import request to create.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n */\r\n createImportRequest(importRequest, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"01828ddc-3600-4a41-8633-99b3a73a0eb3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, importRequest, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a particular import request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {number} importRequestId - The unique identifier for the import request.\r\n */\r\n getImportRequest(project, repositoryId, importRequestId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n importRequestId: importRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"01828ddc-3600-4a41-8633-99b3a73a0eb3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve import requests for a repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {boolean} includeAbandoned - True to include abandoned import requests in the results.\r\n */\r\n queryImportRequests(project, repositoryId, includeAbandoned) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n includeAbandoned: includeAbandoned,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"01828ddc-3600-4a41-8633-99b3a73a0eb3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retry or abandon a failed import request.\r\n *\r\n * @param {GitInterfaces.GitImportRequest} importRequestToUpdate - The updated version of the import request. Currently, the only change allowed is setting the Status to Queued or Abandoned.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {number} importRequestId - The unique identifier for the import request to update.\r\n */\r\n updateImportRequest(importRequestToUpdate, project, repositoryId, importRequestId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n importRequestId: importRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"01828ddc-3600-4a41-8633-99b3a73a0eb3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, importRequestToUpdate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} path - The item path.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - The path scope. The default is null.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion.\r\n * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false.\r\n * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false.\r\n * @param {boolean} download - Set to true to download the response as a file. Default is false.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false.\r\n * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false.\r\n */\r\n getItem(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n path: path,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeContentMetadata: includeContentMetadata,\r\n latestProcessedChange: latestProcessedChange,\r\n download: download,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n resolveLfs: resolveLfs,\r\n sanitize: sanitize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"fb93c0db-47ed-4a31-8c20-47552878fb44\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitItem, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} path - The item path.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - The path scope. The default is null.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion.\r\n * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false.\r\n * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false.\r\n * @param {boolean} download - Set to true to download the response as a file. Default is false.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false.\r\n * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false.\r\n */\r\n getItemContent(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n path: path,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeContentMetadata: includeContentMetadata,\r\n latestProcessedChange: latestProcessedChange,\r\n download: download,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n resolveLfs: resolveLfs,\r\n sanitize: sanitize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"fb93c0db-47ed-4a31-8c20-47552878fb44\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a collection of items. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - The path scope. The default is null.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion.\r\n * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false.\r\n * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false.\r\n * @param {boolean} download - Set to true to download the response as a file. Default is false.\r\n * @param {boolean} includeLinks - Set to true to include links to items. Default is false.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository.\r\n */\r\n getItems(repositoryId, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, includeLinks, versionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeContentMetadata: includeContentMetadata,\r\n latestProcessedChange: latestProcessedChange,\r\n download: download,\r\n includeLinks: includeLinks,\r\n versionDescriptor: versionDescriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"fb93c0db-47ed-4a31-8c20-47552878fb44\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} path - The item path.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - The path scope. The default is null.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion.\r\n * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false.\r\n * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false.\r\n * @param {boolean} download - Set to true to download the response as a file. Default is false.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false.\r\n * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false.\r\n */\r\n getItemText(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n path: path,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeContentMetadata: includeContentMetadata,\r\n latestProcessedChange: latestProcessedChange,\r\n download: download,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n resolveLfs: resolveLfs,\r\n sanitize: sanitize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"fb93c0db-47ed-4a31-8c20-47552878fb44\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} path - The item path.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - The path scope. The default is null.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion.\r\n * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false.\r\n * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false.\r\n * @param {boolean} download - Set to true to download the response as a file. Default is false.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false.\r\n * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false.\r\n */\r\n getItemZip(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n path: path,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeContentMetadata: includeContentMetadata,\r\n latestProcessedChange: latestProcessedChange,\r\n download: download,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n resolveLfs: resolveLfs,\r\n sanitize: sanitize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"fb93c0db-47ed-4a31-8c20-47552878fb44\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Post for retrieving a creating a batch out of a set of items in a repo / project given a list of paths or a long path\r\n *\r\n * @param {GitInterfaces.GitItemRequestData} requestData - Request data attributes: ItemDescriptors, IncludeContentMetadata, LatestProcessedChange, IncludeLinks. ItemDescriptors: Collection of items to fetch, including path, version, and recursion level. IncludeContentMetadata: Whether to include metadata for all items LatestProcessedChange: Whether to include shallow ref to commit that last changed each item. IncludeLinks: Whether to include the _links field on the shallow references.\r\n * @param {string} repositoryId - The name or ID of the repository\r\n * @param {string} project - Project ID or project name\r\n */\r\n getItemsBatch(requestData, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"630fd2e4-fb88-4f85-ad21-13f3fd1fbca9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, requestData, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Find the merge bases of two commits, optionally across forks. If otherRepositoryId is not specified, the merge bases will only be calculated within the context of the local repositoryNameOrId.\r\n *\r\n * @param {string} repositoryNameOrId - ID or name of the local repository.\r\n * @param {string} commitId - First commit, usually the tip of the target branch of the potential merge.\r\n * @param {string} otherCommitId - Other commit, usually the tip of the source branch of the potential merge.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} otherCollectionId - The collection ID where otherCommitId lives.\r\n * @param {string} otherRepositoryId - The repository ID where otherCommitId lives.\r\n */\r\n getMergeBases(repositoryNameOrId, commitId, otherCommitId, project, otherCollectionId, otherRepositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (otherCommitId == null) {\r\n throw new TypeError('otherCommitId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId,\r\n commitId: commitId\r\n };\r\n let queryValues = {\r\n otherCommitId: otherCommitId,\r\n otherCollectionId: otherCollectionId,\r\n otherRepositoryId: otherRepositoryId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"7cf2abb6-c964-4f7e-9872-f78c66e72e9c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Request a git merge operation. Currently we support merging only 2 commits.\r\n *\r\n * @param {GitInterfaces.GitMergeParameters} mergeParameters - Parents commitIds and merge commit messsage.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {boolean} includeLinks - True to include links\r\n */\r\n createMergeRequest(mergeParameters, project, repositoryNameOrId, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"985f7ae9-844f-4906-9897-7ef41516c0e2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, mergeParameters, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitMerge, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a specific merge operation's details.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {number} mergeOperationId - OperationId of the merge request.\r\n * @param {boolean} includeLinks - True to include links\r\n */\r\n getMergeRequest(project, repositoryNameOrId, mergeOperationId, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId,\r\n mergeOperationId: mergeOperationId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"985f7ae9-844f-4906-9897-7ef41516c0e2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitMerge, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Attach a new file to a pull request.\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} fileName - The name of the file.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createAttachment(customHeaders, contentStream, fileName, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fileName: fileName,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965d9361-878b-413b-a494-45d5b5fd8ab7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Attachment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a pull request attachment.\r\n *\r\n * @param {string} fileName - The name of the attachment to delete.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteAttachment(fileName, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fileName: fileName,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965d9361-878b-413b-a494-45d5b5fd8ab7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the file content of a pull request attachment.\r\n *\r\n * @param {string} fileName - The name of the attachment.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getAttachmentContent(fileName, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fileName: fileName,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965d9361-878b-413b-a494-45d5b5fd8ab7\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of files attached to a given pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getAttachments(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965d9361-878b-413b-a494-45d5b5fd8ab7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Attachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the file content of a pull request attachment.\r\n *\r\n * @param {string} fileName - The name of the attachment.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getAttachmentZip(fileName, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fileName: fileName,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965d9361-878b-413b-a494-45d5b5fd8ab7\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a like on a comment.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - The ID of the thread that contains the comment.\r\n * @param {number} commentId - The ID of the comment.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createLike(repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5f2e2851-1389-425b-a00b-fb2adb3ef31b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a like on a comment.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - The ID of the thread that contains the comment.\r\n * @param {number} commentId - The ID of the comment.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteLike(repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5f2e2851-1389-425b-a00b-fb2adb3ef31b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get likes for a comment.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - The ID of the thread that contains the comment.\r\n * @param {number} commentId - The ID of the comment.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getLikes(repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5f2e2851-1389-425b-a00b-fb2adb3ef31b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the commits for the specified iteration of a pull request.\r\n *\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the iteration from which to get the commits.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - Maximum number of commits to return. The maximum number of commits that can be returned per batch is 500.\r\n * @param {number} skip - Number of commits to skip.\r\n */\r\n getPullRequestIterationCommits(repositoryId, pullRequestId, iterationId, project, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n let queryValues = {\r\n top: top,\r\n skip: skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"e7ea0883-095f-4926-b5fb-f24691c26fb9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the commits for the specified pull request.\r\n *\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestCommits(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"52823034-34a8-4576-922c-8d8b77e9e4c4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve one conflict for a pull request by ID\r\n *\r\n * @param {string} repositoryId\r\n * @param {number} pullRequestId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestConflict(repositoryId, pullRequestId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d840fb74-bbef-42d3-b250-564604c054a4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all conflicts for a pull request\r\n *\r\n * @param {string} repositoryId - The repository of the Pull Request.\r\n * @param {number} pullRequestId - The pull request ID.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} skip - Conflicts to skip.\r\n * @param {number} top - Conflicts to return after skip.\r\n * @param {boolean} includeObsolete - Includes obsolete conflicts.\r\n * @param {boolean} excludeResolved - Excludes conflicts already resolved.\r\n * @param {boolean} onlyResolved - Returns only the conflicts that are resolved.\r\n */\r\n getPullRequestConflicts(repositoryId, pullRequestId, project, skip, top, includeObsolete, excludeResolved, onlyResolved) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n '$skip': skip,\r\n '$top': top,\r\n includeObsolete: includeObsolete,\r\n excludeResolved: excludeResolved,\r\n onlyResolved: onlyResolved,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d840fb74-bbef-42d3-b250-564604c054a4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update merge conflict resolution\r\n *\r\n * @param {GitInterfaces.GitConflict} conflict\r\n * @param {string} repositoryId\r\n * @param {number} pullRequestId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestConflict(conflict, repositoryId, pullRequestId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d840fb74-bbef-42d3-b250-564604c054a4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflict, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update multiple merge conflict resolutions\r\n *\r\n * @param {GitInterfaces.GitConflict[]} conflictUpdates\r\n * @param {string} repositoryId\r\n * @param {number} pullRequestId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestConflicts(conflictUpdates, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d840fb74-bbef-42d3-b250-564604c054a4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflictUpdates, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflictUpdateResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve the changes made in a pull request between two iterations.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.
Iteration one is the head of the source branch at the time the pull request is created and subsequent iterations are created when there are pushes to the source branch. Allowed values are between 1 and the maximum iteration on this pull request.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - Optional. The number of changes to retrieve. The default value is 100 and the maximum value is 2000.\r\n * @param {number} skip - Optional. The number of changes to ignore. For example, to retrieve changes 101-150, set top 50 and skip to 100.\r\n * @param {number} compareTo - ID of the pull request iteration to compare against. The default value is zero which indicates the comparison is made against the common commit between the source and target branches\r\n */\r\n getPullRequestIterationChanges(repositoryId, pullRequestId, iterationId, project, top, skip, compareTo) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n '$compareTo': compareTo,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4216bdcf-b6b1-4d59-8b82-c34cc183fc8b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestIterationChanges, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the specified iteration for a pull request.\r\n *\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration to return.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestIteration(repositoryId, pullRequestId, iterationId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d43911ee-6958-46b0-a42b-8445b8a0d004\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestIteration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the list of iterations for the specified pull request.\r\n *\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeCommits - If true, include the commits associated with each iteration in the response.\r\n */\r\n getPullRequestIterations(repositoryId, pullRequestId, project, includeCommits) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n includeCommits: includeCommits,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d43911ee-6958-46b0-a42b-8445b8a0d004\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestIteration, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a pull request status on the iteration. This operation will have the same result as Create status on pull request with specified iteration ID in the request body.\r\n *\r\n * @param {GitInterfaces.GitPullRequestStatus} status - Pull request status to create.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPullRequestIterationStatus(status, repositoryId, pullRequestId, iterationId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"75cf11c5-979f-4038-a76e-058a06adf2bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, status, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete pull request iteration status.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.\r\n * @param {number} statusId - ID of the pull request status.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deletePullRequestIterationStatus(repositoryId, pullRequestId, iterationId, statusId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId,\r\n statusId: statusId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"75cf11c5-979f-4038-a76e-058a06adf2bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the specific pull request iteration status by ID. The status ID is unique within the pull request across all iterations.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.\r\n * @param {number} statusId - ID of the pull request status.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestIterationStatus(repositoryId, pullRequestId, iterationId, statusId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId,\r\n statusId: statusId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"75cf11c5-979f-4038-a76e-058a06adf2bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all the statuses associated with a pull request iteration.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestIterationStatuses(repositoryId, pullRequestId, iterationId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"75cf11c5-979f-4038-a76e-058a06adf2bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update pull request iteration statuses collection. The only supported operation type is `remove`.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} patchDocument - Operations to apply to the pull request statuses in JSON Patch format.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestIterationStatuses(customHeaders, patchDocument, repositoryId, pullRequestId, iterationId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"75cf11c5-979f-4038-a76e-058a06adf2bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, patchDocument, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a label for a specified pull request. The only required field is the name of the new label.\r\n *\r\n * @param {TfsCoreInterfaces.WebApiCreateTagRequestData} label - Label to assign to the pull request.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project ID or project name.\r\n */\r\n createPullRequestLabel(label, repositoryId, pullRequestId, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"f22387e3-984e-4c52-9c6d-fbb8f14c812d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, label, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a label from the set of those assigned to the pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} labelIdOrName - The name or ID of the label requested.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project ID or project name.\r\n */\r\n deletePullRequestLabels(repositoryId, pullRequestId, labelIdOrName, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n labelIdOrName: labelIdOrName\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"f22387e3-984e-4c52-9c6d-fbb8f14c812d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves a single label that has been assigned to a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} labelIdOrName - The name or ID of the label requested.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project ID or project name.\r\n */\r\n getPullRequestLabel(repositoryId, pullRequestId, labelIdOrName, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n labelIdOrName: labelIdOrName\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"f22387e3-984e-4c52-9c6d-fbb8f14c812d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all the labels assigned to a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project ID or project name.\r\n */\r\n getPullRequestLabels(repositoryId, pullRequestId, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"f22387e3-984e-4c52-9c6d-fbb8f14c812d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get external properties of the pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestProperties(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"48a52185-5b9e-4736-9dc1-bb1e2feac80b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create or update pull request external properties. The patch operation can be `add`, `replace` or `remove`. For `add` operation, the path can be empty. If the path is empty, the value must be a list of key value pairs. For `replace` operation, the path cannot be empty. If the path does not exist, the property will be added to the collection. For `remove` operation, the path cannot be empty. If the path does not exist, no action will be performed.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} patchDocument - Properties to add, replace or remove in JSON Patch format.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestProperties(customHeaders, patchDocument, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"48a52185-5b9e-4736-9dc1-bb1e2feac80b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, patchDocument, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * This API is used to find what pull requests are related to a given commit. It can be used to either find the pull request that created a particular merge commit or it can be used to find all pull requests that have ever merged a particular commit. The input is a list of queries which each contain a list of commits. For each commit that you search against, you will get back a dictionary of commit -> pull requests.\r\n *\r\n * @param {GitInterfaces.GitPullRequestQuery} queries - The list of queries to perform.\r\n * @param {string} repositoryId - ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestQuery(queries, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b3a6eebe-9cf0-49ea-b6cb-1a4c5f5007b0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, queries, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a reviewer to a pull request or cast a vote.\r\n *\r\n * @param {GitInterfaces.IdentityRefWithVote} reviewer - Reviewer's vote.
If the reviewer's ID is included here, it must match the reviewerID parameter.
Reviewers can set their own vote with this method. When adding other reviewers, vote must be set to zero.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} reviewerId - ID of the reviewer.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPullRequestReviewer(reviewer, repositoryId, pullRequestId, reviewerId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n reviewerId: reviewerId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, reviewer, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add reviewers to a pull request.\r\n *\r\n * @param {VSSInterfaces.IdentityRef[]} reviewers - Reviewers to add to the pull request.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPullRequestReviewers(reviewers, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, reviewers, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add an unmaterialized identity to the reviewers of a pull request.\r\n *\r\n * @param {GitInterfaces.IdentityRefWithVote} reviewer - Reviewer to add to the pull request.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createUnmaterializedPullRequestReviewer(reviewer, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, reviewer, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Remove a reviewer from a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} reviewerId - ID of the reviewer to remove.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deletePullRequestReviewer(repositoryId, pullRequestId, reviewerId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n reviewerId: reviewerId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve information about a particular reviewer on a pull request\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} reviewerId - ID of the reviewer.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestReviewer(repositoryId, pullRequestId, reviewerId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n reviewerId: reviewerId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve the reviewers for a pull request\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestReviewers(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Edit a reviewer entry. These fields are patchable: isFlagged, hasDeclined\r\n *\r\n * @param {GitInterfaces.IdentityRefWithVote} reviewer - Reviewer data.
If the reviewer's ID is included here, it must match the reviewerID parameter.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} reviewerId - ID of the reviewer.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestReviewer(reviewer, repositoryId, pullRequestId, reviewerId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n reviewerId: reviewerId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, reviewer, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Reset the votes of multiple reviewers on a pull request. NOTE: This endpoint only supports updating votes, but does not support updating required reviewers (use policy) or display names.\r\n *\r\n * @param {GitInterfaces.IdentityRefWithVote[]} patchVotes - IDs of the reviewers whose votes will be reset to zero\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestReviewers(patchVotes, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, patchVotes, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a pull request.\r\n *\r\n * @param {number} pullRequestId - The ID of the pull request to retrieve.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestById(pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"01a46dea-7d46-4d40-bc84-319e7c260d99\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all pull requests matching a specified criteria.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {GitInterfaces.GitPullRequestSearchCriteria} searchCriteria - Pull requests will be returned that match this search criteria.\r\n * @param {number} maxCommentLength - Not used.\r\n * @param {number} skip - The number of pull requests to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100.\r\n * @param {number} top - The number of pull requests to retrieve.\r\n */\r\n getPullRequestsByProject(project, searchCriteria, maxCommentLength, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (searchCriteria == null) {\r\n throw new TypeError('searchCriteria can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n searchCriteria: searchCriteria,\r\n maxCommentLength: maxCommentLength,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"a5d28130-9cd2-40fa-9f08-902e7daa9efb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a pull request.\r\n *\r\n * @param {GitInterfaces.GitPullRequest} gitPullRequestToCreate - The pull request to create.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} supportsIterations - If true, subsequent pushes to the pull request will be individually reviewable. Set this to false for large pull requests for performance reasons if this functionality is not needed.\r\n */\r\n createPullRequest(gitPullRequestToCreate, repositoryId, project, supportsIterations) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n supportsIterations: supportsIterations,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"9946fd70-0d40-406e-b686-b4744cbbcc37\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, gitPullRequestToCreate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - The ID of the pull request to retrieve.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} maxCommentLength - Not used.\r\n * @param {number} skip - Not used.\r\n * @param {number} top - Not used.\r\n * @param {boolean} includeCommits - If true, the pull request will be returned with the associated commits.\r\n * @param {boolean} includeWorkItemRefs - If true, the pull request will be returned with the associated work item references.\r\n */\r\n getPullRequest(repositoryId, pullRequestId, project, maxCommentLength, skip, top, includeCommits, includeWorkItemRefs) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n maxCommentLength: maxCommentLength,\r\n '$skip': skip,\r\n '$top': top,\r\n includeCommits: includeCommits,\r\n includeWorkItemRefs: includeWorkItemRefs,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"9946fd70-0d40-406e-b686-b4744cbbcc37\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all pull requests matching a specified criteria.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {GitInterfaces.GitPullRequestSearchCriteria} searchCriteria - Pull requests will be returned that match this search criteria.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} maxCommentLength - Not used.\r\n * @param {number} skip - The number of pull requests to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100.\r\n * @param {number} top - The number of pull requests to retrieve.\r\n */\r\n getPullRequests(repositoryId, searchCriteria, project, maxCommentLength, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (searchCriteria == null) {\r\n throw new TypeError('searchCriteria can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n searchCriteria: searchCriteria,\r\n maxCommentLength: maxCommentLength,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"9946fd70-0d40-406e-b686-b4744cbbcc37\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a pull request\r\n *\r\n * @param {GitInterfaces.GitPullRequest} gitPullRequestToUpdate - The pull request content that should be updated.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request to update.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequest(gitPullRequestToUpdate, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"9946fd70-0d40-406e-b686-b4744cbbcc37\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, gitPullRequestToUpdate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Sends an e-mail notification about a specific pull request to a set of recipients\r\n *\r\n * @param {GitInterfaces.ShareNotificationContext} userMessage\r\n * @param {string} repositoryId - ID of the git repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n sharePullRequest(userMessage, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"696f3a82-47c9-487f-9117-b9d00972ca84\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, userMessage, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a pull request status.\r\n *\r\n * @param {GitInterfaces.GitPullRequestStatus} status - Pull request status to create.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPullRequestStatus(status, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, status, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete pull request status.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} statusId - ID of the pull request status.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deletePullRequestStatus(repositoryId, pullRequestId, statusId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n statusId: statusId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the specific pull request status by ID. The status ID is unique within the pull request across all iterations.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} statusId - ID of the pull request status.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestStatus(repositoryId, pullRequestId, statusId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n statusId: statusId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all the statuses associated with a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestStatuses(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update pull request statuses collection. The only supported operation type is `remove`.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} patchDocument - Operations to apply to the pull request statuses in JSON Patch format.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestStatuses(customHeaders, patchDocument, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, patchDocument, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a comment on a specific thread in a pull request (up to 500 comments can be created per thread).\r\n *\r\n * @param {GitInterfaces.Comment} comment - The comment to create. Comments can be up to 150,000 characters.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread that the desired comment is in.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createComment(comment, repositoryId, pullRequestId, threadId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, comment, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a comment associated with a specific thread in a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread that the desired comment is in.\r\n * @param {number} commentId - ID of the comment.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteComment(repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a comment associated with a specific thread in a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread that the desired comment is in.\r\n * @param {number} commentId - ID of the comment.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getComment(repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all comments associated with a specific thread in a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getComments(repositoryId, pullRequestId, threadId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a comment associated with a specific thread in a pull request.\r\n *\r\n * @param {GitInterfaces.Comment} comment - The comment content that should be updated. Comments can be up to 150,000 characters.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread that the desired comment is in.\r\n * @param {number} commentId - ID of the comment to update.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateComment(comment, repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, comment, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a thread in a pull request.\r\n *\r\n * @param {GitInterfaces.GitPullRequestCommentThread} commentThread - The thread to create. Thread must contain at least one comment.\r\n * @param {string} repositoryId - Repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createThread(commentThread, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"ab6e2e5d-a0b7-4153-b64a-a4efe0d49449\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, commentThread, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a thread in a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} iteration - If specified, thread position will be tracked using this iteration as the right side of the diff.\r\n * @param {number} baseIteration - If specified, thread position will be tracked using this iteration as the left side of the diff.\r\n */\r\n getPullRequestThread(repositoryId, pullRequestId, threadId, project, iteration, baseIteration) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId\r\n };\r\n let queryValues = {\r\n '$iteration': iteration,\r\n '$baseIteration': baseIteration,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"ab6e2e5d-a0b7-4153-b64a-a4efe0d49449\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all threads in a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} iteration - If specified, thread positions will be tracked using this iteration as the right side of the diff.\r\n * @param {number} baseIteration - If specified, thread positions will be tracked using this iteration as the left side of the diff.\r\n */\r\n getThreads(repositoryId, pullRequestId, project, iteration, baseIteration) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n '$iteration': iteration,\r\n '$baseIteration': baseIteration,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"ab6e2e5d-a0b7-4153-b64a-a4efe0d49449\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a thread in a pull request.\r\n *\r\n * @param {GitInterfaces.GitPullRequestCommentThread} commentThread - The thread content that should be updated.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread to update.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateThread(commentThread, repositoryId, pullRequestId, threadId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"ab6e2e5d-a0b7-4153-b64a-a4efe0d49449\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, commentThread, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a list of work items associated with a pull request.\r\n *\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestWorkItemRefs(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"0a637fcc-5370-4ce8-b0e8-98091f5f9482\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Push changes to the repository.\r\n *\r\n * @param {GitInterfaces.GitPush} push\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPush(push, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"git\", \"ea98d07b-3c87-4971-8ede-a613694ffb55\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, push, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPush, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves a particular push.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {number} pushId - ID of the push.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} includeCommits - The number of commits to include in the result.\r\n * @param {boolean} includeRefUpdates - If true, include the list of refs that were updated by the push.\r\n */\r\n getPush(repositoryId, pushId, project, includeCommits, includeRefUpdates) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pushId: pushId\r\n };\r\n let queryValues = {\r\n includeCommits: includeCommits,\r\n includeRefUpdates: includeRefUpdates,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"git\", \"ea98d07b-3c87-4971-8ede-a613694ffb55\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPush, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves pushes associated with the specified repository.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} skip - Number of pushes to skip.\r\n * @param {number} top - Number of pushes to return.\r\n * @param {GitInterfaces.GitPushSearchCriteria} searchCriteria - Search criteria attributes: fromDate, toDate, pusherId, refName, includeRefUpdates or includeLinks. fromDate: Start date to search from. toDate: End date to search to. pusherId: Identity of the person who submitted the push. refName: Branch name to consider. includeRefUpdates: If true, include the list of refs that were updated by the push. includeLinks: Whether to include the _links field on the shallow references.\r\n */\r\n getPushes(repositoryId, project, skip, top, searchCriteria) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n '$skip': skip,\r\n '$top': top,\r\n searchCriteria: searchCriteria,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"git\", \"ea98d07b-3c87-4971-8ede-a613694ffb55\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPush, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Destroy (hard delete) a soft-deleted Git repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The ID of the repository.\r\n */\r\n deleteRepositoryFromRecycleBin(project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"a663da97-81db-4eb3-8b83-287670f63073\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve soft-deleted git repositories from the recycle bin.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRecycleBinRepositories(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"a663da97-81db-4eb3-8b83-287670f63073\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitDeletedRepository, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Recover a soft-deleted Git repository. Recently deleted repositories go into a soft-delete state for a period of time before they are hard deleted and become unrecoverable.\r\n *\r\n * @param {GitInterfaces.GitRecycleBinRepositoryDetails} repositoryDetails\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The ID of the repository.\r\n */\r\n restoreRepositoryFromRecycleBin(repositoryDetails, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"a663da97-81db-4eb3-8b83-287670f63073\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, repositoryDetails, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Queries the provided repository for its refs and returns them.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} filter - [optional] A filter to apply to the refs (starts with).\r\n * @param {boolean} includeLinks - [optional] Specifies if referenceLinks should be included in the result. default is false.\r\n * @param {boolean} includeStatuses - [optional] Includes up to the first 1000 commit statuses for each ref. The default value is false.\r\n * @param {boolean} includeMyBranches - [optional] Includes only branches that the user owns, the branches the user favorites, and the default branch. The default value is false. Cannot be combined with the filter parameter.\r\n * @param {boolean} latestStatusesOnly - [optional] True to include only the tip commit status for each ref. This option requires `includeStatuses` to be true. The default value is false.\r\n * @param {boolean} peelTags - [optional] Annotated tags will populate the PeeledObjectId property. default is false.\r\n * @param {string} filterContains - [optional] A filter to apply to the refs (contains).\r\n */\r\n getRefs(repositoryId, project, filter, includeLinks, includeStatuses, includeMyBranches, latestStatusesOnly, peelTags, filterContains) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n filter: filter,\r\n includeLinks: includeLinks,\r\n includeStatuses: includeStatuses,\r\n includeMyBranches: includeMyBranches,\r\n latestStatusesOnly: latestStatusesOnly,\r\n peelTags: peelTags,\r\n filterContains: filterContains,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"2d874a60-a811-4f62-9c9f-963a6ea0a55b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Lock or Unlock a branch.\r\n *\r\n * @param {GitInterfaces.GitRefUpdate} newRefInfo - The ref update action (lock/unlock) to perform\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} filter - The name of the branch to lock/unlock\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - ID or name of the team project. Optional if specifying an ID for repository.\r\n */\r\n updateRef(newRefInfo, repositoryId, filter, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (filter == null) {\r\n throw new TypeError('filter can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n filter: filter,\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"2d874a60-a811-4f62-9c9f-963a6ea0a55b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, newRefInfo, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRef, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creating, updating, or deleting refs(branches).\r\n *\r\n * @param {GitInterfaces.GitRefUpdate[]} refUpdates - List of ref updates to attempt to perform\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - ID or name of the team project. Optional if specifying an ID for repository.\r\n */\r\n updateRefs(refUpdates, repositoryId, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"2d874a60-a811-4f62-9c9f-963a6ea0a55b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, refUpdates, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefUpdateResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a ref favorite\r\n *\r\n * @param {GitInterfaces.GitRefFavorite} favorite - The ref favorite to create.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createFavorite(favorite, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"876f70af-5792-485a-a1c7-d0a7b2f42bbb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, favorite, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefFavorite, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the refs favorite specified\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} favoriteId - The Id of the ref favorite to delete.\r\n */\r\n deleteRefFavorite(project, favoriteId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n favoriteId: favoriteId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"876f70af-5792-485a-a1c7-d0a7b2f42bbb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the refs favorite for a favorite Id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} favoriteId - The Id of the requested ref favorite.\r\n */\r\n getRefFavorite(project, favoriteId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n favoriteId: favoriteId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"876f70af-5792-485a-a1c7-d0a7b2f42bbb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefFavorite, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the refs favorites for a repo and an identity.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The id of the repository.\r\n * @param {string} identityId - The id of the identity whose favorites are to be retrieved. If null, the requesting identity is used.\r\n */\r\n getRefFavorites(project, repositoryId, identityId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n repositoryId: repositoryId,\r\n identityId: identityId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"876f70af-5792-485a-a1c7-d0a7b2f42bbb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefFavorite, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a git repository in a team project.\r\n *\r\n * @param {GitInterfaces.GitRepositoryCreateOptions} gitRepositoryToCreate - Specify the repo name, team project and/or parent repository. Team project information can be omitted from gitRepositoryToCreate if the request is project-scoped (i.e., includes project Id).\r\n * @param {string} project - Project ID or project name\r\n * @param {string} sourceRef - [optional] Specify the source refs to use while creating a fork repo\r\n */\r\n createRepository(gitRepositoryToCreate, project, sourceRef) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n sourceRef: sourceRef,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, gitRepositoryToCreate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a git repository\r\n *\r\n * @param {string} repositoryId - The ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteRepository(repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve git repositories.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeLinks - [optional] True to include reference links. The default value is false.\r\n * @param {boolean} includeAllUrls - [optional] True to include all remote URLs. The default value is false.\r\n * @param {boolean} includeHidden - [optional] True to include hidden repositories. The default value is false.\r\n */\r\n getRepositories(project, includeLinks, includeAllUrls, includeHidden) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n includeAllUrls: includeAllUrls,\r\n includeHidden: includeHidden,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a git repository.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRepository(repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a git repository.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {boolean} includeParent - True to include parent repository. Only available in authenticated calls.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRepositoryWithParent(repositoryId, includeParent, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (includeParent == null) {\r\n throw new TypeError('includeParent can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n includeParent: includeParent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the Git repository with either a new repo name or a new default branch.\r\n *\r\n * @param {GitInterfaces.GitRepository} newRepositoryInfo - Specify a new repo name or a new default branch of the repository\r\n * @param {string} repositoryId - The ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateRepository(newRepositoryInfo, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, newRepositoryInfo, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve one conflict for a revert by ID\r\n *\r\n * @param {string} repositoryId\r\n * @param {number} revertId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRevertConflict(repositoryId, revertId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n revertId: revertId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"10d7ae6d-1050-446d-852a-bd5d99f834bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all conflicts for a revert\r\n *\r\n * @param {string} repositoryId\r\n * @param {number} revertId\r\n * @param {string} project - Project ID or project name\r\n * @param {string} continuationToken\r\n * @param {number} top\r\n * @param {boolean} excludeResolved\r\n * @param {boolean} onlyResolved\r\n * @param {boolean} includeObsolete\r\n */\r\n getRevertConflicts(repositoryId, revertId, project, continuationToken, top, excludeResolved, onlyResolved, includeObsolete) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n revertId: revertId\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n excludeResolved: excludeResolved,\r\n onlyResolved: onlyResolved,\r\n includeObsolete: includeObsolete,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"10d7ae6d-1050-446d-852a-bd5d99f834bf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update merge conflict resolution\r\n *\r\n * @param {GitInterfaces.GitConflict} conflict\r\n * @param {string} repositoryId\r\n * @param {number} revertId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateRevertConflict(conflict, repositoryId, revertId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n revertId: revertId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"10d7ae6d-1050-446d-852a-bd5d99f834bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflict, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update multiple merge conflict resolutions\r\n *\r\n * @param {GitInterfaces.GitConflict[]} conflictUpdates\r\n * @param {string} repositoryId\r\n * @param {number} revertId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateRevertConflicts(conflictUpdates, repositoryId, revertId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n revertId: revertId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"10d7ae6d-1050-446d-852a-bd5d99f834bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflictUpdates, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflictUpdateResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Starts the operation to create a new branch which reverts changes introduced by either a specific commit or commits that are associated to a pull request.\r\n *\r\n * @param {GitInterfaces.GitAsyncRefOperationParameters} revertToCreate\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID of the repository.\r\n */\r\n createRevert(revertToCreate, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"bc866058-5449-4715-9cf1-a510b6ff193c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, revertToCreate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRevert, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve information about a revert operation by revert Id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} revertId - ID of the revert operation.\r\n * @param {string} repositoryId - ID of the repository.\r\n */\r\n getRevert(project, revertId, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n revertId: revertId,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"bc866058-5449-4715-9cf1-a510b6ff193c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRevert, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve information about a revert operation for a specific branch.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID of the repository.\r\n * @param {string} refName - The GitAsyncRefOperationParameters generatedRefName used for the revert operation.\r\n */\r\n getRevertForRefName(project, repositoryId, refName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (refName == null) {\r\n throw new TypeError('refName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n refName: refName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"bc866058-5449-4715-9cf1-a510b6ff193c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRevert, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create Git commit status.\r\n *\r\n * @param {GitInterfaces.GitStatus} gitCommitStatusToCreate - Git commit status object to create.\r\n * @param {string} commitId - ID of the Git commit.\r\n * @param {string} repositoryId - ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createCommitStatus(gitCommitStatusToCreate, commitId, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n commitId: commitId,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"428dd4fb-fda5-4722-af02-9313b80305da\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, gitCommitStatusToCreate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitStatus, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get statuses associated with the Git commit.\r\n *\r\n * @param {string} commitId - ID of the Git commit.\r\n * @param {string} repositoryId - ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - Optional. The number of statuses to retrieve. Default is 1000.\r\n * @param {number} skip - Optional. The number of statuses to ignore. Default is 0. For example, to retrieve results 101-150, set top to 50 and skip to 100.\r\n * @param {boolean} latestOnly - The flag indicates whether to get only latest statuses grouped by `Context.Name` and `Context.Genre`.\r\n */\r\n getStatuses(commitId, repositoryId, project, top, skip, latestOnly) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n commitId: commitId,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n top: top,\r\n skip: skip,\r\n latestOnly: latestOnly,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"428dd4fb-fda5-4722-af02-9313b80305da\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitStatus, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a pull request suggestion for a particular repository or team project.\r\n *\r\n * @param {string} repositoryId - ID of the git repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getSuggestions(repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"9393b4fb-4445-4919-972b-9ad16f442d83\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * The Tree endpoint returns the collection of objects underneath the specified tree. Trees are folders in a Git repository.\r\n *\r\n * @param {string} repositoryId - Repository Id.\r\n * @param {string} sha1 - SHA1 hash of the tree object.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project Id.\r\n * @param {boolean} recursive - Search recursively. Include trees underneath this tree. Default is false.\r\n * @param {string} fileName - Name to use if a .zip file is returned. Default is the object ID.\r\n */\r\n getTree(repositoryId, sha1, project, projectId, recursive, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n sha1: sha1\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n recursive: recursive,\r\n fileName: fileName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"729f6437-6f92-44ec-8bee-273a7111063c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitTreeRef, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * The Tree endpoint returns the collection of objects underneath the specified tree. Trees are folders in a Git repository.\r\n *\r\n * @param {string} repositoryId - Repository Id.\r\n * @param {string} sha1 - SHA1 hash of the tree object.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project Id.\r\n * @param {boolean} recursive - Search recursively. Include trees underneath this tree. Default is false.\r\n * @param {string} fileName - Name to use if a .zip file is returned. Default is the object ID.\r\n */\r\n getTreeZip(repositoryId, sha1, project, projectId, recursive, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n sha1: sha1\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n recursive: recursive,\r\n fileName: fileName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"729f6437-6f92-44ec-8bee-273a7111063c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nGitApi.RESOURCE_AREA_ID = \"4e080c62-fa21-4fbc-8fef-2a10a2b38049\";\r\nexports.GitApi = GitApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst LocationsInterfaces = require(\"./interfaces/LocationsInterfaces\");\r\nclass LocationsApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Locations-api', options);\r\n }\r\n /**\r\n * This was copied and adapted from TeamFoundationConnectionService.Connect()\r\n *\r\n * @param {VSSInterfaces.ConnectOptions} connectOptions\r\n * @param {number} lastChangeId - Obsolete 32-bit LastChangeId\r\n * @param {number} lastChangeId64 - Non-truncated 64-bit LastChangeId\r\n */\r\n getConnectionData(connectOptions, lastChangeId, lastChangeId64) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n connectOptions: connectOptions,\r\n lastChangeId: lastChangeId,\r\n lastChangeId64: lastChangeId64,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"00d9565f-ed9c-4a06-9a50-00e7896ccab4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, LocationsInterfaces.TypeInfo.ConnectionData, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} areaId\r\n * @param {string} enterpriseName\r\n * @param {string} organizationName\r\n */\r\n getResourceArea(areaId, enterpriseName, organizationName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n areaId: areaId\r\n };\r\n let queryValues = {\r\n enterpriseName: enterpriseName,\r\n organizationName: organizationName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"e81700f7-3be2-46de-8624-2eb35882fcaa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} areaId\r\n * @param {string} hostId\r\n */\r\n getResourceAreaByHost(areaId, hostId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (hostId == null) {\r\n throw new TypeError('hostId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n areaId: areaId\r\n };\r\n let queryValues = {\r\n hostId: hostId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"e81700f7-3be2-46de-8624-2eb35882fcaa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} enterpriseName\r\n * @param {string} organizationName\r\n */\r\n getResourceAreas(enterpriseName, organizationName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n enterpriseName: enterpriseName,\r\n organizationName: organizationName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"e81700f7-3be2-46de-8624-2eb35882fcaa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} hostId\r\n */\r\n getResourceAreasByHost(hostId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (hostId == null) {\r\n throw new TypeError('hostId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n hostId: hostId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"e81700f7-3be2-46de-8624-2eb35882fcaa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} serviceType\r\n * @param {string} identifier\r\n */\r\n deleteServiceDefinition(serviceType, identifier) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n serviceType: serviceType,\r\n identifier: identifier\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"d810a47d-f4f4-4a62-a03f-fa1860585c4c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Finds a given service definition.\r\n *\r\n * @param {string} serviceType\r\n * @param {string} identifier\r\n * @param {boolean} allowFaultIn - If true, we will attempt to fault in a host instance mapping if in SPS.\r\n * @param {boolean} previewFaultIn - If true, we will calculate and return a host instance mapping, but not persist it.\r\n */\r\n getServiceDefinition(serviceType, identifier, allowFaultIn, previewFaultIn) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n serviceType: serviceType,\r\n identifier: identifier\r\n };\r\n let queryValues = {\r\n allowFaultIn: allowFaultIn,\r\n previewFaultIn: previewFaultIn,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"d810a47d-f4f4-4a62-a03f-fa1860585c4c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, LocationsInterfaces.TypeInfo.ServiceDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} serviceType\r\n */\r\n getServiceDefinitions(serviceType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n serviceType: serviceType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"d810a47d-f4f4-4a62-a03f-fa1860585c4c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, LocationsInterfaces.TypeInfo.ServiceDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {VSSInterfaces.VssJsonCollectionWrapperV} serviceDefinitions\r\n */\r\n updateServiceDefinitions(serviceDefinitions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"d810a47d-f4f4-4a62-a03f-fa1860585c4c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, serviceDefinitions, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.LocationsApi = LocationsApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst NotificationInterfaces = require(\"./interfaces/NotificationInterfaces\");\r\nconst VSSInterfaces = require(\"./interfaces/common/VSSInterfaces\");\r\nclass NotificationApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Notification-api', options);\r\n }\r\n /**\r\n * @param {NotificationInterfaces.BatchNotificationOperation} operation\r\n */\r\n performBatchNotificationOperations(operation) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"8f3c6ab2-5bae-4537-b16e-f84e0955599e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, operation, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of diagnostic logs for this service.\r\n *\r\n * @param {string} source - ID specifying which type of logs to check diagnostics for.\r\n * @param {string} entryId - The ID of the specific log to query for.\r\n * @param {Date} startTime - Start time for the time range to query in.\r\n * @param {Date} endTime - End time for the time range to query in.\r\n */\r\n listLogs(source, entryId, startTime, endTime) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n source: source,\r\n entryId: entryId\r\n };\r\n let queryValues = {\r\n startTime: startTime,\r\n endTime: endTime,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"991842f3-eb16-4aea-ac81-81353ef2b75c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.INotificationDiagnosticLog, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the diagnostics settings for a subscription.\r\n *\r\n * @param {string} subscriptionId - The id of the notifications subscription.\r\n */\r\n getSubscriptionDiagnostics(subscriptionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"20f1929d-4be7-4c2e-a74e-d47640ff3418\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.SubscriptionDiagnostics, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the diagnostics settings for a subscription.\r\n *\r\n * @param {NotificationInterfaces.UpdateSubscripitonDiagnosticsParameters} updateParameters\r\n * @param {string} subscriptionId - The id of the notifications subscription.\r\n */\r\n updateSubscriptionDiagnostics(updateParameters, subscriptionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"20f1929d-4be7-4c2e-a74e-d47640ff3418\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.SubscriptionDiagnostics, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Publish an event. This request must be directed to the service \"extmgmt\".\r\n *\r\n * @param {VSSInterfaces.VssNotificationEvent} notificationEvent\r\n */\r\n publishEvent(notificationEvent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"14c57b7a-c0e6-4555-9f51-e067188fdd8e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, notificationEvent, options);\r\n let ret = this.formatResponse(res.result, VSSInterfaces.TypeInfo.VssNotificationEvent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Tranform a notification event.\r\n *\r\n * @param {NotificationInterfaces.EventTransformRequest} transformRequest - Object to be transformed.\r\n */\r\n transformEvent(transformRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"9463a800-1b44-450e-9083-f948ea174b45\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, transformRequest, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NotificationInterfaces.FieldValuesQuery} inputValuesQuery\r\n * @param {string} eventType\r\n */\r\n queryEventTypes(inputValuesQuery, eventType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n eventType: eventType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"b5bbdd21-c178-4398-b6db-0166d910028a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, inputValuesQuery, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationEventField, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a specific event type.\r\n *\r\n * @param {string} eventType - The ID of the event type.\r\n */\r\n getEventType(eventType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n eventType: eventType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"cc84fb5f-6247-4c7a-aeae-e5a3c3fddb21\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationEventType, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List available event types for this service. Optionally filter by only event types for the specified publisher.\r\n *\r\n * @param {string} publisherId - Limit to event types for this publisher\r\n */\r\n listEventTypes(publisherId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n publisherId: publisherId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"cc84fb5f-6247-4c7a-aeae-e5a3c3fddb21\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationEventType, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} notificationId\r\n */\r\n getNotificationReasons(notificationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n notificationId: notificationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"19824fa9-1c76-40e6-9cce-cf0b9ca1cb60\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationReason, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} notificationIds\r\n */\r\n listNotificationReasons(notificationIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n notificationIds: notificationIds,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"19824fa9-1c76-40e6-9cce-cf0b9ca1cb60\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationReason, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getSettings() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"cbe076d8-2803-45ff-8d8d-44653686ea2a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationAdminSettings, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NotificationInterfaces.NotificationAdminSettingsUpdateParameters} updateParameters\r\n */\r\n updateSettings(updateParameters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"cbe076d8-2803-45ff-8d8d-44653686ea2a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationAdminSettings, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get delivery preferences of a notifications subscriber.\r\n *\r\n * @param {string} subscriberId - ID of the user or group.\r\n */\r\n getSubscriber(subscriberId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriberId: subscriberId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"4d5caff1-25ba-430b-b808-7a1f352cc197\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscriber, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update delivery preferences of a notifications subscriber.\r\n *\r\n * @param {NotificationInterfaces.NotificationSubscriberUpdateParameters} updateParameters\r\n * @param {string} subscriberId - ID of the user or group.\r\n */\r\n updateSubscriber(updateParameters, subscriberId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriberId: subscriberId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"4d5caff1-25ba-430b-b808-7a1f352cc197\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscriber, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Query for subscriptions. A subscription is returned if it matches one or more of the specified conditions.\r\n *\r\n * @param {NotificationInterfaces.SubscriptionQuery} subscriptionQuery\r\n */\r\n querySubscriptions(subscriptionQuery) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"6864db85-08c0-4006-8e8e-cc1bebe31675\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, subscriptionQuery, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a new subscription.\r\n *\r\n * @param {NotificationInterfaces.NotificationSubscriptionCreateParameters} createParameters\r\n */\r\n createSubscription(createParameters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"70f911d6-abac-488c-85b3-a206bf57e165\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, createParameters, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a subscription.\r\n *\r\n * @param {string} subscriptionId\r\n */\r\n deleteSubscription(subscriptionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"70f911d6-abac-488c-85b3-a206bf57e165\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a notification subscription by its ID.\r\n *\r\n * @param {string} subscriptionId\r\n * @param {NotificationInterfaces.SubscriptionQueryFlags} queryFlags\r\n */\r\n getSubscription(subscriptionId, queryFlags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId\r\n };\r\n let queryValues = {\r\n queryFlags: queryFlags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"70f911d6-abac-488c-85b3-a206bf57e165\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of notification subscriptions, either by subscription IDs or by all subscriptions for a given user or group.\r\n *\r\n * @param {string} targetId - User or Group ID\r\n * @param {string[]} ids - List of subscription IDs\r\n * @param {NotificationInterfaces.SubscriptionQueryFlags} queryFlags\r\n */\r\n listSubscriptions(targetId, ids, queryFlags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n targetId: targetId,\r\n ids: ids && ids.join(\",\"),\r\n queryFlags: queryFlags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"70f911d6-abac-488c-85b3-a206bf57e165\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update an existing subscription. Depending on the type of subscription and permissions, the caller can update the description, filter settings, channel (delivery) settings and more.\r\n *\r\n * @param {NotificationInterfaces.NotificationSubscriptionUpdateParameters} updateParameters\r\n * @param {string} subscriptionId\r\n */\r\n updateSubscription(updateParameters, subscriptionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"70f911d6-abac-488c-85b3-a206bf57e165\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get available subscription templates.\r\n *\r\n */\r\n getSubscriptionTemplates() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"fa5d24ba-7484-4f3d-888d-4ec6b1974082\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscriptionTemplate, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the specified user's settings for the specified subscription. This API is typically used to opt in or out of a shared subscription. User settings can only be applied to shared subscriptions, like team subscriptions or default subscriptions.\r\n *\r\n * @param {NotificationInterfaces.SubscriptionUserSettings} userSettings\r\n * @param {string} subscriptionId\r\n * @param {string} userId - ID of the user\r\n */\r\n updateSubscriptionUserSettings(userSettings, subscriptionId, userId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId,\r\n userId: userId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"ed5a3dff-aeb5-41b1-b4f7-89e66e58b62e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, userSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.NotificationApi = NotificationApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst PolicyInterfaces = require(\"./interfaces/PolicyInterfaces\");\r\nclass PolicyApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Policy-api', options);\r\n }\r\n /**\r\n * Create a policy configuration of a given policy type.\r\n *\r\n * @param {PolicyInterfaces.PolicyConfiguration} configuration - The policy configuration to create.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId\r\n */\r\n createPolicyConfiguration(configuration, project, configurationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"dad91cbe-d183-45f8-9c6e-9c1164472121\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, configuration, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a policy configuration by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId - ID of the policy configuration to delete.\r\n */\r\n deletePolicyConfiguration(project, configurationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"dad91cbe-d183-45f8-9c6e-9c1164472121\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a policy configuration by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId - ID of the policy configuration\r\n */\r\n getPolicyConfiguration(project, configurationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"dad91cbe-d183-45f8-9c6e-9c1164472121\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of policy configurations in a project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scope - [Provided for legacy reasons] The scope on which a subset of policies is defined.\r\n * @param {string} policyType - Filter returned policies to only this type\r\n */\r\n getPolicyConfigurations(project, scope, policyType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n scope: scope,\r\n policyType: policyType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"dad91cbe-d183-45f8-9c6e-9c1164472121\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a policy configuration by its ID.\r\n *\r\n * @param {PolicyInterfaces.PolicyConfiguration} configuration - The policy configuration to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId - ID of the existing policy configuration to be updated.\r\n */\r\n updatePolicyConfiguration(configuration, project, configurationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"dad91cbe-d183-45f8-9c6e-9c1164472121\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, configuration, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the present evaluation state of a policy.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} evaluationId - ID of the policy evaluation to be retrieved.\r\n */\r\n getPolicyEvaluation(project, evaluationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n evaluationId: evaluationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"46aecb7a-5d2c-4647-897b-0209505a9fe4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyEvaluationRecord, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Requeue the policy evaluation.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} evaluationId - ID of the policy evaluation to be retrieved.\r\n */\r\n requeuePolicyEvaluation(project, evaluationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n evaluationId: evaluationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"46aecb7a-5d2c-4647-897b-0209505a9fe4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyEvaluationRecord, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves a list of all the policy evaluation statuses for a specific pull request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} artifactId - A string which uniquely identifies the target of a policy evaluation.\r\n * @param {boolean} includeNotApplicable - Some policies might determine that they do not apply to a specific pull request. Setting this parameter to true will return evaluation records even for policies which don't apply to this pull request.\r\n * @param {number} top - The number of policy evaluation records to retrieve.\r\n * @param {number} skip - The number of policy evaluation records to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100.\r\n */\r\n getPolicyEvaluations(project, artifactId, includeNotApplicable, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactId == null) {\r\n throw new TypeError('artifactId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n artifactId: artifactId,\r\n includeNotApplicable: includeNotApplicable,\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"c23ddff5-229c-4d04-a80b-0fdce9f360c8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyEvaluationRecord, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a specific revision of a given policy by ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId - The policy configuration ID.\r\n * @param {number} revisionId - The revision ID.\r\n */\r\n getPolicyConfigurationRevision(project, configurationId, revisionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId,\r\n revisionId: revisionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"fe1e68a2-60d3-43cb-855b-85e41ae97c95\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all revisions for a given policy.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId - The policy configuration ID.\r\n * @param {number} top - The number of revisions to retrieve.\r\n * @param {number} skip - The number of revisions to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100.\r\n */\r\n getPolicyConfigurationRevisions(project, configurationId, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"fe1e68a2-60d3-43cb-855b-85e41ae97c95\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a specific policy type by ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} typeId - The policy ID.\r\n */\r\n getPolicyType(project, typeId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n typeId: typeId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"44096322-2d3d-466a-bb30-d1b7de69f61f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all available policy types.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPolicyTypes(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"44096322-2d3d-466a-bb30-d1b7de69f61f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nPolicyApi.RESOURCE_AREA_ID = \"fb13a388-40dd-4a04-b530-013a739c72ef\";\r\nexports.PolicyApi = PolicyApi;\r\n","\"use strict\";\r\n/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst ProfileInterfaces = require(\"./interfaces/ProfileInterfaces\");\r\nclass ProfileApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Profile-api', options);\r\n }\r\n /**\r\n * @param {string} id\r\n * @param {string} descriptor\r\n */\r\n deleteProfileAttribute(id, descriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n descriptor: descriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.2\", \"Profile\", \"1392b6ac-d511-492e-af5b-2263e5545a5d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n * @param {string} descriptor\r\n */\r\n getProfileAttribute(id, descriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n descriptor: descriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.2\", \"Profile\", \"1392b6ac-d511-492e-af5b-2263e5545a5d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.ProfileAttribute, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n * @param {string} partition\r\n * @param {string} modifiedSince\r\n * @param {string} modifiedAfterRevision\r\n * @param {boolean} withCoreAttributes\r\n * @param {string} coreAttributes\r\n */\r\n getProfileAttributes(id, partition, modifiedSince, modifiedAfterRevision, withCoreAttributes, coreAttributes) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n partition: partition,\r\n modifiedSince: modifiedSince,\r\n modifiedAfterRevision: modifiedAfterRevision,\r\n withCoreAttributes: withCoreAttributes,\r\n coreAttributes: coreAttributes,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.2\", \"Profile\", \"1392b6ac-d511-492e-af5b-2263e5545a5d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.ProfileAttribute, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} container\r\n * @param {string} id\r\n * @param {string} descriptor\r\n */\r\n setProfileAttribute(container, id, descriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n descriptor: descriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.2\", \"Profile\", \"1392b6ac-d511-492e-af5b-2263e5545a5d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, container, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {VSSInterfaces.VssJsonCollectionWrapperV[]>} attributesCollection\r\n * @param {string} id\r\n */\r\n setProfileAttributes(attributesCollection, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.2\", \"Profile\", \"1392b6ac-d511-492e-af5b-2263e5545a5d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, attributesCollection, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n * @param {string} size\r\n * @param {string} format\r\n */\r\n getAvatar(id, size, format) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n size: size,\r\n format: format,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"67436615-b382-462a-b659-5367a492fb3c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Avatar, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} container\r\n * @param {string} id\r\n * @param {string} size\r\n * @param {string} format\r\n * @param {string} displayName\r\n */\r\n getAvatarPreview(container, id, size, format, displayName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n size: size,\r\n format: format,\r\n displayName: displayName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"67436615-b382-462a-b659-5367a492fb3c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, container, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Avatar, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n */\r\n resetAvatar(id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"67436615-b382-462a-b659-5367a492fb3c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} container\r\n * @param {string} id\r\n */\r\n setAvatar(container, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"67436615-b382-462a-b659-5367a492fb3c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, container, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Lookup up country/region based on provided IPv4, null if using the remote IPv4 address.\r\n *\r\n * @param {string} ipaddress - IPv4 address to be used for reverse lookup, null if using RemoteIPAddress in request context\r\n */\r\n getGeoRegion(ipaddress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n ipaddress: ipaddress,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"3bcda9c0-3078-48a5-a1e0-83bd05931ad0\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create profile\r\n *\r\n * @param {ProfileInterfaces.CreateProfileContext} createProfileContext - Context for profile creation\r\n * @param {boolean} autoCreate - Create profile automatically\r\n */\r\n createProfile(createProfileContext, autoCreate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n autoCreate: autoCreate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.3\", \"Profile\", \"f83735dc-483f-4238-a291-d45f6080a9af\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, createProfileContext, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n * @param {boolean} details\r\n * @param {boolean} withAttributes\r\n * @param {string} partition\r\n * @param {string} coreAttributes\r\n * @param {boolean} forceRefresh\r\n */\r\n getProfile(id, details, withAttributes, partition, coreAttributes, forceRefresh) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n details: details,\r\n withAttributes: withAttributes,\r\n partition: partition,\r\n coreAttributes: coreAttributes,\r\n forceRefresh: forceRefresh,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.3\", \"Profile\", \"f83735dc-483f-4238-a291-d45f6080a9af\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update profile\r\n *\r\n * @param {ProfileInterfaces.Profile} profile - Update profile\r\n * @param {string} id - Profile ID\r\n */\r\n updateProfile(profile, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.3\", \"Profile\", \"f83735dc-483f-4238-a291-d45f6080a9af\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, profile, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getRegions() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"92d8d1c9-26b8-4774-a929-d640a73da524\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getSupportedLcids() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"d5bd1aa6-c269-4bcd-ad32-75fa17475584\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {boolean} includeAvatar\r\n */\r\n getUserDefaults(includeAvatar) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n includeAvatar: includeAvatar,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"b583a356-1da7-4237-9f4c-1deb2edbc7e8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n */\r\n refreshUserDefaults(id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"b583a356-1da7-4237-9f4c-1deb2edbc7e8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.ProfileApi = ProfileApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst ProjectAnalysisInterfaces = require(\"./interfaces/ProjectAnalysisInterfaces\");\r\nclass ProjectAnalysisApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-ProjectAnalysis-api', options);\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n */\r\n getProjectLanguageAnalytics(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"projectanalysis\", \"5b02a779-1867-433f-90b7-d23ed5e33e57\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.ProjectLanguageAnalytics, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {Date} fromDate\r\n * @param {ProjectAnalysisInterfaces.AggregationType} aggregationType\r\n */\r\n getProjectActivityMetrics(project, fromDate, aggregationType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (fromDate == null) {\r\n throw new TypeError('fromDate can not be null or undefined');\r\n }\r\n if (aggregationType == null) {\r\n throw new TypeError('aggregationType can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fromDate: fromDate,\r\n aggregationType: aggregationType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"projectanalysis\", \"e40ae584-9ea6-4f06-a7c7-6284651b466b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.ProjectActivityMetrics, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves git activity metrics for repositories matching a specified criteria.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {Date} fromDate - Date from which, the trends are to be fetched.\r\n * @param {ProjectAnalysisInterfaces.AggregationType} aggregationType - Bucket size on which, trends are to be aggregated.\r\n * @param {number} skip - The number of repositories to ignore.\r\n * @param {number} top - The number of repositories for which activity metrics are to be retrieved.\r\n */\r\n getGitRepositoriesActivityMetrics(project, fromDate, aggregationType, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (fromDate == null) {\r\n throw new TypeError('fromDate can not be null or undefined');\r\n }\r\n if (aggregationType == null) {\r\n throw new TypeError('aggregationType can not be null or undefined');\r\n }\r\n if (skip == null) {\r\n throw new TypeError('skip can not be null or undefined');\r\n }\r\n if (top == null) {\r\n throw new TypeError('top can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fromDate: fromDate,\r\n aggregationType: aggregationType,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"projectanalysis\", \"df7fbbca-630a-40e3-8aa3-7a3faf66947e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.RepositoryActivityMetrics, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId\r\n * @param {Date} fromDate\r\n * @param {ProjectAnalysisInterfaces.AggregationType} aggregationType\r\n */\r\n getRepositoryActivityMetrics(project, repositoryId, fromDate, aggregationType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (fromDate == null) {\r\n throw new TypeError('fromDate can not be null or undefined');\r\n }\r\n if (aggregationType == null) {\r\n throw new TypeError('aggregationType can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n fromDate: fromDate,\r\n aggregationType: aggregationType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"projectanalysis\", \"df7fbbca-630a-40e3-8aa3-7a3faf66947e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.RepositoryActivityMetrics, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nProjectAnalysisApi.RESOURCE_AREA_ID = \"7658fa33-b1bf-4580-990f-fac5896773d3\";\r\nexports.ProjectAnalysisApi = ProjectAnalysisApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst ReleaseInterfaces = require(\"./interfaces/ReleaseInterfaces\");\r\nclass ReleaseApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Release-api', options);\r\n }\r\n /**\r\n * Returns the artifact details that automation agent requires\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n getAgentArtifactDefinitions(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"f2571c27-bf50-4938-b396-32d109ddef26\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.AgentArtifactDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of approvals\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} assignedToFilter - Approvals assigned to this user.\r\n * @param {ReleaseInterfaces.ApprovalStatus} statusFilter - Approvals with this status. Default is 'pending'.\r\n * @param {number[]} releaseIdsFilter - Approvals for release id(s) mentioned in the filter. Multiple releases can be mentioned by separating them with ',' e.g. releaseIdsFilter=1,2,3,4.\r\n * @param {ReleaseInterfaces.ApprovalType} typeFilter - Approval with this type.\r\n * @param {number} top - Number of approvals to get. Default is 50.\r\n * @param {number} continuationToken - Gets the approvals after the continuation token provided.\r\n * @param {ReleaseInterfaces.ReleaseQueryOrder} queryOrder - Gets the results in the defined order of created approvals. Default is 'descending'.\r\n * @param {boolean} includeMyGroupApprovals - 'true' to include my group approvals. Default is 'false'.\r\n */\r\n getApprovals(project, assignedToFilter, statusFilter, releaseIdsFilter, typeFilter, top, continuationToken, queryOrder, includeMyGroupApprovals) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n assignedToFilter: assignedToFilter,\r\n statusFilter: statusFilter,\r\n releaseIdsFilter: releaseIdsFilter && releaseIdsFilter.join(\",\"),\r\n typeFilter: typeFilter,\r\n top: top,\r\n continuationToken: continuationToken,\r\n queryOrder: queryOrder,\r\n includeMyGroupApprovals: includeMyGroupApprovals,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Release\", \"b47c6458-e73b-47cb-a770-4df1e8813a91\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get approval history.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} approvalStepId - Id of the approval.\r\n */\r\n getApprovalHistory(project, approvalStepId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n approvalStepId: approvalStepId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Release\", \"250c7158-852e-4130-a00f-a0cce9b72d05\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get an approval.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} approvalId - Id of the approval.\r\n * @param {boolean} includeHistory - 'true' to include history of the approval. Default is 'false'.\r\n */\r\n getApproval(project, approvalId, includeHistory) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n approvalId: approvalId\r\n };\r\n let queryValues = {\r\n includeHistory: includeHistory,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Release\", \"9328e074-59fb-465a-89d9-b09c82ee5109\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update status of an approval\r\n *\r\n * @param {ReleaseInterfaces.ReleaseApproval} approval - ReleaseApproval object having status, approver and comments.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} approvalId - Id of the approval.\r\n */\r\n updateReleaseApproval(approval, project, approvalId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n approvalId: approvalId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Release\", \"9328e074-59fb-465a-89d9-b09c82ee5109\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, approval, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ReleaseInterfaces.ReleaseApproval[]} approvals\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateReleaseApprovals(approvals, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Release\", \"c957584a-82aa-4131-8222-6d47f78bfa7a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, approvals, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a task attachment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of the release environment.\r\n * @param {number} attemptId - Attempt number of deployment.\r\n * @param {string} timelineId - Timeline Id of the task.\r\n * @param {string} recordId - Record Id of attachment.\r\n * @param {string} type - Type of the attachment.\r\n * @param {string} name - Name of the attachment.\r\n */\r\n getTaskAttachmentContent(project, releaseId, environmentId, attemptId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c4071f6d-3697-46ca-858e-8b10ff09e52f\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a release task attachment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of the release environment.\r\n * @param {number} attemptId - Attempt number of deployment.\r\n * @param {string} planId - Plan Id of the deploy phase.\r\n * @param {string} timelineId - Timeline Id of the task.\r\n * @param {string} recordId - Record Id of attachment.\r\n * @param {string} type - Type of the attachment.\r\n * @param {string} name - Name of the attachment.\r\n */\r\n getReleaseTaskAttachmentContent(project, releaseId, environmentId, attemptId, planId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"60b86efb-7b8c-4853-8f9f-aa142b77b479\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the task attachments.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of the release environment.\r\n * @param {number} attemptId - Attempt number of deployment.\r\n * @param {string} timelineId - Timeline Id of the task.\r\n * @param {string} type - Type of the attachment.\r\n */\r\n getTaskAttachments(project, releaseId, environmentId, attemptId, timelineId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n timelineId: timelineId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"214111ee-2415-4df2-8ed2-74417f7d61f9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTaskAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the release task attachments.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of the release environment.\r\n * @param {number} attemptId - Attempt number of deployment.\r\n * @param {string} planId - Plan Id of the deploy phase.\r\n * @param {string} type - Type of the attachment.\r\n */\r\n getReleaseTaskAttachments(project, releaseId, environmentId, attemptId, planId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n planId: planId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"a4d06688-0dfa-4895-82a5-f43ec9452306\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTaskAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} artifactType\r\n * @param {string} sourceId\r\n * @param {string} artifactVersionId\r\n * @param {string} project - Project ID or project name\r\n */\r\n getAutoTriggerIssues(artifactType, sourceId, artifactVersionId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactType == null) {\r\n throw new TypeError('artifactType can not be null or undefined');\r\n }\r\n if (sourceId == null) {\r\n throw new TypeError('sourceId can not be null or undefined');\r\n }\r\n if (artifactVersionId == null) {\r\n throw new TypeError('artifactVersionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n artifactType: artifactType,\r\n sourceId: sourceId,\r\n artifactVersionId: artifactVersionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c1a68497-69da-40fb-9423-cab19cfeeca9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.AutoTriggerIssue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that indicates the status of the most recent deployment for an environment.\r\n *\r\n * @param {string} projectId - The ID of the Project.\r\n * @param {number} releaseDefinitionId - The ID of the Release Definition.\r\n * @param {number} environmentId - The ID of the Environment.\r\n * @param {string} branchName - The name of the branch.\r\n */\r\n getDeploymentBadge(projectId, releaseDefinitionId, environmentId, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n releaseDefinitionId: releaseDefinitionId,\r\n environmentId: environmentId,\r\n branchName: branchName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"1a60a35d-b8c9-45fb-bf67-da0829711147\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} baseReleaseId\r\n * @param {number} top\r\n * @param {string} artifactAlias\r\n */\r\n getReleaseChanges(project, releaseId, baseReleaseId, top, artifactAlias) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n baseReleaseId: baseReleaseId,\r\n '$top': top,\r\n artifactAlias: artifactAlias,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"8dcf9fe9-ca37-4113-8ee1-37928e98407c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Change, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId\r\n * @param {string[]} propertyFilters\r\n */\r\n getDefinitionEnvironments(project, taskGroupId, propertyFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n taskGroupId: taskGroupId,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"12b5d21a-f54c-430e-a8c1-7515d196890e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a release definition\r\n *\r\n * @param {ReleaseInterfaces.ReleaseDefinition} releaseDefinition - release definition object to create.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createReleaseDefinition(releaseDefinition, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, releaseDefinition, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a release definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the release definition.\r\n * @param {string} comment - Comment for deleting a release definition.\r\n * @param {boolean} forceDelete - 'true' to automatically cancel any in-progress release deployments and proceed with release definition deletion . Default is 'false'.\r\n */\r\n deleteReleaseDefinition(project, definitionId, comment, forceDelete) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n comment: comment,\r\n forceDelete: forceDelete,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a release definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the release definition.\r\n * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Release Definition will contain values for the specified property Ids (if they exist). If not set, properties will not be included.\r\n */\r\n getReleaseDefinition(project, definitionId, propertyFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get release definition of a given revision.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the release definition.\r\n * @param {number} revision - Revision number of the release definition.\r\n */\r\n getReleaseDefinitionRevision(project, definitionId, revision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (revision == null) {\r\n throw new TypeError('revision can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of release definitions.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} searchText - Get release definitions with names containing searchText.\r\n * @param {ReleaseInterfaces.ReleaseDefinitionExpands} expand - The properties that should be expanded in the list of Release definitions.\r\n * @param {string} artifactType - Release definitions with given artifactType will be returned. Values can be Build, Jenkins, GitHub, Nuget, Team Build (external), ExternalTFSBuild, Git, TFVC, ExternalTfsXamlBuild.\r\n * @param {string} artifactSourceId - Release definitions with given artifactSourceId will be returned. e.g. For build it would be {projectGuid}:{BuildDefinitionId}, for Jenkins it would be {JenkinsConnectionId}:{JenkinsDefinitionId}, for TfsOnPrem it would be {TfsOnPremConnectionId}:{ProjectName}:{TfsOnPremDefinitionId}. For third-party artifacts e.g. TeamCity, BitBucket you may refer 'uniqueSourceIdentifier' inside vss-extension.json at https://github.com/Microsoft/vsts-rm-extensions/blob/master/Extensions.\r\n * @param {number} top - Number of release definitions to get.\r\n * @param {string} continuationToken - Gets the release definitions after the continuation token provided.\r\n * @param {ReleaseInterfaces.ReleaseDefinitionQueryOrder} queryOrder - Gets the results in the defined order. Default is 'IdAscending'.\r\n * @param {string} path - Gets the release definitions under the specified path.\r\n * @param {boolean} isExactNameMatch - 'true'to gets the release definitions with exact match as specified in searchText. Default is 'false'.\r\n * @param {string[]} tagFilter - A comma-delimited list of tags. Only release definitions with these tags will be returned.\r\n * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Release Definitions will contain values for the specified property Ids (if they exist). If not set, properties will not be included. Note that this will not filter out any Release Definition from results irrespective of whether it has property set or not.\r\n * @param {string[]} definitionIdFilter - A comma-delimited list of release definitions to retrieve.\r\n * @param {boolean} isDeleted - 'true' to get release definitions that has been deleted. Default is 'false'\r\n * @param {boolean} searchTextContainsFolderName - 'true' to get the release definitions under the folder with name as specified in searchText. Default is 'false'.\r\n */\r\n getReleaseDefinitions(project, searchText, expand, artifactType, artifactSourceId, top, continuationToken, queryOrder, path, isExactNameMatch, tagFilter, propertyFilters, definitionIdFilter, isDeleted, searchTextContainsFolderName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n searchText: searchText,\r\n '$expand': expand,\r\n artifactType: artifactType,\r\n artifactSourceId: artifactSourceId,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n queryOrder: queryOrder,\r\n path: path,\r\n isExactNameMatch: isExactNameMatch,\r\n tagFilter: tagFilter && tagFilter.join(\",\"),\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n definitionIdFilter: definitionIdFilter && definitionIdFilter.join(\",\"),\r\n isDeleted: isDeleted,\r\n searchTextContainsFolderName: searchTextContainsFolderName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Undelete a release definition.\r\n *\r\n * @param {ReleaseInterfaces.ReleaseDefinitionUndeleteParameter} releaseDefinitionUndeleteParameter - Object for undelete release definition.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the release definition to be undeleted\r\n */\r\n undeleteReleaseDefinition(releaseDefinitionUndeleteParameter, project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, releaseDefinitionUndeleteParameter, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a release definition.\r\n *\r\n * @param {ReleaseInterfaces.ReleaseDefinition} releaseDefinition - Release definition object to update.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateReleaseDefinition(releaseDefinition, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, releaseDefinition, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId\r\n * @param {number} definitionEnvironmentId\r\n * @param {string} createdBy\r\n * @param {Date} minModifiedTime\r\n * @param {Date} maxModifiedTime\r\n * @param {ReleaseInterfaces.DeploymentStatus} deploymentStatus\r\n * @param {ReleaseInterfaces.DeploymentOperationStatus} operationStatus\r\n * @param {boolean} latestAttemptsOnly\r\n * @param {ReleaseInterfaces.ReleaseQueryOrder} queryOrder\r\n * @param {number} top\r\n * @param {number} continuationToken\r\n * @param {string} createdFor\r\n * @param {Date} minStartedTime\r\n * @param {Date} maxStartedTime\r\n * @param {string} sourceBranch\r\n */\r\n getDeployments(project, definitionId, definitionEnvironmentId, createdBy, minModifiedTime, maxModifiedTime, deploymentStatus, operationStatus, latestAttemptsOnly, queryOrder, top, continuationToken, createdFor, minStartedTime, maxStartedTime, sourceBranch) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n definitionId: definitionId,\r\n definitionEnvironmentId: definitionEnvironmentId,\r\n createdBy: createdBy,\r\n minModifiedTime: minModifiedTime,\r\n maxModifiedTime: maxModifiedTime,\r\n deploymentStatus: deploymentStatus,\r\n operationStatus: operationStatus,\r\n latestAttemptsOnly: latestAttemptsOnly,\r\n queryOrder: queryOrder,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n createdFor: createdFor,\r\n minStartedTime: minStartedTime,\r\n maxStartedTime: maxStartedTime,\r\n sourceBranch: sourceBranch,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"b005ef73-cddc-448e-9ba2-5193bf36b19f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Deployment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ReleaseInterfaces.DeploymentQueryParameters} queryParameters\r\n * @param {string} project - Project ID or project name\r\n */\r\n getDeploymentsForMultipleEnvironments(queryParameters, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"b005ef73-cddc-448e-9ba2-5193bf36b19f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, queryParameters, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Deployment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a release environment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of the release environment.\r\n * @param {ReleaseInterfaces.ReleaseEnvironmentExpands} expand - A property that should be expanded in the environment.\r\n */\r\n getReleaseEnvironment(project, releaseId, environmentId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"Release\", \"a7e426b1-03dc-48af-9dfe-c98bac612dcb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseEnvironment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the status of a release environment\r\n *\r\n * @param {ReleaseInterfaces.ReleaseEnvironmentUpdateMetadata} environmentUpdateData - Environment update meta data.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of release environment.\r\n */\r\n updateReleaseEnvironment(environmentUpdateData, project, releaseId, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"Release\", \"a7e426b1-03dc-48af-9dfe-c98bac612dcb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, environmentUpdateData, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseEnvironment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a definition environment template\r\n *\r\n * @param {ReleaseInterfaces.ReleaseDefinitionEnvironmentTemplate} template - Definition environment template to create\r\n * @param {string} project - Project ID or project name\r\n */\r\n createDefinitionEnvironmentTemplate(template, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"6b03b696-824e-4479-8eb2-6644a51aba89\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, template, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a definition environment template\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - Id of the definition environment template\r\n */\r\n deleteDefinitionEnvironmentTemplate(project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (templateId == null) {\r\n throw new TypeError('templateId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n templateId: templateId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"6b03b696-824e-4479-8eb2-6644a51aba89\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a definition environment template\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - Id of the definition environment template\r\n */\r\n getDefinitionEnvironmentTemplate(project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (templateId == null) {\r\n throw new TypeError('templateId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n templateId: templateId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"6b03b696-824e-4479-8eb2-6644a51aba89\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of definition environment templates\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} isDeleted - 'true' to get definition environment templates that have been deleted. Default is 'false'\r\n */\r\n listDefinitionEnvironmentTemplates(project, isDeleted) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n isDeleted: isDeleted,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"6b03b696-824e-4479-8eb2-6644a51aba89\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Undelete a release definition environment template.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - Id of the definition environment template to be undeleted\r\n */\r\n undeleteReleaseDefinitionEnvironmentTemplate(project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (templateId == null) {\r\n throw new TypeError('templateId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n templateId: templateId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"6b03b696-824e-4479-8eb2-6644a51aba89\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ReleaseInterfaces.FavoriteItem[]} favoriteItems\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scope\r\n * @param {string} identityId\r\n */\r\n createFavorites(favoriteItems, project, scope, identityId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n scope: scope\r\n };\r\n let queryValues = {\r\n identityId: identityId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"938f7222-9acb-48fe-b8a3-4eda04597171\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, favoriteItems, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scope\r\n * @param {string} identityId\r\n * @param {string} favoriteItemIds\r\n */\r\n deleteFavorites(project, scope, identityId, favoriteItemIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n scope: scope\r\n };\r\n let queryValues = {\r\n identityId: identityId,\r\n favoriteItemIds: favoriteItemIds,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"938f7222-9acb-48fe-b8a3-4eda04597171\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scope\r\n * @param {string} identityId\r\n */\r\n getFavorites(project, scope, identityId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n scope: scope\r\n };\r\n let queryValues = {\r\n identityId: identityId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"938f7222-9acb-48fe-b8a3-4eda04597171\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} flightName\r\n */\r\n getFlightAssignments(flightName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n flightName: flightName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"409d301f-3046-46f3-beb9-4357fbce0a8c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new folder.\r\n *\r\n * @param {ReleaseInterfaces.Folder} folder - folder.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - Path of the folder.\r\n */\r\n createFolder(folder, project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n path: path\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"f7ddf76d-ce0c-4d68-94ff-becaec5d9dea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, folder, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Folder, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a definition folder for given folder name and path and all it's existing definitions.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - Path of the folder to delete.\r\n */\r\n deleteFolder(project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n path: path\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"f7ddf76d-ce0c-4d68-94ff-becaec5d9dea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets folders.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - Path of the folder.\r\n * @param {ReleaseInterfaces.FolderPathQueryOrder} queryOrder - Gets the results in the defined order. Default is 'None'.\r\n */\r\n getFolders(project, path, queryOrder) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n path: path\r\n };\r\n let queryValues = {\r\n queryOrder: queryOrder,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"f7ddf76d-ce0c-4d68-94ff-becaec5d9dea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Folder, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing folder at given existing path.\r\n *\r\n * @param {ReleaseInterfaces.Folder} folder - folder.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - Path of the folder to update.\r\n */\r\n updateFolder(folder, project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n path: path\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"f7ddf76d-ce0c-4d68-94ff-becaec5d9dea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, folder, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Folder, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the gate for a deployment.\r\n *\r\n * @param {ReleaseInterfaces.GateUpdateMetadata} gateUpdateMetadata - Metadata to patch the Release Gates.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} gateStepId - Gate step Id.\r\n */\r\n updateGates(gateUpdateMetadata, project, gateStepId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n gateStepId: gateStepId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"2666a539-2001-4f80-bcc7-0379956749d4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, gateUpdateMetadata, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseGates, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n getReleaseHistory(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"23f461c8-629a-4144-a076-3054fa5f268a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseRevision, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {FormInputInterfaces.InputValuesQuery} query\r\n * @param {string} project - Project ID or project name\r\n */\r\n getInputValues(query, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"71dd499b-317d-45ea-9134-140ea1932b5e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} sourceId\r\n */\r\n getIssues(project, buildId, sourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n sourceId: sourceId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"cd42261a-f5c6-41c8-9259-f078989b9f25\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.AutoTriggerIssue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets gate logs\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of release environment.\r\n * @param {number} gateId - Id of the gate.\r\n * @param {number} taskId - ReleaseTask Id for the log.\r\n */\r\n getGateLog(project, releaseId, environmentId, gateId, taskId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n gateId: gateId,\r\n taskId: taskId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"dec7ca5a-7f7f-4797-8bf1-8efc0dc93b28\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get logs for a release Id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n */\r\n getLogs(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"c37fbab5-214b-48e4-a55b-cb6b4f6e4038\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets logs\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of release environment.\r\n * @param {number} taskId - ReleaseTask Id for the log.\r\n * @param {number} attemptId - Id of the attempt.\r\n */\r\n getLog(project, releaseId, environmentId, taskId, attemptId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n taskId: taskId\r\n };\r\n let queryValues = {\r\n attemptId: attemptId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"e71ba1ed-c0a4-4a28-a61f-2dd5f68cf3fd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the task log of a release as a plain text file.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of release environment.\r\n * @param {number} attemptId\r\n * @param {string} timelineId\r\n * @param {number} taskId - ReleaseTask Id for the log.\r\n * @param {number} startLine - Starting line number for logs\r\n * @param {number} endLine - Ending line number for logs\r\n */\r\n getTaskLog2(project, releaseId, environmentId, attemptId, timelineId, taskId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n timelineId: timelineId,\r\n taskId: taskId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"2577e6c3-6999-4400-bc69-fe1d837755fe\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the task log of a release as a plain text file.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of release environment.\r\n * @param {number} releaseDeployPhaseId - Release deploy phase Id.\r\n * @param {number} taskId - ReleaseTask Id for the log.\r\n * @param {number} startLine - Starting line number for logs\r\n * @param {number} endLine - Ending line number for logs\r\n */\r\n getTaskLog(project, releaseId, environmentId, releaseDeployPhaseId, taskId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n releaseDeployPhaseId: releaseDeployPhaseId,\r\n taskId: taskId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"17c91af7-09fd-4256-bff1-c24ee4f73bc0\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get manual intervention for a given release and manual intervention id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} manualInterventionId - Id of the manual intervention.\r\n */\r\n getManualIntervention(project, releaseId, manualInterventionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n manualInterventionId: manualInterventionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"616c46e4-f370-4456-adaa-fbaf79c7b79e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ManualIntervention, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List all manual interventions for a given release.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n */\r\n getManualInterventions(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"616c46e4-f370-4456-adaa-fbaf79c7b79e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ManualIntervention, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update manual intervention.\r\n *\r\n * @param {ReleaseInterfaces.ManualInterventionUpdateMetadata} manualInterventionUpdateMetadata - Meta data to update manual intervention.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} manualInterventionId - Id of the manual intervention.\r\n */\r\n updateManualIntervention(manualInterventionUpdateMetadata, project, releaseId, manualInterventionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n manualInterventionId: manualInterventionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"616c46e4-f370-4456-adaa-fbaf79c7b79e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, manualInterventionUpdateMetadata, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ManualIntervention, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {Date} minMetricsTime\r\n */\r\n getMetrics(project, minMetricsTime) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n minMetricsTime: minMetricsTime,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"cd1502bb-3c73-4e11-80a6-d11308dceae5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets Org pipeline release settings\r\n *\r\n */\r\n getOrgPipelineReleaseSettings() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"d156c759-ca4e-492b-90d4-db03971796ea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates Org pipeline release settings\r\n *\r\n * @param {ReleaseInterfaces.OrgPipelineReleaseSettingsUpdateParameters} newSettings\r\n */\r\n updateOrgPipelineReleaseSettings(newSettings) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"d156c759-ca4e-492b-90d4-db03971796ea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, newSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets pipeline release settings\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPipelineReleaseSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"e816b9f4-f9fe-46ba-bdcc-a9af6abf3144\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates pipeline release settings\r\n *\r\n * @param {ReleaseInterfaces.ProjectPipelineReleaseSettingsUpdateParameters} newSettings\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePipelineReleaseSettings(newSettings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"e816b9f4-f9fe-46ba-bdcc-a9af6abf3144\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, newSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} artifactType\r\n * @param {string} artifactSourceId\r\n */\r\n getReleaseProjects(artifactType, artifactSourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactType == null) {\r\n throw new TypeError('artifactType can not be null or undefined');\r\n }\r\n if (artifactSourceId == null) {\r\n throw new TypeError('artifactSourceId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n artifactType: artifactType,\r\n artifactSourceId: artifactSourceId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"917ace4a-79d1-45a7-987c-7be4db4268fa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of releases\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Releases from this release definition Id.\r\n * @param {number} definitionEnvironmentId\r\n * @param {string} searchText - Releases with names containing searchText.\r\n * @param {string} createdBy - Releases created by this user.\r\n * @param {ReleaseInterfaces.ReleaseStatus} statusFilter - Releases that have this status.\r\n * @param {number} environmentStatusFilter\r\n * @param {Date} minCreatedTime - Releases that were created after this time.\r\n * @param {Date} maxCreatedTime - Releases that were created before this time.\r\n * @param {ReleaseInterfaces.ReleaseQueryOrder} queryOrder - Gets the results in the defined order of created date for releases. Default is descending.\r\n * @param {number} top - Number of releases to get. Default is 50.\r\n * @param {number} continuationToken - Gets the releases after the continuation token provided.\r\n * @param {ReleaseInterfaces.ReleaseExpands} expand - The property that should be expanded in the list of releases.\r\n * @param {string} artifactTypeId - Releases with given artifactTypeId will be returned. Values can be Build, Jenkins, GitHub, Nuget, Team Build (external), ExternalTFSBuild, Git, TFVC, ExternalTfsXamlBuild.\r\n * @param {string} sourceId - Unique identifier of the artifact used. e.g. For build it would be {projectGuid}:{BuildDefinitionId}, for Jenkins it would be {JenkinsConnectionId}:{JenkinsDefinitionId}, for TfsOnPrem it would be {TfsOnPremConnectionId}:{ProjectName}:{TfsOnPremDefinitionId}. For third-party artifacts e.g. TeamCity, BitBucket you may refer 'uniqueSourceIdentifier' inside vss-extension.json https://github.com/Microsoft/vsts-rm-extensions/blob/master/Extensions.\r\n * @param {string} artifactVersionId - Releases with given artifactVersionId will be returned. E.g. in case of Build artifactType, it is buildId.\r\n * @param {string} sourceBranchFilter - Releases with given sourceBranchFilter will be returned.\r\n * @param {boolean} isDeleted - Gets the soft deleted releases, if true.\r\n * @param {string[]} tagFilter - A comma-delimited list of tags. Only releases with these tags will be returned.\r\n * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Releases will contain values for the specified property Ids (if they exist). If not set, properties will not be included. Note that this will not filter out any Release from results irrespective of whether it has property set or not.\r\n * @param {number[]} releaseIdFilter - A comma-delimited list of releases Ids. Only releases with these Ids will be returned.\r\n * @param {string} path - Releases under this folder path will be returned\r\n */\r\n getReleases(project, definitionId, definitionEnvironmentId, searchText, createdBy, statusFilter, environmentStatusFilter, minCreatedTime, maxCreatedTime, queryOrder, top, continuationToken, expand, artifactTypeId, sourceId, artifactVersionId, sourceBranchFilter, isDeleted, tagFilter, propertyFilters, releaseIdFilter, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n definitionId: definitionId,\r\n definitionEnvironmentId: definitionEnvironmentId,\r\n searchText: searchText,\r\n createdBy: createdBy,\r\n statusFilter: statusFilter,\r\n environmentStatusFilter: environmentStatusFilter,\r\n minCreatedTime: minCreatedTime,\r\n maxCreatedTime: maxCreatedTime,\r\n queryOrder: queryOrder,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n '$expand': expand,\r\n artifactTypeId: artifactTypeId,\r\n sourceId: sourceId,\r\n artifactVersionId: artifactVersionId,\r\n sourceBranchFilter: sourceBranchFilter,\r\n isDeleted: isDeleted,\r\n tagFilter: tagFilter && tagFilter.join(\",\"),\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n releaseIdFilter: releaseIdFilter && releaseIdFilter.join(\",\"),\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a release.\r\n *\r\n * @param {ReleaseInterfaces.ReleaseStartMetadata} releaseStartMetadata - Metadata to create a release.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createRelease(releaseStartMetadata, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, releaseStartMetadata, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Soft delete a release\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {string} comment - Comment for deleting a release.\r\n */\r\n deleteRelease(project, releaseId, comment) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n comment: comment,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a Release\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {ReleaseInterfaces.ApprovalFilters} approvalFilters - A filter which would allow fetching approval steps selectively based on whether it is automated, or manual. This would also decide whether we should fetch pre and post approval snapshots. Assumes All by default\r\n * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Release will contain values for the specified property Ids (if they exist). If not set, properties will not be included.\r\n * @param {ReleaseInterfaces.SingleReleaseExpands} expand - A property that should be expanded in the release.\r\n * @param {number} topGateRecords - Number of release gate records to get. Default is 5.\r\n */\r\n getRelease(project, releaseId, approvalFilters, propertyFilters, expand, topGateRecords) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n approvalFilters: approvalFilters,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n '$expand': expand,\r\n '$topGateRecords': topGateRecords,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get release summary of a given definition Id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the definition to get release summary.\r\n * @param {number} releaseCount - Count of releases to be included in summary.\r\n * @param {boolean} includeArtifact - Include artifact details.Default is 'false'.\r\n * @param {number[]} definitionEnvironmentIdsFilter\r\n */\r\n getReleaseDefinitionSummary(project, definitionId, releaseCount, includeArtifact, definitionEnvironmentIdsFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (definitionId == null) {\r\n throw new TypeError('definitionId can not be null or undefined');\r\n }\r\n if (releaseCount == null) {\r\n throw new TypeError('releaseCount can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n definitionId: definitionId,\r\n releaseCount: releaseCount,\r\n includeArtifact: includeArtifact,\r\n definitionEnvironmentIdsFilter: definitionEnvironmentIdsFilter && definitionEnvironmentIdsFilter.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionSummary, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get release for a given revision number.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} definitionSnapshotRevision - Definition snapshot revision number.\r\n */\r\n getReleaseRevision(project, releaseId, definitionSnapshotRevision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (definitionSnapshotRevision == null) {\r\n throw new TypeError('definitionSnapshotRevision can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n definitionSnapshotRevision: definitionSnapshotRevision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Undelete a soft deleted release.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of release to be undeleted.\r\n * @param {string} comment - Any comment for undeleting.\r\n */\r\n undeleteRelease(project, releaseId, comment) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (comment == null) {\r\n throw new TypeError('comment can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n comment: comment,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a complete release object.\r\n *\r\n * @param {ReleaseInterfaces.Release} release - Release object for update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release to update.\r\n */\r\n updateRelease(release, project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, release, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update few properties of a release.\r\n *\r\n * @param {ReleaseInterfaces.ReleaseUpdateMetadata} releaseUpdateMetadata - Properties of release to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release to update.\r\n */\r\n updateReleaseResource(releaseUpdateMetadata, project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, releaseUpdateMetadata, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the release settings\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getReleaseSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c63c3718-7cfd-41e0-b89b-81c1ca143437\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the release settings\r\n *\r\n * @param {ReleaseInterfaces.ReleaseSettings} releaseSettings\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateReleaseSettings(releaseSettings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c63c3718-7cfd-41e0-b89b-81c1ca143437\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, releaseSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get release definition for a given definitionId and revision\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the definition.\r\n * @param {number} revision - Id of the revision.\r\n */\r\n getDefinitionRevision(project, definitionId, revision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId,\r\n revision: revision\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"258b82e0-9d41-43f3-86d6-fef14ddd44bc\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get revision history for a release definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the definition.\r\n */\r\n getReleaseDefinitionHistory(project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"258b82e0-9d41-43f3-86d6-fef14ddd44bc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionRevision, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n getSummaryMailSections(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"224e92b2-8d13-4c14-b120-13d877c516f8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.SummaryMailSection, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ReleaseInterfaces.MailMessage} mailMessage\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n sendSummaryMail(mailMessage, project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"224e92b2-8d13-4c14-b120-13d877c516f8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, mailMessage, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId\r\n */\r\n getSourceBranches(project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"0e5def23-78b3-461f-8198-1558f25041c8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a tag to a definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseDefinitionId\r\n * @param {string} tag\r\n */\r\n addDefinitionTag(project, releaseDefinitionId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseDefinitionId: releaseDefinitionId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"3d21b4c8-c32e-45b2-a7cb-770a369012f4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds multiple tags to a definition\r\n *\r\n * @param {string[]} tags\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseDefinitionId\r\n */\r\n addDefinitionTags(tags, project, releaseDefinitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseDefinitionId: releaseDefinitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"3d21b4c8-c32e-45b2-a7cb-770a369012f4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, tags, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a tag from a definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseDefinitionId\r\n * @param {string} tag\r\n */\r\n deleteDefinitionTag(project, releaseDefinitionId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseDefinitionId: releaseDefinitionId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"3d21b4c8-c32e-45b2-a7cb-770a369012f4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the tags for a definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseDefinitionId\r\n */\r\n getDefinitionTags(project, releaseDefinitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseDefinitionId: releaseDefinitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"3d21b4c8-c32e-45b2-a7cb-770a369012f4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a tag to a releaseId\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {string} tag\r\n */\r\n addReleaseTag(project, releaseId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c5b602b6-d1b3-4363-8a51-94384f78068f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds tag to a release\r\n *\r\n * @param {string[]} tags\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n addReleaseTags(tags, project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c5b602b6-d1b3-4363-8a51-94384f78068f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, tags, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a tag from a release\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {string} tag\r\n */\r\n deleteReleaseTag(project, releaseId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c5b602b6-d1b3-4363-8a51-94384f78068f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the tags for a release\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n getReleaseTags(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c5b602b6-d1b3-4363-8a51-94384f78068f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n */\r\n getTags(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"86cee25a-68ba-4ba3-9171-8ad6ffc6df93\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} environmentId\r\n * @param {number} releaseDeployPhaseId\r\n */\r\n getTasksForTaskGroup(project, releaseId, environmentId, releaseDeployPhaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n releaseDeployPhaseId: releaseDeployPhaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"4259191d-4b0a-4409-9fb3-09f22ab9bc47\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTask, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} environmentId\r\n * @param {number} attemptId\r\n * @param {string} timelineId\r\n */\r\n getTasks2(project, releaseId, environmentId, attemptId, timelineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n timelineId: timelineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"4259291d-4b0a-4409-9fb3-04f22ab9bc47\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTask, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} environmentId\r\n * @param {number} attemptId\r\n */\r\n getTasks(project, releaseId, environmentId, attemptId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId\r\n };\r\n let queryValues = {\r\n attemptId: attemptId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"36b276e0-3c70-4320-a63c-1a2e1466a0d1\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTask, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n */\r\n getArtifactTypeDefinitions(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"8efc2a3c-1fc8-4f6d-9822-75e98cecb48f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ArtifactTypeDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseDefinitionId\r\n */\r\n getArtifactVersions(project, releaseDefinitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (releaseDefinitionId == null) {\r\n throw new TypeError('releaseDefinitionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n releaseDefinitionId: releaseDefinitionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"30fc787e-a9e0-4a07-9fbc-3e903aa051d2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ArtifactVersionQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ReleaseInterfaces.Artifact[]} artifacts\r\n * @param {string} project - Project ID or project name\r\n */\r\n getArtifactVersionsForSources(artifacts, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"30fc787e-a9e0-4a07-9fbc-3e903aa051d2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, artifacts, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ArtifactVersionQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} baseReleaseId\r\n * @param {number} top\r\n * @param {string} artifactAlias\r\n */\r\n getReleaseWorkItemsRefs(project, releaseId, baseReleaseId, top, artifactAlias) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n baseReleaseId: baseReleaseId,\r\n '$top': top,\r\n artifactAlias: artifactAlias,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"4f165cc0-875c-4768-b148-f12f78769fab\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nReleaseApi.RESOURCE_AREA_ID = \"efc2f575-36ef-48e9-b672-0c6fb4a48ac5\";\r\nexports.ReleaseApi = ReleaseApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst SecurityRolesInterfaces = require(\"./interfaces/SecurityRolesInterfaces\");\r\nclass SecurityRolesApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-SecurityRoles-api', options);\r\n }\r\n /**\r\n * @param {string} scopeId\r\n * @param {string} resourceId\r\n */\r\n getRoleAssignments(scopeId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"9461c234-c84c-4ed2-b918-2f0f92ad0a35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, SecurityRolesInterfaces.TypeInfo.RoleAssignment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeId\r\n * @param {string} resourceId\r\n * @param {string} identityId\r\n */\r\n removeRoleAssignment(scopeId, resourceId, identityId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId,\r\n resourceId: resourceId,\r\n identityId: identityId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"9461c234-c84c-4ed2-b918-2f0f92ad0a35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string[]} identityIds\r\n * @param {string} scopeId\r\n * @param {string} resourceId\r\n */\r\n removeRoleAssignments(identityIds, scopeId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"9461c234-c84c-4ed2-b918-2f0f92ad0a35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, identityIds, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {SecurityRolesInterfaces.UserRoleAssignmentRef} roleAssignment\r\n * @param {string} scopeId\r\n * @param {string} resourceId\r\n * @param {string} identityId\r\n */\r\n setRoleAssignment(roleAssignment, scopeId, resourceId, identityId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId,\r\n resourceId: resourceId,\r\n identityId: identityId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"9461c234-c84c-4ed2-b918-2f0f92ad0a35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, roleAssignment, options);\r\n let ret = this.formatResponse(res.result, SecurityRolesInterfaces.TypeInfo.RoleAssignment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {SecurityRolesInterfaces.UserRoleAssignmentRef[]} roleAssignments\r\n * @param {string} scopeId\r\n * @param {string} resourceId\r\n */\r\n setRoleAssignments(roleAssignments, scopeId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"9461c234-c84c-4ed2-b918-2f0f92ad0a35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, roleAssignments, options);\r\n let ret = this.formatResponse(res.result, SecurityRolesInterfaces.TypeInfo.RoleAssignment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeId\r\n */\r\n getRoleDefinitions(scopeId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"f4cc9a86-453c-48d2-b44d-d3bd5c105f4f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.SecurityRolesApi = SecurityRolesApi;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* Module for handling serialization and deserialization of data contracts\r\n* (contracts sent from the server using the VSO default REST api serialization settings)\r\n*/\r\nvar ContractSerializer;\r\n(function (ContractSerializer) {\r\n var _legacyDateRegExp;\r\n /**\r\n * Process a contract in its raw form (e.g. date fields are Dates, and Enums are numbers) and\r\n * return a pure JSON object that can be posted to REST endpoint.\r\n *\r\n * @param data The object to serialize\r\n * @param contractMetadata The type info/metadata for the contract type being serialized\r\n * @param preserveOriginal If true, don't modify the original object. False modifies the original object (the return value points to the data argument).\r\n */\r\n function serialize(data, contractMetadata, preserveOriginal) {\r\n if (data && contractMetadata) {\r\n if (Array.isArray(data)) {\r\n return _getTranslatedArray(data, contractMetadata, true, preserveOriginal);\r\n }\r\n else {\r\n return _getTranslatedObject(data, contractMetadata, true, preserveOriginal);\r\n }\r\n }\r\n else {\r\n return data;\r\n }\r\n }\r\n ContractSerializer.serialize = serialize;\r\n /**\r\n * Process a pure JSON object (e.g. that came from a REST call) and transform it into a JS object\r\n * where date strings are converted to Date objects and enum values are converted from strings into\r\n * their numerical value.\r\n *\r\n * @param data The object to deserialize\r\n * @param contractMetadata The type info/metadata for the contract type being deserialize\r\n * @param preserveOriginal If true, don't modify the original object. False modifies the original object (the return value points to the data argument).\r\n * @param unwrapWrappedCollections If true check for wrapped arrays (REST apis will not return arrays directly as the root result but will instead wrap them in a { values: [], count: 0 } object.\r\n */\r\n function deserialize(data, contractMetadata, preserveOriginal, unwrapWrappedCollections) {\r\n if (data) {\r\n if (unwrapWrappedCollections && Array.isArray(data.value)) {\r\n // Wrapped json array - unwrap it and send the array as the result\r\n data = data.value;\r\n }\r\n if (contractMetadata) {\r\n if (Array.isArray(data)) {\r\n data = _getTranslatedArray(data, contractMetadata, false, preserveOriginal);\r\n }\r\n else {\r\n data = _getTranslatedObject(data, contractMetadata, false, preserveOriginal);\r\n }\r\n }\r\n }\r\n return data;\r\n }\r\n ContractSerializer.deserialize = deserialize;\r\n function _getTranslatedArray(array, typeMetadata, serialize, preserveOriginal) {\r\n var resultArray = array;\r\n var arrayCopy = [];\r\n var i;\r\n for (i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n var processedItem;\r\n // handle arrays of arrays\r\n if (Array.isArray(item)) {\r\n processedItem = _getTranslatedArray(item, typeMetadata, serialize, preserveOriginal);\r\n }\r\n else {\r\n processedItem = _getTranslatedObject(item, typeMetadata, serialize, preserveOriginal);\r\n }\r\n if (preserveOriginal) {\r\n arrayCopy.push(processedItem);\r\n if (processedItem !== item) {\r\n resultArray = arrayCopy;\r\n }\r\n }\r\n else {\r\n array[i] = processedItem;\r\n }\r\n }\r\n return resultArray;\r\n }\r\n function _getTranslatedObject(typeObject, typeMetadata, serialize, preserveOriginal) {\r\n var processedItem = typeObject, copiedItem = false;\r\n if (typeObject && typeMetadata.fields) {\r\n for (var fieldName in typeMetadata.fields) {\r\n var fieldMetadata = typeMetadata.fields[fieldName];\r\n var fieldValue = typeObject[fieldName];\r\n var translatedValue = _getTranslatedField(fieldValue, fieldMetadata, serialize, preserveOriginal);\r\n if (fieldValue !== translatedValue) {\r\n if (preserveOriginal && !copiedItem) {\r\n processedItem = this._extend({}, typeObject);\r\n copiedItem = true;\r\n }\r\n processedItem[fieldName] = translatedValue;\r\n }\r\n }\r\n }\r\n return processedItem;\r\n }\r\n function _getTranslatedField(fieldValue, fieldMetadata, serialize, preserveOriginal) {\r\n if (!fieldValue) {\r\n return fieldValue;\r\n }\r\n if (fieldMetadata.isArray) {\r\n if (Array.isArray(fieldValue)) {\r\n var newArray = [], processedArray = fieldValue;\r\n for (var index = 0; index < fieldValue.length; index++) {\r\n var arrayValue = fieldValue[index];\r\n var processedValue = arrayValue;\r\n if (fieldMetadata.isDate) {\r\n processedValue = _getTranslatedDateValue(arrayValue, serialize);\r\n }\r\n else if (fieldMetadata.enumType) {\r\n processedValue = _getTranslatedEnumValue(fieldMetadata.enumType, arrayValue, serialize);\r\n }\r\n else if (fieldMetadata.typeInfo) {\r\n if (Array.isArray(arrayValue)) {\r\n processedValue = _getTranslatedArray(arrayValue, fieldMetadata.typeInfo, serialize, preserveOriginal);\r\n }\r\n else {\r\n processedValue = _getTranslatedObject(arrayValue, fieldMetadata.typeInfo, serialize, preserveOriginal);\r\n }\r\n }\r\n if (preserveOriginal) {\r\n newArray.push(processedValue);\r\n if (processedValue !== arrayValue) {\r\n processedArray = newArray;\r\n }\r\n }\r\n else {\r\n fieldValue[index] = processedValue;\r\n }\r\n }\r\n return processedArray;\r\n }\r\n else {\r\n return fieldValue;\r\n }\r\n }\r\n else if (fieldMetadata.isDictionary) {\r\n var dictionaryModified = false;\r\n var newDictionary = {};\r\n for (var key in fieldValue) {\r\n var dictionaryValue = fieldValue[key];\r\n var newKey = key, newValue = dictionaryValue;\r\n if (fieldMetadata.dictionaryKeyIsDate) {\r\n newKey = _getTranslatedDateValue(key, serialize);\r\n }\r\n else if (fieldMetadata.dictionaryKeyEnumType) {\r\n newKey = _getTranslatedEnumValue(fieldMetadata.dictionaryKeyEnumType, key, serialize);\r\n }\r\n if (fieldMetadata.dictionaryValueIsDate) {\r\n newValue = _getTranslatedDateValue(dictionaryValue, serialize);\r\n }\r\n else if (fieldMetadata.dictionaryValueEnumType) {\r\n newValue = _getTranslatedEnumValue(fieldMetadata.dictionaryValueEnumType, dictionaryValue, serialize);\r\n }\r\n else if (fieldMetadata.dictionaryValueTypeInfo) {\r\n newValue = _getTranslatedObject(newValue, fieldMetadata.dictionaryValueTypeInfo, serialize, preserveOriginal);\r\n }\r\n else if (fieldMetadata.dictionaryValueFieldInfo) {\r\n newValue = _getTranslatedField(dictionaryValue, fieldMetadata.dictionaryValueFieldInfo, serialize, preserveOriginal);\r\n }\r\n newDictionary[newKey] = newValue;\r\n if (key !== newKey || dictionaryValue !== newValue) {\r\n dictionaryModified = true;\r\n }\r\n }\r\n return dictionaryModified ? newDictionary : fieldValue;\r\n }\r\n else {\r\n if (fieldMetadata.isDate) {\r\n return _getTranslatedDateValue(fieldValue, serialize);\r\n }\r\n else if (fieldMetadata.enumType) {\r\n return _getTranslatedEnumValue(fieldMetadata.enumType, fieldValue, serialize);\r\n }\r\n else if (fieldMetadata.typeInfo) {\r\n return _getTranslatedObject(fieldValue, fieldMetadata.typeInfo, serialize, preserveOriginal);\r\n }\r\n else {\r\n return fieldValue;\r\n }\r\n }\r\n }\r\n function _getTranslatedEnumValue(enumType, valueToConvert, serialize) {\r\n if (serialize && typeof valueToConvert === \"number\") {\r\n // Serialize: number --> String\r\n // Because webapi handles the numerical value for enums, there is no need to convert to string.\r\n // Let this fall through to return the numerical value.\r\n }\r\n else if (!serialize && typeof valueToConvert === \"string\") {\r\n // Deserialize: String --> number\r\n var result = 0;\r\n if (valueToConvert) {\r\n var splitValue = valueToConvert.split(\",\");\r\n for (var i = 0; i < splitValue.length; i++) {\r\n var valuePart = splitValue[i];\r\n //equivalent to jquery trim\r\n //copied from https://github.com/HubSpot/youmightnotneedjquery/blob/ef987223c20e480fcbfb5924d96c11cd928e1226/comparisons/utils/trim/ie8.js\r\n var enumName = valuePart.replace(/^\\s+|\\s+$/g, '') || \"\";\r\n if (enumName) {\r\n var resultPart = enumType.enumValues[enumName];\r\n if (!resultPart) {\r\n // No matching enum value. Try again but case insensitive\r\n var lowerCaseEnumName = enumName.toLowerCase();\r\n if (lowerCaseEnumName !== enumName) {\r\n for (var name in enumType.enumValues) {\r\n var value = enumType.enumValues[name];\r\n if (name.toLowerCase() === lowerCaseEnumName) {\r\n resultPart = value;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (resultPart) {\r\n result |= resultPart;\r\n }\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n return valueToConvert;\r\n }\r\n function _getTranslatedDateValue(valueToConvert, serialize) {\r\n if (!serialize && typeof valueToConvert === \"string\") {\r\n // Deserialize: String --> Date\r\n var dateValue = new Date(valueToConvert);\r\n if (isNaN(dateValue) && navigator.userAgent && /msie/i.test(navigator.userAgent)) {\r\n dateValue = _convertLegacyIEDate(valueToConvert);\r\n }\r\n return dateValue;\r\n }\r\n return valueToConvert;\r\n }\r\n function _convertLegacyIEDate(dateStringValue) {\r\n // IE 8/9 does not handle parsing dates in ISO form like:\r\n // 2013-05-13T14:26:54.397Z\r\n var match;\r\n if (!_legacyDateRegExp) {\r\n _legacyDateRegExp = new RegExp(\"(\\\\d+)-(\\\\d+)-(\\\\d+)T(\\\\d+):(\\\\d+):(\\\\d+).(\\\\d+)Z\");\r\n }\r\n match = _legacyDateRegExp.exec(dateStringValue);\r\n if (match) {\r\n return new Date(Date.UTC(parseInt(match[1]), parseInt(match[2]) - 1, parseInt(match[3]), parseInt(match[4]), parseInt(match[5]), parseInt(match[6]), parseInt(match[7])));\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n // jquery extend method in native javascript (used to clone objects)\r\n // copied from https://github.com/HubSpot/youmightnotneedjquery/blob/ef987223c20e480fcbfb5924d96c11cd928e1226/comparisons/utils/extend/ie8.js\r\n var _extend = function (out) {\r\n out = out || {};\r\n for (var i = 1; i < arguments.length; i++) {\r\n if (!arguments[i])\r\n continue;\r\n for (var key in arguments[i]) {\r\n if (arguments[i].hasOwnProperty(key))\r\n out[key] = arguments[i][key];\r\n }\r\n }\r\n return out;\r\n };\r\n})(ContractSerializer = exports.ContractSerializer || (exports.ContractSerializer = {}));\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst taskagentbasem = require(\"./TaskAgentApiBase\");\r\nconst url = require(\"url\");\r\nclass TaskAgentApi extends taskagentbasem.TaskAgentApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, options);\r\n // hang on to the handlers in case we need to fall back to an account-level client\r\n this._handlers = handlers;\r\n this._options = options;\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param onResult callback function\r\n */\r\n deleteTaskDefinition(taskId) {\r\n let promise = this.vsoClient.beginGetLocation(\"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\")\r\n .then((location) => {\r\n if (location) {\r\n // the resource exists at the url we were given. go!\r\n return super.deleteTaskDefinition(taskId);\r\n }\r\n else {\r\n // this is the case when the server doesn't support collection-level task definitions\r\n var fallbackClient = this._getFallbackClient(this.baseUrl);\r\n if (!fallbackClient) {\r\n // couldn't convert\r\n throw new Error(\"Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\");\r\n }\r\n else {\r\n // use the fallback client \r\n return fallbackClient.deleteTaskDefinition(taskId);\r\n }\r\n }\r\n });\r\n return promise;\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string} versionString\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n * @param onResult callback function with the resulting ArrayBuffer\r\n */\r\n getTaskContentZip(taskId, versionString, visibility, scopeLocal) {\r\n let promise = this.vsoClient.beginGetLocation(\"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\")\r\n .then((location) => {\r\n if (location) {\r\n // the resource exists at the url we were given. go!\r\n return super.getTaskContentZip(taskId, versionString, visibility, scopeLocal);\r\n }\r\n else {\r\n // this is the case when the server doesn't support collection-level task definitions\r\n var fallbackClient = this._getFallbackClient(this.baseUrl);\r\n if (!fallbackClient) {\r\n // couldn't convert\r\n throw new Error(\"Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\");\r\n }\r\n else {\r\n // use the fallback client \r\n return fallbackClient.getTaskContentZip(taskId, versionString, visibility, scopeLocal);\r\n }\r\n }\r\n });\r\n return promise;\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string} versionString\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n * @param onResult callback function with the resulting TaskAgentInterfaces.TaskDefinition\r\n */\r\n getTaskDefinition(taskId, versionString, visibility, scopeLocal) {\r\n let promise = this.vsoClient.beginGetLocation(\"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\")\r\n .then((location) => {\r\n if (location) {\r\n // the resource exists at the url we were given. go!\r\n return super.getTaskDefinition(taskId, versionString, visibility, scopeLocal);\r\n }\r\n else {\r\n // this is the case when the server doesn't support collection-level task definitions\r\n var fallbackClient = this._getFallbackClient(this.baseUrl);\r\n if (!fallbackClient) {\r\n // couldn't convert\r\n throw new Error(\"Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\");\r\n }\r\n else {\r\n // use the fallback client \r\n return fallbackClient.getTaskDefinition(taskId, versionString, visibility, scopeLocal);\r\n }\r\n }\r\n });\r\n return promise;\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n * @param onResult callback function with the resulting TaskAgentInterfaces.TaskDefinition[]\r\n */\r\n getTaskDefinitions(taskId, visibility, scopeLocal) {\r\n let promise = this.vsoClient.beginGetLocation(\"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\")\r\n .then((location) => {\r\n if (location) {\r\n // the resource exists at the url we were given. go!\r\n return super.getTaskDefinitions(taskId, visibility, scopeLocal);\r\n }\r\n else {\r\n // this is the case when the server doesn't support collection-level task definitions\r\n var fallbackClient = this._getFallbackClient(this.baseUrl);\r\n if (!fallbackClient) {\r\n // couldn't convert\r\n throw new Error(\"Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\");\r\n }\r\n else {\r\n // use the fallback client \r\n return fallbackClient.getTaskDefinitions(taskId, visibility, scopeLocal);\r\n }\r\n }\r\n });\r\n return promise;\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream\r\n * @param {string} taskId\r\n * @param {boolean} overwrite\r\n * @param onResult callback function\r\n */\r\n uploadTaskDefinition(customHeaders, contentStream, taskId, overwrite) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n taskId: taskId\r\n };\r\n let queryValues = {\r\n overwrite: overwrite,\r\n };\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.0-preview.1\", \"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n resolve(res.result);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n _getFallbackClient(baseUrl) {\r\n if (!this._fallbackClient) {\r\n var accountUrl = this._getAccountUrl(baseUrl);\r\n if (accountUrl) {\r\n this._fallbackClient = new TaskAgentApi(accountUrl, this._handlers, this._options);\r\n }\r\n }\r\n return this._fallbackClient;\r\n }\r\n _getAccountUrl(collectionUrl) {\r\n // converts a collection URL to an account URL\r\n // returns null if the conversion can't be made\r\n var purl = url.parse(collectionUrl);\r\n if (!purl.protocol || !purl.host) {\r\n return null;\r\n }\r\n var accountUrl = purl.protocol + '//' + purl.host;\r\n // purl.path is something like /DefaultCollection or /tfs/DefaultCollection or /DefaultCollection/\r\n var splitPath = purl.path.split('/').slice(1);\r\n if (splitPath.length === 0 || (splitPath.length === 1 && splitPath[0] === '')) {\r\n return null;\r\n }\r\n // if the first segment of the path is tfs, the second is the collection. if the url ends in / there will be a third, empty entry\r\n if (splitPath[0] === 'tfs' && (splitPath.length === 2 || (splitPath.length === 3 && splitPath[2].length === 0))) {\r\n //on prem\r\n accountUrl += '/' + 'tfs';\r\n }\r\n else if (splitPath.length === 2 && splitPath[0] === '') {\r\n // /DefaultCollection/\r\n return accountUrl;\r\n }\r\n else if (splitPath.length > 1) {\r\n return null;\r\n }\r\n return accountUrl;\r\n }\r\n}\r\nexports.TaskAgentApi = TaskAgentApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst TaskAgentInterfaces = require(\"./interfaces/TaskAgentInterfaces\");\r\nclass TaskAgentApiBase extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-TaskAgent-api', options);\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentCloud} agentCloud\r\n */\r\n addAgentCloud(agentCloud) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bfa72b3d-0fc6-43fb-932b-a7f6559f93b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, agentCloud, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} agentCloudId\r\n */\r\n deleteAgentCloud(agentCloudId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n agentCloudId: agentCloudId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bfa72b3d-0fc6-43fb-932b-a7f6559f93b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} agentCloudId\r\n */\r\n getAgentCloud(agentCloudId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n agentCloudId: agentCloudId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bfa72b3d-0fc6-43fb-932b-a7f6559f93b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getAgentClouds() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bfa72b3d-0fc6-43fb-932b-a7f6559f93b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentCloud} updatedCloud\r\n * @param {number} agentCloudId\r\n */\r\n updateAgentCloud(updatedCloud, agentCloudId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n agentCloudId: agentCloudId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bfa72b3d-0fc6-43fb-932b-a7f6559f93b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updatedCloud, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get agent cloud types.\r\n *\r\n */\r\n getAgentCloudTypes() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"5932e193-f376-469d-9c3e-e5588ce12cb5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentCloudType, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} queueId\r\n * @param {number} top\r\n * @param {string} continuationToken\r\n */\r\n getAgentRequestsForQueue(project, queueId, top, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (top == null) {\r\n throw new TypeError('top can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n queueId: queueId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"f5f81ffb-f396-498d-85b1-5ada145e648a\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentJobRequest} request\r\n * @param {string} project - Project ID or project name\r\n * @param {number} queueId\r\n */\r\n queueAgentRequest(request, project, queueId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n queueId: queueId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"f5f81ffb-f396-498d-85b1-5ada145e648a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, request, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds an agent to a pool. You probably don't want to call this endpoint directly. Instead, [configure an agent](https://docs.microsoft.com/azure/devops/pipelines/agents/agents) using the agent download package.\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgent} agent - Details about the agent being added\r\n * @param {number} poolId - The agent pool in which to add the agent\r\n */\r\n addAgent(agent, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, agent, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete an agent. You probably don't want to call this endpoint directly. Instead, [use the agent configuration script](https://docs.microsoft.com/azure/devops/pipelines/agents/agents) to remove an agent from your organization.\r\n *\r\n * @param {number} poolId - The pool ID to remove the agent from\r\n * @param {number} agentId - The agent ID to remove\r\n */\r\n deleteAgent(poolId, agentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get information about an agent.\r\n *\r\n * @param {number} poolId - The agent pool containing the agent\r\n * @param {number} agentId - The agent ID to get information about\r\n * @param {boolean} includeCapabilities - Whether to include the agent's capabilities in the response\r\n * @param {boolean} includeAssignedRequest - Whether to include details about the agent's current work\r\n * @param {boolean} includeLastCompletedRequest - Whether to include details about the agents' most recent completed work\r\n * @param {string[]} propertyFilters - Filter which custom properties will be returned\r\n */\r\n getAgent(poolId, agentId, includeCapabilities, includeAssignedRequest, includeLastCompletedRequest, propertyFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n let queryValues = {\r\n includeCapabilities: includeCapabilities,\r\n includeAssignedRequest: includeAssignedRequest,\r\n includeLastCompletedRequest: includeLastCompletedRequest,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agents.\r\n *\r\n * @param {number} poolId - The agent pool containing the agents\r\n * @param {string} agentName - Filter on agent name\r\n * @param {boolean} includeCapabilities - Whether to include the agents' capabilities in the response\r\n * @param {boolean} includeAssignedRequest - Whether to include details about the agents' current work\r\n * @param {boolean} includeLastCompletedRequest - Whether to include details about the agents' most recent completed work\r\n * @param {string[]} propertyFilters - Filter which custom properties will be returned\r\n * @param {string[]} demands - Filter by demands the agents can satisfy\r\n */\r\n getAgents(poolId, agentName, includeCapabilities, includeAssignedRequest, includeLastCompletedRequest, propertyFilters, demands) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n agentName: agentName,\r\n includeCapabilities: includeCapabilities,\r\n includeAssignedRequest: includeAssignedRequest,\r\n includeLastCompletedRequest: includeLastCompletedRequest,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n demands: demands && demands.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replace an agent. You probably don't want to call this endpoint directly. Instead, [use the agent configuration script](https://docs.microsoft.com/azure/devops/pipelines/agents/agents) to remove and reconfigure an agent from your organization.\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgent} agent - Updated details about the replacing agent\r\n * @param {number} poolId - The agent pool to use\r\n * @param {number} agentId - The agent to replace\r\n */\r\n replaceAgent(agent, poolId, agentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, agent, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update agent details.\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgent} agent - Updated details about the agent\r\n * @param {number} poolId - The agent pool to use\r\n * @param {number} agentId - The agent to update\r\n */\r\n updateAgent(agent, poolId, agentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, agent, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns list of azure subscriptions\r\n *\r\n */\r\n getAzureManagementGroups() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"39fe3bf2-7ee0-4198-a469-4a29929afa9c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns list of azure subscriptions\r\n *\r\n */\r\n getAzureSubscriptions() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bcd6189c-0303-471f-a8e1-acb22b74d700\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * GET a PAT token for managing (configuring, removing, tagging) deployment targets in a deployment group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group in which deployment targets are managed.\r\n */\r\n generateDeploymentGroupAccessToken(project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"3d197ba2-c3e9-4253-882f-0ee2440f8174\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a deployment group.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentGroupCreateParameter} deploymentGroup - Deployment group to create.\r\n * @param {string} project - Project ID or project name\r\n */\r\n addDeploymentGroup(deploymentGroup, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"083c4d89-ab35-45af-aa11-7cf66895c53e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, deploymentGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a deployment group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group to be deleted.\r\n */\r\n deleteDeploymentGroup(project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"083c4d89-ab35-45af-aa11-7cf66895c53e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a deployment group by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group.\r\n * @param {TaskAgentInterfaces.DeploymentGroupActionFilter} actionFilter - Get the deployment group only if this action can be performed on it.\r\n * @param {TaskAgentInterfaces.DeploymentGroupExpands} expand - Include these additional details in the returned object.\r\n */\r\n getDeploymentGroup(project, deploymentGroupId, actionFilter, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n actionFilter: actionFilter,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"083c4d89-ab35-45af-aa11-7cf66895c53e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of deployment groups by name or IDs.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} name - Name of the deployment group.\r\n * @param {TaskAgentInterfaces.DeploymentGroupActionFilter} actionFilter - Get only deployment groups on which this action can be performed.\r\n * @param {TaskAgentInterfaces.DeploymentGroupExpands} expand - Include these additional details in the returned objects.\r\n * @param {string} continuationToken - Get deployment groups with names greater than this continuationToken lexicographically.\r\n * @param {number} top - Maximum number of deployment groups to return. Default is **1000**.\r\n * @param {number[]} ids - Comma separated list of IDs of the deployment groups.\r\n */\r\n getDeploymentGroups(project, name, actionFilter, expand, continuationToken, top, ids) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n name: name,\r\n actionFilter: actionFilter,\r\n '$expand': expand,\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n ids: ids && ids.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"083c4d89-ab35-45af-aa11-7cf66895c53e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a deployment group.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentGroupUpdateParameter} deploymentGroup - Deployment group to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group.\r\n */\r\n updateDeploymentGroup(deploymentGroup, project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"083c4d89-ab35-45af-aa11-7cf66895c53e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, deploymentGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of deployment group metrics.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} deploymentGroupName - Name of the deployment group.\r\n * @param {string} continuationToken - Get metrics for deployment groups with names greater than this continuationToken lexicographically.\r\n * @param {number} top - Maximum number of deployment group metrics to return. Default is **50**.\r\n */\r\n getDeploymentGroupsMetrics(project, deploymentGroupName, continuationToken, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n deploymentGroupName: deploymentGroupName,\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"281c6308-427a-49e1-b83a-dac0f4862189\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroupMetrics, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number} machineId\r\n * @param {number} completedRequestCount\r\n */\r\n getAgentRequestsForDeploymentMachine(project, deploymentGroupId, machineId, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (machineId == null) {\r\n throw new TypeError('machineId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n machineId: machineId,\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a3540e5b-f0dc-4668-963b-b752459be545\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number[]} machineIds\r\n * @param {number} completedRequestCount\r\n */\r\n getAgentRequestsForDeploymentMachines(project, deploymentGroupId, machineIds, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n machineIds: machineIds && machineIds.join(\",\"),\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a3540e5b-f0dc-4668-963b-b752459be545\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n */\r\n refreshDeploymentMachines(project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"91006ac4-0f68-4d82-a2bc-540676bd73ce\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * GET a PAT token for managing (configuring, removing, tagging) deployment agents in a deployment pool.\r\n *\r\n * @param {number} poolId - ID of the deployment pool in which deployment agents are managed.\r\n */\r\n generateDeploymentPoolAccessToken(poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e077ee4a-399b-420b-841f-c43fbc058e0b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of deployment pool summaries.\r\n *\r\n * @param {string} poolName - Name of the deployment pool.\r\n * @param {TaskAgentInterfaces.DeploymentPoolSummaryExpands} expands - Include these additional details in the returned objects.\r\n * @param {number[]} poolIds - List of deployment pool ids.\r\n */\r\n getDeploymentPoolsSummary(poolName, expands, poolIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n poolName: poolName,\r\n expands: expands,\r\n poolIds: poolIds && poolIds.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6525d6c6-258f-40e0-a1a9-8a24a3957625\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentPoolSummary, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get agent requests for a deployment target.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group to which the target belongs.\r\n * @param {number} targetId - ID of the deployment target.\r\n * @param {number} completedRequestCount - Maximum number of completed requests to return. Default is **50**\r\n */\r\n getAgentRequestsForDeploymentTarget(project, deploymentGroupId, targetId, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (targetId == null) {\r\n throw new TypeError('targetId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n targetId: targetId,\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2fac0be3-8c8f-4473-ab93-c1389b08a2c9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get agent requests for a list deployment targets.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group to which the targets belong.\r\n * @param {number[]} targetIds - Comma separated list of IDs of the deployment targets.\r\n * @param {number} ownerId - Id of owner of agent job request.\r\n * @param {Date} completedOn - Datetime to return request after this time.\r\n * @param {number} completedRequestCount - Maximum number of completed requests to return for each target. Default is **50**\r\n */\r\n getAgentRequestsForDeploymentTargets(project, deploymentGroupId, targetIds, ownerId, completedOn, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n targetIds: targetIds && targetIds.join(\",\"),\r\n ownerId: ownerId,\r\n completedOn: completedOn,\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2fac0be3-8c8f-4473-ab93-c1389b08a2c9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Upgrade the deployment targets in a deployment group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group.\r\n */\r\n refreshDeploymentTargets(project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"1c1a817f-f23d-41c6-bf8d-14b638f64152\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Proxy for a GET request defined by an 'endpoint'. The request is authorized using a service connection. The response is filtered using an XPath/Json based selector.\r\n *\r\n * @param {TaskAgentInterfaces.TaskDefinitionEndpoint} endpoint - Describes the URL to fetch.\r\n */\r\n queryEndpoint(endpoint) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"f223b809-8c33-4b7d-b53f-07232569b5d6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, endpoint, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get environment deployment execution history\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {string} continuationToken\r\n * @param {number} top\r\n */\r\n getEnvironmentDeploymentExecutionRecords(project, environmentId, continuationToken, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n top: top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"51bb5d21-4305-4ea6-9dbb-b7488af73334\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentDeploymentExecutionRecord, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create an environment.\r\n *\r\n * @param {TaskAgentInterfaces.EnvironmentCreateParameter} environmentCreateParameter - Environment to create.\r\n * @param {string} project - Project ID or project name\r\n */\r\n addEnvironment(environmentCreateParameter, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8572b1fc-2482-47fa-8f74-7e3ed53ee54b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, environmentCreateParameter, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete the specified environment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId - ID of the environment.\r\n */\r\n deleteEnvironment(project, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8572b1fc-2482-47fa-8f74-7e3ed53ee54b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get an environment by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId - ID of the environment.\r\n * @param {TaskAgentInterfaces.EnvironmentExpands} expands - Include these additional details in the returned objects.\r\n */\r\n getEnvironmentById(project, environmentId, expands) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n let queryValues = {\r\n expands: expands,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8572b1fc-2482-47fa-8f74-7e3ed53ee54b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all environments.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} name\r\n * @param {string} continuationToken\r\n * @param {number} top\r\n */\r\n getEnvironments(project, name, continuationToken, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n name: name,\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8572b1fc-2482-47fa-8f74-7e3ed53ee54b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the specified environment.\r\n *\r\n * @param {TaskAgentInterfaces.EnvironmentUpdateParameter} environmentUpdateParameter - Environment data to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId - ID of the environment.\r\n */\r\n updateEnvironment(environmentUpdateParameter, project, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8572b1fc-2482-47fa-8f74-7e3ed53ee54b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, environmentUpdateParameter, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} hubName\r\n * @param {boolean} includeEnterpriseUsersCount\r\n * @param {boolean} includeHostedAgentMinutesCount\r\n */\r\n getTaskHubLicenseDetails(hubName, includeEnterpriseUsersCount, includeHostedAgentMinutesCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n hubName: hubName\r\n };\r\n let queryValues = {\r\n includeEnterpriseUsersCount: includeEnterpriseUsersCount,\r\n includeHostedAgentMinutesCount: includeHostedAgentMinutesCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"distributedtask\", \"f9f0f436-b8a1-4475-9041-1ccdbf8f0128\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskHubLicenseDetails} taskHubLicenseDetails\r\n * @param {string} hubName\r\n */\r\n updateTaskHubLicenseDetails(taskHubLicenseDetails, hubName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n hubName: hubName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"distributedtask\", \"f9f0f436-b8a1-4475-9041-1ccdbf8f0128\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, taskHubLicenseDetails, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.InputValidationRequest} inputValidationRequest\r\n */\r\n validateInputs(inputValidationRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"58475b1e-adaf-4155-9bc1-e04bf1fff4c2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, inputValidationRequest, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} requestId\r\n * @param {string} lockToken\r\n * @param {TaskAgentInterfaces.TaskResult} result\r\n * @param {boolean} agentShuttingDown\r\n */\r\n deleteAgentRequest(poolId, requestId, lockToken, result, agentShuttingDown) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (lockToken == null) {\r\n throw new TypeError('lockToken can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n requestId: requestId\r\n };\r\n let queryValues = {\r\n lockToken: lockToken,\r\n result: result,\r\n agentShuttingDown: agentShuttingDown,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} requestId\r\n * @param {boolean} includeStatus\r\n */\r\n getAgentRequest(poolId, requestId, includeStatus) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n requestId: requestId\r\n };\r\n let queryValues = {\r\n includeStatus: includeStatus,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} top\r\n * @param {string} continuationToken\r\n */\r\n getAgentRequests(poolId, top, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (top == null) {\r\n throw new TypeError('top can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} agentId\r\n * @param {number} completedRequestCount\r\n */\r\n getAgentRequestsForAgent(poolId, agentId, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (agentId == null) {\r\n throw new TypeError('agentId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n agentId: agentId,\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number[]} agentIds\r\n * @param {number} completedRequestCount\r\n */\r\n getAgentRequestsForAgents(poolId, agentIds, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n agentIds: agentIds && agentIds.join(\",\"),\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {string} planId\r\n * @param {string} jobId\r\n */\r\n getAgentRequestsForPlan(poolId, planId, jobId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (planId == null) {\r\n throw new TypeError('planId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n planId: planId,\r\n jobId: jobId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentJobRequest} request\r\n * @param {number} poolId\r\n */\r\n queueAgentRequestByPool(request, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, request, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentJobRequest} request\r\n * @param {number} poolId\r\n * @param {number} requestId\r\n * @param {string} lockToken\r\n * @param {TaskAgentInterfaces.TaskAgentRequestUpdateOptions} updateOptions\r\n */\r\n updateAgentRequest(request, poolId, requestId, lockToken, updateOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (lockToken == null) {\r\n throw new TypeError('lockToken can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n requestId: requestId\r\n };\r\n let queryValues = {\r\n lockToken: lockToken,\r\n updateOptions: updateOptions,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, request, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.KubernetesResourceCreateParameters} createParameters\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n */\r\n addKubernetesResource(createParameters, project, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"73fba52f-15ab-42b3-a538-ce67a9223a04\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, createParameters, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.KubernetesResource, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n */\r\n deleteKubernetesResource(project, environmentId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"73fba52f-15ab-42b3-a538-ce67a9223a04\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n */\r\n getKubernetesResource(project, environmentId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"73fba52f-15ab-42b3-a538-ce67a9223a04\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.KubernetesResource, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n */\r\n generateDeploymentMachineGroupAccessToken(project, machineGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"f8c7c0de-ac0d-469b-9cb1-c21f72d67693\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachineGroup} machineGroup\r\n * @param {string} project - Project ID or project name\r\n */\r\n addDeploymentMachineGroup(machineGroup, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"d4adf50f-80c6-4ac8-9ca1-6e4e544286e9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, machineGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n */\r\n deleteDeploymentMachineGroup(project, machineGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"d4adf50f-80c6-4ac8-9ca1-6e4e544286e9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n * @param {TaskAgentInterfaces.MachineGroupActionFilter} actionFilter\r\n */\r\n getDeploymentMachineGroup(project, machineGroupId, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n let queryValues = {\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"d4adf50f-80c6-4ac8-9ca1-6e4e544286e9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} machineGroupName\r\n * @param {TaskAgentInterfaces.MachineGroupActionFilter} actionFilter\r\n */\r\n getDeploymentMachineGroups(project, machineGroupName, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n machineGroupName: machineGroupName,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"d4adf50f-80c6-4ac8-9ca1-6e4e544286e9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachineGroup} machineGroup\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n */\r\n updateDeploymentMachineGroup(machineGroup, project, machineGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"d4adf50f-80c6-4ac8-9ca1-6e4e544286e9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machineGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n * @param {string[]} tagFilters\r\n */\r\n getDeploymentMachineGroupMachines(project, machineGroupId, tagFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n let queryValues = {\r\n tagFilters: tagFilters && tagFilters.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"966c3874-c347-4b18-a90c-d509116717fd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachine[]} deploymentMachines\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n */\r\n updateDeploymentMachineGroupMachines(deploymentMachines, project, machineGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"966c3874-c347-4b18-a90c-d509116717fd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, deploymentMachines, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n */\r\n addDeploymentMachine(machine, project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number} machineId\r\n */\r\n deleteDeploymentMachine(project, deploymentGroupId, machineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n machineId: machineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number} machineId\r\n * @param {TaskAgentInterfaces.DeploymentMachineExpands} expand\r\n */\r\n getDeploymentMachine(project, deploymentGroupId, machineId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n machineId: machineId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {string[]} tags\r\n * @param {string} name\r\n * @param {TaskAgentInterfaces.DeploymentMachineExpands} expand\r\n */\r\n getDeploymentMachines(project, deploymentGroupId, tags, name, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n tags: tags && tags.join(\",\"),\r\n name: name,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number} machineId\r\n */\r\n replaceDeploymentMachine(machine, project, deploymentGroupId, machineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n machineId: machineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number} machineId\r\n */\r\n updateDeploymentMachine(machine, project, deploymentGroupId, machineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n machineId: machineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachine[]} machines\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n */\r\n updateDeploymentMachines(machines, project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machines, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceDefinition} definition\r\n * @param {number} poolId\r\n */\r\n createAgentPoolMaintenanceDefinition(definition, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"80572e16-58f0-4419-ac07-d19fde32195c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, definition, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} definitionId\r\n */\r\n deleteAgentPoolMaintenanceDefinition(poolId, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"80572e16-58f0-4419-ac07-d19fde32195c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} definitionId\r\n */\r\n getAgentPoolMaintenanceDefinition(poolId, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"80572e16-58f0-4419-ac07-d19fde32195c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n */\r\n getAgentPoolMaintenanceDefinitions(poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"80572e16-58f0-4419-ac07-d19fde32195c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceDefinition} definition\r\n * @param {number} poolId\r\n * @param {number} definitionId\r\n */\r\n updateAgentPoolMaintenanceDefinition(definition, poolId, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"80572e16-58f0-4419-ac07-d19fde32195c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, definition, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} jobId\r\n */\r\n deleteAgentPoolMaintenanceJob(poolId, jobId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n jobId: jobId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} jobId\r\n */\r\n getAgentPoolMaintenanceJob(poolId, jobId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n jobId: jobId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} jobId\r\n */\r\n getAgentPoolMaintenanceJobLogs(poolId, jobId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n jobId: jobId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} definitionId\r\n */\r\n getAgentPoolMaintenanceJobs(poolId, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n definitionId: definitionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceJob} job\r\n * @param {number} poolId\r\n */\r\n queueAgentPoolMaintenanceJob(job, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, job, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceJob} job\r\n * @param {number} poolId\r\n * @param {number} jobId\r\n */\r\n updateAgentPoolMaintenanceJob(job, poolId, jobId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n jobId: jobId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, job, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} messageId\r\n * @param {string} sessionId\r\n */\r\n deleteMessage(poolId, messageId, sessionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (sessionId == null) {\r\n throw new TypeError('sessionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n messageId: messageId\r\n };\r\n let queryValues = {\r\n sessionId: sessionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {string} sessionId\r\n * @param {number} lastMessageId\r\n */\r\n getMessage(poolId, sessionId, lastMessageId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (sessionId == null) {\r\n throw new TypeError('sessionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n sessionId: sessionId,\r\n lastMessageId: lastMessageId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} agentId\r\n */\r\n refreshAgent(poolId, agentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (agentId == null) {\r\n throw new TypeError('agentId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n agentId: agentId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n */\r\n refreshAgents(poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentMessage} message\r\n * @param {number} poolId\r\n * @param {number} requestId\r\n */\r\n sendMessage(message, poolId, requestId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (requestId == null) {\r\n throw new TypeError('requestId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n requestId: requestId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, message, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} packageType\r\n * @param {string} platform\r\n * @param {string} version\r\n */\r\n getPackage(packageType, platform, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n packageType: packageType,\r\n platform: platform,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"8ffcd551-079c-493a-9c02-54346299d144\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.PackageMetadata, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} packageType\r\n * @param {string} platform\r\n * @param {number} top\r\n */\r\n getPackages(packageType, platform, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n packageType: packageType,\r\n platform: platform\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"8ffcd551-079c-493a-9c02-54346299d144\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.PackageMetadata, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n */\r\n getAgentPoolMetadata(poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"0d62f887-9f53-48b9-9161-4c35d5735b0f\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} agentPoolMetadata\r\n * @param {number} poolId\r\n */\r\n setAgentPoolMetadata(customHeaders, agentPoolMetadata, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"0d62f887-9f53-48b9-9161-4c35d5735b0f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.replace(url, agentPoolMetadata, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create an agent pool.\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgentPool} pool - Details about the new agent pool\r\n */\r\n addAgentPool(pool) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, pool, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete an agent pool.\r\n *\r\n * @param {number} poolId - ID of the agent pool to delete\r\n */\r\n deleteAgentPool(poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get information about an agent pool.\r\n *\r\n * @param {number} poolId - An agent pool ID\r\n * @param {string[]} properties - Agent pool properties (comma-separated)\r\n * @param {TaskAgentInterfaces.TaskAgentPoolActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentPool(poolId, properties, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n properties: properties && properties.join(\",\"),\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent pools.\r\n *\r\n * @param {string} poolName - Filter by name\r\n * @param {string[]} properties - Filter by agent pool properties (comma-separated)\r\n * @param {TaskAgentInterfaces.TaskAgentPoolType} poolType - Filter by pool type\r\n * @param {TaskAgentInterfaces.TaskAgentPoolActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentPools(poolName, properties, poolType, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n poolName: poolName,\r\n properties: properties && properties.join(\",\"),\r\n poolType: poolType,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent pools.\r\n *\r\n * @param {number[]} poolIds - pool Ids to fetch\r\n * @param {TaskAgentInterfaces.TaskAgentPoolActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentPoolsByIds(poolIds, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (poolIds == null) {\r\n throw new TypeError('poolIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n poolIds: poolIds && poolIds.join(\",\"),\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update properties on an agent pool\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgentPool} pool - Updated agent pool details\r\n * @param {number} poolId - The agent pool to update\r\n */\r\n updateAgentPool(pool, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, pool, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a new agent queue to connect a project to an agent pool.\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgentQueue} queue - Details about the queue to create\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} authorizePipelines - Automatically authorize this queue when using YAML\r\n */\r\n addAgentQueue(queue, project, authorizePipelines) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n authorizePipelines: authorizePipelines,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, queue, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a new team project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n createTeamProject(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes an agent queue from a project.\r\n *\r\n * @param {number} queueId - The agent queue to remove\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteAgentQueue(queueId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n queueId: queueId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get information about an agent queue.\r\n *\r\n * @param {number} queueId - The agent queue to get information about\r\n * @param {string} project - Project ID or project name\r\n * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentQueue(queueId, project, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n queueId: queueId\r\n };\r\n let queryValues = {\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent queues.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} queueName - Filter on the agent queue name\r\n * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentQueues(project, queueName, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n queueName: queueName,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent queues by their IDs\r\n *\r\n * @param {number[]} queueIds - A comma-separated list of agent queue IDs to retrieve\r\n * @param {string} project - Project ID or project name\r\n * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentQueuesByIds(queueIds, project, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (queueIds == null) {\r\n throw new TypeError('queueIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n queueIds: queueIds && queueIds.join(\",\"),\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent queues by their names\r\n *\r\n * @param {string[]} queueNames - A comma-separated list of agent names to retrieve\r\n * @param {string} project - Project ID or project name\r\n * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentQueuesByNames(queueNames, project, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (queueNames == null) {\r\n throw new TypeError('queueNames can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n queueNames: queueNames && queueNames.join(\",\"),\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent queues by pool ids\r\n *\r\n * @param {number[]} poolIds - A comma-separated list of pool ids to get the corresponding queues for\r\n * @param {string} project - Project ID or project name\r\n * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentQueuesForPools(poolIds, project, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (poolIds == null) {\r\n throw new TypeError('poolIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n poolIds: poolIds && poolIds.join(\",\"),\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} agentCloudId\r\n */\r\n getAgentCloudRequests(agentCloudId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n agentCloudId: agentCloudId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"20189bd7-5134-49c2-b8e9-f9e856eea2b2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentCloudRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getResourceLimits() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"1f1f0557-c445-42a6-b4a0-0df605a3a0f8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} parallelismTag\r\n * @param {boolean} poolIsHosted\r\n * @param {boolean} includeRunningRequests\r\n */\r\n getResourceUsage(parallelismTag, poolIsHosted, includeRunningRequests) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n parallelismTag: parallelismTag,\r\n poolIsHosted: poolIsHosted,\r\n includeRunningRequests: includeRunningRequests,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"eae1d376-a8b1-4475-9041-1dfdbe8f0143\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.ResourceUsage, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId\r\n */\r\n getTaskGroupHistory(project, taskGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"100cc92a-b255-47fa-9ab3-e44a2985a3ac\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroupRevision, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a secure file\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} secureFileId - The unique secure file Id\r\n */\r\n deleteSecureFile(project, secureFileId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n secureFileId: secureFileId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a secure file by Id\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} secureFileId - The unique secure file Id\r\n * @param {string} ticket - A valid download ticket\r\n * @param {boolean} download - If download is true, the file is sent as attachement in the response body. If download is false, the response body contains the file stream.\r\n */\r\n downloadSecureFile(project, secureFileId, ticket, download) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ticket == null) {\r\n throw new TypeError('ticket can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n secureFileId: secureFileId\r\n };\r\n let queryValues = {\r\n ticket: ticket,\r\n download: download,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a secure file\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} secureFileId - The unique secure file Id\r\n * @param {boolean} includeDownloadTicket - If includeDownloadTicket is true and the caller has permissions, a download ticket is included in the response.\r\n * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter\r\n */\r\n getSecureFile(project, secureFileId, includeDownloadTicket, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n secureFileId: secureFileId\r\n };\r\n let queryValues = {\r\n includeDownloadTicket: includeDownloadTicket,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get secure files\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} namePattern - Name of the secure file to match. Can include wildcards to match multiple files.\r\n * @param {boolean} includeDownloadTickets - If includeDownloadTickets is true and the caller has permissions, a download ticket for each secure file is included in the response.\r\n * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter - Filter by secure file permissions for View, Manage or Use action. Defaults to View.\r\n */\r\n getSecureFiles(project, namePattern, includeDownloadTickets, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n namePattern: namePattern,\r\n includeDownloadTickets: includeDownloadTickets,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get secure files\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string[]} secureFileIds - A list of secure file Ids\r\n * @param {boolean} includeDownloadTickets - If includeDownloadTickets is true and the caller has permissions, a download ticket for each secure file is included in the response.\r\n * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter\r\n */\r\n getSecureFilesByIds(project, secureFileIds, includeDownloadTickets, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (secureFileIds == null) {\r\n throw new TypeError('secureFileIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n secureFileIds: secureFileIds && secureFileIds.join(\",\"),\r\n includeDownloadTickets: includeDownloadTickets,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get secure files\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string[]} secureFileNames - A list of secure file Ids\r\n * @param {boolean} includeDownloadTickets - If includeDownloadTickets is true and the caller has permissions, a download ticket for each secure file is included in the response.\r\n * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter\r\n */\r\n getSecureFilesByNames(project, secureFileNames, includeDownloadTickets, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (secureFileNames == null) {\r\n throw new TypeError('secureFileNames can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n secureFileNames: secureFileNames && secureFileNames.join(\",\"),\r\n includeDownloadTickets: includeDownloadTickets,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Query secure files using a name pattern and a condition on file properties.\r\n *\r\n * @param {string} condition - The main condition syntax is described [here](https://go.microsoft.com/fwlink/?linkid=842996). Use the *property('property-name')* function to access the value of the specified property of a secure file. It returns null if the property is not set. E.g. ``` and( eq( property('devices'), '2' ), in( property('provisioning profile type'), 'ad hoc', 'development' ) ) ```\r\n * @param {string} project - Project ID or project name\r\n * @param {string} namePattern - Name of the secure file to match. Can include wildcards to match multiple files.\r\n */\r\n querySecureFilesByProperties(condition, project, namePattern) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n namePattern: namePattern,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, condition, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the name or properties of an existing secure file\r\n *\r\n * @param {TaskAgentInterfaces.SecureFile} secureFile - The secure file with updated name and/or properties\r\n * @param {string} project - Project ID or project name\r\n * @param {string} secureFileId - The unique secure file Id\r\n */\r\n updateSecureFile(secureFile, project, secureFileId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n secureFileId: secureFileId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, secureFile, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update properties and/or names of a set of secure files. Files are identified by their IDs. Properties provided override the existing one entirely, i.e. do not merge.\r\n *\r\n * @param {TaskAgentInterfaces.SecureFile[]} secureFiles - A list of secure file objects. Only three field must be populated Id, Name, and Properties. The rest of fields in the object are ignored.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateSecureFiles(secureFiles, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, secureFiles, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Upload a secure file, include the file stream in the request body\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} project - Project ID or project name\r\n * @param {string} name - Name of the file to upload\r\n * @param {boolean} authorizePipelines - If authorizePipelines is true, then the secure file is authorized for use by all pipelines in the project.\r\n */\r\n uploadSecureFile(customHeaders, contentStream, project, name, authorizePipelines) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (name == null) {\r\n throw new TypeError('name can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n name: name,\r\n authorizePipelines: authorizePipelines,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentSession} session\r\n * @param {number} poolId\r\n */\r\n createAgentSession(session, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"134e239e-2df3-4794-a6f6-24f1f19ec8dc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, session, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentSession, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {string} sessionId\r\n */\r\n deleteAgentSession(poolId, sessionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n sessionId: sessionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"134e239e-2df3-4794-a6f6-24f1f19ec8dc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Register a deployment target to a deployment group. Generally this is called by agent configuration tool.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine - Deployment target to register.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group to which the deployment target is registered.\r\n */\r\n addDeploymentTarget(machine, project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a deployment target in a deployment group. This deletes the agent from associated deployment pool too.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group in which deployment target is deleted.\r\n * @param {number} targetId - ID of the deployment target to delete.\r\n */\r\n deleteDeploymentTarget(project, deploymentGroupId, targetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n targetId: targetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a deployment target by its ID in a deployment group\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group to which deployment target belongs.\r\n * @param {number} targetId - ID of the deployment target to return.\r\n * @param {TaskAgentInterfaces.DeploymentTargetExpands} expand - Include these additional details in the returned objects.\r\n */\r\n getDeploymentTarget(project, deploymentGroupId, targetId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n targetId: targetId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of deployment targets in a deployment group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group.\r\n * @param {string[]} tags - Get only the deployment targets that contain all these comma separted list of tags.\r\n * @param {string} name - Name pattern of the deployment targets to return.\r\n * @param {boolean} partialNameMatch - When set to true, treats **name** as pattern. Else treats it as absolute match. Default is **false**.\r\n * @param {TaskAgentInterfaces.DeploymentTargetExpands} expand - Include these additional details in the returned objects.\r\n * @param {TaskAgentInterfaces.TaskAgentStatusFilter} agentStatus - Get only deployment targets that have this status.\r\n * @param {TaskAgentInterfaces.TaskAgentJobResultFilter} agentJobResult - Get only deployment targets that have this last job result.\r\n * @param {string} continuationToken - Get deployment targets with names greater than this continuationToken lexicographically.\r\n * @param {number} top - Maximum number of deployment targets to return. Default is **1000**.\r\n * @param {boolean} enabled - Get only deployment targets that are enabled or disabled. Default is 'null' which returns all the targets.\r\n * @param {string[]} propertyFilters\r\n */\r\n getDeploymentTargets(project, deploymentGroupId, tags, name, partialNameMatch, expand, agentStatus, agentJobResult, continuationToken, top, enabled, propertyFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n tags: tags && tags.join(\",\"),\r\n name: name,\r\n partialNameMatch: partialNameMatch,\r\n '$expand': expand,\r\n agentStatus: agentStatus,\r\n agentJobResult: agentJobResult,\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n enabled: enabled,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replace a deployment target in a deployment group. Generally this is called by agent configuration tool.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine - New deployment target.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group in which deployment target is replaced.\r\n * @param {number} targetId - ID of the deployment target to replace.\r\n */\r\n replaceDeploymentTarget(machine, project, deploymentGroupId, targetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n targetId: targetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a deployment target and its agent properties in a deployment group. Generally this is called by agent configuration tool.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine - Deployment target to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group in which deployment target is updated.\r\n * @param {number} targetId - ID of the deployment target to update.\r\n */\r\n updateDeploymentTarget(machine, project, deploymentGroupId, targetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n targetId: targetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update tags of a list of deployment targets in a deployment group.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentTargetUpdateParameter[]} machines - Deployment targets with tags to udpdate.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group in which deployment targets are updated.\r\n */\r\n updateDeploymentTargets(machines, project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machines, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a task group.\r\n *\r\n * @param {TaskAgentInterfaces.TaskGroupCreateParameter} taskGroup - Task group object to create.\r\n * @param {string} project - Project ID or project name\r\n */\r\n addTaskGroup(taskGroup, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, taskGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a task group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId - Id of the task group to be deleted.\r\n * @param {string} comment - Comments to delete.\r\n */\r\n deleteTaskGroup(project, taskGroupId, comment) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n let queryValues = {\r\n comment: comment,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get task group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId - Id of the task group.\r\n * @param {string} versionSpec - version specification of the task group. examples: 1, 1.0.\r\n * @param {TaskAgentInterfaces.TaskGroupExpands} expand - The properties that should be expanded. example $expand=Tasks will expand nested task groups.\r\n */\r\n getTaskGroup(project, taskGroupId, versionSpec, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (versionSpec == null) {\r\n throw new TypeError('versionSpec can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n let queryValues = {\r\n versionSpec: versionSpec,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId\r\n * @param {number} revision\r\n */\r\n getTaskGroupRevision(project, taskGroupId, revision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (revision == null) {\r\n throw new TypeError('revision can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List task groups.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId - Id of the task group.\r\n * @param {boolean} expanded - 'true' to recursively expand task groups. Default is 'false'.\r\n * @param {string} taskIdFilter - Guid of the taskId to filter.\r\n * @param {boolean} deleted - 'true'to include deleted task groups. Default is 'false'.\r\n * @param {number} top - Number of task groups to get.\r\n * @param {Date} continuationToken - Gets the task groups after the continuation token provided.\r\n * @param {TaskAgentInterfaces.TaskGroupQueryOrder} queryOrder - Gets the results in the defined order. Default is 'CreatedOnDescending'.\r\n */\r\n getTaskGroups(project, taskGroupId, expanded, taskIdFilter, deleted, top, continuationToken, queryOrder) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n let queryValues = {\r\n expanded: expanded,\r\n taskIdFilter: taskIdFilter,\r\n deleted: deleted,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n queryOrder: queryOrder,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.PublishTaskGroupMetadata} taskGroupMetadata\r\n * @param {string} project - Project ID or project name\r\n * @param {string} parentTaskGroupId\r\n */\r\n publishTaskGroup(taskGroupMetadata, project, parentTaskGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (parentTaskGroupId == null) {\r\n throw new TypeError('parentTaskGroupId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n parentTaskGroupId: parentTaskGroupId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, taskGroupMetadata, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskGroup} taskGroup\r\n * @param {string} project - Project ID or project name\r\n */\r\n undeleteTaskGroup(taskGroup, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, taskGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a task group.\r\n *\r\n * @param {TaskAgentInterfaces.TaskGroupUpdateParameter} taskGroup - Task group to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId - Id of the task group to update.\r\n */\r\n updateTaskGroup(taskGroup, project, taskGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, taskGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskGroupUpdatePropertiesBase} taskGroupUpdateProperties\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId\r\n * @param {boolean} disablePriorVersions\r\n */\r\n updateTaskGroupProperties(taskGroupUpdateProperties, project, taskGroupId, disablePriorVersions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n let queryValues = {\r\n disablePriorVersions: disablePriorVersions,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, taskGroupUpdateProperties, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} taskId\r\n */\r\n deleteTaskDefinition(taskId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n taskId: taskId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string} versionString\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n */\r\n getTaskContentZip(taskId, versionString, visibility, scopeLocal) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n taskId: taskId,\r\n versionString: versionString\r\n };\r\n let queryValues = {\r\n visibility: visibility,\r\n scopeLocal: scopeLocal,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string} versionString\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n */\r\n getTaskDefinition(taskId, versionString, visibility, scopeLocal) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n taskId: taskId,\r\n versionString: versionString\r\n };\r\n let queryValues = {\r\n visibility: visibility,\r\n scopeLocal: scopeLocal,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n * @param {boolean} allVersions\r\n */\r\n getTaskDefinitions(taskId, visibility, scopeLocal, allVersions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n taskId: taskId\r\n };\r\n let queryValues = {\r\n visibility: visibility,\r\n scopeLocal: scopeLocal,\r\n allVersions: allVersions,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} agentId\r\n * @param {string} currentState\r\n */\r\n updateAgentUpdateState(poolId, agentId, currentState) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (currentState == null) {\r\n throw new TypeError('currentState can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n let queryValues = {\r\n currentState: currentState,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8cc1b02b-ae49-4516-b5ad-4f9b29967c30\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {{ [key: string] : string; }} userCapabilities\r\n * @param {number} poolId\r\n * @param {number} agentId\r\n */\r\n updateAgentUserCapabilities(userCapabilities, poolId, agentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"30ba3ada-fedf-4da8-bbb5-dacf2f82e176\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, userCapabilities, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a variable group.\r\n *\r\n * @param {TaskAgentInterfaces.VariableGroupParameters} variableGroupParameters\r\n */\r\n addVariableGroup(variableGroupParameters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, variableGroupParameters, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a variable group\r\n *\r\n * @param {number} groupId - Id of the variable group.\r\n * @param {string[]} projectIds\r\n */\r\n deleteVariableGroup(groupId, projectIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (projectIds == null) {\r\n throw new TypeError('projectIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n groupId: groupId\r\n };\r\n let queryValues = {\r\n projectIds: projectIds && projectIds.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a variable group.\r\n *\r\n * @param {TaskAgentInterfaces.VariableGroupProjectReference[]} variableGroupProjectReferences\r\n * @param {number} variableGroupId\r\n */\r\n shareVariableGroup(variableGroupProjectReferences, variableGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (variableGroupId == null) {\r\n throw new TypeError('variableGroupId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n variableGroupId: variableGroupId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, variableGroupProjectReferences, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a variable group.\r\n *\r\n * @param {TaskAgentInterfaces.VariableGroupParameters} variableGroupParameters\r\n * @param {number} groupId - Id of the variable group to update.\r\n */\r\n updateVariableGroup(variableGroupParameters, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, variableGroupParameters, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a variable group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} groupId - Id of the variable group.\r\n */\r\n getVariableGroup(project, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"f5b09dd5-9d54-45a1-8b5a-1c8287d634cc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get variable groups.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} groupName - Name of variable group.\r\n * @param {TaskAgentInterfaces.VariableGroupActionFilter} actionFilter - Action filter for the variable group. It specifies the action which can be performed on the variable groups.\r\n * @param {number} top - Number of variable groups to get.\r\n * @param {number} continuationToken - Gets the variable groups after the continuation token provided.\r\n * @param {TaskAgentInterfaces.VariableGroupQueryOrder} queryOrder - Gets the results in the defined order. Default is 'IdDescending'.\r\n */\r\n getVariableGroups(project, groupName, actionFilter, top, continuationToken, queryOrder) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n groupName: groupName,\r\n actionFilter: actionFilter,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n queryOrder: queryOrder,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"f5b09dd5-9d54-45a1-8b5a-1c8287d634cc\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get variable groups by ids.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number[]} groupIds - Comma separated list of Ids of variable groups.\r\n */\r\n getVariableGroupsById(project, groupIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (groupIds == null) {\r\n throw new TypeError('groupIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n groupIds: groupIds && groupIds.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"f5b09dd5-9d54-45a1-8b5a-1c8287d634cc\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.VirtualMachineGroupCreateParameters} createParameters\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n */\r\n addVirtualMachineGroup(createParameters, project, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9e597901-4af7-4cc3-8d92-47d54db8ebfb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, createParameters, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n */\r\n deleteVirtualMachineGroup(project, environmentId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9e597901-4af7-4cc3-8d92-47d54db8ebfb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n */\r\n getVirtualMachineGroup(project, environmentId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9e597901-4af7-4cc3-8d92-47d54db8ebfb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.VirtualMachineGroup} resource\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n */\r\n updateVirtualMachineGroup(resource, project, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9e597901-4af7-4cc3-8d92-47d54db8ebfb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, resource, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n * @param {string} continuationToken\r\n * @param {string} name\r\n * @param {boolean} partialNameMatch\r\n * @param {string[]} tags\r\n * @param {number} top\r\n */\r\n getVirtualMachines(project, environmentId, resourceId, continuationToken, name, partialNameMatch, tags, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n name: name,\r\n partialNameMatch: partialNameMatch,\r\n tags: tags && tags.join(\",\"),\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"48700676-2ba5-4282-8ec8-083280d169c7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.VirtualMachine[]} machines\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n */\r\n updateVirtualMachines(machines, project, environmentId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"48700676-2ba5-4282-8ec8-083280d169c7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machines, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.AadOauthTokenRequest} authenticationRequest\r\n */\r\n acquireAccessToken(authenticationRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9c63205e-3a0f-42a0-ad88-095200f13607\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, authenticationRequest, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} tenantId\r\n * @param {string} redirectUri\r\n * @param {TaskAgentInterfaces.AadLoginPromptOption} promptOption\r\n * @param {string} completeCallbackPayload\r\n * @param {boolean} completeCallbackByAuthCode\r\n */\r\n createAadOAuthRequest(tenantId, redirectUri, promptOption, completeCallbackPayload, completeCallbackByAuthCode) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (tenantId == null) {\r\n throw new TypeError('tenantId can not be null or undefined');\r\n }\r\n if (redirectUri == null) {\r\n throw new TypeError('redirectUri can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n tenantId: tenantId,\r\n redirectUri: redirectUri,\r\n promptOption: promptOption,\r\n completeCallbackPayload: completeCallbackPayload,\r\n completeCallbackByAuthCode: completeCallbackByAuthCode,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9c63205e-3a0f-42a0-ad88-095200f13607\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getVstsAadTenantId() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9c63205e-3a0f-42a0-ad88-095200f13607\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * GET the Yaml schema used for Yaml file validation.\r\n *\r\n * @param {boolean} validateTaskNames - Whether the schema should validate that tasks are actually installed (useful for offline tools where you don't want validation).\r\n */\r\n getYamlSchema(validateTaskNames) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n validateTaskNames: validateTaskNames,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"1f9990b9-1dba-441f-9c2e-6485888c42b6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nTaskAgentApiBase.RESOURCE_AREA_ID = \"a85b8835-c1a1-4aac-ae97-1c3d0ba72dbd\";\r\nexports.TaskAgentApiBase = TaskAgentApiBase;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst TaskAgentInterfaces = require(\"./interfaces/TaskAgentInterfaces\");\r\nclass TaskApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Task-api', options);\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} type\r\n */\r\n getPlanAttachments(scopeIdentifier, hubName, planId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"eb55e5d6-2f30-4295-b5ed-38da50b1fc52\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} type\r\n * @param {string} name\r\n */\r\n createAttachment(customHeaders, contentStream, scopeIdentifier, hubName, planId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"7898f959-9cdf-4096-b29e-7f293031629e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} type\r\n * @param {string} name\r\n * @param {string} artifactHash\r\n * @param {number} length\r\n */\r\n createAttachmentFromArtifact(scopeIdentifier, hubName, planId, timelineId, recordId, type, name, artifactHash, length) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactHash == null) {\r\n throw new TypeError('artifactHash can not be null or undefined');\r\n }\r\n if (length == null) {\r\n throw new TypeError('length can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n let queryValues = {\r\n artifactHash: artifactHash,\r\n length: length,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"7898f959-9cdf-4096-b29e-7f293031629e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} type\r\n * @param {string} name\r\n */\r\n getAttachment(scopeIdentifier, hubName, planId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"7898f959-9cdf-4096-b29e-7f293031629e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} type\r\n * @param {string} name\r\n */\r\n getAttachmentContent(scopeIdentifier, hubName, planId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"7898f959-9cdf-4096-b29e-7f293031629e\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} type\r\n */\r\n getAttachments(scopeIdentifier, hubName, planId, timelineId, recordId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"7898f959-9cdf-4096-b29e-7f293031629e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TimelineRecordFeedLinesWrapper} lines\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n */\r\n appendTimelineRecordFeed(lines, scopeIdentifier, hubName, planId, timelineId, recordId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"858983e4-19bd-4c5e-864c-507b59b58b12\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, lines, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} stepId\r\n * @param {number} endLine\r\n * @param {number} takeCount\r\n * @param {string} continuationToken\r\n */\r\n getLines(scopeIdentifier, hubName, planId, timelineId, recordId, stepId, endLine, takeCount, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (stepId == null) {\r\n throw new TypeError('stepId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId\r\n };\r\n let queryValues = {\r\n stepId: stepId,\r\n endLine: endLine,\r\n takeCount: takeCount,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"858983e4-19bd-4c5e-864c-507b59b58b12\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} orchestrationId\r\n */\r\n getJobInstance(scopeIdentifier, hubName, orchestrationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n orchestrationId: orchestrationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"0a1efd25-abda-43bd-9629-6c7bdd2e0d60\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJob, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {number} logId\r\n */\r\n appendLogContent(customHeaders, contentStream, scopeIdentifier, hubName, planId, logId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n logId: logId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"46f5667d-263a-4684-91b1-dff7fdcf64e2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {number} logId\r\n * @param {string} serializedBlobId\r\n * @param {number} lineCount\r\n */\r\n associateLog(scopeIdentifier, hubName, planId, logId, serializedBlobId, lineCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (serializedBlobId == null) {\r\n throw new TypeError('serializedBlobId can not be null or undefined');\r\n }\r\n if (lineCount == null) {\r\n throw new TypeError('lineCount can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n logId: logId\r\n };\r\n let queryValues = {\r\n serializedBlobId: serializedBlobId,\r\n lineCount: lineCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"46f5667d-263a-4684-91b1-dff7fdcf64e2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskLog} log\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n */\r\n createLog(log, scopeIdentifier, hubName, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"46f5667d-263a-4684-91b1-dff7fdcf64e2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, log, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {number} logId\r\n * @param {number} startLine\r\n * @param {number} endLine\r\n */\r\n getLog(scopeIdentifier, hubName, planId, logId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n logId: logId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"46f5667d-263a-4684-91b1-dff7fdcf64e2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n */\r\n getLogs(scopeIdentifier, hubName, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"46f5667d-263a-4684-91b1-dff7fdcf64e2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n */\r\n getPlanGroupsQueueMetrics(scopeIdentifier, hubName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"038fd4d5-cda7-44ca-92c0-935843fee1a7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationPlanGroupsQueueMetrics, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {TaskAgentInterfaces.PlanGroupStatus} statusFilter\r\n * @param {number} count\r\n */\r\n getQueuedPlanGroups(scopeIdentifier, hubName, statusFilter, count) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName\r\n };\r\n let queryValues = {\r\n statusFilter: statusFilter,\r\n count: count,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"0dd73091-3e36-4f43-b443-1b76dd426d84\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationQueuedPlanGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planGroup\r\n */\r\n getQueuedPlanGroup(scopeIdentifier, hubName, planGroup) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planGroup: planGroup\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"65fd0708-bc1e-447b-a731-0587c5464e5b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationQueuedPlanGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n */\r\n getPlan(scopeIdentifier, hubName, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"5cecd946-d704-471e-a45f-3b4064fcfaba\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationPlan, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {number} changeId\r\n */\r\n getRecords(scopeIdentifier, hubName, planId, timelineId, changeId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId\r\n };\r\n let queryValues = {\r\n changeId: changeId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8893bc5b-35b2-4be7-83cb-99e683551db4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TimelineRecord, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {VSSInterfaces.VssJsonCollectionWrapperV} records\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n */\r\n updateRecords(records, scopeIdentifier, hubName, planId, timelineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8893bc5b-35b2-4be7-83cb-99e683551db4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, records, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TimelineRecord, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.Timeline} timeline\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n */\r\n createTimeline(timeline, scopeIdentifier, hubName, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"83597576-cc2c-453c-bea6-2882ae6a1653\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, timeline, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.Timeline, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n */\r\n deleteTimeline(scopeIdentifier, hubName, planId, timelineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"83597576-cc2c-453c-bea6-2882ae6a1653\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {number} changeId\r\n * @param {boolean} includeRecords\r\n */\r\n getTimeline(scopeIdentifier, hubName, planId, timelineId, changeId, includeRecords) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId\r\n };\r\n let queryValues = {\r\n changeId: changeId,\r\n includeRecords: includeRecords,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"83597576-cc2c-453c-bea6-2882ae6a1653\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.Timeline, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n */\r\n getTimelines(scopeIdentifier, hubName, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"83597576-cc2c-453c-bea6-2882ae6a1653\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.Timeline, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.TaskApi = TaskApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst TestInterfaces = require(\"./interfaces/TestInterfaces\");\r\nclass TestApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Test-api', options);\r\n }\r\n /**\r\n * Attach a file to test step result\r\n *\r\n * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment details TestAttachmentRequestModel\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test result that contains the iteration\r\n * @param {number} iterationId - ID of the test result iteration.\r\n * @param {string} actionPath - Hex value of test result action path.\r\n */\r\n createTestIterationResultAttachment(attachmentRequestModel, project, runId, testCaseResultId, iterationId, actionPath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (iterationId == null) {\r\n throw new TypeError('iterationId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n let queryValues = {\r\n iterationId: iterationId,\r\n actionPath: actionPath,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, attachmentRequestModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Attach a file to a test result.\r\n *\r\n * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment details TestAttachmentRequestModel\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test result against which attachment has to be uploaded.\r\n */\r\n createTestResultAttachment(attachmentRequestModel, project, runId, testCaseResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, attachmentRequestModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Attach a file to a test result\r\n *\r\n * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment Request Model.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test results that contains sub result.\r\n * @param {number} testSubResultId - ID of the test sub results against which attachment has to be uploaded.\r\n */\r\n createTestSubResultAttachment(attachmentRequestModel, project, runId, testCaseResultId, testSubResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testSubResultId == null) {\r\n throw new TypeError('testSubResultId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n let queryValues = {\r\n testSubResultId: testSubResultId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, attachmentRequestModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test result attachment by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the testCaseResultId.\r\n * @param {number} testCaseResultId - ID of the test result whose attachment has to be downloaded.\r\n * @param {number} attachmentId - ID of the test result attachment to be downloaded.\r\n */\r\n getTestResultAttachmentContent(project, runId, testCaseResultId, attachmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId,\r\n attachmentId: attachmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get list of test result attachments reference.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test result.\r\n */\r\n getTestResultAttachments(project, runId, testCaseResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test result attachment by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the testCaseResultId.\r\n * @param {number} testCaseResultId - ID of the test result whose attachment has to be downloaded.\r\n * @param {number} attachmentId - ID of the test result attachment to be downloaded.\r\n */\r\n getTestResultAttachmentZip(project, runId, testCaseResultId, attachmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId,\r\n attachmentId: attachmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test sub result attachment\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test results that contains sub result.\r\n * @param {number} attachmentId - ID of the test result attachment to be downloaded\r\n * @param {number} testSubResultId - ID of the test sub result whose attachment has to be downloaded\r\n */\r\n getTestSubResultAttachmentContent(project, runId, testCaseResultId, attachmentId, testSubResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testSubResultId == null) {\r\n throw new TypeError('testSubResultId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId,\r\n attachmentId: attachmentId\r\n };\r\n let queryValues = {\r\n testSubResultId: testSubResultId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get list of test sub result attachments\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test results that contains sub result.\r\n * @param {number} testSubResultId - ID of the test sub result whose attachment has to be downloaded\r\n */\r\n getTestSubResultAttachments(project, runId, testCaseResultId, testSubResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testSubResultId == null) {\r\n throw new TypeError('testSubResultId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n let queryValues = {\r\n testSubResultId: testSubResultId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test sub result attachment\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test results that contains sub result.\r\n * @param {number} attachmentId - ID of the test result attachment to be downloaded\r\n * @param {number} testSubResultId - ID of the test sub result whose attachment has to be downloaded\r\n */\r\n getTestSubResultAttachmentZip(project, runId, testCaseResultId, attachmentId, testSubResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testSubResultId == null) {\r\n throw new TypeError('testSubResultId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId,\r\n attachmentId: attachmentId\r\n };\r\n let queryValues = {\r\n testSubResultId: testSubResultId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Attach a file to a test run.\r\n *\r\n * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment details TestAttachmentRequestModel\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run against which attachment has to be uploaded.\r\n */\r\n createTestRunAttachment(attachmentRequestModel, project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"4f004af4-a507-489c-9b13-cb62060beb11\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, attachmentRequestModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test run attachment by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run whose attachment has to be downloaded.\r\n * @param {number} attachmentId - ID of the test run attachment to be downloaded.\r\n */\r\n getTestRunAttachmentContent(project, runId, attachmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n attachmentId: attachmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"4f004af4-a507-489c-9b13-cb62060beb11\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get list of test run attachments reference.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run.\r\n */\r\n getTestRunAttachments(project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"4f004af4-a507-489c-9b13-cb62060beb11\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test run attachment by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run whose attachment has to be downloaded.\r\n * @param {number} attachmentId - ID of the test run attachment to be downloaded.\r\n */\r\n getTestRunAttachmentZip(project, runId, attachmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n attachmentId: attachmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"4f004af4-a507-489c-9b13-cb62060beb11\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId\r\n * @param {number} testCaseResultId\r\n */\r\n getBugsLinkedToTestResult(project, runId, testCaseResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"6de20ca2-67de-4faf-97fa-38c5d585eb00\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get code coverage data for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - ID of the build for which code coverage data needs to be fetched.\r\n * @param {number} flags - Value of flags determine the level of code coverage details to be fetched. Flags are additive. Expected Values are 1 for Modules, 2 for Functions, 4 for BlockData.\r\n */\r\n getBuildCodeCoverage(project, buildId, flags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n if (flags == null) {\r\n throw new TypeError('flags can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n flags: flags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"77560e8a-4e8c-4d59-894e-a5f264c24444\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.BuildCoverage, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Code Coverage Summary for Build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - ID of the build for which code coverage data needs to be fetched.\r\n * @param {number} deltaBuildId - Delta Build id (optional)\r\n */\r\n getCodeCoverageSummary(project, buildId, deltaBuildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n deltaBuildId: deltaBuildId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"77560e8a-4e8c-4d59-894e-a5f264c24444\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.CodeCoverageSummary, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * http://(tfsserver):8080/tfs/DefaultCollection/_apis/test/CodeCoverage?buildId=10 Request: Json of code coverage summary\r\n *\r\n * @param {TestInterfaces.CodeCoverageData} coverageData\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n */\r\n updateCodeCoverageSummary(coverageData, project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"77560e8a-4e8c-4d59-894e-a5f264c24444\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, coverageData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get code coverage data for a test run\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run for which code coverage data needs to be fetched.\r\n * @param {number} flags - Value of flags determine the level of code coverage details to be fetched. Flags are additive. Expected Values are 1 for Modules, 2 for Functions, 4 for BlockData.\r\n */\r\n getTestRunCodeCoverage(project, runId, flags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (flags == null) {\r\n throw new TypeError('flags can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n let queryValues = {\r\n flags: flags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"9629116f-3b89-4ed8-b358-d4694efda160\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.CustomTestFieldDefinition[]} newFields\r\n * @param {string} project - Project ID or project name\r\n */\r\n addCustomFields(newFields, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8ce1923b-f4c7-4e22-b93b-f6284e525ec2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, newFields, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.CustomTestFieldDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {TestInterfaces.CustomTestFieldScope} scopeFilter\r\n */\r\n queryCustomFields(project, scopeFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (scopeFilter == null) {\r\n throw new TypeError('scopeFilter can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n scopeFilter: scopeFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8ce1923b-f4c7-4e22-b93b-f6284e525ec2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.CustomTestFieldDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.ResultsFilter} filter\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryTestResultHistory(filter, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"234616f5-429c-4e7b-9192-affd76731dfd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, filter, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultHistory, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get iteration for a result\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test result that contains the iterations.\r\n * @param {number} iterationId - Id of the test results Iteration.\r\n * @param {boolean} includeActionResults - Include result details for each action performed in the test iteration. ActionResults refer to outcome (pass/fail) of test steps that are executed as part of a running a manual test. Including the ActionResults flag gets the outcome of test steps in the actionResults section and test parameters in the parameters section for each test iteration.\r\n */\r\n getTestIteration(project, runId, testCaseResultId, iterationId, includeActionResults) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId,\r\n iterationId: iterationId\r\n };\r\n let queryValues = {\r\n includeActionResults: includeActionResults,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"73eb9074-3446-4c44-8296-2f811950ff8d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestIterationDetailsModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get iterations for a result\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test result that contains the iterations.\r\n * @param {boolean} includeActionResults - Include result details for each action performed in the test iteration. ActionResults refer to outcome (pass/fail) of test steps that are executed as part of a running a manual test. Including the ActionResults flag gets the outcome of test steps in the actionResults section and test parameters in the parameters section for each test iteration.\r\n */\r\n getTestIterations(project, runId, testCaseResultId, includeActionResults) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n let queryValues = {\r\n includeActionResults: includeActionResults,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"73eb9074-3446-4c44-8296-2f811950ff8d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestIterationDetailsModel, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.LinkedWorkItemsQuery} workItemQuery\r\n * @param {string} project - Project ID or project name\r\n */\r\n getLinkedWorkItemsByQuery(workItemQuery, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"a4dcb25b-9878-49ea-abfd-e440bd9b1dcd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemQuery, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get test run message logs\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the run to get.\r\n */\r\n getTestRunLogs(project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"a1e55200-637e-42e9-a7c0-7e5bfdedb1b3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestMessageLogDetails, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a test point.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan.\r\n * @param {number} suiteId - ID of the suite that contains the point.\r\n * @param {number} pointIds - ID of the test point to get.\r\n * @param {string} witFields - Comma-separated list of work item field names.\r\n */\r\n getPoint(project, planId, suiteId, pointIds, witFields) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n pointIds: pointIds\r\n };\r\n let queryValues = {\r\n witFields: witFields,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"3bcfd5c8-be62-488e-b1da-b8289ce9299c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPoint, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of test points.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan.\r\n * @param {number} suiteId - ID of the suite that contains the points.\r\n * @param {string} witFields - Comma-separated list of work item field names.\r\n * @param {string} configurationId - Get test points for specific configuration.\r\n * @param {string} testCaseId - Get test points for a specific test case, valid when configurationId is not set.\r\n * @param {string} testPointIds - Get test points for comma-separated list of test point IDs, valid only when configurationId and testCaseId are not set.\r\n * @param {boolean} includePointDetails - Include all properties for the test point.\r\n * @param {number} skip - Number of test points to skip..\r\n * @param {number} top - Number of test points to return.\r\n */\r\n getPoints(project, planId, suiteId, witFields, configurationId, testCaseId, testPointIds, includePointDetails, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId\r\n };\r\n let queryValues = {\r\n witFields: witFields,\r\n configurationId: configurationId,\r\n testCaseId: testCaseId,\r\n testPointIds: testPointIds,\r\n includePointDetails: includePointDetails,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"3bcfd5c8-be62-488e-b1da-b8289ce9299c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPoint, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update test points.\r\n *\r\n * @param {TestInterfaces.PointUpdateModel} pointUpdateModel - Data to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan.\r\n * @param {number} suiteId - ID of the suite that contains the points.\r\n * @param {string} pointIds - ID of the test point to get. Use a comma-separated list of IDs to update multiple test points.\r\n */\r\n updateTestPoints(pointUpdateModel, project, planId, suiteId, pointIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n pointIds: pointIds\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"3bcfd5c8-be62-488e-b1da-b8289ce9299c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, pointUpdateModel, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPoint, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get test points using query.\r\n *\r\n * @param {TestInterfaces.TestPointsQuery} query - TestPointsQuery to get test points.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} skip - Number of test points to skip..\r\n * @param {number} top - Number of test points to return.\r\n */\r\n getPointsByQuery(query, project, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"b4264fd0-a5d1-43e2-82a5-b9c46b7da9ce\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPointsQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} publishContext\r\n * @param {string} groupBy\r\n * @param {string} filter\r\n * @param {string} orderby\r\n * @param {boolean} shouldIncludeResults\r\n * @param {boolean} queryRunSummaryForInProgress\r\n */\r\n getTestResultDetailsForBuild(project, buildId, publishContext, groupBy, filter, orderby, shouldIncludeResults, queryRunSummaryForInProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n publishContext: publishContext,\r\n groupBy: groupBy,\r\n '$filter': filter,\r\n '$orderby': orderby,\r\n shouldIncludeResults: shouldIncludeResults,\r\n queryRunSummaryForInProgress: queryRunSummaryForInProgress,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"efb387b0-10d5-42e7-be40-95e06ee9430f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultsDetails, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} releaseEnvId\r\n * @param {string} publishContext\r\n * @param {string} groupBy\r\n * @param {string} filter\r\n * @param {string} orderby\r\n * @param {boolean} shouldIncludeResults\r\n * @param {boolean} queryRunSummaryForInProgress\r\n */\r\n getTestResultDetailsForRelease(project, releaseId, releaseEnvId, publishContext, groupBy, filter, orderby, shouldIncludeResults, queryRunSummaryForInProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (releaseId == null) {\r\n throw new TypeError('releaseId can not be null or undefined');\r\n }\r\n if (releaseEnvId == null) {\r\n throw new TypeError('releaseEnvId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n releaseId: releaseId,\r\n releaseEnvId: releaseEnvId,\r\n publishContext: publishContext,\r\n groupBy: groupBy,\r\n '$filter': filter,\r\n '$orderby': orderby,\r\n shouldIncludeResults: shouldIncludeResults,\r\n queryRunSummaryForInProgress: queryRunSummaryForInProgress,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"b834ec7e-35bb-450f-a3c8-802e70ca40dd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultsDetails, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.TestResultDocument} document\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId\r\n */\r\n publishTestResultDocument(document, project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"370ca04b-8eec-4ca8-8ba3-d24dca228791\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, document, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} publishContext\r\n * @param {string[]} fields\r\n * @param {string} continuationToken\r\n */\r\n getResultGroupsByBuild(project, buildId, publishContext, fields, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n if (publishContext == null) {\r\n throw new TypeError('publishContext can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n publishContext: publishContext,\r\n fields: fields && fields.join(\",\"),\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"d279d052-c55a-4204-b913-42f733b52958\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {string} publishContext\r\n * @param {number} releaseEnvId\r\n * @param {string[]} fields\r\n * @param {string} continuationToken\r\n */\r\n getResultGroupsByRelease(project, releaseId, publishContext, releaseEnvId, fields, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (releaseId == null) {\r\n throw new TypeError('releaseId can not be null or undefined');\r\n }\r\n if (publishContext == null) {\r\n throw new TypeError('publishContext can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n releaseId: releaseId,\r\n publishContext: publishContext,\r\n releaseEnvId: releaseEnvId,\r\n fields: fields && fields.join(\",\"),\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"ef5ce5d4-a4e5-47ee-804c-354518f8d03f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get list of test Result meta data details for corresponding testcasereferenceId\r\n *\r\n * @param {string[]} testReferenceIds - TestCaseReference Ids of the test Result to be queried, comma separated list of valid ids (limit no. of ids 200).\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryTestResultsMetaData(testReferenceIds, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"afa7830e-67a7-4336-8090-2b448ca80295\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, testReferenceIds, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get test result retention settings\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getResultRetentionSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"a3206d9e-fa8d-42d3-88cb-f75c51e69cde\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.ResultRetentionSettings, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update test result retention settings\r\n *\r\n * @param {TestInterfaces.ResultRetentionSettings} retentionSettings - Test result retention settings details to be updated\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateResultRetentionSettings(retentionSettings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"a3206d9e-fa8d-42d3-88cb-f75c51e69cde\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, retentionSettings, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.ResultRetentionSettings, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add test results to a test run.\r\n *\r\n * @param {TestInterfaces.TestCaseResult[]} results - List of test results to add.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - Test run ID into which test results to add.\r\n */\r\n addTestResultsToTestRun(results, project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.6\", \"Test\", \"4637d869-3a76-4468-8057-0bb02aa385cf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, results, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a test result for a test run.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - Test run ID of a test result to fetch.\r\n * @param {number} testCaseResultId - Test result ID.\r\n * @param {TestInterfaces.ResultDetails} detailsToInclude - Details to include with test results. Default is None. Other values are Iterations, WorkItems and SubResults.\r\n */\r\n getTestResultById(project, runId, testCaseResultId, detailsToInclude) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n let queryValues = {\r\n detailsToInclude: detailsToInclude,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.6\", \"Test\", \"4637d869-3a76-4468-8057-0bb02aa385cf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get test results for a test run.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - Test run ID of test results to fetch.\r\n * @param {TestInterfaces.ResultDetails} detailsToInclude - Details to include with test results. Default is None. Other values are Iterations and WorkItems.\r\n * @param {number} skip - Number of test results to skip from beginning.\r\n * @param {number} top - Number of test results to return. Maximum is 1000 when detailsToInclude is None and 200 otherwise.\r\n * @param {TestInterfaces.TestOutcome[]} outcomes - Comma separated list of test outcomes to filter test results.\r\n */\r\n getTestResults(project, runId, detailsToInclude, skip, top, outcomes) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n let queryValues = {\r\n detailsToInclude: detailsToInclude,\r\n '$skip': skip,\r\n '$top': top,\r\n outcomes: outcomes && outcomes.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.6\", \"Test\", \"4637d869-3a76-4468-8057-0bb02aa385cf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update test results in a test run.\r\n *\r\n * @param {TestInterfaces.TestCaseResult[]} results - List of test results to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - Test run ID whose test results to update.\r\n */\r\n updateTestResults(results, project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.6\", \"Test\", \"4637d869-3a76-4468-8057-0bb02aa385cf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, results, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * This API will return results by Ids with fields specified/trend for particular automated test method. We are still improving this API and have not finalized proper signature and contract.\r\n *\r\n * @param {TestInterfaces.TestResultsQuery} query\r\n * @param {string} project - Project ID or project name\r\n */\r\n getTestResultsByQuery(query, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.6\", \"Test\", \"6711da49-8e6f-4d35-9f73-cef7a3c81a5b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultsQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} publishContext\r\n * @param {TestInterfaces.TestOutcome[]} outcomes\r\n * @param {number} top\r\n * @param {string} continuationToken\r\n */\r\n getTestResultsByBuild(project, buildId, publishContext, outcomes, top, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n publishContext: publishContext,\r\n outcomes: outcomes && outcomes.join(\",\"),\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"3c191b88-615b-4be2-b7d9-5ff9141e91d4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} releaseEnvid\r\n * @param {string} publishContext\r\n * @param {TestInterfaces.TestOutcome[]} outcomes\r\n * @param {number} top\r\n * @param {string} continuationToken\r\n */\r\n getTestResultsByRelease(project, releaseId, releaseEnvid, publishContext, outcomes, top, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (releaseId == null) {\r\n throw new TypeError('releaseId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n releaseId: releaseId,\r\n releaseEnvid: releaseEnvid,\r\n publishContext: publishContext,\r\n outcomes: outcomes && outcomes.join(\",\"),\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"ce01820b-83f3-4c15-a583-697a43292c4e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} publishContext\r\n * @param {boolean} includeFailureDetails\r\n * @param {TestInterfaces.BuildReference} buildToCompare\r\n */\r\n queryTestResultsReportForBuild(project, buildId, publishContext, includeFailureDetails, buildToCompare) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n publishContext: publishContext,\r\n includeFailureDetails: includeFailureDetails,\r\n buildToCompare: buildToCompare,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"000ef77b-fea2-498d-a10d-ad1a037f559f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultSummary, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} releaseEnvId\r\n * @param {string} publishContext\r\n * @param {boolean} includeFailureDetails\r\n * @param {TestInterfaces.ReleaseReference} releaseToCompare\r\n */\r\n queryTestResultsReportForRelease(project, releaseId, releaseEnvId, publishContext, includeFailureDetails, releaseToCompare) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (releaseId == null) {\r\n throw new TypeError('releaseId can not be null or undefined');\r\n }\r\n if (releaseEnvId == null) {\r\n throw new TypeError('releaseEnvId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n releaseId: releaseId,\r\n releaseEnvId: releaseEnvId,\r\n publishContext: publishContext,\r\n includeFailureDetails: includeFailureDetails,\r\n releaseToCompare: releaseToCompare,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"85765790-ac68-494e-b268-af36c3929744\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultSummary, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.ReleaseReference[]} releases\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryTestResultsSummaryForReleases(releases, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"85765790-ac68-494e-b268-af36c3929744\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, releases, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultSummary, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.TestResultsContext} resultsContext\r\n * @param {string} project - Project ID or project name\r\n * @param {number[]} workItemIds\r\n */\r\n queryTestSummaryByRequirement(resultsContext, project, workItemIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n workItemIds: workItemIds && workItemIds.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"cd08294e-308d-4460-a46e-4cfdefba0b4b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, resultsContext, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSummaryForWorkItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.TestResultTrendFilter} filter\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryResultTrendForBuild(filter, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"fbc82a85-0786-4442-88bb-eb0fda6b01b0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, filter, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.AggregatedDataForResultTrend, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.TestResultTrendFilter} filter\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryResultTrendForRelease(filter, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"dd178e93-d8dd-4887-9635-d6b9560b7b6e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, filter, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.AggregatedDataForResultTrend, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get test run statistics , used when we want to get summary of a run by outcome.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the run to get.\r\n */\r\n getTestRunStatistics(project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"0a42c424-d764-4a16-a2d5-5c85f87d0ae8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRunStatistic, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create new test run.\r\n *\r\n * @param {TestInterfaces.RunCreateModel} testRun - Run details RunCreateModel\r\n * @param {string} project - Project ID or project name\r\n */\r\n createTestRun(testRun, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, testRun, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a test run by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the run to delete.\r\n */\r\n deleteTestRun(project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a test run by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the run to get.\r\n * @param {boolean} includeDetails - Default value is true. It includes details like run statistics, release, build, test environment, post process state, and more.\r\n */\r\n getTestRunById(project, runId, includeDetails) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n let queryValues = {\r\n includeDetails: includeDetails,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of test runs.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} buildUri - URI of the build that the runs used.\r\n * @param {string} owner - Team foundation ID of the owner of the runs.\r\n * @param {string} tmiRunId\r\n * @param {number} planId - ID of the test plan that the runs are a part of.\r\n * @param {boolean} includeRunDetails - If true, include all the properties of the runs.\r\n * @param {boolean} automated - If true, only returns automated runs.\r\n * @param {number} skip - Number of test runs to skip.\r\n * @param {number} top - Number of test runs to return.\r\n */\r\n getTestRuns(project, buildUri, owner, tmiRunId, planId, includeRunDetails, automated, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildUri: buildUri,\r\n owner: owner,\r\n tmiRunId: tmiRunId,\r\n planId: planId,\r\n includeRunDetails: includeRunDetails,\r\n automated: automated,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Query Test Runs based on filters. Mandatory fields are minLastUpdatedDate and maxLastUpdatedDate.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {Date} minLastUpdatedDate - Minimum Last Modified Date of run to be queried (Mandatory).\r\n * @param {Date} maxLastUpdatedDate - Maximum Last Modified Date of run to be queried (Mandatory, difference between min and max date can be atmost 7 days).\r\n * @param {TestInterfaces.TestRunState} state - Current state of the Runs to be queried.\r\n * @param {number[]} planIds - Plan Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {boolean} isAutomated - Automation type of the Runs to be queried.\r\n * @param {TestInterfaces.TestRunPublishContext} publishContext - PublishContext of the Runs to be queried.\r\n * @param {number[]} buildIds - Build Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {number[]} buildDefIds - Build Definition Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {string} branchName - Source Branch name of the Runs to be queried.\r\n * @param {number[]} releaseIds - Release Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {number[]} releaseDefIds - Release Definition Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {number[]} releaseEnvIds - Release Environment Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {number[]} releaseEnvDefIds - Release Environment Definition Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {string} runTitle - Run Title of the Runs to be queried.\r\n * @param {number} top - Number of runs to be queried. Limit is 100\r\n * @param {string} continuationToken - continuationToken received from previous batch or null for first batch. It is not supposed to be created (or altered, if received from last batch) by user.\r\n */\r\n queryTestRuns(project, minLastUpdatedDate, maxLastUpdatedDate, state, planIds, isAutomated, publishContext, buildIds, buildDefIds, branchName, releaseIds, releaseDefIds, releaseEnvIds, releaseEnvDefIds, runTitle, top, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (minLastUpdatedDate == null) {\r\n throw new TypeError('minLastUpdatedDate can not be null or undefined');\r\n }\r\n if (maxLastUpdatedDate == null) {\r\n throw new TypeError('maxLastUpdatedDate can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n minLastUpdatedDate: minLastUpdatedDate,\r\n maxLastUpdatedDate: maxLastUpdatedDate,\r\n state: state,\r\n planIds: planIds && planIds.join(\",\"),\r\n isAutomated: isAutomated,\r\n publishContext: publishContext,\r\n buildIds: buildIds && buildIds.join(\",\"),\r\n buildDefIds: buildDefIds && buildDefIds.join(\",\"),\r\n branchName: branchName,\r\n releaseIds: releaseIds && releaseIds.join(\",\"),\r\n releaseDefIds: releaseDefIds && releaseDefIds.join(\",\"),\r\n releaseEnvIds: releaseEnvIds && releaseEnvIds.join(\",\"),\r\n releaseEnvDefIds: releaseEnvDefIds && releaseEnvDefIds.join(\",\"),\r\n runTitle: runTitle,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update test run by its ID.\r\n *\r\n * @param {TestInterfaces.RunUpdateModel} runUpdateModel - Run details RunUpdateModel\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the run to update.\r\n */\r\n updateTestRun(runUpdateModel, project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, runUpdateModel, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a test session\r\n *\r\n * @param {TestInterfaces.TestSession} testSession - Test session details for creation\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n createTestSession(testSession, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, testSession, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSession, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of test sessions\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {number} period - Period in days from now, for which test sessions are fetched.\r\n * @param {boolean} allSessions - If false, returns test sessions for current user. Otherwise, it returns test sessions for all users\r\n * @param {boolean} includeAllProperties - If true, it returns all properties of the test sessions. Otherwise, it returns the skinny version.\r\n * @param {TestInterfaces.TestSessionSource} source - Source of the test session.\r\n * @param {boolean} includeOnlyCompletedSessions - If true, it returns test sessions in completed state. Otherwise, it returns test sessions for all states\r\n */\r\n getTestSessions(teamContext, period, allSessions, includeAllProperties, source, includeOnlyCompletedSessions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n let queryValues = {\r\n period: period,\r\n allSessions: allSessions,\r\n includeAllProperties: includeAllProperties,\r\n source: source,\r\n includeOnlyCompletedSessions: includeOnlyCompletedSessions,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSession, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a test session\r\n *\r\n * @param {TestInterfaces.TestSession} testSession - Test session details for update\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateTestSession(testSession, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, testSession, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSession, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} sharedParameterId\r\n */\r\n deleteSharedParameter(project, sharedParameterId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n sharedParameterId: sharedParameterId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8300eeca-0f8c-4eff-a089-d2dda409c41f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} sharedStepId\r\n */\r\n deleteSharedStep(project, sharedStepId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n sharedStepId: sharedStepId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"fabb3cc9-e3f8-40b7-8b62-24cc4b73fccf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add test cases to suite.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan that contains the suite.\r\n * @param {number} suiteId - ID of the test suite to which the test cases must be added.\r\n * @param {string} testCaseIds - IDs of the test cases to add to the suite. Ids are specified in comma separated format.\r\n */\r\n addTestCasesToSuite(project, planId, suiteId, testCaseIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n action: \"TestCases\",\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n testCaseIds: testCaseIds\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"a4a1ec1c-b03f-41ca-8857-704594ecf58e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a specific test case in a test suite with test case id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan that contains the suites.\r\n * @param {number} suiteId - ID of the suite that contains the test case.\r\n * @param {number} testCaseIds - ID of the test case to get.\r\n */\r\n getTestCaseById(project, planId, suiteId, testCaseIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n action: \"TestCases\",\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n testCaseIds: testCaseIds\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"a4a1ec1c-b03f-41ca-8857-704594ecf58e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all test cases in a suite.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan that contains the suites.\r\n * @param {number} suiteId - ID of the suite to get.\r\n */\r\n getTestCases(project, planId, suiteId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n action: \"TestCases\",\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"a4a1ec1c-b03f-41ca-8857-704594ecf58e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * The test points associated with the test cases are removed from the test suite. The test case work item is not deleted from the system. See test cases resource to delete a test case permanently.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan that contains the suite.\r\n * @param {number} suiteId - ID of the suite to get.\r\n * @param {string} testCaseIds - IDs of the test cases to remove from the suite.\r\n */\r\n removeTestCasesFromSuiteUrl(project, planId, suiteId, testCaseIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n action: \"TestCases\",\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n testCaseIds: testCaseIds\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"a4a1ec1c-b03f-41ca-8857-704594ecf58e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the properties of the test case association in a suite.\r\n *\r\n * @param {TestInterfaces.SuiteTestCaseUpdateModel} suiteTestCaseUpdateModel - Model for updation of the properties of test case suite association.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan that contains the suite.\r\n * @param {number} suiteId - ID of the test suite to which the test cases must be added.\r\n * @param {string} testCaseIds - IDs of the test cases to add to the suite. Ids are specified in comma separated format.\r\n */\r\n updateSuiteTestCases(suiteTestCaseUpdateModel, project, planId, suiteId, testCaseIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n action: \"TestCases\",\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n testCaseIds: testCaseIds\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"a4a1ec1c-b03f-41ca-8857-704594ecf58e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, suiteTestCaseUpdateModel, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a test case.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} testCaseId - Id of test case to delete.\r\n */\r\n deleteTestCase(project, testCaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n testCaseId: testCaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"4d472e0f-e32c-4ef8-adf4-a4078772889c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get history of a test method using TestHistoryQuery\r\n *\r\n * @param {TestInterfaces.TestHistoryQuery} filter - TestHistoryQuery to get history\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryTestHistory(filter, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"929fd86c-3e38-4d8c-b4b6-90df256e5971\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, filter, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestHistoryQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.TestSettings} testSettings\r\n * @param {string} project - Project ID or project name\r\n */\r\n createTestSettings(testSettings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8133ce14-962f-42af-a5f9-6aa9defcb9c8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, testSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} testSettingsId\r\n */\r\n deleteTestSettings(project, testSettingsId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n testSettingsId: testSettingsId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8133ce14-962f-42af-a5f9-6aa9defcb9c8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} testSettingsId\r\n */\r\n getTestSettingsById(project, testSettingsId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n testSettingsId: testSettingsId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8133ce14-962f-42af-a5f9-6aa9defcb9c8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.WorkItemToTestLinks} workItemToTestLinks\r\n * @param {string} project - Project ID or project name\r\n */\r\n addWorkItemToTestLinks(workItemToTestLinks, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"371b1655-ce05-412e-a113-64cc77bb78d2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemToTestLinks, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.WorkItemToTestLinks, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} testName\r\n * @param {number} workItemId\r\n */\r\n deleteTestMethodToWorkItemLink(project, testName, workItemId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testName == null) {\r\n throw new TypeError('testName can not be null or undefined');\r\n }\r\n if (workItemId == null) {\r\n throw new TypeError('workItemId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n testName: testName,\r\n workItemId: workItemId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"7b0bdee3-a354-47f9-a42c-89018d7808d5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} testName\r\n */\r\n queryTestMethodLinkedWorkItems(project, testName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testName == null) {\r\n throw new TypeError('testName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n testName: testName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"7b0bdee3-a354-47f9-a42c-89018d7808d5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} workItemCategory\r\n * @param {string} automatedTestName\r\n * @param {number} testCaseId\r\n * @param {Date} maxCompleteDate\r\n * @param {number} days\r\n * @param {number} workItemCount\r\n */\r\n queryTestResultWorkItems(project, workItemCategory, automatedTestName, testCaseId, maxCompleteDate, days, workItemCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (workItemCategory == null) {\r\n throw new TypeError('workItemCategory can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n workItemCategory: workItemCategory,\r\n automatedTestName: automatedTestName,\r\n testCaseId: testCaseId,\r\n maxCompleteDate: maxCompleteDate,\r\n days: days,\r\n '$workItemCount': workItemCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"926ff5dc-137f-45f0-bd51-9412fa9810ce\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nTestApi.RESOURCE_AREA_ID = \"c2aa639c-3ccc-4740-b3b6-ce2a1e1d984e\";\r\nexports.TestApi = TestApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst TfvcInterfaces = require(\"./interfaces/TfvcInterfaces\");\r\nclass TfvcApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Tfvc-api', options);\r\n }\r\n /**\r\n * Get a single branch hierarchy at the given path with parents or children as specified.\r\n *\r\n * @param {string} path - Full path to the branch. Default: $/ Examples: $/, $/MyProject, $/MyProject/SomeFolder.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeParent - Return the parent branch, if there is one. Default: False\r\n * @param {boolean} includeChildren - Return child branches, if there are any. Default: False\r\n */\r\n getBranch(path, project, includeParent, includeChildren) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n includeParent: includeParent,\r\n includeChildren: includeChildren,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"bc1f417e-239d-42e7-85e1-76e80cb2d6eb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcBranch, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a collection of branch roots -- first-level children, branches with no parents.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeParent - Return the parent branch, if there is one. Default: False\r\n * @param {boolean} includeChildren - Return the child branches for each root branch. Default: False\r\n * @param {boolean} includeDeleted - Return deleted branches. Default: False\r\n * @param {boolean} includeLinks - Return links. Default: False\r\n */\r\n getBranches(project, includeParent, includeChildren, includeDeleted, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n includeParent: includeParent,\r\n includeChildren: includeChildren,\r\n includeDeleted: includeDeleted,\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"bc1f417e-239d-42e7-85e1-76e80cb2d6eb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcBranch, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get branch hierarchies below the specified scopePath\r\n *\r\n * @param {string} scopePath - Full path to the branch. Default: $/ Examples: $/, $/MyProject, $/MyProject/SomeFolder.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeDeleted - Return deleted branches. Default: False\r\n * @param {boolean} includeLinks - Return links. Default: False\r\n */\r\n getBranchRefs(scopePath, project, includeDeleted, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (scopePath == null) {\r\n throw new TypeError('scopePath can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n scopePath: scopePath,\r\n includeDeleted: includeDeleted,\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"bc1f417e-239d-42e7-85e1-76e80cb2d6eb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcBranchRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve Tfvc changes for a given changeset.\r\n *\r\n * @param {number} id - ID of the changeset. Default: null\r\n * @param {number} skip - Number of results to skip. Default: null\r\n * @param {number} top - The maximum number of results to return. Default: null\r\n */\r\n getChangesetChanges(id, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"f32b86f2-15b9-4fe6-81b1-6f8938617ee5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChange, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a new changeset.\r\n *\r\n * @param {TfvcInterfaces.TfvcChangeset} changeset\r\n * @param {string} project - Project ID or project name\r\n */\r\n createChangeset(changeset, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"tfvc\", \"0bc8f0a4-6bfb-42a9-ba84-139da7b99c49\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, changeset, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangesetRef, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a Tfvc Changeset\r\n *\r\n * @param {number} id - Changeset Id to retrieve.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} maxChangeCount - Number of changes to return (maximum 100 changes) Default: 0\r\n * @param {boolean} includeDetails - Include policy details and check-in notes in the response. Default: false\r\n * @param {boolean} includeWorkItems - Include workitems. Default: false\r\n * @param {number} maxCommentLength - Include details about associated work items in the response. Default: null\r\n * @param {boolean} includeSourceRename - Include renames. Default: false\r\n * @param {number} skip - Number of results to skip. Default: null\r\n * @param {number} top - The maximum number of results to return. Default: null\r\n * @param {string} orderby - Results are sorted by ID in descending order by default. Use id asc to sort by ID in ascending order.\r\n * @param {TfvcInterfaces.TfvcChangesetSearchCriteria} searchCriteria - Following criteria available (.itemPath, .version, .versionType, .versionOption, .author, .fromId, .toId, .fromDate, .toDate) Default: null\r\n */\r\n getChangeset(id, project, maxChangeCount, includeDetails, includeWorkItems, maxCommentLength, includeSourceRename, skip, top, orderby, searchCriteria) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n maxChangeCount: maxChangeCount,\r\n includeDetails: includeDetails,\r\n includeWorkItems: includeWorkItems,\r\n maxCommentLength: maxCommentLength,\r\n includeSourceRename: includeSourceRename,\r\n '$skip': skip,\r\n '$top': top,\r\n '$orderby': orderby,\r\n searchCriteria: searchCriteria,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"tfvc\", \"0bc8f0a4-6bfb-42a9-ba84-139da7b99c49\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangeset, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve Tfvc Changesets\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} maxCommentLength - Include details about associated work items in the response. Default: null\r\n * @param {number} skip - Number of results to skip. Default: null\r\n * @param {number} top - The maximum number of results to return. Default: null\r\n * @param {string} orderby - Results are sorted by ID in descending order by default. Use id asc to sort by ID in ascending order.\r\n * @param {TfvcInterfaces.TfvcChangesetSearchCriteria} searchCriteria - Following criteria available (.itemPath, .version, .versionType, .versionOption, .author, .fromId, .toId, .fromDate, .toDate) Default: null\r\n */\r\n getChangesets(project, maxCommentLength, skip, top, orderby, searchCriteria) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n maxCommentLength: maxCommentLength,\r\n '$skip': skip,\r\n '$top': top,\r\n '$orderby': orderby,\r\n searchCriteria: searchCriteria,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"tfvc\", \"0bc8f0a4-6bfb-42a9-ba84-139da7b99c49\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangesetRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns changesets for a given list of changeset Ids.\r\n *\r\n * @param {TfvcInterfaces.TfvcChangesetsRequestData} changesetsRequestData - List of changeset IDs.\r\n */\r\n getBatchedChangesets(changesetsRequestData) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"b7e7c173-803c-4fea-9ec8-31ee35c5502a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, changesetsRequestData, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangesetRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves the work items associated with a particular changeset.\r\n *\r\n * @param {number} id - ID of the changeset.\r\n */\r\n getChangesetWorkItems(id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"64ae0bea-1d71-47c9-a9e5-fe73f5ea0ff4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Post for retrieving a set of items given a list of paths or a long path. Allows for specifying the recursionLevel and version descriptors for each path.\r\n *\r\n * @param {TfvcInterfaces.TfvcItemRequestData} itemRequestData\r\n * @param {string} project - Project ID or project name\r\n */\r\n getItemsBatch(itemRequestData, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"fe6f827b-5f64-480f-b8af-1eca3b80e833\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, itemRequestData, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Post for retrieving a set of items given a list of paths or a long path. Allows for specifying the recursionLevel and version descriptors for each path.\r\n *\r\n * @param {TfvcInterfaces.TfvcItemRequestData} itemRequestData\r\n * @param {string} project - Project ID or project name\r\n */\r\n getItemsBatchZip(itemRequestData, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"fe6f827b-5f64-480f-b8af-1eca3b80e833\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download.\r\n *\r\n * @param {string} path - Version control path of an individual item to return.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} fileName - file name of item returned.\r\n * @param {boolean} download - If true, create a downloadable attachment.\r\n * @param {string} scopePath - Version control path of a folder to return multiple items.\r\n * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder).\r\n * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n */\r\n getItem(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n fileName: fileName,\r\n download: download,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"ba9fc436-9a38-4578-89d6-e4f3241f5040\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download.\r\n *\r\n * @param {string} path - Version control path of an individual item to return.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} fileName - file name of item returned.\r\n * @param {boolean} download - If true, create a downloadable attachment.\r\n * @param {string} scopePath - Version control path of a folder to return multiple items.\r\n * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder).\r\n * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n */\r\n getItemContent(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n fileName: fileName,\r\n download: download,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"ba9fc436-9a38-4578-89d6-e4f3241f5040\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of Tfvc items\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - Version control path of a folder to return multiple items.\r\n * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder).\r\n * @param {boolean} includeLinks - True to include links.\r\n * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor\r\n */\r\n getItems(project, scopePath, recursionLevel, includeLinks, versionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeLinks: includeLinks,\r\n versionDescriptor: versionDescriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"ba9fc436-9a38-4578-89d6-e4f3241f5040\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download.\r\n *\r\n * @param {string} path - Version control path of an individual item to return.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} fileName - file name of item returned.\r\n * @param {boolean} download - If true, create a downloadable attachment.\r\n * @param {string} scopePath - Version control path of a folder to return multiple items.\r\n * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder).\r\n * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n */\r\n getItemText(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n fileName: fileName,\r\n download: download,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"ba9fc436-9a38-4578-89d6-e4f3241f5040\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download.\r\n *\r\n * @param {string} path - Version control path of an individual item to return.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} fileName - file name of item returned.\r\n * @param {boolean} download - If true, create a downloadable attachment.\r\n * @param {string} scopePath - Version control path of a folder to return multiple items.\r\n * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder).\r\n * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n */\r\n getItemZip(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n fileName: fileName,\r\n download: download,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"ba9fc436-9a38-4578-89d6-e4f3241f5040\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get items under a label.\r\n *\r\n * @param {string} labelId - Unique identifier of label\r\n * @param {number} top - Max number of items to return\r\n * @param {number} skip - Number of items to skip\r\n */\r\n getLabelItems(labelId, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n labelId: labelId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"06166e34-de17-4b60-8cd1-23182a346fda\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single deep label.\r\n *\r\n * @param {string} labelId - Unique identifier of label\r\n * @param {TfvcInterfaces.TfvcLabelRequestData} requestData - maxItemCount\r\n * @param {string} project - Project ID or project name\r\n */\r\n getLabel(labelId, requestData, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (requestData == null) {\r\n throw new TypeError('requestData can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n labelId: labelId\r\n };\r\n let queryValues = {\r\n requestData: requestData,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"a5d9bd7f-b661-4d0e-b9be-d9c16affae54\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcLabel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a collection of shallow label references.\r\n *\r\n * @param {TfvcInterfaces.TfvcLabelRequestData} requestData - labelScope, name, owner, and itemLabelFilter\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - Max number of labels to return, defaults to 100 when undefined\r\n * @param {number} skip - Number of labels to skip\r\n */\r\n getLabels(requestData, project, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (requestData == null) {\r\n throw new TypeError('requestData can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n requestData: requestData,\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"a5d9bd7f-b661-4d0e-b9be-d9c16affae54\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcLabelRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get changes included in a shelveset.\r\n *\r\n * @param {string} shelvesetId - Shelveset's unique ID\r\n * @param {number} top - Max number of changes to return\r\n * @param {number} skip - Number of changes to skip\r\n */\r\n getShelvesetChanges(shelvesetId, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (shelvesetId == null) {\r\n throw new TypeError('shelvesetId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n shelvesetId: shelvesetId,\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"dbaf075b-0445-4c34-9e5b-82292f856522\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChange, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single deep shelveset.\r\n *\r\n * @param {string} shelvesetId - Shelveset's unique ID\r\n * @param {TfvcInterfaces.TfvcShelvesetRequestData} requestData - includeDetails, includeWorkItems, maxChangeCount, and maxCommentLength\r\n */\r\n getShelveset(shelvesetId, requestData) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (shelvesetId == null) {\r\n throw new TypeError('shelvesetId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n shelvesetId: shelvesetId,\r\n requestData: requestData,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"e36d44fb-e907-4b0a-b194-f83f1ed32ad3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcShelveset, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Return a collection of shallow shelveset references.\r\n *\r\n * @param {TfvcInterfaces.TfvcShelvesetRequestData} requestData - name, owner, and maxCommentLength\r\n * @param {number} top - Max number of shelvesets to return\r\n * @param {number} skip - Number of shelvesets to skip\r\n */\r\n getShelvesets(requestData, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n requestData: requestData,\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"e36d44fb-e907-4b0a-b194-f83f1ed32ad3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcShelvesetRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get work items associated with a shelveset.\r\n *\r\n * @param {string} shelvesetId - Shelveset's unique ID\r\n */\r\n getShelvesetWorkItems(shelvesetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (shelvesetId == null) {\r\n throw new TypeError('shelvesetId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n shelvesetId: shelvesetId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"a7a0c1c1-373e-425a-b031-a519474d743d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Provides File Count and Uncompressed Bytes for a Collection/Project at a particular scope for TFVC.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - '$/' for collection, '$/project' for specific project\r\n */\r\n getTfvcStatistics(project, scopePath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n scopePath: scopePath,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"e15c74c0-3605-40e0-aed4-4cc61e549ed8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nTfvcApi.RESOURCE_AREA_ID = \"8aa40520-446d-40e6-89f6-9c9f9ce44c48\";\r\nexports.TfvcApi = TfvcApi;\r\n","\"use strict\";\r\n//*******************************************************************************************************\r\n// significant portions of this file copied from: VSO\\src\\Vssf\\WebPlatform\\Platform\\Scripts\\VSS\\WebApi\\RestClient.ts\r\n//*******************************************************************************************************\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/// Imports of 3rd Party ///\r\nconst url = require(\"url\");\r\nconst path = require(\"path\");\r\nclass InvalidApiResourceVersionError {\r\n constructor(message) {\r\n this.name = \"Invalid resource version\";\r\n this.message = message;\r\n }\r\n}\r\nexports.InvalidApiResourceVersionError = InvalidApiResourceVersionError;\r\n/**\r\n * Base class that should be used (derived from) to make requests to VSS REST apis\r\n */\r\nclass VsoClient {\r\n constructor(baseUrl, restClient) {\r\n this.baseUrl = baseUrl;\r\n this.basePath = url.parse(baseUrl).pathname;\r\n this.restClient = restClient;\r\n this._locationsByAreaPromises = {};\r\n this._initializationPromise = Promise.resolve(true);\r\n }\r\n autoNegotiateApiVersion(location, requestedVersion) {\r\n let negotiatedVersion;\r\n let apiVersion;\r\n let apiVersionString;\r\n if (requestedVersion) {\r\n let apiVersionRegEx = new RegExp('(\\\\d+(\\\\.\\\\d+)?)(-preview(\\\\.(\\\\d+))?)?');\r\n // Need to handle 3 types of api versions + invalid apiversion\r\n // '2.1-preview.1' = [\"2.1-preview.1\", \"2.1\", \".1\", -preview.1\", \".1\", \"1\"]\r\n // '2.1-preview' = [\"2.1-preview\", \"2.1\", \".1\", \"-preview\", undefined, undefined]\r\n // '2.1' = [\"2.1\", \"2.1\", \".1\", undefined, undefined, undefined]\r\n let isPreview = false;\r\n let resourceVersion;\r\n let regExExecArray = apiVersionRegEx.exec(requestedVersion);\r\n if (regExExecArray) {\r\n if (regExExecArray[1]) {\r\n // we have an api version\r\n apiVersion = +regExExecArray[1];\r\n apiVersionString = regExExecArray[1];\r\n if (regExExecArray[3]) {\r\n // requesting preview\r\n isPreview = true;\r\n if (regExExecArray[5]) {\r\n // we have a resource version\r\n resourceVersion = +regExExecArray[5];\r\n }\r\n }\r\n // compare the location version and requestedversion\r\n if (apiVersion <= +location.releasedVersion\r\n || (!resourceVersion && apiVersion <= +location.maxVersion && isPreview)\r\n || (resourceVersion && apiVersion <= +location.maxVersion && resourceVersion <= +location.resourceVersion)) {\r\n negotiatedVersion = requestedVersion;\r\n }\r\n // else fall back to latest version of the resource from location\r\n }\r\n }\r\n }\r\n if (!negotiatedVersion) {\r\n // Use the latest version of the resource if the api version was not specified in the request or if the requested version is higher then the location's supported version\r\n if (apiVersion < +location.maxVersion) {\r\n negotiatedVersion = apiVersionString + \"-preview\";\r\n }\r\n else if (location.maxVersion === location.releasedVersion) {\r\n negotiatedVersion = location.maxVersion;\r\n }\r\n else {\r\n negotiatedVersion = location.maxVersion + \"-preview.\" + location.resourceVersion;\r\n }\r\n }\r\n return negotiatedVersion;\r\n }\r\n /**\r\n * Gets the route template for a resource based on its location ID and negotiates the api version\r\n */\r\n getVersioningData(apiVersion, area, locationId, routeValues, queryParams) {\r\n let requestUrl;\r\n return this.beginGetLocation(area, locationId)\r\n .then((location) => {\r\n if (!location) {\r\n throw new Error(\"Failed to find api location for area: \" + area + \" id: \" + locationId);\r\n }\r\n apiVersion = this.autoNegotiateApiVersion(location, apiVersion);\r\n requestUrl = this.getRequestUrl(location.routeTemplate, location.area, location.resourceName, routeValues, queryParams);\r\n return {\r\n apiVersion: apiVersion,\r\n requestUrl: requestUrl\r\n };\r\n });\r\n }\r\n /**\r\n * Sets a promise that is waited on before any requests are issued. Can be used to asynchronously\r\n * set the request url and auth token manager.\r\n */\r\n _setInitializationPromise(promise) {\r\n if (promise) {\r\n this._initializationPromise = promise;\r\n }\r\n }\r\n /**\r\n * Gets information about an API resource location (route template, supported versions, etc.)\r\n *\r\n * @param area resource area name\r\n * @param locationId Guid of the location to get\r\n */\r\n beginGetLocation(area, locationId) {\r\n return this._initializationPromise.then(() => {\r\n return this.beginGetAreaLocations(area);\r\n }).then((areaLocations) => {\r\n return areaLocations[(locationId || \"\").toLowerCase()];\r\n });\r\n }\r\n beginGetAreaLocations(area) {\r\n let areaLocationsPromise = this._locationsByAreaPromises[area];\r\n if (!areaLocationsPromise) {\r\n let requestUrl = this.resolveUrl(VsoClient.APIS_RELATIVE_PATH + \"/\" + area);\r\n areaLocationsPromise = this.restClient.options(requestUrl)\r\n .then((res) => {\r\n let locationsLookup = {};\r\n let resourceLocations = res.result.value;\r\n let i;\r\n for (i = 0; i < resourceLocations.length; i++) {\r\n let resourceLocation = resourceLocations[i];\r\n locationsLookup[resourceLocation.id.toLowerCase()] = resourceLocation;\r\n }\r\n // If we have completed successfully, cache the response.\r\n this._locationsByAreaPromises[area] = areaLocationsPromise;\r\n return locationsLookup;\r\n });\r\n }\r\n return areaLocationsPromise;\r\n }\r\n resolveUrl(relativeUrl) {\r\n return url.resolve(this.baseUrl, path.join(this.basePath, relativeUrl));\r\n }\r\n queryParamsToStringHelper(queryParams, prefix) {\r\n if (!queryParams) {\r\n return '';\r\n }\r\n let queryString = '';\r\n if (typeof (queryParams) !== 'string') {\r\n for (let property in queryParams) {\r\n if (queryParams.hasOwnProperty(property)) {\r\n const prop = queryParams[property];\r\n const newPrefix = prefix + encodeURIComponent(property.toString()) + '.';\r\n queryString += this.queryParamsToStringHelper(prop, newPrefix);\r\n }\r\n }\r\n }\r\n if (queryString === '' && prefix.length > 0) {\r\n // Date.prototype.toString() returns a string that is not valid for the REST API.\r\n // Need to specially call `toUTCString()` instead for such cases\r\n const queryValue = typeof queryParams === 'object' && 'toUTCString' in queryParams ? queryParams.toUTCString() : queryParams.toString();\r\n // Will always need to chop period off of end of prefix\r\n queryString = prefix.slice(0, -1) + '=' + encodeURIComponent(queryValue) + '&';\r\n }\r\n return queryString;\r\n }\r\n queryParamsToString(queryParams) {\r\n const queryString = '?' + this.queryParamsToStringHelper(queryParams, '');\r\n // Will always need to slice either a ? or & off of the end\r\n return queryString.slice(0, -1);\r\n }\r\n getRequestUrl(routeTemplate, area, resource, routeValues, queryParams) {\r\n // Add area/resource route values (based on the location)\r\n routeValues = routeValues || {};\r\n if (!routeValues.area) {\r\n routeValues.area = area;\r\n }\r\n if (!routeValues.resource) {\r\n routeValues.resource = resource;\r\n }\r\n // Replace templated route values\r\n let relativeUrl = this.replaceRouteValues(routeTemplate, routeValues);\r\n // Append query parameters to the end\r\n if (queryParams) {\r\n relativeUrl += this.queryParamsToString(queryParams);\r\n }\r\n // Resolve the relative url with the base\r\n return url.resolve(this.baseUrl, path.join(this.basePath, relativeUrl));\r\n }\r\n // helper method copied directly from VSS\\WebAPI\\restclient.ts\r\n replaceRouteValues(routeTemplate, routeValues) {\r\n let result = \"\", currentPathPart = \"\", paramName = \"\", insideParam = false, charIndex, routeTemplateLength = routeTemplate.length, c;\r\n for (charIndex = 0; charIndex < routeTemplateLength; charIndex++) {\r\n c = routeTemplate[charIndex];\r\n if (insideParam) {\r\n if (c == \"}\") {\r\n insideParam = false;\r\n if (routeValues[paramName]) {\r\n currentPathPart += encodeURIComponent(routeValues[paramName]);\r\n }\r\n else {\r\n // Normalize param name in order to capture wild-card routes\r\n let strippedParamName = paramName.replace(/[^a-z0-9]/ig, '');\r\n if (routeValues[strippedParamName]) {\r\n currentPathPart += encodeURIComponent(routeValues[strippedParamName]);\r\n }\r\n }\r\n paramName = \"\";\r\n }\r\n else {\r\n paramName += c;\r\n }\r\n }\r\n else {\r\n if (c == \"/\") {\r\n if (currentPathPart) {\r\n if (result) {\r\n result += \"/\";\r\n }\r\n result += currentPathPart;\r\n currentPathPart = \"\";\r\n }\r\n }\r\n else if (c == \"{\") {\r\n if ((charIndex + 1) < routeTemplateLength && routeTemplate[charIndex + 1] == \"{\") {\r\n // Escaped '{'\r\n currentPathPart += c;\r\n charIndex++;\r\n }\r\n else {\r\n insideParam = true;\r\n }\r\n }\r\n else if (c == '}') {\r\n currentPathPart += c;\r\n if ((charIndex + 1) < routeTemplateLength && routeTemplate[charIndex + 1] == \"}\") {\r\n // Escaped '}'\r\n charIndex++;\r\n }\r\n }\r\n else {\r\n currentPathPart += c;\r\n }\r\n }\r\n }\r\n if (currentPathPart) {\r\n if (result) {\r\n result += \"/\";\r\n }\r\n result += currentPathPart;\r\n }\r\n return result;\r\n }\r\n}\r\nVsoClient.APIS_RELATIVE_PATH = \"_apis\";\r\nVsoClient.PREVIEW_INDICATOR = \"-preview.\";\r\nexports.VsoClient = VsoClient;\r\n",null,"\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst Comments_Contracts = require(\"./interfaces/CommentsInterfaces\");\r\nconst WikiInterfaces = require(\"./interfaces/WikiInterfaces\");\r\nclass WikiApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Wiki-api', options);\r\n }\r\n /**\r\n * Uploads an attachment on a comment on a wiki page.\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n */\r\n createCommentAttachment(customHeaders, contentStream, project, wikiIdentifier, pageId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"5100d976-363d-42e7-a19d-4171ecb44782\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentAttachment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Downloads an attachment on a comment on a wiki page.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {string} attachmentId - Attachment ID.\r\n */\r\n getAttachmentContent(project, wikiIdentifier, pageId, attachmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n attachmentId: attachmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"5100d976-363d-42e7-a19d-4171ecb44782\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a reaction on a wiki page comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name\r\n * @param {number} pageId - Wiki page ID\r\n * @param {number} commentId - ID of the associated comment\r\n * @param {Comments_Contracts.CommentReactionType} type - Type of the reaction being added\r\n */\r\n addCommentReaction(project, wikiIdentifier, pageId, commentId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n commentId: commentId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"7a5bc693-aab7-4d48-8f34-36f373022063\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentReaction, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a reaction on a wiki page comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or name\r\n * @param {number} pageId - Wiki page ID\r\n * @param {number} commentId - ID of the associated comment\r\n * @param {Comments_Contracts.CommentReactionType} type - Type of the reaction being deleted\r\n */\r\n deleteCommentReaction(project, wikiIdentifier, pageId, commentId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n commentId: commentId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"7a5bc693-aab7-4d48-8f34-36f373022063\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentReaction, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of users who have reacted for the given wiki comment with a given reaction type. Supports paging, with a default page size of 100 users at a time.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} commentId - ID of the associated comment\r\n * @param {Comments_Contracts.CommentReactionType} type - Type of the reaction for which the engaged users are being requested\r\n * @param {number} top - Number of enagaged users to be returned in a given page. Optional, defaults to 100\r\n * @param {number} skip - Number of engaged users to be skipped to page the next set of engaged users, defaults to 0\r\n */\r\n getEngagedUsers(project, wikiIdentifier, pageId, commentId, type, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n commentId: commentId,\r\n type: type\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"598a5268-41a7-4162-b7dc-344131e4d1fa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a comment on a wiki page.\r\n *\r\n * @param {Comments_Contracts.CommentCreateParameters} request - Comment create request.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n */\r\n addComment(request, project, wikiIdentifier, pageId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"9b394e93-7db5-46cb-9c26-09a36aa5c895\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, request, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a comment on a wiki page.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} id - Comment ID.\r\n */\r\n deleteComment(project, wikiIdentifier, pageId, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"9b394e93-7db5-46cb-9c26-09a36aa5c895\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a comment associated with the Wiki Page.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} id - ID of the comment to return.\r\n * @param {boolean} excludeDeleted - Specify if the deleted comment should be skipped.\r\n * @param {Comments_Contracts.CommentExpandOptions} expand - Specifies the additional data retrieval options for comments.\r\n */\r\n getComment(project, wikiIdentifier, pageId, id, excludeDeleted, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n id: id\r\n };\r\n let queryValues = {\r\n excludeDeleted: excludeDeleted,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"9b394e93-7db5-46cb-9c26-09a36aa5c895\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a pageable list of comments.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} top - Max number of comments to return.\r\n * @param {string} continuationToken - Used to query for the next page of comments.\r\n * @param {boolean} excludeDeleted - Specify if the deleted comments should be skipped.\r\n * @param {Comments_Contracts.CommentExpandOptions} expand - Specifies the additional data retrieval options for comments.\r\n * @param {Comments_Contracts.CommentSortOrder} order - Order in which the comments should be returned.\r\n * @param {number} parentId - CommentId of the parent comment.\r\n */\r\n listComments(project, wikiIdentifier, pageId, top, continuationToken, excludeDeleted, expand, order, parentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n excludeDeleted: excludeDeleted,\r\n '$expand': expand,\r\n order: order,\r\n parentId: parentId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"9b394e93-7db5-46cb-9c26-09a36aa5c895\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentList, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a comment on a wiki page.\r\n *\r\n * @param {Comments_Contracts.CommentUpdateParameters} comment - Comment update request.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} id - Comment ID.\r\n */\r\n updateComment(comment, project, wikiIdentifier, pageId, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"9b394e93-7db5-46cb-9c26-09a36aa5c895\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, comment, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets metadata or content of the wiki page for the provided path. Content negotiation is done based on the `Accept` header sent in the request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {string} path - Wiki page path.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional).\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - GitVersionDescriptor for the page. Defaults to the default branch (Optional).\r\n * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional)\r\n */\r\n getPageText(project, wikiIdentifier, path, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n let queryValues = {\r\n path: path,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"25d3fbc7-fe3d-46cb-b5a5-0b6f79caf27b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets metadata or content of the wiki page for the provided path. Content negotiation is done based on the `Accept` header sent in the request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {string} path - Wiki page path.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional).\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - GitVersionDescriptor for the page. Defaults to the default branch (Optional).\r\n * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional)\r\n */\r\n getPageZip(project, wikiIdentifier, path, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n let queryValues = {\r\n path: path,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"25d3fbc7-fe3d-46cb-b5a5-0b6f79caf27b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets metadata or content of the wiki page for the provided page id. Content negotiation is done based on the `Accept` header sent in the request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name..\r\n * @param {number} id - Wiki page ID.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional).\r\n * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional)\r\n */\r\n getPageByIdText(project, wikiIdentifier, id, recursionLevel, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n id: id\r\n };\r\n let queryValues = {\r\n recursionLevel: recursionLevel,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"ceddcf75-1068-452d-8b13-2d4d76e1f970\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets metadata or content of the wiki page for the provided page id. Content negotiation is done based on the `Accept` header sent in the request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name..\r\n * @param {number} id - Wiki page ID.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional).\r\n * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional)\r\n */\r\n getPageByIdZip(project, wikiIdentifier, id, recursionLevel, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n id: id\r\n };\r\n let queryValues = {\r\n recursionLevel: recursionLevel,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"ceddcf75-1068-452d-8b13-2d4d76e1f970\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns pageable list of Wiki Pages\r\n *\r\n * @param {WikiInterfaces.WikiPagesBatchRequest} pagesBatchRequest - Wiki batch page request.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - GitVersionDescriptor for the page. (Optional in case of ProjectWiki).\r\n */\r\n getPagesBatch(pagesBatchRequest, project, wikiIdentifier, versionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n let queryValues = {\r\n versionDescriptor: versionDescriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"71323c46-2592-4398-8771-ced73dd87207\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, pagesBatchRequest, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiPageDetail, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns page detail corresponding to Page ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} pageViewsForDays - last N days from the current day for which page views is to be returned. It's inclusive of current day.\r\n */\r\n getPageData(project, wikiIdentifier, pageId, pageViewsForDays) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId\r\n };\r\n let queryValues = {\r\n pageViewsForDays: pageViewsForDays,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"81c4e0fe-7663-4d62-ad46-6ab78459f274\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiPageDetail, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new page view stats resource or updates an existing page view stats resource.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {GitInterfaces.GitVersionDescriptor} wikiVersion - Wiki version.\r\n * @param {string} path - Wiki page path.\r\n * @param {string} oldPath - Old page path. This is optional and required to rename path in existing page view stats.\r\n */\r\n createOrUpdatePageViewStats(project, wikiIdentifier, wikiVersion, path, oldPath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (wikiVersion == null) {\r\n throw new TypeError('wikiVersion can not be null or undefined');\r\n }\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n let queryValues = {\r\n wikiVersion: wikiVersion,\r\n path: path,\r\n oldPath: oldPath,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"1087b746-5d15-41b9-bea6-14e325e7f880\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiPageViewStats, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates the wiki resource.\r\n *\r\n * @param {WikiInterfaces.WikiCreateParametersV2} wikiCreateParams - Parameters for the wiki creation.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createWiki(wikiCreateParams, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wiki\", \"288d122c-dbd4-451d-aa5f-7dbbba070728\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, wikiCreateParams, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the wiki corresponding to the wiki ID or wiki name provided.\r\n *\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteWiki(wikiIdentifier, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wiki\", \"288d122c-dbd4-451d-aa5f-7dbbba070728\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all wikis in a project or collection.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getAllWikis(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wiki\", \"288d122c-dbd4-451d-aa5f-7dbbba070728\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the wiki corresponding to the wiki ID or wiki name provided.\r\n *\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWiki(wikiIdentifier, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wiki\", \"288d122c-dbd4-451d-aa5f-7dbbba070728\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the wiki corresponding to the wiki ID or wiki name provided using the update parameters.\r\n *\r\n * @param {WikiInterfaces.WikiUpdateParameters} updateParameters - Update parameters.\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateWiki(updateParameters, wikiIdentifier, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wiki\", \"288d122c-dbd4-451d-aa5f-7dbbba070728\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nWikiApi.RESOURCE_AREA_ID = \"bf7d82a0-8aa5-4613-94ef-6172a5ea01f3\";\r\nexports.WikiApi = WikiApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst WorkInterfaces = require(\"./interfaces/WorkInterfaces\");\r\nclass WorkApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Work-api', options);\r\n }\r\n /**\r\n * Gets backlog configuration for a team\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getBacklogConfigurations(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"7799f497-3cb5-4f16-ad4f-5cd06012db64\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BacklogConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of work items within a backlog level\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} backlogId\r\n */\r\n getBacklogLevelWorkItems(teamContext, backlogId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n backlogId: backlogId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"7c468d96-ab1d-4294-a360-92f07e9ccd98\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a backlog level\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - The id of the backlog level\r\n */\r\n getBacklog(teamContext, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"a93726f9-7867-4e38-b4f2-0bfafc2f6a94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BacklogLevelConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List all backlog levels\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getBacklogs(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"a93726f9-7867-4e38-b4f2-0bfafc2f6a94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BacklogLevelConfiguration, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that displays the status of columns on the board.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - The id of the board.\r\n * @param {WorkInterfaces.BoardBadgeColumnOptions} columnOptions - Determines what columns to show.\r\n * @param {string[]} columns - If columnOptions is set to custom, specify the list of column names.\r\n */\r\n getBoardBadge(teamContext, id, columnOptions, columns) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n let queryValues = {\r\n columnOptions: columnOptions,\r\n columns: columns && columns.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0120b002-ab6c-4ca0-98cf-a8d7492f865c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that displays the status of columns on the board.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - The id of the board.\r\n * @param {WorkInterfaces.BoardBadgeColumnOptions} columnOptions - Determines what columns to show.\r\n * @param {string[]} columns - If columnOptions is set to custom, specify the list of column names.\r\n */\r\n getBoardBadgeData(teamContext, id, columnOptions, columns) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n let queryValues = {\r\n columnOptions: columnOptions,\r\n columns: columns && columns.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0120b002-ab6c-4ca0-98cf-a8d7492f865c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get available board columns in a project\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getColumnSuggestedValues(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"eb7ec5a3-1ba3-4fd1-b834-49a5a387e57d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the list of parent field filter model for the given list of workitem ids\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} childBacklogContextCategoryRefName\r\n * @param {number[]} workitemIds\r\n */\r\n getBoardMappingParentItems(teamContext, childBacklogContextCategoryRefName, workitemIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (childBacklogContextCategoryRefName == null) {\r\n throw new TypeError('childBacklogContextCategoryRefName can not be null or undefined');\r\n }\r\n if (workitemIds == null) {\r\n throw new TypeError('workitemIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n let queryValues = {\r\n childBacklogContextCategoryRefName: childBacklogContextCategoryRefName,\r\n workitemIds: workitemIds && workitemIds.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"186abea3-5c35-432f-9e28-7a15b4312a0e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get available board rows in a project\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRowSuggestedValues(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"bb494cc6-a0f5-4c6c-8dca-ea6912e79eb9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get board\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - identifier for board, either board's backlog level name (Eg:\"Stories\") or Id\r\n */\r\n getBoard(teamContext, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"23ad19fc-3b8e-4877-8462-b3f92bc06b40\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Board, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get boards\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getBoards(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"23ad19fc-3b8e-4877-8462-b3f92bc06b40\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update board options\r\n *\r\n * @param {{ [key: string] : string; }} options - options to updated\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - identifier for board, either category plural name (Eg:\"Stories\") or guid\r\n */\r\n setBoardOptions(options, teamContext, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"23ad19fc-3b8e-4877-8462-b3f92bc06b40\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, options, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get board user settings for a board id\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Board ID or Name\r\n */\r\n getBoardUserSettings(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"b30d9f58-1891-4b0a-b168-c46408f919b0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update board user settings for the board id\r\n *\r\n * @param {{ [key: string] : string; }} boardUserSettings\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board\r\n */\r\n updateBoardUserSettings(boardUserSettings, teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"b30d9f58-1891-4b0a-b168-c46408f919b0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, boardUserSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a team's capacity including total capacity and days off\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n getCapacitiesWithIdentityRefAndTotals(teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"work\", \"74412d15-8c1a-4352-a48d-ef1ed5587d57\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamCapacity, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a team member's capacity\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n * @param {string} teamMemberId - ID of the team member\r\n */\r\n getCapacityWithIdentityRef(teamContext, iterationId, teamMemberId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId,\r\n teamMemberId: teamMemberId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"work\", \"74412d15-8c1a-4352-a48d-ef1ed5587d57\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamMemberCapacityIdentityRef, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replace a team's capacity\r\n *\r\n * @param {WorkInterfaces.TeamMemberCapacityIdentityRef[]} capacities - Team capacity to replace\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n replaceCapacitiesWithIdentityRef(capacities, teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"work\", \"74412d15-8c1a-4352-a48d-ef1ed5587d57\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, capacities, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamMemberCapacityIdentityRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a team member's capacity\r\n *\r\n * @param {WorkInterfaces.CapacityPatch} patch - Updated capacity\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n * @param {string} teamMemberId - ID of the team member\r\n */\r\n updateCapacityWithIdentityRef(patch, teamContext, iterationId, teamMemberId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId,\r\n teamMemberId: teamMemberId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"work\", \"74412d15-8c1a-4352-a48d-ef1ed5587d57\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, patch, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamMemberCapacityIdentityRef, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get board card Rule settings for the board id or board by name\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board\r\n */\r\n getBoardCardRuleSettings(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"b044a3d9-02ea-49c7-91a1-b730949cc896\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update board card Rule settings for the board id or board by name\r\n *\r\n * @param {WorkInterfaces.BoardCardRuleSettings} boardCardRuleSettings\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board\r\n */\r\n updateBoardCardRuleSettings(boardCardRuleSettings, teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"b044a3d9-02ea-49c7-91a1-b730949cc896\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, boardCardRuleSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update taskboard card Rule settings\r\n *\r\n * @param {WorkInterfaces.BoardCardRuleSettings} boardCardRuleSettings\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateTaskboardCardRuleSettings(boardCardRuleSettings, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"3f84a8d1-1aab-423e-a94b-6dcbdcca511f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, boardCardRuleSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get board card settings for the board id or board by name\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board\r\n */\r\n getBoardCardSettings(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"07c3b467-bc60-4f05-8e34-599ce288fafc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update board card settings for the board id or board by name\r\n *\r\n * @param {WorkInterfaces.BoardCardSettings} boardCardSettingsToSave\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board\r\n */\r\n updateBoardCardSettings(boardCardSettingsToSave, teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"07c3b467-bc60-4f05-8e34-599ce288fafc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, boardCardSettingsToSave, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update taskboard card settings\r\n *\r\n * @param {WorkInterfaces.BoardCardSettings} boardCardSettingsToSave\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateTaskboardCardSettings(boardCardSettingsToSave, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"0d63745f-31f3-4cf3-9056-2a064e567637\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, boardCardSettingsToSave, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a board chart\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Identifier for board, either board's backlog level name (Eg:\"Stories\") or Id\r\n * @param {string} name - The chart name\r\n */\r\n getBoardChart(teamContext, board, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"45fe888c-239e-49fd-958c-df1a1ab21d97\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get board charts\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Identifier for board, either board's backlog level name (Eg:\"Stories\") or Id\r\n */\r\n getBoardCharts(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"45fe888c-239e-49fd-958c-df1a1ab21d97\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a board chart\r\n *\r\n * @param {WorkInterfaces.BoardChart} chart\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Identifier for board, either board's backlog level name (Eg:\"Stories\") or Id\r\n * @param {string} name - The chart name\r\n */\r\n updateBoardChart(chart, teamContext, board, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"45fe888c-239e-49fd-958c-df1a1ab21d97\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, chart, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get columns on a board\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Name or ID of the specific board\r\n */\r\n getBoardColumns(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c555d7ff-84e1-47df-9923-a3fe0cd8751b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BoardColumn, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update columns on a board\r\n *\r\n * @param {WorkInterfaces.BoardColumn[]} boardColumns - List of board columns to update\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Name or ID of the specific board\r\n */\r\n updateBoardColumns(boardColumns, teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c555d7ff-84e1-47df-9923-a3fe0cd8751b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, boardColumns, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BoardColumn, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Delivery View Data\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} id - Identifier for delivery view\r\n * @param {number} revision - Revision of the plan for which you want data. If the current plan is a different revision you will get an ViewRevisionMismatchException exception. If you do not supply a revision you will get data for the latest revision.\r\n * @param {Date} startDate - The start date of timeline\r\n * @param {Date} endDate - The end date of timeline\r\n */\r\n getDeliveryTimelineData(project, id, revision, startDate, endDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n startDate: startDate,\r\n endDate: endDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"bdd0834e-101f-49f0-a6ae-509f384a12b4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.DeliveryViewData, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get an iteration's capacity for all teams in iteration\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n getTotalIterationCapacities(project, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"1e385ce0-396b-4273-8171-d64562c18d37\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a team's iteration by iterationId\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - ID of the iteration\r\n */\r\n deleteTeamIteration(teamContext, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c9175577-28a1-4b06-9197-8636af9f64ad\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get team's iteration by iterationId\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - ID of the iteration\r\n */\r\n getTeamIteration(teamContext, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c9175577-28a1-4b06-9197-8636af9f64ad\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsIteration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a team's iterations using timeframe filter\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} timeframe - A filter for which iterations are returned based on relative time. Only Current is supported currently.\r\n */\r\n getTeamIterations(teamContext, timeframe) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n let queryValues = {\r\n '$timeframe': timeframe,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c9175577-28a1-4b06-9197-8636af9f64ad\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsIteration, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add an iteration to the team\r\n *\r\n * @param {WorkInterfaces.TeamSettingsIteration} iteration - Iteration to add\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n postTeamIteration(iteration, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c9175577-28a1-4b06-9197-8636af9f64ad\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, iteration, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsIteration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a new plan for the team\r\n *\r\n * @param {WorkInterfaces.CreatePlan} postedPlan - Plan definition\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPlan(postedPlan, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0b42cb47-cd73-4810-ac90-19c9ba147453\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, postedPlan, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete the specified plan\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} id - Identifier of the plan\r\n */\r\n deletePlan(project, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0b42cb47-cd73-4810-ac90-19c9ba147453\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the information for the specified plan\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} id - Identifier of the plan\r\n */\r\n getPlan(project, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0b42cb47-cd73-4810-ac90-19c9ba147453\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the information for all the plans configured for the given team\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPlans(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0b42cb47-cd73-4810-ac90-19c9ba147453\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the information for the specified plan\r\n *\r\n * @param {WorkInterfaces.UpdatePlan} updatedPlan - Plan definition to be updated\r\n * @param {string} project - Project ID or project name\r\n * @param {string} id - Identifier of the plan\r\n */\r\n updatePlan(updatedPlan, project, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0b42cb47-cd73-4810-ac90-19c9ba147453\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, updatedPlan, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get process configuration\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getProcessConfiguration(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"f901ba42-86d2-4b0c-89c1-3f86d06daa84\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get rows on a board\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Name or ID of the specific board\r\n */\r\n getBoardRows(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0863355d-aefd-4d63-8669-984c9b7b0e78\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update rows on a board\r\n *\r\n * @param {WorkInterfaces.BoardRow[]} boardRows - List of board rows to update\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Name or ID of the specific board\r\n */\r\n updateBoardRows(boardRows, teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0863355d-aefd-4d63-8669-984c9b7b0e78\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, boardRows, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getColumns(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c6815dbe-8e7e-4ffe-9a79-e83ee712aa92\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {WorkInterfaces.UpdateTaskboardColumn[]} updateColumns\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateColumns(updateColumns, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c6815dbe-8e7e-4ffe-9a79-e83ee712aa92\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, updateColumns, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId\r\n */\r\n getWorkItemColumns(teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"1be23c36-8872-4abc-b57d-402cd6c669d9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {WorkInterfaces.UpdateTaskboardWorkItemColumn} updateColumn\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId\r\n * @param {number} workItemId\r\n */\r\n updateWorkItemColumn(updateColumn, teamContext, iterationId, workItemId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId,\r\n workItemId: workItemId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"1be23c36-8872-4abc-b57d-402cd6c669d9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateColumn, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get team's days off for an iteration\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n getTeamDaysOff(teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"2d4faa2e-9150-4cbf-a47a-932b1b4a0773\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsDaysOff, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Set a team's days off for an iteration\r\n *\r\n * @param {WorkInterfaces.TeamSettingsDaysOffPatch} daysOffPatch - Team's days off patch containing a list of start and end dates\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n updateTeamDaysOff(daysOffPatch, teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"2d4faa2e-9150-4cbf-a47a-932b1b4a0773\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, daysOffPatch, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsDaysOff, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a collection of team field values\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getTeamFieldValues(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"07ced576-58ed-49e6-9c1e-5cb53ab8bf2a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update team field values\r\n *\r\n * @param {WorkInterfaces.TeamFieldValuesPatch} patch\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateTeamFieldValues(patch, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"07ced576-58ed-49e6-9c1e-5cb53ab8bf2a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, patch, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a team's settings\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getTeamSettings(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c3c1012b-bea7-49d7-b45e-1664e566f84c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSetting, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a team's settings\r\n *\r\n * @param {WorkInterfaces.TeamSettingsPatch} teamSettingsPatch - TeamSettings changes\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateTeamSettings(teamSettingsPatch, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c3c1012b-bea7-49d7-b45e-1664e566f84c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, teamSettingsPatch, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSetting, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get work items for iteration\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n getIterationWorkItems(teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"5b3ef1a6-d3ab-44cd-bafd-c7f45db850fa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Reorder Product Backlog/Boards Work Items\r\n *\r\n * @param {WorkInterfaces.ReorderOperation} operation\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n reorderBacklogWorkItems(operation, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"1c22b714-e7e4-41b9-85e0-56ee13ef55ed\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, operation, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Reorder Sprint Backlog/Taskboard Work Items\r\n *\r\n * @param {WorkInterfaces.ReorderOperation} operation\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - The id of the iteration\r\n */\r\n reorderIterationWorkItems(operation, teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"47755db2-d7eb-405a-8c25-675401525fc9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, operation, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nWorkApi.RESOURCE_AREA_ID = \"1d4f49f9-02b9-4e26-b826-2cdb6195f2a9\";\r\nexports.WorkApi = WorkApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst WorkItemTrackingInterfaces = require(\"./interfaces/WorkItemTrackingInterfaces\");\r\nclass WorkItemTrackingApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-WorkItemTracking-api', options);\r\n }\r\n /**\r\n * INTERNAL ONLY: USED BY ACCOUNT MY WORK PAGE. This returns Doing, Done, Follows and activity work items details.\r\n *\r\n * @param {WorkItemTrackingInterfaces.QueryOption} queryOption\r\n */\r\n getAccountMyWorkData(queryOption) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n '$queryOption': queryOption,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"def3d688-ddf5-4096-9024-69beea15cdbd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.AccountMyWorkResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets recent work item activities\r\n *\r\n */\r\n getRecentActivityData() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"1bc988f4-c15f-4072-ad35-497c87e3a909\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.AccountRecentActivityWorkItemModel2, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * INTERNAL ONLY: USED BY ACCOUNT MY WORK PAGE.\r\n *\r\n */\r\n getRecentMentions() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"d60eeb6e-e18c-4478-9e94-a0094e28f41c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.AccountRecentMentionWorkItemModel, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the list of work item tracking outbound artifact link types.\r\n *\r\n */\r\n getWorkArtifactLinkTypes() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"1a31de40-e318-41cd-a6c6-881077df52e3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Queries work items linked to a given list of artifact URI.\r\n *\r\n * @param {WorkItemTrackingInterfaces.ArtifactUriQuery} artifactUriQuery - Defines a list of artifact URI for querying work items.\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryWorkItemsForArtifactUris(artifactUriQuery, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"a9a9aa7a-8c09-44d3-ad1b-46e855c1e3d3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, artifactUriQuery, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Uploads an attachment.\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} fileName - The name of the file\r\n * @param {string} uploadType - Attachment upload type: Simple or Chunked\r\n * @param {string} project - Project ID or project name\r\n * @param {string} areaPath - Target project Area Path\r\n */\r\n createAttachment(customHeaders, contentStream, fileName, uploadType, project, areaPath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fileName: fileName,\r\n uploadType: uploadType,\r\n areaPath: areaPath,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"e07b5fa4-1499-494d-a496-64b860fd64ff\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Downloads an attachment.\r\n *\r\n * @param {string} id - Attachment ID\r\n * @param {string} fileName - Name of the file\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} download - If set to true always download attachment\r\n */\r\n getAttachmentContent(id, fileName, project, download) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n fileName: fileName,\r\n download: download,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"e07b5fa4-1499-494d-a496-64b860fd64ff\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Downloads an attachment.\r\n *\r\n * @param {string} id - Attachment ID\r\n * @param {string} fileName - Name of the file\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} download - If set to true always download attachment\r\n */\r\n getAttachmentZip(id, fileName, project, download) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n fileName: fileName,\r\n download: download,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"e07b5fa4-1499-494d-a496-64b860fd64ff\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets root classification nodes or list of classification nodes for a given list of nodes ids, for a given project. In case ids parameter is supplied you will get list of classification nodes for those ids. Otherwise you will get root classification nodes for this project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number[]} ids - Comma separated integer classification nodes ids. It's not required, if you want root nodes.\r\n * @param {number} depth - Depth of children to fetch.\r\n * @param {WorkItemTrackingInterfaces.ClassificationNodesErrorPolicy} errorPolicy - Flag to handle errors in getting some nodes. Possible options are Fail and Omit.\r\n */\r\n getClassificationNodes(project, ids, depth, errorPolicy) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n '$depth': depth,\r\n errorPolicy: errorPolicy,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a70579d1-f53a-48ee-a5be-7be8659023b9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets root classification nodes under the project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} depth - Depth of children to fetch.\r\n */\r\n getRootNodes(project, depth) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$depth': depth,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a70579d1-f53a-48ee-a5be-7be8659023b9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create new or update an existing classification node.\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemClassificationNode} postedNode - Node to create or update.\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration.\r\n * @param {string} path - Path of the classification node.\r\n */\r\n createOrUpdateClassificationNode(postedNode, project, structureGroup, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n structureGroup: structureGroup,\r\n path: path\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"5a172953-1b41-49d3-840a-33f79c3ce89f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, postedNode, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete an existing classification node.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration.\r\n * @param {string} path - Path of the classification node.\r\n * @param {number} reclassifyId - Id of the target classification node for reclassification.\r\n */\r\n deleteClassificationNode(project, structureGroup, path, reclassifyId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n structureGroup: structureGroup,\r\n path: path\r\n };\r\n let queryValues = {\r\n '$reclassifyId': reclassifyId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"5a172953-1b41-49d3-840a-33f79c3ce89f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the classification node for a given node path.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration.\r\n * @param {string} path - Path of the classification node.\r\n * @param {number} depth - Depth of children to fetch.\r\n */\r\n getClassificationNode(project, structureGroup, path, depth) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n structureGroup: structureGroup,\r\n path: path\r\n };\r\n let queryValues = {\r\n '$depth': depth,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"5a172953-1b41-49d3-840a-33f79c3ce89f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update an existing classification node.\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemClassificationNode} postedNode - Node to create or update.\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration.\r\n * @param {string} path - Path of the classification node.\r\n */\r\n updateClassificationNode(postedNode, project, structureGroup, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n structureGroup: structureGroup,\r\n path: path\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"5a172953-1b41-49d3-840a-33f79c3ce89f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, postedNode, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get users who reacted on the comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - WorkItem ID.\r\n * @param {number} commentId - Comment ID.\r\n * @param {WorkItemTrackingInterfaces.CommentReactionType} reactionType - Type of the reaction.\r\n * @param {number} top\r\n * @param {number} skip\r\n */\r\n getEngagedUsers(project, workItemId, commentId, reactionType, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId,\r\n reactionType: reactionType\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"e33ca5e0-2349-4285-af3d-d72d86781c35\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a comment on a work item.\r\n *\r\n * @param {WorkItemTrackingInterfaces.CommentCreate} request - Comment create request.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item.\r\n */\r\n addComment(request, project, workItemId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, request, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a comment on a work item.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item.\r\n * @param {number} commentId\r\n */\r\n deleteComment(project, workItemId, commentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a work item comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item to get the comment.\r\n * @param {number} commentId - Id of the comment to return.\r\n * @param {boolean} includeDeleted - Specify if the deleted comment should be retrieved.\r\n * @param {WorkItemTrackingInterfaces.CommentExpandOptions} expand - Specifies the additional data retrieval options for work item comments.\r\n */\r\n getComment(project, workItemId, commentId, includeDeleted, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId\r\n };\r\n let queryValues = {\r\n includeDeleted: includeDeleted,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of work item comments, pageable.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item to get comments for.\r\n * @param {number} top - Max number of comments to return.\r\n * @param {string} continuationToken - Used to query for the next page of comments.\r\n * @param {boolean} includeDeleted - Specify if the deleted comments should be retrieved.\r\n * @param {WorkItemTrackingInterfaces.CommentExpandOptions} expand - Specifies the additional data retrieval options for work item comments.\r\n * @param {WorkItemTrackingInterfaces.CommentSortOrder} order - Order in which the comments should be returned.\r\n */\r\n getComments(project, workItemId, top, continuationToken, includeDeleted, expand, order) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n includeDeleted: includeDeleted,\r\n '$expand': expand,\r\n order: order,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentList, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of work item comments by ids.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item to get comments for.\r\n * @param {number[]} ids - Comma-separated list of comment ids to return.\r\n * @param {boolean} includeDeleted - Specify if the deleted comments should be retrieved.\r\n * @param {WorkItemTrackingInterfaces.CommentExpandOptions} expand - Specifies the additional data retrieval options for work item comments.\r\n */\r\n getCommentsBatch(project, workItemId, ids, includeDeleted, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId\r\n };\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n includeDeleted: includeDeleted,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentList, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a comment on a work item.\r\n *\r\n * @param {WorkItemTrackingInterfaces.CommentUpdate} request - Comment update request.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item.\r\n * @param {number} commentId\r\n */\r\n updateComment(request, project, workItemId, commentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, request, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a new reaction to a comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - WorkItem ID\r\n * @param {number} commentId - Comment ID\r\n * @param {WorkItemTrackingInterfaces.CommentReactionType} reactionType - Type of the reaction\r\n */\r\n createCommentReaction(project, workItemId, commentId, reactionType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId,\r\n reactionType: reactionType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"f6cb3f27-1028-4851-af96-887e570dc21f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentReaction, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes an existing reaction on a comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - WorkItem ID\r\n * @param {number} commentId - Comment ID\r\n * @param {WorkItemTrackingInterfaces.CommentReactionType} reactionType - Type of the reaction\r\n */\r\n deleteCommentReaction(project, workItemId, commentId, reactionType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId,\r\n reactionType: reactionType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"f6cb3f27-1028-4851-af96-887e570dc21f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentReaction, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets reactions of a comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - WorkItem ID\r\n * @param {number} commentId - Comment ID\r\n */\r\n getCommentReactions(project, workItemId, commentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"f6cb3f27-1028-4851-af96-887e570dc21f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentReaction, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId\r\n * @param {number} commentId\r\n * @param {number} version\r\n */\r\n getCommentVersion(project, workItemId, commentId, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"49e03b34-3be0-42e3-8a5d-e8dfb88ac954\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentVersion, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId\r\n * @param {number} commentId\r\n */\r\n getCommentVersions(project, workItemId, commentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"49e03b34-3be0-42e3-8a5d-e8dfb88ac954\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentVersion, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a new field.\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemField} workItemField - New field definition\r\n * @param {string} project - Project ID or project name\r\n */\r\n createField(workItemField, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemField, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the field. To undelete a filed, see \"Update Field\" API.\r\n *\r\n * @param {string} fieldNameOrRefName - Field simple name or reference name\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteField(fieldNameOrRefName, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fieldNameOrRefName: fieldNameOrRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets information on a specific field.\r\n *\r\n * @param {string} fieldNameOrRefName - Field simple name or reference name\r\n * @param {string} project - Project ID or project name\r\n */\r\n getField(fieldNameOrRefName, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fieldNameOrRefName: fieldNameOrRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns information for all fields. The project ID/name parameter is optional.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.GetFieldsExpand} expand - Use ExtensionFields to include extension fields, otherwise exclude them. Unless the feature flag for this parameter is enabled, extension fields are always included.\r\n */\r\n getFields(project, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a field.\r\n *\r\n * @param {WorkItemTrackingInterfaces.UpdateWorkItemField} payload - Payload contains desired value of the field's properties\r\n * @param {string} fieldNameOrRefName - Name/reference name of the field to be updated\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateField(payload, fieldNameOrRefName, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fieldNameOrRefName: fieldNameOrRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, payload, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Migrates a project to a different process within the same OOB type. For example, you can only migrate a project from agile/custom-agile to agile/custom-agile.\r\n *\r\n * @param {WorkItemTrackingInterfaces.ProcessIdModel} newProcess\r\n * @param {string} project - Project ID or project name\r\n */\r\n migrateProjectsProcess(newProcess, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"19801631-d4e5-47e9-8166-0330de0ff1e6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, newProcess, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a query, or moves a query.\r\n *\r\n * @param {WorkItemTrackingInterfaces.QueryHierarchyItem} postedQuery - The query to create.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} query - The parent id or path under which the query is to be created.\r\n * @param {boolean} validateWiqlOnly - If you only want to validate your WIQL query without actually creating one, set it to true. Default is false.\r\n */\r\n createQuery(postedQuery, project, query, validateWiqlOnly) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n query: query\r\n };\r\n let queryValues = {\r\n validateWiqlOnly: validateWiqlOnly,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, postedQuery, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a query or a folder. This deletes any permission change on the deleted query or folder and any of its descendants if it is a folder. It is important to note that the deleted permission changes cannot be recovered upon undeleting the query or folder.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} query - ID or path of the query or folder to delete.\r\n */\r\n deleteQuery(project, query) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n query: query\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the root queries and their children\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.QueryExpand} expand - Include the query string (wiql), clauses, query result columns, and sort options in the results.\r\n * @param {number} depth - In the folder of queries, return child queries and folders to this depth.\r\n * @param {boolean} includeDeleted - Include deleted queries and folders\r\n */\r\n getQueries(project, expand, depth, includeDeleted) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n '$depth': depth,\r\n '$includeDeleted': includeDeleted,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves an individual query and its children\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} query - ID or path of the query.\r\n * @param {WorkItemTrackingInterfaces.QueryExpand} expand - Include the query string (wiql), clauses, query result columns, and sort options in the results.\r\n * @param {number} depth - In the folder of queries, return child queries and folders to this depth.\r\n * @param {boolean} includeDeleted - Include deleted queries and folders\r\n */\r\n getQuery(project, query, expand, depth, includeDeleted) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n query: query\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n '$depth': depth,\r\n '$includeDeleted': includeDeleted,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Searches all queries the user has access to in the current project\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} filter - The text to filter the queries with.\r\n * @param {number} top - The number of queries to return (Default is 50 and maximum is 200).\r\n * @param {WorkItemTrackingInterfaces.QueryExpand} expand\r\n * @param {boolean} includeDeleted - Include deleted queries and folders\r\n */\r\n searchQueries(project, filter, top, expand, includeDeleted) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (filter == null) {\r\n throw new TypeError('filter can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$filter': filter,\r\n '$top': top,\r\n '$expand': expand,\r\n '$includeDeleted': includeDeleted,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItemsResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a query or a folder. This allows you to update, rename and move queries and folders.\r\n *\r\n * @param {WorkItemTrackingInterfaces.QueryHierarchyItem} queryUpdate - The query to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} query - The ID or path for the query to update.\r\n * @param {boolean} undeleteDescendants - Undelete the children of this folder. It is important to note that this will not bring back the permission changes that were previously applied to the descendants.\r\n */\r\n updateQuery(queryUpdate, project, query, undeleteDescendants) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n query: query\r\n };\r\n let queryValues = {\r\n '$undeleteDescendants': undeleteDescendants,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, queryUpdate, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of queries by ids (Maximum 1000)\r\n *\r\n * @param {WorkItemTrackingInterfaces.QueryBatchGetRequest} queryGetRequest\r\n * @param {string} project - Project ID or project name\r\n */\r\n getQueriesBatch(queryGetRequest, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"549816f9-09b0-4e75-9e81-01fbfcd07426\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, queryGetRequest, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Destroys the specified work item permanently from the Recycle Bin. This action can not be undone.\r\n *\r\n * @param {number} id - ID of the work item to be destroyed permanently\r\n * @param {string} project - Project ID or project name\r\n */\r\n destroyWorkItem(id, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b70d8d39-926c-465e-b927-b1bf0e5ca0e0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a deleted work item from Recycle Bin.\r\n *\r\n * @param {number} id - ID of the work item to be returned\r\n * @param {string} project - Project ID or project name\r\n */\r\n getDeletedWorkItem(id, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b70d8d39-926c-465e-b927-b1bf0e5ca0e0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the work items from the recycle bin, whose IDs have been specified in the parameters\r\n *\r\n * @param {number[]} ids - Comma separated list of IDs of the deleted work items to be returned\r\n * @param {string} project - Project ID or project name\r\n */\r\n getDeletedWorkItems(ids, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b70d8d39-926c-465e-b927-b1bf0e5ca0e0\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of the IDs and the URLs of the deleted the work items in the Recycle Bin.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getDeletedWorkItemShallowReferences(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b70d8d39-926c-465e-b927-b1bf0e5ca0e0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Restores the deleted work item from Recycle Bin.\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemDeleteUpdate} payload - Paylod with instructions to update the IsDeleted flag to false\r\n * @param {number} id - ID of the work item to be restored\r\n * @param {string} project - Project ID or project name\r\n */\r\n restoreWorkItem(payload, id, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b70d8d39-926c-465e-b927-b1bf0e5ca0e0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, payload, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a fully hydrated work item for the requested revision\r\n *\r\n * @param {number} id\r\n * @param {number} revisionNumber\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRevision(id, revisionNumber, expand, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id,\r\n revisionNumber: revisionNumber\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"a00c85a5-80fa-4565-99c3-bcd2181434bb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the list of fully hydrated work item revisions, paged.\r\n *\r\n * @param {number} id\r\n * @param {number} top\r\n * @param {number} skip\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRevisions(id, top, skip, expand, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"a00c85a5-80fa-4565-99c3-bcd2181434bb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * RESTful method to send mail for selected/queried work items.\r\n *\r\n * @param {WorkItemTrackingInterfaces.SendMailBody} body\r\n * @param {string} project - Project ID or project name\r\n */\r\n sendMail(body, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"12438500-2f84-4fa7-9f1a-c31871b4959d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, body, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} tagIdOrName\r\n */\r\n deleteTag(project, tagIdOrName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n tagIdOrName: tagIdOrName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"bc15bc60-e7a8-43cb-ab01-2106be3983a1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} tagIdOrName\r\n */\r\n getTag(project, tagIdOrName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n tagIdOrName: tagIdOrName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"bc15bc60-e7a8-43cb-ab01-2106be3983a1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n */\r\n getTags(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"bc15bc60-e7a8-43cb-ab01-2106be3983a1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {WorkItemTrackingInterfaces.WorkItemTagDefinition} tagData\r\n * @param {string} project - Project ID or project name\r\n * @param {string} tagIdOrName\r\n */\r\n updateTag(tagData, project, tagIdOrName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n tagIdOrName: tagIdOrName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"bc15bc60-e7a8-43cb-ab01-2106be3983a1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, tagData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a template\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemTemplate} template - Template contents\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n createTemplate(template, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"6a90345f-a676-4969-afce-8e163e1d5642\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, template, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets template\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} workitemtypename - Optional, When specified returns templates for given Work item type.\r\n */\r\n getTemplates(teamContext, workitemtypename) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n let queryValues = {\r\n workitemtypename: workitemtypename,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"6a90345f-a676-4969-afce-8e163e1d5642\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the template with given id\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} templateId - Template id\r\n */\r\n deleteTemplate(teamContext, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"fb10264a-8836-48a0-8033-1b0ccd2748d5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the template with specified id\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} templateId - Template Id\r\n */\r\n getTemplate(teamContext, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"fb10264a-8836-48a0-8033-1b0ccd2748d5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replace template contents\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemTemplate} templateContent - Template contents to replace with\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} templateId - Template id\r\n */\r\n replaceTemplate(templateContent, teamContext, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"fb10264a-8836-48a0-8033-1b0ccd2748d5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, templateContent, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single update for a work item\r\n *\r\n * @param {number} id\r\n * @param {number} updateNumber\r\n * @param {string} project - Project ID or project name\r\n */\r\n getUpdate(id, updateNumber, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id,\r\n updateNumber: updateNumber\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"6570bf97-d02c-4a91-8d93-3abe9895b1a9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemUpdate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a the deltas between work item revisions\r\n *\r\n * @param {number} id\r\n * @param {number} top\r\n * @param {number} skip\r\n * @param {string} project - Project ID or project name\r\n */\r\n getUpdates(id, top, skip, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"6570bf97-d02c-4a91-8d93-3abe9895b1a9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemUpdate, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the results of the query given its WIQL.\r\n *\r\n * @param {WorkItemTrackingInterfaces.Wiql} wiql - The query containing the WIQL.\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {boolean} timePrecision - Whether or not to use time precision.\r\n * @param {number} top - The max number of results to return.\r\n */\r\n queryByWiql(wiql, teamContext, timePrecision, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n let queryValues = {\r\n timePrecision: timePrecision,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"1a9c53f7-f243-4447-b110-35ef023636e4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, wiql, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the results of the query given the query ID.\r\n *\r\n * @param {string} id - The query ID.\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {boolean} timePrecision - Whether or not to use time precision.\r\n * @param {number} top - The max number of results to return.\r\n */\r\n queryById(id, teamContext, timePrecision, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n let queryValues = {\r\n timePrecision: timePrecision,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a02355f5-5f8a-4671-8e32-369d23aac83d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a work item icon given the friendly name and icon color.\r\n *\r\n * @param {string} icon - The name of the icon\r\n * @param {string} color - The 6-digit hex color for the icon\r\n * @param {number} v - The version of the icon (used only for cache invalidation)\r\n */\r\n getWorkItemIconJson(icon, color, v) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n icon: icon\r\n };\r\n let queryValues = {\r\n color: color,\r\n v: v,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"4e1eb4a5-1970-4228-a682-ec48eb2dca30\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of all work item icons.\r\n *\r\n */\r\n getWorkItemIcons() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"4e1eb4a5-1970-4228-a682-ec48eb2dca30\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a work item icon given the friendly name and icon color.\r\n *\r\n * @param {string} icon - The name of the icon\r\n * @param {string} color - The 6-digit hex color for the icon\r\n * @param {number} v - The version of the icon (used only for cache invalidation)\r\n */\r\n getWorkItemIconSvg(icon, color, v) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n icon: icon\r\n };\r\n let queryValues = {\r\n color: color,\r\n v: v,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"4e1eb4a5-1970-4228-a682-ec48eb2dca30\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"image/svg+xml\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a work item icon given the friendly name and icon color.\r\n *\r\n * @param {string} icon - The name of the icon\r\n * @param {string} color - The 6-digit hex color for the icon\r\n * @param {number} v - The version of the icon (used only for cache invalidation)\r\n */\r\n getWorkItemIconXaml(icon, color, v) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n icon: icon\r\n };\r\n let queryValues = {\r\n color: color,\r\n v: v,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"4e1eb4a5-1970-4228-a682-ec48eb2dca30\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"image/xaml+xml\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a batch of work item links\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string[]} linkTypes - A list of types to filter the results to specific link types. Omit this parameter to get work item links of all link types.\r\n * @param {string[]} types - A list of types to filter the results to specific work item types. Omit this parameter to get work item links of all work item types.\r\n * @param {string} continuationToken - Specifies the continuationToken to start the batch from. Omit this parameter to get the first batch of links.\r\n * @param {Date} startDateTime - Date/time to use as a starting point for link changes. Only link changes that occurred after that date/time will be returned. Cannot be used in conjunction with 'watermark' parameter.\r\n */\r\n getReportingLinksByLinkType(project, linkTypes, types, continuationToken, startDateTime) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n linkTypes: linkTypes && linkTypes.join(\",\"),\r\n types: types && types.join(\",\"),\r\n continuationToken: continuationToken,\r\n startDateTime: startDateTime,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"b5b5b6d0-0308-40a1-b3f4-b9bb3c66878f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the work item relation type definition.\r\n *\r\n * @param {string} relation - The relation name\r\n */\r\n getRelationType(relation) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n relation: relation\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"f5d33bc9-5b49-4a3c-a9bd-f3cd46dd2165\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the work item relation types.\r\n *\r\n */\r\n getRelationTypes() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"f5d33bc9-5b49-4a3c-a9bd-f3cd46dd2165\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a batch of work item revisions with the option of including deleted items\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string[]} fields - A list of fields to return in work item revisions. Omit this parameter to get all reportable fields.\r\n * @param {string[]} types - A list of types to filter the results to specific work item types. Omit this parameter to get work item revisions of all work item types.\r\n * @param {string} continuationToken - Specifies the watermark to start the batch from. Omit this parameter to get the first batch of revisions.\r\n * @param {Date} startDateTime - Date/time to use as a starting point for revisions, all revisions will occur after this date/time. Cannot be used in conjunction with 'watermark' parameter.\r\n * @param {boolean} includeIdentityRef - Return an identity reference instead of a string value for identity fields.\r\n * @param {boolean} includeDeleted - Specify if the deleted item should be returned.\r\n * @param {boolean} includeTagRef - Specify if the tag objects should be returned for System.Tags field.\r\n * @param {boolean} includeLatestOnly - Return only the latest revisions of work items, skipping all historical revisions\r\n * @param {WorkItemTrackingInterfaces.ReportingRevisionsExpand} expand - Return all the fields in work item revisions, including long text fields which are not returned by default\r\n * @param {boolean} includeDiscussionChangesOnly - Return only the those revisions of work items, where only history field was changed\r\n * @param {number} maxPageSize - The maximum number of results to return in this batch\r\n */\r\n readReportingRevisionsGet(project, fields, types, continuationToken, startDateTime, includeIdentityRef, includeDeleted, includeTagRef, includeLatestOnly, expand, includeDiscussionChangesOnly, maxPageSize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fields: fields && fields.join(\",\"),\r\n types: types && types.join(\",\"),\r\n continuationToken: continuationToken,\r\n startDateTime: startDateTime,\r\n includeIdentityRef: includeIdentityRef,\r\n includeDeleted: includeDeleted,\r\n includeTagRef: includeTagRef,\r\n includeLatestOnly: includeLatestOnly,\r\n '$expand': expand,\r\n includeDiscussionChangesOnly: includeDiscussionChangesOnly,\r\n '$maxPageSize': maxPageSize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"f828fe59-dd87-495d-a17c-7a8d6211ca6c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a batch of work item revisions. This request may be used if your list of fields is large enough that it may run the URL over the length limit.\r\n *\r\n * @param {WorkItemTrackingInterfaces.ReportingWorkItemRevisionsFilter} filter - An object that contains request settings: field filter, type filter, identity format\r\n * @param {string} project - Project ID or project name\r\n * @param {string} continuationToken - Specifies the watermark to start the batch from. Omit this parameter to get the first batch of revisions.\r\n * @param {Date} startDateTime - Date/time to use as a starting point for revisions, all revisions will occur after this date/time. Cannot be used in conjunction with 'watermark' parameter.\r\n * @param {WorkItemTrackingInterfaces.ReportingRevisionsExpand} expand\r\n */\r\n readReportingRevisionsPost(filter, project, continuationToken, startDateTime, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n startDateTime: startDateTime,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"f828fe59-dd87-495d-a17c-7a8d6211ca6c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, filter, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} continuationToken\r\n * @param {number} maxPageSize\r\n */\r\n readReportingDiscussions(project, continuationToken, maxPageSize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n '$maxPageSize': maxPageSize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"4a644469-90c5-4fcc-9a9f-be0827d369ec\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a single work item.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} document - The JSON Patch document representing the work item\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - The work item type of the work item to create\r\n * @param {boolean} validateOnly - Indicate if you only want to validate the changes without saving the work item\r\n * @param {boolean} bypassRules - Do not enforce the work item type rules on this update\r\n * @param {boolean} suppressNotifications - Do not fire any notifications for this change\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.\r\n */\r\n createWorkItem(customHeaders, document, project, type, validateOnly, bypassRules, suppressNotifications, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n let queryValues = {\r\n validateOnly: validateOnly,\r\n bypassRules: bypassRules,\r\n suppressNotifications: suppressNotifications,\r\n '$expand': expand,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"62d3d110-0047-428c-ad3c-4fe872c91c74\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.create(url, document, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single work item from a template.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - The work item type name\r\n * @param {string} fields - Comma-separated list of requested fields\r\n * @param {Date} asOf - AsOf UTC date time string\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.\r\n */\r\n getWorkItemTemplate(project, type, fields, asOf, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n let queryValues = {\r\n fields: fields,\r\n asOf: asOf,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"62d3d110-0047-428c-ad3c-4fe872c91c74\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the specified work item and sends it to the Recycle Bin, so that it can be restored back, if required. Optionally, if the destroy parameter has been set to true, it destroys the work item permanently. WARNING: If the destroy parameter is set to true, work items deleted by this command will NOT go to recycle-bin and there is no way to restore/recover them after deletion. It is recommended NOT to use this parameter. If you do, please use this parameter with extreme caution.\r\n *\r\n * @param {number} id - ID of the work item to be deleted\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} destroy - Optional parameter, if set to true, the work item is deleted permanently. Please note: the destroy action is PERMANENT and cannot be undone.\r\n */\r\n deleteWorkItem(id, project, destroy) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n destroy: destroy,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"72c7ddf8-2cdc-4f60-90cd-ab71c14a399b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single work item.\r\n *\r\n * @param {number} id - The work item id\r\n * @param {string[]} fields - Comma-separated list of requested fields\r\n * @param {Date} asOf - AsOf UTC date time string\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWorkItem(id, fields, asOf, expand, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n fields: fields && fields.join(\",\"),\r\n asOf: asOf,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"72c7ddf8-2cdc-4f60-90cd-ab71c14a399b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of work items (Maximum 200)\r\n *\r\n * @param {number[]} ids - The comma-separated list of requested work item ids. (Maximum 200 ids allowed).\r\n * @param {string[]} fields - Comma-separated list of requested fields\r\n * @param {Date} asOf - AsOf UTC date time string\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.\r\n * @param {WorkItemTrackingInterfaces.WorkItemErrorPolicy} errorPolicy - The flag to control error policy in a bulk get work items request. Possible options are {Fail, Omit}.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWorkItems(ids, fields, asOf, expand, errorPolicy, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n fields: fields && fields.join(\",\"),\r\n asOf: asOf,\r\n '$expand': expand,\r\n errorPolicy: errorPolicy,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"72c7ddf8-2cdc-4f60-90cd-ab71c14a399b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a single work item.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} document - The JSON Patch document representing the update\r\n * @param {number} id - The id of the work item to update\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} validateOnly - Indicate if you only want to validate the changes without saving the work item\r\n * @param {boolean} bypassRules - Do not enforce the work item type rules on this update\r\n * @param {boolean} suppressNotifications - Do not fire any notifications for this change\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.\r\n */\r\n updateWorkItem(customHeaders, document, id, project, validateOnly, bypassRules, suppressNotifications, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n validateOnly: validateOnly,\r\n bypassRules: bypassRules,\r\n suppressNotifications: suppressNotifications,\r\n '$expand': expand,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"72c7ddf8-2cdc-4f60-90cd-ab71c14a399b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, document, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets work items for a list of work item ids (Maximum 200)\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemBatchGetRequest} workItemGetRequest\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWorkItemsBatch(workItemGetRequest, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"908509b6-4248-4475-a1cd-829139ba419f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemGetRequest, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * INTERNAL ONLY: It will be used for My account work experience. Get the work item type state color for multiple projects\r\n *\r\n * @param {string[]} projectNames\r\n */\r\n getWorkItemStateColors(projectNames) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"0b83df8a-3496-4ddb-ba44-63634f4cda61\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, projectNames, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the next state on the given work item IDs.\r\n *\r\n * @param {number[]} ids - list of work item ids\r\n * @param {string} action - possible actions. Currently only supports checkin\r\n */\r\n getWorkItemNextStatesOnCheckinAction(ids, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n action: action,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"afae844b-e2f6-44c2-8053-17b3bb936a40\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all work item type categories.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWorkItemTypeCategories(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"9b9f5734-36c8-415e-ba67-f83b45c31408\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get specific work item type category by name.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} category - The category name\r\n */\r\n getWorkItemTypeCategory(project, category) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n category: category\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"9b9f5734-36c8-415e-ba67-f83b45c31408\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * INTERNAL ONLY: It will be used for My account work experience. Get the wit type color for multiple projects\r\n *\r\n * @param {string[]} projectNames\r\n */\r\n getWorkItemTypeColors(projectNames) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"958fde80-115e-43fb-bd65-749c48057faf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, projectNames, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * INTERNAL ONLY: It is used for color and icon providers. Get the wit type color for multiple projects\r\n *\r\n * @param {string[]} projectNames\r\n */\r\n getWorkItemTypeColorAndIcons(projectNames) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"f0f8dc62-3975-48ce-8051-f636b68b52e3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, projectNames, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a work item type definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - Work item type name\r\n */\r\n getWorkItemType(project, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"7c8d7a76-4a09-43e8-b5df-bd792f4ac6aa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the list of work item types\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWorkItemTypes(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"7c8d7a76-4a09-43e8-b5df-bd792f4ac6aa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of fields for a work item type with detailed references.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - Work item type.\r\n * @param {WorkItemTrackingInterfaces.WorkItemTypeFieldsExpandLevel} expand - Expand level for the API response. Properties: to include allowedvalues, default value, isRequired etc. as a part of response; None: to skip these properties.\r\n */\r\n getWorkItemTypeFieldsWithReferences(project, type, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"bd293ce5-3d25-4192-8e67-e8092e879efb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a field for a work item type with detailed references.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - Work item type.\r\n * @param {string} field\r\n * @param {WorkItemTrackingInterfaces.WorkItemTypeFieldsExpandLevel} expand - Expand level for the API response. Properties: to include allowedvalues, default value, isRequired etc. as a part of response; None: to skip these properties.\r\n */\r\n getWorkItemTypeFieldWithReferences(project, type, field, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type,\r\n field: field\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"bd293ce5-3d25-4192-8e67-e8092e879efb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the state names and colors for a work item type.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - The state name\r\n */\r\n getWorkItemTypeStates(project, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"7c9d7a76-4a09-43e8-b5df-bd792f4ac6aa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Export work item type\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type\r\n * @param {boolean} exportGlobalLists\r\n */\r\n exportWorkItemTypeDefinition(project, type, exportGlobalLists) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n let queryValues = {\r\n exportGlobalLists: exportGlobalLists,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"8637ac8b-5eb6-4f90-b3f7-4f2ff576a459\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add/updates a work item type\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemTypeTemplateUpdateModel} updateModel\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateWorkItemTypeDefinition(updateModel, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"8637ac8b-5eb6-4f90-b3f7-4f2ff576a459\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, updateModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nWorkItemTrackingApi.RESOURCE_AREA_ID = \"5264459e-e5e0-4bd8-b118-0985e68a4ec5\";\r\nexports.WorkItemTrackingApi = WorkItemTrackingApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst WorkItemTrackingProcessInterfaces = require(\"./interfaces/WorkItemTrackingProcessInterfaces\");\r\nclass WorkItemTrackingProcessApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-WorkItemTracking-api', options);\r\n }\r\n /**\r\n * Creates a single behavior in the given process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.ProcessBehaviorCreateRequest} behavior\r\n * @param {string} processId - The ID of the process\r\n */\r\n createProcessBehavior(behavior, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"d1800200-f184-4e75-a5f2-ad0b04b4373e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, behavior, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a behavior in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n deleteProcessBehavior(processId, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"d1800200-f184-4e75-a5f2-ad0b04b4373e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a behavior of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n * @param {WorkItemTrackingProcessInterfaces.GetBehaviorsExpand} expand\r\n */\r\n getProcessBehavior(processId, behaviorRefName, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorRefName: behaviorRefName\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"d1800200-f184-4e75-a5f2-ad0b04b4373e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all behaviors in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {WorkItemTrackingProcessInterfaces.GetBehaviorsExpand} expand\r\n */\r\n getProcessBehaviors(processId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"d1800200-f184-4e75-a5f2-ad0b04b4373e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replaces a behavior in the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.ProcessBehaviorUpdateRequest} behaviorData\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n updateProcessBehavior(behaviorData, processId, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"d1800200-f184-4e75-a5f2-ad0b04b4373e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, behaviorData, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a control in a group.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Control} control - The control.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} groupId - The ID of the group to add the control to.\r\n */\r\n createControlInGroup(control, processId, witRefName, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a control to a specified group.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Control} control - The control.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} groupId - The ID of the group to move the control to.\r\n * @param {string} controlId - The ID of the control.\r\n * @param {string} removeFromGroupId - The group ID to remove the control from.\r\n */\r\n moveControlToGroup(control, processId, witRefName, groupId, controlId, removeFromGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n let queryValues = {\r\n removeFromGroupId: removeFromGroupId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a control from the work item form.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} groupId - The ID of the group.\r\n * @param {string} controlId - The ID of the control to remove.\r\n */\r\n removeControlFromGroup(processId, witRefName, groupId, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a control on the work item form.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Control} control - The updated control.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} groupId - The ID of the group.\r\n * @param {string} controlId - The ID of the control.\r\n */\r\n updateControl(control, processId, witRefName, groupId, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a field to a work item type.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.AddProcessWorkItemTypeFieldRequest} field\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n addFieldToWorkItemType(field, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"bc0ad8dc-e3f3-46b0-b06c-5bf861793196\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all fields in a work item type.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n getAllWorkItemTypeFields(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"bc0ad8dc-e3f3-46b0-b06c-5bf861793196\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a field in a work item type.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} fieldRefName - The reference name of the field.\r\n * @param {WorkItemTrackingProcessInterfaces.ProcessWorkItemTypeFieldsExpandLevel} expand\r\n */\r\n getWorkItemTypeField(processId, witRefName, fieldRefName, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n fieldRefName: fieldRefName\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"bc0ad8dc-e3f3-46b0-b06c-5bf861793196\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a field from a work item type. Does not permanently delete the field.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} fieldRefName - The reference name of the field.\r\n */\r\n removeWorkItemTypeField(processId, witRefName, fieldRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n fieldRefName: fieldRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"bc0ad8dc-e3f3-46b0-b06c-5bf861793196\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a field in a work item type.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.UpdateProcessWorkItemTypeFieldRequest} field\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} fieldRefName - The reference name of the field.\r\n */\r\n updateWorkItemTypeField(field, processId, witRefName, fieldRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n fieldRefName: fieldRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"bc0ad8dc-e3f3-46b0-b06c-5bf861793196\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a group to the work item form.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Group} group - The group.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} pageId - The ID of the page to add the group to.\r\n * @param {string} sectionId - The ID of the section to add the group to.\r\n */\r\n addGroup(group, processId, witRefName, pageId, sectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"766e44e1-36a8-41d7-9050-c343ff02f7a5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a group to a different page and section.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Group} group - The updated group.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} pageId - The ID of the page the group is in.\r\n * @param {string} sectionId - The ID of the section the group is i.n\r\n * @param {string} groupId - The ID of the group.\r\n * @param {string} removeFromPageId - ID of the page to remove the group from.\r\n * @param {string} removeFromSectionId - ID of the section to remove the group from.\r\n */\r\n moveGroupToPage(group, processId, witRefName, pageId, sectionId, groupId, removeFromPageId, removeFromSectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (removeFromPageId == null) {\r\n throw new TypeError('removeFromPageId can not be null or undefined');\r\n }\r\n if (removeFromSectionId == null) {\r\n throw new TypeError('removeFromSectionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n let queryValues = {\r\n removeFromPageId: removeFromPageId,\r\n removeFromSectionId: removeFromSectionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"766e44e1-36a8-41d7-9050-c343ff02f7a5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a group to a different section.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Group} group - The updated group.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} pageId - The ID of the page the group is in.\r\n * @param {string} sectionId - The ID of the section the group is in.\r\n * @param {string} groupId - The ID of the group.\r\n * @param {string} removeFromSectionId - ID of the section to remove the group from.\r\n */\r\n moveGroupToSection(group, processId, witRefName, pageId, sectionId, groupId, removeFromSectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (removeFromSectionId == null) {\r\n throw new TypeError('removeFromSectionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n let queryValues = {\r\n removeFromSectionId: removeFromSectionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"766e44e1-36a8-41d7-9050-c343ff02f7a5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a group from the work item form.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page the group is in\r\n * @param {string} sectionId - The ID of the section to the group is in\r\n * @param {string} groupId - The ID of the group\r\n */\r\n removeGroup(processId, witRefName, pageId, sectionId, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"766e44e1-36a8-41d7-9050-c343ff02f7a5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a group in the work item form.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Group} group - The updated group.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} pageId - The ID of the page the group is in.\r\n * @param {string} sectionId - The ID of the section the group is in.\r\n * @param {string} groupId - The ID of the group.\r\n */\r\n updateGroup(group, processId, witRefName, pageId, sectionId, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"766e44e1-36a8-41d7-9050-c343ff02f7a5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the form layout.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n getFormLayout(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"fa8646eb-43cd-4b71-9564-40106fd63e40\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.FormLayout, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a picklist.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.PickList} picklist - Picklist\r\n */\r\n createList(picklist) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"01e15468-e27c-4e20-a974-bd957dcccebc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, picklist, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a picklist.\r\n *\r\n * @param {string} listId - The ID of the list\r\n */\r\n deleteList(listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"01e15468-e27c-4e20-a974-bd957dcccebc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a picklist.\r\n *\r\n * @param {string} listId - The ID of the list\r\n */\r\n getList(listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"01e15468-e27c-4e20-a974-bd957dcccebc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns meta data of the picklist.\r\n *\r\n */\r\n getListsMetadata() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"01e15468-e27c-4e20-a974-bd957dcccebc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a list.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.PickList} picklist\r\n * @param {string} listId - The ID of the list\r\n */\r\n updateList(picklist, listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"01e15468-e27c-4e20-a974-bd957dcccebc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, picklist, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a page to the work item form.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Page} page - The page.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n addPage(page, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1cc7b29f-6697-4d9d-b0a1-2650d3e1d584\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, page, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.Page, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a page from the work item form\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page\r\n */\r\n removePage(processId, witRefName, pageId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1cc7b29f-6697-4d9d-b0a1-2650d3e1d584\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a page on the work item form\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Page} page - The page\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n updatePage(page, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1cc7b29f-6697-4d9d-b0a1-2650d3e1d584\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, page, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.Page, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.CreateProcessModel} createRequest - CreateProcessModel.\r\n */\r\n createNewProcess(createRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"02cc6a73-5cfb-427d-8c8e-b49fb086e8af\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, createRequest, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a process of a specific ID.\r\n *\r\n * @param {string} processTypeId\r\n */\r\n deleteProcessById(processTypeId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processTypeId: processTypeId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"02cc6a73-5cfb-427d-8c8e-b49fb086e8af\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Edit a process of a specific ID.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.UpdateProcessModel} updateRequest\r\n * @param {string} processTypeId\r\n */\r\n editProcess(updateRequest, processTypeId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processTypeId: processTypeId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"02cc6a73-5cfb-427d-8c8e-b49fb086e8af\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateRequest, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get list of all processes including system and inherited.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.GetProcessExpandLevel} expand\r\n */\r\n getListOfProcesses(expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"02cc6a73-5cfb-427d-8c8e-b49fb086e8af\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single process of a specified ID.\r\n *\r\n * @param {string} processTypeId\r\n * @param {WorkItemTrackingProcessInterfaces.GetProcessExpandLevel} expand\r\n */\r\n getProcessByItsId(processTypeId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processTypeId: processTypeId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"02cc6a73-5cfb-427d-8c8e-b49fb086e8af\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a rule to work item type in the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.CreateProcessRuleRequest} processRuleCreate\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n addProcessWorkItemTypeRule(processRuleCreate, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"76fe3432-d825-479d-a5f6-983bbb78b4f3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, processRuleCreate, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a rule from the work item type in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} ruleId - The ID of the rule\r\n */\r\n deleteProcessWorkItemTypeRule(processId, witRefName, ruleId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n ruleId: ruleId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"76fe3432-d825-479d-a5f6-983bbb78b4f3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single rule in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} ruleId - The ID of the rule\r\n */\r\n getProcessWorkItemTypeRule(processId, witRefName, ruleId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n ruleId: ruleId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"76fe3432-d825-479d-a5f6-983bbb78b4f3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all rules in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n getProcessWorkItemTypeRules(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"76fe3432-d825-479d-a5f6-983bbb78b4f3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a rule in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.UpdateProcessRuleRequest} processRule\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} ruleId - The ID of the rule\r\n */\r\n updateProcessWorkItemTypeRule(processRule, processId, witRefName, ruleId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n ruleId: ruleId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"76fe3432-d825-479d-a5f6-983bbb78b4f3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, processRule, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a state definition in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.WorkItemStateInputModel} stateModel\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n createStateDefinition(stateModel, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, stateModel, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a state definition in the work item type of the process.\r\n *\r\n * @param {string} processId - ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - ID of the state\r\n */\r\n deleteStateDefinition(processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single state definition in a work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - The ID of the state\r\n */\r\n getStateDefinition(processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all state definitions in a work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n getStateDefinitions(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Hides a state definition in the work item type of the process.Only states with customizationType:System can be hidden.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.HideStateModel} hideStateModel\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - The ID of the state\r\n */\r\n hideStateDefinition(hideStateModel, processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, hideStateModel, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a given state definition in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.WorkItemStateInputModel} stateModel\r\n * @param {string} processId - ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - ID of the state\r\n */\r\n updateStateDefinition(stateModel, processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, stateModel, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a system control modification on the work item form.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} controlId - The ID of the control.\r\n */\r\n deleteSystemControl(processId, witRefName, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"ff9a3d2c-32b7-4c6c-991c-d5a251fb9098\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets edited system controls for a work item type in a process. To get all system controls (base + edited) use layout API(s)\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n getSystemControls(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"ff9a3d2c-32b7-4c6c-991c-d5a251fb9098\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates/adds a system control on the work item form.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Control} control\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} controlId - The ID of the control.\r\n */\r\n updateSystemControl(control, processId, witRefName, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"ff9a3d2c-32b7-4c6c-991c-d5a251fb9098\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a work item type in the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.CreateProcessWorkItemTypeRequest} workItemType\r\n * @param {string} processId - The ID of the process on which to create work item type.\r\n */\r\n createProcessWorkItemType(workItemType, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"e2e9d1a6-432d-4062-8870-bfcb8c324ad7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemType, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a work itewm type in the process.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n deleteProcessWorkItemType(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"e2e9d1a6-432d-4062-8870-bfcb8c324ad7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single work item type in a process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {WorkItemTrackingProcessInterfaces.GetWorkItemTypeExpand} expand - Flag to determine what properties of work item type to return\r\n */\r\n getProcessWorkItemType(processId, witRefName, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"e2e9d1a6-432d-4062-8870-bfcb8c324ad7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all work item types in a process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {WorkItemTrackingProcessInterfaces.GetWorkItemTypeExpand} expand - Flag to determine what properties of work item type to return\r\n */\r\n getProcessWorkItemTypes(processId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"e2e9d1a6-432d-4062-8870-bfcb8c324ad7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.UpdateProcessWorkItemTypeRequest} workItemTypeUpdate\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n updateProcessWorkItemType(workItemTypeUpdate, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"e2e9d1a6-432d-4062-8870-bfcb8c324ad7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, workItemTypeUpdate, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a behavior to the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.WorkItemTypeBehavior} behavior\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n addBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"6d765a2e-4e1b-4b11-be93-f953be676024\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, behavior, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a behavior for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n getBehaviorForWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"6d765a2e-4e1b-4b11-be93-f953be676024\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all behaviors for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n getBehaviorsForWorkItemType(processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"6d765a2e-4e1b-4b11-be93-f953be676024\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a behavior for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n removeBehaviorFromWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"6d765a2e-4e1b-4b11-be93-f953be676024\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a behavior for the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.WorkItemTypeBehavior} behavior\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n updateBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"6d765a2e-4e1b-4b11-be93-f953be676024\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, behavior, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nWorkItemTrackingProcessApi.RESOURCE_AREA_ID = \"5264459e-e5e0-4bd8-b118-0985e68a4ec5\";\r\nexports.WorkItemTrackingProcessApi = WorkItemTrackingProcessApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst WorkItemTrackingProcessDefinitionsInterfaces = require(\"./interfaces/WorkItemTrackingProcessDefinitionsInterfaces\");\r\nclass WorkItemTrackingProcessDefinitionsApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-WorkItemTracking-api', options);\r\n }\r\n /**\r\n * Creates a single behavior in the given process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.BehaviorCreateModel} behavior\r\n * @param {string} processId - The ID of the process\r\n */\r\n createBehavior(behavior, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"47a651f4-fb70-43bf-b96b-7c0ba947142b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, behavior, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a behavior in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorId - The ID of the behavior\r\n */\r\n deleteBehavior(processId, behaviorId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorId: behaviorId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"47a651f4-fb70-43bf-b96b-7c0ba947142b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single behavior in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorId - The ID of the behavior\r\n */\r\n getBehavior(processId, behaviorId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorId: behaviorId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"47a651f4-fb70-43bf-b96b-7c0ba947142b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all behaviors in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n */\r\n getBehaviors(processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"47a651f4-fb70-43bf-b96b-7c0ba947142b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replaces a behavior in the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.BehaviorReplaceModel} behaviorData\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorId - The ID of the behavior\r\n */\r\n replaceBehavior(behaviorData, processId, behaviorId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorId: behaviorId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"47a651f4-fb70-43bf-b96b-7c0ba947142b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, behaviorData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a control in a group\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Control} control - The control\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} groupId - The ID of the group to add the control to\r\n */\r\n addControlToGroup(control, processId, witRefName, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"e2e3166a-627a-4e9b-85b2-d6a097bbd731\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a control on the work item form\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Control} control - The updated control\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} groupId - The ID of the group\r\n * @param {string} controlId - The ID of the control\r\n */\r\n editControl(control, processId, witRefName, groupId, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"e2e3166a-627a-4e9b-85b2-d6a097bbd731\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a control from the work item form\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} groupId - The ID of the group\r\n * @param {string} controlId - The ID of the control to remove\r\n */\r\n removeControlFromGroup(processId, witRefName, groupId, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"e2e3166a-627a-4e9b-85b2-d6a097bbd731\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a control to a new group\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Control} control - The control\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} groupId - The ID of the group to move the control to\r\n * @param {string} controlId - The id of the control\r\n * @param {string} removeFromGroupId - The group to remove the control from\r\n */\r\n setControlInGroup(control, processId, witRefName, groupId, controlId, removeFromGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n let queryValues = {\r\n removeFromGroupId: removeFromGroupId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"e2e3166a-627a-4e9b-85b2-d6a097bbd731\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a single field in the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.FieldModel} field\r\n * @param {string} processId - The ID of the process\r\n */\r\n createField(field, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"f36c66c7-911d-4163-8938-d3c5d0d7f5aa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.FieldModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a given field in the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.FieldUpdate} field\r\n * @param {string} processId - The ID of the process\r\n */\r\n updateField(field, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"f36c66c7-911d-4163-8938-d3c5d0d7f5aa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.FieldModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a group to the work item form\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The group\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page to add the group to\r\n * @param {string} sectionId - The ID of the section to add the group to\r\n */\r\n addGroup(group, processId, witRefName, pageId, sectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"2617828b-e850-4375-a92a-04855704d4c3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a group in the work item form\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The updated group\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page the group is in\r\n * @param {string} sectionId - The ID of the section the group is in\r\n * @param {string} groupId - The ID of the group\r\n */\r\n editGroup(group, processId, witRefName, pageId, sectionId, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"2617828b-e850-4375-a92a-04855704d4c3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a group from the work item form\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page the group is in\r\n * @param {string} sectionId - The ID of the section to the group is in\r\n * @param {string} groupId - The ID of the group\r\n */\r\n removeGroup(processId, witRefName, pageId, sectionId, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"2617828b-e850-4375-a92a-04855704d4c3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a group to a different page and section\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The updated group\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page the group is in\r\n * @param {string} sectionId - The ID of the section the group is in\r\n * @param {string} groupId - The ID of the group\r\n * @param {string} removeFromPageId - ID of the page to remove the group from\r\n * @param {string} removeFromSectionId - ID of the section to remove the group from\r\n */\r\n setGroupInPage(group, processId, witRefName, pageId, sectionId, groupId, removeFromPageId, removeFromSectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (removeFromPageId == null) {\r\n throw new TypeError('removeFromPageId can not be null or undefined');\r\n }\r\n if (removeFromSectionId == null) {\r\n throw new TypeError('removeFromSectionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n let queryValues = {\r\n removeFromPageId: removeFromPageId,\r\n removeFromSectionId: removeFromSectionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"2617828b-e850-4375-a92a-04855704d4c3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a group to a different section\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The updated group\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page the group is in\r\n * @param {string} sectionId - The ID of the section the group is in\r\n * @param {string} groupId - The ID of the group\r\n * @param {string} removeFromSectionId - ID of the section to remove the group from\r\n */\r\n setGroupInSection(group, processId, witRefName, pageId, sectionId, groupId, removeFromSectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (removeFromSectionId == null) {\r\n throw new TypeError('removeFromSectionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n let queryValues = {\r\n removeFromSectionId: removeFromSectionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"2617828b-e850-4375-a92a-04855704d4c3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the form layout\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n getFormLayout(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"3eacc80a-ddca-4404-857a-6331aac99063\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.FormLayout, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns meta data of the picklist.\r\n *\r\n */\r\n getListsMetadata() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"b45cc931-98e3-44a1-b1cd-2e8e9c6dc1c6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a picklist.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.PickListModel} picklist\r\n */\r\n createList(picklist) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"0b6179e2-23ce-46b2-b094-2ffa5ee70286\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, picklist, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a picklist.\r\n *\r\n * @param {string} listId - The ID of the list\r\n */\r\n deleteList(listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"0b6179e2-23ce-46b2-b094-2ffa5ee70286\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a picklist.\r\n *\r\n * @param {string} listId - The ID of the list\r\n */\r\n getList(listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"0b6179e2-23ce-46b2-b094-2ffa5ee70286\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a list.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.PickListModel} picklist\r\n * @param {string} listId - The ID of the list\r\n */\r\n updateList(picklist, listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"0b6179e2-23ce-46b2-b094-2ffa5ee70286\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, picklist, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a page to the work item form\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Page} page - The page\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n addPage(page, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1b4ac126-59b2-4f37-b4df-0a48ba807edb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, page, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.Page, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a page on the work item form\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Page} page - The page\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n editPage(page, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1b4ac126-59b2-4f37-b4df-0a48ba807edb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, page, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.Page, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a page from the work item form\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page\r\n */\r\n removePage(processId, witRefName, pageId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1b4ac126-59b2-4f37-b4df-0a48ba807edb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a state definition in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemStateInputModel} stateModel\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n createStateDefinition(stateModel, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, stateModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a state definition in the work item type of the process.\r\n *\r\n * @param {string} processId - ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - ID of the state\r\n */\r\n deleteStateDefinition(processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a state definition in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - The ID of the state\r\n */\r\n getStateDefinition(processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all state definitions in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n getStateDefinitions(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Hides a state definition in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.HideStateModel} hideStateModel\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - The ID of the state\r\n */\r\n hideStateDefinition(hideStateModel, processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, hideStateModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a given state definition in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemStateInputModel} stateModel\r\n * @param {string} processId - ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - ID of the state\r\n */\r\n updateStateDefinition(stateModel, processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, stateModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a behavior to the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeBehavior} behavior\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n addBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"921dfb88-ef57-4c69-94e5-dd7da2d7031d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, behavior, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a behavior for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n getBehaviorForWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"921dfb88-ef57-4c69-94e5-dd7da2d7031d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all behaviors for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n getBehaviorsForWorkItemType(processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"921dfb88-ef57-4c69-94e5-dd7da2d7031d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a behavior for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n removeBehaviorFromWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"921dfb88-ef57-4c69-94e5-dd7da2d7031d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates default work item type for the behavior of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeBehavior} behavior\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n updateBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"921dfb88-ef57-4c69-94e5-dd7da2d7031d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, behavior, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a work item type in the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeModel} workItemType\r\n * @param {string} processId - The ID of the process\r\n */\r\n createWorkItemType(workItemType, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1ce0acad-4638-49c3-969c-04aa65ba6bea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemType, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a work itewm type in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n deleteWorkItemType(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1ce0acad-4638-49c3-969c-04aa65ba6bea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.GetWorkItemTypeExpand} expand\r\n */\r\n getWorkItemType(processId, witRefName, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1ce0acad-4638-49c3-969c-04aa65ba6bea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all work item types in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.GetWorkItemTypeExpand} expand\r\n */\r\n getWorkItemTypes(processId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1ce0acad-4638-49c3-969c-04aa65ba6bea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeUpdateModel} workItemTypeUpdate\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n updateWorkItemType(workItemTypeUpdate, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1ce0acad-4638-49c3-969c-04aa65ba6bea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, workItemTypeUpdate, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a field to the work item type in the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeFieldModel2} field\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForFields - Work item type reference name for the field\r\n */\r\n addFieldToWorkItemType(field, processId, witRefNameForFields) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForFields: witRefNameForFields\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"976713b4-a62e-499e-94dc-eeb869ea9126\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single field in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForFields - Work item type reference name for fields\r\n * @param {string} fieldRefName - The reference name of the field\r\n */\r\n getWorkItemTypeField(processId, witRefNameForFields, fieldRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForFields: witRefNameForFields,\r\n fieldRefName: fieldRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"976713b4-a62e-499e-94dc-eeb869ea9126\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all fields in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForFields - Work item type reference name for fields\r\n */\r\n getWorkItemTypeFields(processId, witRefNameForFields) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForFields: witRefNameForFields\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"976713b4-a62e-499e-94dc-eeb869ea9126\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a field in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForFields - Work item type reference name for fields\r\n * @param {string} fieldRefName - The reference name of the field\r\n */\r\n removeFieldFromWorkItemType(processId, witRefNameForFields, fieldRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForFields: witRefNameForFields,\r\n fieldRefName: fieldRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"976713b4-a62e-499e-94dc-eeb869ea9126\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a single field in the scope of the given process and work item type.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeFieldModel2} field - The model with which to update the field\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForFields - Work item type reference name for fields\r\n */\r\n updateWorkItemTypeField(field, processId, witRefNameForFields) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForFields: witRefNameForFields\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"976713b4-a62e-499e-94dc-eeb869ea9126\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nWorkItemTrackingProcessDefinitionsApi.RESOURCE_AREA_ID = \"5264459e-e5e0-4bd8-b118-0985e68a4ec5\";\r\nexports.WorkItemTrackingProcessDefinitionsApi = WorkItemTrackingProcessDefinitionsApi;\r\n","\"use strict\";\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst resthandlers = require(\"typed-rest-client/Handlers\");\r\nclass BasicCredentialHandler extends resthandlers.BasicCredentialHandler {\r\n constructor(username, password, allowCrossOriginAuthentication = true) {\r\n super(username, password, allowCrossOriginAuthentication);\r\n }\r\n}\r\nexports.BasicCredentialHandler = BasicCredentialHandler;\r\n","\"use strict\";\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst resthandlers = require(\"typed-rest-client/Handlers\");\r\nclass BearerCredentialHandler extends resthandlers.BearerCredentialHandler {\r\n constructor(token, allowCrossOriginAuthentication = true) {\r\n super(token, allowCrossOriginAuthentication);\r\n }\r\n}\r\nexports.BearerCredentialHandler = BearerCredentialHandler;\r\n","\"use strict\";\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst resthandlers = require(\"typed-rest-client/Handlers\");\r\nclass NtlmCredentialHandler extends resthandlers.NtlmCredentialHandler {\r\n constructor(username, password, workstation, domain) {\r\n super(username, password, workstation, domain);\r\n }\r\n}\r\nexports.NtlmCredentialHandler = NtlmCredentialHandler;\r\n","\"use strict\";\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst resthandlers = require(\"typed-rest-client/Handlers\");\r\nclass PersonalAccessTokenCredentialHandler extends resthandlers.PersonalAccessTokenCredentialHandler {\r\n constructor(token, allowCrossOriginAuthentication = true) {\r\n super(token, allowCrossOriginAuthentication);\r\n }\r\n}\r\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst TFS_TestManagement_Contracts = require(\"../interfaces/TestInterfaces\");\r\nconst TfsCoreInterfaces = require(\"../interfaces/CoreInterfaces\");\r\nvar AgentStatus;\r\n(function (AgentStatus) {\r\n /**\r\n * Indicates that the build agent cannot be contacted.\r\n */\r\n AgentStatus[AgentStatus[\"Unavailable\"] = 0] = \"Unavailable\";\r\n /**\r\n * Indicates that the build agent is currently available.\r\n */\r\n AgentStatus[AgentStatus[\"Available\"] = 1] = \"Available\";\r\n /**\r\n * Indicates that the build agent has taken itself offline.\r\n */\r\n AgentStatus[AgentStatus[\"Offline\"] = 2] = \"Offline\";\r\n})(AgentStatus = exports.AgentStatus || (exports.AgentStatus = {}));\r\nvar AuditAction;\r\n(function (AuditAction) {\r\n AuditAction[AuditAction[\"Add\"] = 1] = \"Add\";\r\n AuditAction[AuditAction[\"Update\"] = 2] = \"Update\";\r\n AuditAction[AuditAction[\"Delete\"] = 3] = \"Delete\";\r\n})(AuditAction = exports.AuditAction || (exports.AuditAction = {}));\r\n/**\r\n * Represents the desired scope of authorization for a build.\r\n */\r\nvar BuildAuthorizationScope;\r\n(function (BuildAuthorizationScope) {\r\n /**\r\n * The identity used should have build service account permissions scoped to the project collection. This is useful when resources for a single build are spread across multiple projects.\r\n */\r\n BuildAuthorizationScope[BuildAuthorizationScope[\"ProjectCollection\"] = 1] = \"ProjectCollection\";\r\n /**\r\n * The identity used should have build service account permissions scoped to the project in which the build definition resides. This is useful for isolation of build jobs to a particular team project to avoid any unintentional escalation of privilege attacks during a build.\r\n */\r\n BuildAuthorizationScope[BuildAuthorizationScope[\"Project\"] = 2] = \"Project\";\r\n})(BuildAuthorizationScope = exports.BuildAuthorizationScope || (exports.BuildAuthorizationScope = {}));\r\nvar BuildOptionInputType;\r\n(function (BuildOptionInputType) {\r\n BuildOptionInputType[BuildOptionInputType[\"String\"] = 0] = \"String\";\r\n BuildOptionInputType[BuildOptionInputType[\"Boolean\"] = 1] = \"Boolean\";\r\n BuildOptionInputType[BuildOptionInputType[\"StringList\"] = 2] = \"StringList\";\r\n BuildOptionInputType[BuildOptionInputType[\"Radio\"] = 3] = \"Radio\";\r\n BuildOptionInputType[BuildOptionInputType[\"PickList\"] = 4] = \"PickList\";\r\n BuildOptionInputType[BuildOptionInputType[\"MultiLine\"] = 5] = \"MultiLine\";\r\n BuildOptionInputType[BuildOptionInputType[\"BranchFilter\"] = 6] = \"BranchFilter\";\r\n})(BuildOptionInputType = exports.BuildOptionInputType || (exports.BuildOptionInputType = {}));\r\nvar BuildPhaseStatus;\r\n(function (BuildPhaseStatus) {\r\n /**\r\n * The state is not known.\r\n */\r\n BuildPhaseStatus[BuildPhaseStatus[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * The build phase completed unsuccessfully.\r\n */\r\n BuildPhaseStatus[BuildPhaseStatus[\"Failed\"] = 1] = \"Failed\";\r\n /**\r\n * The build phase completed successfully.\r\n */\r\n BuildPhaseStatus[BuildPhaseStatus[\"Succeeded\"] = 2] = \"Succeeded\";\r\n})(BuildPhaseStatus = exports.BuildPhaseStatus || (exports.BuildPhaseStatus = {}));\r\n/**\r\n * Specifies the desired ordering of builds.\r\n */\r\nvar BuildQueryOrder;\r\n(function (BuildQueryOrder) {\r\n /**\r\n * Order by finish time ascending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"FinishTimeAscending\"] = 2] = \"FinishTimeAscending\";\r\n /**\r\n * Order by finish time descending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"FinishTimeDescending\"] = 3] = \"FinishTimeDescending\";\r\n /**\r\n * Order by queue time descending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"QueueTimeDescending\"] = 4] = \"QueueTimeDescending\";\r\n /**\r\n * Order by queue time ascending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"QueueTimeAscending\"] = 5] = \"QueueTimeAscending\";\r\n /**\r\n * Order by start time descending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"StartTimeDescending\"] = 6] = \"StartTimeDescending\";\r\n /**\r\n * Order by start time ascending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"StartTimeAscending\"] = 7] = \"StartTimeAscending\";\r\n})(BuildQueryOrder = exports.BuildQueryOrder || (exports.BuildQueryOrder = {}));\r\nvar BuildReason;\r\n(function (BuildReason) {\r\n /**\r\n * No reason. This value should not be used.\r\n */\r\n BuildReason[BuildReason[\"None\"] = 0] = \"None\";\r\n /**\r\n * The build was started manually.\r\n */\r\n BuildReason[BuildReason[\"Manual\"] = 1] = \"Manual\";\r\n /**\r\n * The build was started for the trigger TriggerType.ContinuousIntegration.\r\n */\r\n BuildReason[BuildReason[\"IndividualCI\"] = 2] = \"IndividualCI\";\r\n /**\r\n * The build was started for the trigger TriggerType.BatchedContinuousIntegration.\r\n */\r\n BuildReason[BuildReason[\"BatchedCI\"] = 4] = \"BatchedCI\";\r\n /**\r\n * The build was started for the trigger TriggerType.Schedule.\r\n */\r\n BuildReason[BuildReason[\"Schedule\"] = 8] = \"Schedule\";\r\n /**\r\n * The build was started for the trigger TriggerType.ScheduleForced.\r\n */\r\n BuildReason[BuildReason[\"ScheduleForced\"] = 16] = \"ScheduleForced\";\r\n /**\r\n * The build was created by a user.\r\n */\r\n BuildReason[BuildReason[\"UserCreated\"] = 32] = \"UserCreated\";\r\n /**\r\n * The build was started manually for private validation.\r\n */\r\n BuildReason[BuildReason[\"ValidateShelveset\"] = 64] = \"ValidateShelveset\";\r\n /**\r\n * The build was started for the trigger ContinuousIntegrationType.Gated.\r\n */\r\n BuildReason[BuildReason[\"CheckInShelveset\"] = 128] = \"CheckInShelveset\";\r\n /**\r\n * The build was started by a pull request. Added in resource version 3.\r\n */\r\n BuildReason[BuildReason[\"PullRequest\"] = 256] = \"PullRequest\";\r\n /**\r\n * The build was started when another build completed.\r\n */\r\n BuildReason[BuildReason[\"BuildCompletion\"] = 512] = \"BuildCompletion\";\r\n /**\r\n * The build was started when resources in pipeline triggered it\r\n */\r\n BuildReason[BuildReason[\"ResourceTrigger\"] = 1024] = \"ResourceTrigger\";\r\n /**\r\n * The build was triggered for retention policy purposes.\r\n */\r\n BuildReason[BuildReason[\"Triggered\"] = 1967] = \"Triggered\";\r\n /**\r\n * All reasons.\r\n */\r\n BuildReason[BuildReason[\"All\"] = 2031] = \"All\";\r\n})(BuildReason = exports.BuildReason || (exports.BuildReason = {}));\r\n/**\r\n * This is not a Flags enum because we don't want to set multiple statuses on a build. However, when adding values, please stick to powers of 2 as if it were a Flags enum This will ensure that things that key off multiple result types (like labelling sources) continue to work\r\n */\r\nvar BuildResult;\r\n(function (BuildResult) {\r\n /**\r\n * No result\r\n */\r\n BuildResult[BuildResult[\"None\"] = 0] = \"None\";\r\n /**\r\n * The build completed successfully.\r\n */\r\n BuildResult[BuildResult[\"Succeeded\"] = 2] = \"Succeeded\";\r\n /**\r\n * The build completed compilation successfully but had other errors.\r\n */\r\n BuildResult[BuildResult[\"PartiallySucceeded\"] = 4] = \"PartiallySucceeded\";\r\n /**\r\n * The build completed unsuccessfully.\r\n */\r\n BuildResult[BuildResult[\"Failed\"] = 8] = \"Failed\";\r\n /**\r\n * The build was canceled before starting.\r\n */\r\n BuildResult[BuildResult[\"Canceled\"] = 32] = \"Canceled\";\r\n})(BuildResult = exports.BuildResult || (exports.BuildResult = {}));\r\nvar BuildStatus;\r\n(function (BuildStatus) {\r\n /**\r\n * No status.\r\n */\r\n BuildStatus[BuildStatus[\"None\"] = 0] = \"None\";\r\n /**\r\n * The build is currently in progress.\r\n */\r\n BuildStatus[BuildStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n /**\r\n * The build has completed.\r\n */\r\n BuildStatus[BuildStatus[\"Completed\"] = 2] = \"Completed\";\r\n /**\r\n * The build is cancelling\r\n */\r\n BuildStatus[BuildStatus[\"Cancelling\"] = 4] = \"Cancelling\";\r\n /**\r\n * The build is inactive in the queue.\r\n */\r\n BuildStatus[BuildStatus[\"Postponed\"] = 8] = \"Postponed\";\r\n /**\r\n * The build has not yet started.\r\n */\r\n BuildStatus[BuildStatus[\"NotStarted\"] = 32] = \"NotStarted\";\r\n /**\r\n * All status.\r\n */\r\n BuildStatus[BuildStatus[\"All\"] = 47] = \"All\";\r\n})(BuildStatus = exports.BuildStatus || (exports.BuildStatus = {}));\r\nvar ControllerStatus;\r\n(function (ControllerStatus) {\r\n /**\r\n * Indicates that the build controller cannot be contacted.\r\n */\r\n ControllerStatus[ControllerStatus[\"Unavailable\"] = 0] = \"Unavailable\";\r\n /**\r\n * Indicates that the build controller is currently available.\r\n */\r\n ControllerStatus[ControllerStatus[\"Available\"] = 1] = \"Available\";\r\n /**\r\n * Indicates that the build controller has taken itself offline.\r\n */\r\n ControllerStatus[ControllerStatus[\"Offline\"] = 2] = \"Offline\";\r\n})(ControllerStatus = exports.ControllerStatus || (exports.ControllerStatus = {}));\r\nvar DefinitionQuality;\r\n(function (DefinitionQuality) {\r\n DefinitionQuality[DefinitionQuality[\"Definition\"] = 1] = \"Definition\";\r\n DefinitionQuality[DefinitionQuality[\"Draft\"] = 2] = \"Draft\";\r\n})(DefinitionQuality = exports.DefinitionQuality || (exports.DefinitionQuality = {}));\r\n/**\r\n * Specifies the desired ordering of definitions.\r\n */\r\nvar DefinitionQueryOrder;\r\n(function (DefinitionQueryOrder) {\r\n /**\r\n * No order\r\n */\r\n DefinitionQueryOrder[DefinitionQueryOrder[\"None\"] = 0] = \"None\";\r\n /**\r\n * Order by created on/last modified time ascending.\r\n */\r\n DefinitionQueryOrder[DefinitionQueryOrder[\"LastModifiedAscending\"] = 1] = \"LastModifiedAscending\";\r\n /**\r\n * Order by created on/last modified time descending.\r\n */\r\n DefinitionQueryOrder[DefinitionQueryOrder[\"LastModifiedDescending\"] = 2] = \"LastModifiedDescending\";\r\n /**\r\n * Order by definition name ascending.\r\n */\r\n DefinitionQueryOrder[DefinitionQueryOrder[\"DefinitionNameAscending\"] = 3] = \"DefinitionNameAscending\";\r\n /**\r\n * Order by definition name descending.\r\n */\r\n DefinitionQueryOrder[DefinitionQueryOrder[\"DefinitionNameDescending\"] = 4] = \"DefinitionNameDescending\";\r\n})(DefinitionQueryOrder = exports.DefinitionQueryOrder || (exports.DefinitionQueryOrder = {}));\r\nvar DefinitionQueueStatus;\r\n(function (DefinitionQueueStatus) {\r\n /**\r\n * When enabled the definition queue allows builds to be queued by users, the system will queue scheduled, gated and continuous integration builds, and the queued builds will be started by the system.\r\n */\r\n DefinitionQueueStatus[DefinitionQueueStatus[\"Enabled\"] = 0] = \"Enabled\";\r\n /**\r\n * When paused the definition queue allows builds to be queued by users and the system will queue scheduled, gated and continuous integration builds. Builds in the queue will not be started by the system.\r\n */\r\n DefinitionQueueStatus[DefinitionQueueStatus[\"Paused\"] = 1] = \"Paused\";\r\n /**\r\n * When disabled the definition queue will not allow builds to be queued by users and the system will not queue scheduled, gated or continuous integration builds. Builds already in the queue will not be started by the system.\r\n */\r\n DefinitionQueueStatus[DefinitionQueueStatus[\"Disabled\"] = 2] = \"Disabled\";\r\n})(DefinitionQueueStatus = exports.DefinitionQueueStatus || (exports.DefinitionQueueStatus = {}));\r\nvar DefinitionTriggerType;\r\n(function (DefinitionTriggerType) {\r\n /**\r\n * Manual builds only.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"None\"] = 1] = \"None\";\r\n /**\r\n * A build should be started for each changeset.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"ContinuousIntegration\"] = 2] = \"ContinuousIntegration\";\r\n /**\r\n * A build should be started for multiple changesets at a time at a specified interval.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"BatchedContinuousIntegration\"] = 4] = \"BatchedContinuousIntegration\";\r\n /**\r\n * A build should be started on a specified schedule whether or not changesets exist.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"Schedule\"] = 8] = \"Schedule\";\r\n /**\r\n * A validation build should be started for each check-in.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"GatedCheckIn\"] = 16] = \"GatedCheckIn\";\r\n /**\r\n * A validation build should be started for each batch of check-ins.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"BatchedGatedCheckIn\"] = 32] = \"BatchedGatedCheckIn\";\r\n /**\r\n * A build should be triggered when a GitHub pull request is created or updated. Added in resource version 3\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"PullRequest\"] = 64] = \"PullRequest\";\r\n /**\r\n * A build should be triggered when another build completes.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"BuildCompletion\"] = 128] = \"BuildCompletion\";\r\n /**\r\n * All types.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"All\"] = 255] = \"All\";\r\n})(DefinitionTriggerType = exports.DefinitionTriggerType || (exports.DefinitionTriggerType = {}));\r\nvar DefinitionType;\r\n(function (DefinitionType) {\r\n DefinitionType[DefinitionType[\"Xaml\"] = 1] = \"Xaml\";\r\n DefinitionType[DefinitionType[\"Build\"] = 2] = \"Build\";\r\n})(DefinitionType = exports.DefinitionType || (exports.DefinitionType = {}));\r\nvar DeleteOptions;\r\n(function (DeleteOptions) {\r\n /**\r\n * No data should be deleted. This value should not be used.\r\n */\r\n DeleteOptions[DeleteOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * The drop location should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"DropLocation\"] = 1] = \"DropLocation\";\r\n /**\r\n * The test results should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"TestResults\"] = 2] = \"TestResults\";\r\n /**\r\n * The version control label should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"Label\"] = 4] = \"Label\";\r\n /**\r\n * The build should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"Details\"] = 8] = \"Details\";\r\n /**\r\n * Published symbols should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"Symbols\"] = 16] = \"Symbols\";\r\n /**\r\n * All data should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"All\"] = 31] = \"All\";\r\n})(DeleteOptions = exports.DeleteOptions || (exports.DeleteOptions = {}));\r\n/**\r\n * Specifies the desired ordering of folders.\r\n */\r\nvar FolderQueryOrder;\r\n(function (FolderQueryOrder) {\r\n /**\r\n * No order\r\n */\r\n FolderQueryOrder[FolderQueryOrder[\"None\"] = 0] = \"None\";\r\n /**\r\n * Order by folder name and path ascending.\r\n */\r\n FolderQueryOrder[FolderQueryOrder[\"FolderAscending\"] = 1] = \"FolderAscending\";\r\n /**\r\n * Order by folder name and path descending.\r\n */\r\n FolderQueryOrder[FolderQueryOrder[\"FolderDescending\"] = 2] = \"FolderDescending\";\r\n})(FolderQueryOrder = exports.FolderQueryOrder || (exports.FolderQueryOrder = {}));\r\nvar GetOption;\r\n(function (GetOption) {\r\n /**\r\n * Use the latest changeset at the time the build is queued.\r\n */\r\n GetOption[GetOption[\"LatestOnQueue\"] = 0] = \"LatestOnQueue\";\r\n /**\r\n * Use the latest changeset at the time the build is started.\r\n */\r\n GetOption[GetOption[\"LatestOnBuild\"] = 1] = \"LatestOnBuild\";\r\n /**\r\n * A user-specified version has been supplied.\r\n */\r\n GetOption[GetOption[\"Custom\"] = 2] = \"Custom\";\r\n})(GetOption = exports.GetOption || (exports.GetOption = {}));\r\nvar IssueType;\r\n(function (IssueType) {\r\n IssueType[IssueType[\"Error\"] = 1] = \"Error\";\r\n IssueType[IssueType[\"Warning\"] = 2] = \"Warning\";\r\n})(IssueType = exports.IssueType || (exports.IssueType = {}));\r\nvar ProcessTemplateType;\r\n(function (ProcessTemplateType) {\r\n /**\r\n * Indicates a custom template.\r\n */\r\n ProcessTemplateType[ProcessTemplateType[\"Custom\"] = 0] = \"Custom\";\r\n /**\r\n * Indicates a default template.\r\n */\r\n ProcessTemplateType[ProcessTemplateType[\"Default\"] = 1] = \"Default\";\r\n /**\r\n * Indicates an upgrade template.\r\n */\r\n ProcessTemplateType[ProcessTemplateType[\"Upgrade\"] = 2] = \"Upgrade\";\r\n})(ProcessTemplateType = exports.ProcessTemplateType || (exports.ProcessTemplateType = {}));\r\nvar QueryDeletedOption;\r\n(function (QueryDeletedOption) {\r\n /**\r\n * Include only non-deleted builds.\r\n */\r\n QueryDeletedOption[QueryDeletedOption[\"ExcludeDeleted\"] = 0] = \"ExcludeDeleted\";\r\n /**\r\n * Include deleted and non-deleted builds.\r\n */\r\n QueryDeletedOption[QueryDeletedOption[\"IncludeDeleted\"] = 1] = \"IncludeDeleted\";\r\n /**\r\n * Include only deleted builds.\r\n */\r\n QueryDeletedOption[QueryDeletedOption[\"OnlyDeleted\"] = 2] = \"OnlyDeleted\";\r\n})(QueryDeletedOption = exports.QueryDeletedOption || (exports.QueryDeletedOption = {}));\r\nvar QueueOptions;\r\n(function (QueueOptions) {\r\n /**\r\n * No queue options\r\n */\r\n QueueOptions[QueueOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Create a plan Id for the build, do not run it\r\n */\r\n QueueOptions[QueueOptions[\"DoNotRun\"] = 1] = \"DoNotRun\";\r\n})(QueueOptions = exports.QueueOptions || (exports.QueueOptions = {}));\r\nvar QueuePriority;\r\n(function (QueuePriority) {\r\n /**\r\n * Low priority.\r\n */\r\n QueuePriority[QueuePriority[\"Low\"] = 5] = \"Low\";\r\n /**\r\n * Below normal priority.\r\n */\r\n QueuePriority[QueuePriority[\"BelowNormal\"] = 4] = \"BelowNormal\";\r\n /**\r\n * Normal priority.\r\n */\r\n QueuePriority[QueuePriority[\"Normal\"] = 3] = \"Normal\";\r\n /**\r\n * Above normal priority.\r\n */\r\n QueuePriority[QueuePriority[\"AboveNormal\"] = 2] = \"AboveNormal\";\r\n /**\r\n * High priority.\r\n */\r\n QueuePriority[QueuePriority[\"High\"] = 1] = \"High\";\r\n})(QueuePriority = exports.QueuePriority || (exports.QueuePriority = {}));\r\nvar RepositoryCleanOptions;\r\n(function (RepositoryCleanOptions) {\r\n RepositoryCleanOptions[RepositoryCleanOptions[\"Source\"] = 0] = \"Source\";\r\n RepositoryCleanOptions[RepositoryCleanOptions[\"SourceAndOutputDir\"] = 1] = \"SourceAndOutputDir\";\r\n /**\r\n * Re-create $(build.sourcesDirectory)\r\n */\r\n RepositoryCleanOptions[RepositoryCleanOptions[\"SourceDir\"] = 2] = \"SourceDir\";\r\n /**\r\n * Re-create $(agnet.buildDirectory) which contains $(build.sourcesDirectory), $(build.binariesDirectory) and any folders that left from previous build.\r\n */\r\n RepositoryCleanOptions[RepositoryCleanOptions[\"AllBuildDir\"] = 3] = \"AllBuildDir\";\r\n})(RepositoryCleanOptions = exports.RepositoryCleanOptions || (exports.RepositoryCleanOptions = {}));\r\nvar ResultSet;\r\n(function (ResultSet) {\r\n /**\r\n * Include all repositories\r\n */\r\n ResultSet[ResultSet[\"All\"] = 0] = \"All\";\r\n /**\r\n * Include most relevant repositories for user\r\n */\r\n ResultSet[ResultSet[\"Top\"] = 1] = \"Top\";\r\n})(ResultSet = exports.ResultSet || (exports.ResultSet = {}));\r\nvar ScheduleDays;\r\n(function (ScheduleDays) {\r\n /**\r\n * Do not run.\r\n */\r\n ScheduleDays[ScheduleDays[\"None\"] = 0] = \"None\";\r\n /**\r\n * Run on Monday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Monday\"] = 1] = \"Monday\";\r\n /**\r\n * Run on Tuesday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Tuesday\"] = 2] = \"Tuesday\";\r\n /**\r\n * Run on Wednesday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Wednesday\"] = 4] = \"Wednesday\";\r\n /**\r\n * Run on Thursday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Thursday\"] = 8] = \"Thursday\";\r\n /**\r\n * Run on Friday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Friday\"] = 16] = \"Friday\";\r\n /**\r\n * Run on Saturday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Saturday\"] = 32] = \"Saturday\";\r\n /**\r\n * Run on Sunday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Sunday\"] = 64] = \"Sunday\";\r\n /**\r\n * Run on all days of the week.\r\n */\r\n ScheduleDays[ScheduleDays[\"All\"] = 127] = \"All\";\r\n})(ScheduleDays = exports.ScheduleDays || (exports.ScheduleDays = {}));\r\nvar ServiceHostStatus;\r\n(function (ServiceHostStatus) {\r\n /**\r\n * The service host is currently connected and accepting commands.\r\n */\r\n ServiceHostStatus[ServiceHostStatus[\"Online\"] = 1] = \"Online\";\r\n /**\r\n * The service host is currently disconnected and not accepting commands.\r\n */\r\n ServiceHostStatus[ServiceHostStatus[\"Offline\"] = 2] = \"Offline\";\r\n})(ServiceHostStatus = exports.ServiceHostStatus || (exports.ServiceHostStatus = {}));\r\nvar SourceProviderAvailability;\r\n(function (SourceProviderAvailability) {\r\n /**\r\n * The source provider is available in the hosted environment.\r\n */\r\n SourceProviderAvailability[SourceProviderAvailability[\"Hosted\"] = 1] = \"Hosted\";\r\n /**\r\n * The source provider is available in the on-premises environment.\r\n */\r\n SourceProviderAvailability[SourceProviderAvailability[\"OnPremises\"] = 2] = \"OnPremises\";\r\n /**\r\n * The source provider is available in all environments.\r\n */\r\n SourceProviderAvailability[SourceProviderAvailability[\"All\"] = 3] = \"All\";\r\n})(SourceProviderAvailability = exports.SourceProviderAvailability || (exports.SourceProviderAvailability = {}));\r\nvar StageUpdateType;\r\n(function (StageUpdateType) {\r\n StageUpdateType[StageUpdateType[\"Cancel\"] = 0] = \"Cancel\";\r\n StageUpdateType[StageUpdateType[\"Retry\"] = 1] = \"Retry\";\r\n})(StageUpdateType = exports.StageUpdateType || (exports.StageUpdateType = {}));\r\nvar SupportLevel;\r\n(function (SupportLevel) {\r\n /**\r\n * The functionality is not supported.\r\n */\r\n SupportLevel[SupportLevel[\"Unsupported\"] = 0] = \"Unsupported\";\r\n /**\r\n * The functionality is supported.\r\n */\r\n SupportLevel[SupportLevel[\"Supported\"] = 1] = \"Supported\";\r\n /**\r\n * The functionality is required.\r\n */\r\n SupportLevel[SupportLevel[\"Required\"] = 2] = \"Required\";\r\n})(SupportLevel = exports.SupportLevel || (exports.SupportLevel = {}));\r\nvar TaskResult;\r\n(function (TaskResult) {\r\n TaskResult[TaskResult[\"Succeeded\"] = 0] = \"Succeeded\";\r\n TaskResult[TaskResult[\"SucceededWithIssues\"] = 1] = \"SucceededWithIssues\";\r\n TaskResult[TaskResult[\"Failed\"] = 2] = \"Failed\";\r\n TaskResult[TaskResult[\"Canceled\"] = 3] = \"Canceled\";\r\n TaskResult[TaskResult[\"Skipped\"] = 4] = \"Skipped\";\r\n TaskResult[TaskResult[\"Abandoned\"] = 5] = \"Abandoned\";\r\n})(TaskResult = exports.TaskResult || (exports.TaskResult = {}));\r\nvar TimelineRecordState;\r\n(function (TimelineRecordState) {\r\n TimelineRecordState[TimelineRecordState[\"Pending\"] = 0] = \"Pending\";\r\n TimelineRecordState[TimelineRecordState[\"InProgress\"] = 1] = \"InProgress\";\r\n TimelineRecordState[TimelineRecordState[\"Completed\"] = 2] = \"Completed\";\r\n})(TimelineRecordState = exports.TimelineRecordState || (exports.TimelineRecordState = {}));\r\nvar ValidationResult;\r\n(function (ValidationResult) {\r\n ValidationResult[ValidationResult[\"OK\"] = 0] = \"OK\";\r\n ValidationResult[ValidationResult[\"Warning\"] = 1] = \"Warning\";\r\n ValidationResult[ValidationResult[\"Error\"] = 2] = \"Error\";\r\n})(ValidationResult = exports.ValidationResult || (exports.ValidationResult = {}));\r\nvar WorkspaceMappingType;\r\n(function (WorkspaceMappingType) {\r\n /**\r\n * The path is mapped in the workspace.\r\n */\r\n WorkspaceMappingType[WorkspaceMappingType[\"Map\"] = 0] = \"Map\";\r\n /**\r\n * The path is cloaked in the workspace.\r\n */\r\n WorkspaceMappingType[WorkspaceMappingType[\"Cloak\"] = 1] = \"Cloak\";\r\n})(WorkspaceMappingType = exports.WorkspaceMappingType || (exports.WorkspaceMappingType = {}));\r\nexports.TypeInfo = {\r\n AgentStatus: {\r\n enumValues: {\r\n \"unavailable\": 0,\r\n \"available\": 1,\r\n \"offline\": 2\r\n }\r\n },\r\n AuditAction: {\r\n enumValues: {\r\n \"add\": 1,\r\n \"update\": 2,\r\n \"delete\": 3\r\n }\r\n },\r\n Build: {},\r\n BuildAgent: {},\r\n BuildAuthorizationScope: {\r\n enumValues: {\r\n \"projectCollection\": 1,\r\n \"project\": 2\r\n }\r\n },\r\n BuildCompletedEvent: {},\r\n BuildCompletionTrigger: {},\r\n BuildController: {},\r\n BuildDefinition: {},\r\n BuildDefinition3_2: {},\r\n BuildDefinitionReference: {},\r\n BuildDefinitionReference3_2: {},\r\n BuildDefinitionRevision: {},\r\n BuildDefinitionSourceProvider: {},\r\n BuildDefinitionTemplate: {},\r\n BuildDefinitionTemplate3_2: {},\r\n BuildDeletedEvent: {},\r\n BuildDeployment: {},\r\n BuildLog: {},\r\n BuildMetric: {},\r\n BuildOptionDefinition: {},\r\n BuildOptionInputDefinition: {},\r\n BuildOptionInputType: {\r\n enumValues: {\r\n \"string\": 0,\r\n \"boolean\": 1,\r\n \"stringList\": 2,\r\n \"radio\": 3,\r\n \"pickList\": 4,\r\n \"multiLine\": 5,\r\n \"branchFilter\": 6\r\n }\r\n },\r\n BuildPhaseStatus: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"failed\": 1,\r\n \"succeeded\": 2\r\n }\r\n },\r\n BuildProcessTemplate: {},\r\n BuildQueryOrder: {\r\n enumValues: {\r\n \"finishTimeAscending\": 2,\r\n \"finishTimeDescending\": 3,\r\n \"queueTimeDescending\": 4,\r\n \"queueTimeAscending\": 5,\r\n \"startTimeDescending\": 6,\r\n \"startTimeAscending\": 7\r\n }\r\n },\r\n BuildQueuedEvent: {},\r\n BuildReason: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manual\": 1,\r\n \"individualCI\": 2,\r\n \"batchedCI\": 4,\r\n \"schedule\": 8,\r\n \"scheduleForced\": 16,\r\n \"userCreated\": 32,\r\n \"validateShelveset\": 64,\r\n \"checkInShelveset\": 128,\r\n \"pullRequest\": 256,\r\n \"buildCompletion\": 512,\r\n \"resourceTrigger\": 1024,\r\n \"triggered\": 1967,\r\n \"all\": 2031\r\n }\r\n },\r\n BuildReference: {},\r\n BuildRequestValidationResult: {},\r\n BuildResult: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"succeeded\": 2,\r\n \"partiallySucceeded\": 4,\r\n \"failed\": 8,\r\n \"canceled\": 32\r\n }\r\n },\r\n BuildRetentionHistory: {},\r\n BuildRetentionSample: {},\r\n BuildServer: {},\r\n BuildStatus: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"inProgress\": 1,\r\n \"completed\": 2,\r\n \"cancelling\": 4,\r\n \"postponed\": 8,\r\n \"notStarted\": 32,\r\n \"all\": 47\r\n }\r\n },\r\n BuildSummary: {},\r\n BuildTagsAddedEvent: {},\r\n BuildTrigger: {},\r\n BuildUpdatedEvent: {},\r\n Change: {},\r\n ContinuousDeploymentDefinition: {},\r\n ContinuousIntegrationTrigger: {},\r\n ControllerStatus: {\r\n enumValues: {\r\n \"unavailable\": 0,\r\n \"available\": 1,\r\n \"offline\": 2\r\n }\r\n },\r\n DefinitionQuality: {\r\n enumValues: {\r\n \"definition\": 1,\r\n \"draft\": 2\r\n }\r\n },\r\n DefinitionQueryOrder: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"lastModifiedAscending\": 1,\r\n \"lastModifiedDescending\": 2,\r\n \"definitionNameAscending\": 3,\r\n \"definitionNameDescending\": 4\r\n }\r\n },\r\n DefinitionQueueStatus: {\r\n enumValues: {\r\n \"enabled\": 0,\r\n \"paused\": 1,\r\n \"disabled\": 2\r\n }\r\n },\r\n DefinitionReference: {},\r\n DefinitionTriggerType: {\r\n enumValues: {\r\n \"none\": 1,\r\n \"continuousIntegration\": 2,\r\n \"batchedContinuousIntegration\": 4,\r\n \"schedule\": 8,\r\n \"gatedCheckIn\": 16,\r\n \"batchedGatedCheckIn\": 32,\r\n \"pullRequest\": 64,\r\n \"buildCompletion\": 128,\r\n \"all\": 255\r\n }\r\n },\r\n DefinitionType: {\r\n enumValues: {\r\n \"xaml\": 1,\r\n \"build\": 2\r\n }\r\n },\r\n DeleteOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"dropLocation\": 1,\r\n \"testResults\": 2,\r\n \"label\": 4,\r\n \"details\": 8,\r\n \"symbols\": 16,\r\n \"all\": 31\r\n }\r\n },\r\n DesignerProcess: {},\r\n Folder: {},\r\n FolderQueryOrder: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"folderAscending\": 1,\r\n \"folderDescending\": 2\r\n }\r\n },\r\n GatedCheckInTrigger: {},\r\n GetOption: {\r\n enumValues: {\r\n \"latestOnQueue\": 0,\r\n \"latestOnBuild\": 1,\r\n \"custom\": 2\r\n }\r\n },\r\n InformationNode: {},\r\n Issue: {},\r\n IssueType: {\r\n enumValues: {\r\n \"error\": 1,\r\n \"warning\": 2\r\n }\r\n },\r\n Phase: {},\r\n ProcessTemplateType: {\r\n enumValues: {\r\n \"custom\": 0,\r\n \"default\": 1,\r\n \"upgrade\": 2\r\n }\r\n },\r\n PullRequestTrigger: {},\r\n QueryDeletedOption: {\r\n enumValues: {\r\n \"excludeDeleted\": 0,\r\n \"includeDeleted\": 1,\r\n \"onlyDeleted\": 2\r\n }\r\n },\r\n QueueOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"doNotRun\": 1\r\n }\r\n },\r\n QueuePriority: {\r\n enumValues: {\r\n \"low\": 5,\r\n \"belowNormal\": 4,\r\n \"normal\": 3,\r\n \"aboveNormal\": 2,\r\n \"high\": 1\r\n }\r\n },\r\n RepositoryCleanOptions: {\r\n enumValues: {\r\n \"source\": 0,\r\n \"sourceAndOutputDir\": 1,\r\n \"sourceDir\": 2,\r\n \"allBuildDir\": 3\r\n }\r\n },\r\n RepositoryWebhook: {},\r\n ResultSet: {\r\n enumValues: {\r\n \"all\": 0,\r\n \"top\": 1\r\n }\r\n },\r\n RetentionLease: {},\r\n Schedule: {},\r\n ScheduleDays: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"monday\": 1,\r\n \"tuesday\": 2,\r\n \"wednesday\": 4,\r\n \"thursday\": 8,\r\n \"friday\": 16,\r\n \"saturday\": 32,\r\n \"sunday\": 64,\r\n \"all\": 127\r\n }\r\n },\r\n ScheduleTrigger: {},\r\n ServiceHostStatus: {\r\n enumValues: {\r\n \"online\": 1,\r\n \"offline\": 2\r\n }\r\n },\r\n SourceProviderAttributes: {},\r\n SourceProviderAvailability: {\r\n enumValues: {\r\n \"hosted\": 1,\r\n \"onPremises\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n StageUpdateType: {\r\n enumValues: {\r\n \"cancel\": 0,\r\n \"retry\": 1\r\n }\r\n },\r\n SupportedTrigger: {},\r\n SupportLevel: {\r\n enumValues: {\r\n \"unsupported\": 0,\r\n \"supported\": 1,\r\n \"required\": 2\r\n }\r\n },\r\n TaskResult: {\r\n enumValues: {\r\n \"succeeded\": 0,\r\n \"succeededWithIssues\": 1,\r\n \"failed\": 2,\r\n \"canceled\": 3,\r\n \"skipped\": 4,\r\n \"abandoned\": 5\r\n }\r\n },\r\n Timeline: {},\r\n TimelineRecord: {},\r\n TimelineRecordState: {\r\n enumValues: {\r\n \"pending\": 0,\r\n \"inProgress\": 1,\r\n \"completed\": 2\r\n }\r\n },\r\n TimelineRecordsUpdatedEvent: {},\r\n UpdateStageParameters: {},\r\n ValidationResult: {\r\n enumValues: {\r\n \"ok\": 0,\r\n \"warning\": 1,\r\n \"error\": 2\r\n }\r\n },\r\n WorkspaceMapping: {},\r\n WorkspaceMappingType: {\r\n enumValues: {\r\n \"map\": 0,\r\n \"cloak\": 1\r\n }\r\n },\r\n WorkspaceTemplate: {},\r\n XamlBuildDefinition: {},\r\n};\r\nexports.TypeInfo.Build.fields = {\r\n controller: {\r\n typeInfo: exports.TypeInfo.BuildController\r\n },\r\n definition: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n deletedDate: {\r\n isDate: true,\r\n },\r\n finishTime: {\r\n isDate: true,\r\n },\r\n lastChangedDate: {\r\n isDate: true,\r\n },\r\n priority: {\r\n enumType: exports.TypeInfo.QueuePriority\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n queueOptions: {\r\n enumType: exports.TypeInfo.QueueOptions\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.BuildReason\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.BuildResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.BuildStatus\r\n },\r\n triggeredByBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n validationResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildRequestValidationResult\r\n }\r\n};\r\nexports.TypeInfo.BuildAgent.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.AgentStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildCompletedEvent.fields = {\r\n build: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Change\r\n },\r\n testResults: {\r\n typeInfo: TFS_TestManagement_Contracts.TypeInfo.AggregatedResultsAnalysis\r\n },\r\n timelineRecords: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineRecord\r\n }\r\n};\r\nexports.TypeInfo.BuildCompletionTrigger.fields = {\r\n definition: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.BuildController.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ControllerStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinition.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n draftOf: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n drafts: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n jobAuthorizationScope: {\r\n enumType: exports.TypeInfo.BuildAuthorizationScope\r\n },\r\n latestBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n latestCompletedBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n metrics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildMetric\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n quality: {\r\n enumType: exports.TypeInfo.DefinitionQuality\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n triggers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildTrigger\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinition3_2.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n draftOf: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n drafts: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n jobAuthorizationScope: {\r\n enumType: exports.TypeInfo.BuildAuthorizationScope\r\n },\r\n latestBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n latestCompletedBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n metrics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildMetric\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n quality: {\r\n enumType: exports.TypeInfo.DefinitionQuality\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n triggers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildTrigger\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionReference.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n draftOf: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n drafts: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n latestBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n latestCompletedBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n metrics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildMetric\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n quality: {\r\n enumType: exports.TypeInfo.DefinitionQuality\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionReference3_2.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n draftOf: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n drafts: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n metrics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildMetric\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n quality: {\r\n enumType: exports.TypeInfo.DefinitionQuality\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionRevision.fields = {\r\n changedDate: {\r\n isDate: true,\r\n },\r\n changeType: {\r\n enumType: exports.TypeInfo.AuditAction\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionSourceProvider.fields = {\r\n lastModified: {\r\n isDate: true,\r\n },\r\n supportedTriggerTypes: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionTemplate.fields = {\r\n template: {\r\n typeInfo: exports.TypeInfo.BuildDefinition\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionTemplate3_2.fields = {\r\n template: {\r\n typeInfo: exports.TypeInfo.BuildDefinition3_2\r\n }\r\n};\r\nexports.TypeInfo.BuildDeletedEvent.fields = {\r\n build: {\r\n typeInfo: exports.TypeInfo.Build\r\n }\r\n};\r\nexports.TypeInfo.BuildDeployment.fields = {\r\n deployment: {\r\n typeInfo: exports.TypeInfo.BuildSummary\r\n }\r\n};\r\nexports.TypeInfo.BuildLog.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastChangedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildMetric.fields = {\r\n date: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildOptionDefinition.fields = {\r\n inputs: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildOptionInputDefinition\r\n }\r\n};\r\nexports.TypeInfo.BuildOptionInputDefinition.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.BuildOptionInputType\r\n }\r\n};\r\nexports.TypeInfo.BuildProcessTemplate.fields = {\r\n supportedReasons: {\r\n enumType: exports.TypeInfo.BuildReason\r\n },\r\n templateType: {\r\n enumType: exports.TypeInfo.ProcessTemplateType\r\n }\r\n};\r\nexports.TypeInfo.BuildQueuedEvent.fields = {\r\n build: {\r\n typeInfo: exports.TypeInfo.Build\r\n }\r\n};\r\nexports.TypeInfo.BuildReference.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.BuildResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.BuildStatus\r\n }\r\n};\r\nexports.TypeInfo.BuildRequestValidationResult.fields = {\r\n result: {\r\n enumType: exports.TypeInfo.ValidationResult\r\n }\r\n};\r\nexports.TypeInfo.BuildRetentionHistory.fields = {\r\n buildRetentionSamples: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildRetentionSample\r\n }\r\n};\r\nexports.TypeInfo.BuildRetentionSample.fields = {\r\n sampleTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildServer.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.ServiceHostStatus\r\n },\r\n statusChangedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildSummary.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.BuildReason\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.BuildStatus\r\n }\r\n};\r\nexports.TypeInfo.BuildTagsAddedEvent.fields = {\r\n build: {\r\n typeInfo: exports.TypeInfo.Build\r\n }\r\n};\r\nexports.TypeInfo.BuildTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.BuildUpdatedEvent.fields = {\r\n build: {\r\n typeInfo: exports.TypeInfo.Build\r\n }\r\n};\r\nexports.TypeInfo.Change.fields = {\r\n timestamp: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ContinuousDeploymentDefinition.fields = {\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.ContinuousIntegrationTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.DefinitionReference.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\nexports.TypeInfo.DesignerProcess.fields = {\r\n phases: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Phase\r\n }\r\n};\r\nexports.TypeInfo.Folder.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastChangedDate: {\r\n isDate: true,\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GatedCheckInTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.InformationNode.fields = {\r\n lastModifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Issue.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.IssueType\r\n }\r\n};\r\nexports.TypeInfo.Phase.fields = {\r\n jobAuthorizationScope: {\r\n enumType: exports.TypeInfo.BuildAuthorizationScope\r\n }\r\n};\r\nexports.TypeInfo.PullRequestTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.RepositoryWebhook.fields = {\r\n types: {\r\n isArray: true,\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.RetentionLease.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n validUntil: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Schedule.fields = {\r\n daysToBuild: {\r\n enumType: exports.TypeInfo.ScheduleDays\r\n }\r\n};\r\nexports.TypeInfo.ScheduleTrigger.fields = {\r\n schedules: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Schedule\r\n },\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.SourceProviderAttributes.fields = {\r\n supportedTriggers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.SupportedTrigger\r\n }\r\n};\r\nexports.TypeInfo.SupportedTrigger.fields = {\r\n supportedCapabilities: {\r\n isDictionary: true,\r\n dictionaryValueEnumType: exports.TypeInfo.SupportLevel\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.Timeline.fields = {\r\n lastChangedOn: {\r\n isDate: true,\r\n },\r\n records: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineRecord\r\n }\r\n};\r\nexports.TypeInfo.TimelineRecord.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n issues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Issue\r\n },\r\n lastModified: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TimelineRecordState\r\n }\r\n};\r\nexports.TypeInfo.TimelineRecordsUpdatedEvent.fields = {\r\n timelineRecords: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineRecord\r\n }\r\n};\r\nexports.TypeInfo.UpdateStageParameters.fields = {\r\n state: {\r\n enumType: exports.TypeInfo.StageUpdateType\r\n }\r\n};\r\nexports.TypeInfo.WorkspaceMapping.fields = {\r\n mappingType: {\r\n enumType: exports.TypeInfo.WorkspaceMappingType\r\n }\r\n};\r\nexports.TypeInfo.WorkspaceTemplate.fields = {\r\n lastModifiedDate: {\r\n isDate: true,\r\n },\r\n mappings: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkspaceMapping\r\n }\r\n};\r\nexports.TypeInfo.XamlBuildDefinition.fields = {\r\n controller: {\r\n typeInfo: exports.TypeInfo.BuildController\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n createdOn: {\r\n isDate: true,\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n supportedReasons: {\r\n enumType: exports.TypeInfo.BuildReason\r\n },\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Specifies the additional data retrieval options for comments.\r\n */\r\nvar CommentExpandOptions;\r\n(function (CommentExpandOptions) {\r\n /**\r\n * Include comments only, no mentions, reactions or rendered text\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include comment reactions\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"Reactions\"] = 1] = \"Reactions\";\r\n /**\r\n * Include the rendered text (html) in addition to markdown text\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"RenderedText\"] = 8] = \"RenderedText\";\r\n CommentExpandOptions[CommentExpandOptions[\"RenderedTextOnly\"] = 16] = \"RenderedTextOnly\";\r\n /**\r\n * If specified, then responses will be expanded in the results\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"Children\"] = 32] = \"Children\";\r\n /**\r\n * Expand everything including Reactions, Mentions and also include RenderedText (HTML) for markdown comments\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"All\"] = -17] = \"All\";\r\n})(CommentExpandOptions = exports.CommentExpandOptions || (exports.CommentExpandOptions = {}));\r\n/**\r\n * Format of the comment. Ex. Markdown, Html.\r\n */\r\nvar CommentFormat;\r\n(function (CommentFormat) {\r\n CommentFormat[CommentFormat[\"Markdown\"] = 0] = \"Markdown\";\r\n CommentFormat[CommentFormat[\"Html\"] = 1] = \"Html\";\r\n})(CommentFormat = exports.CommentFormat || (exports.CommentFormat = {}));\r\nvar CommentMentionType;\r\n(function (CommentMentionType) {\r\n /**\r\n * An identity was mentioned by using the format @{VSID}\r\n */\r\n CommentMentionType[CommentMentionType[\"Person\"] = 0] = \"Person\";\r\n /**\r\n * A work item was mentioned by using the format #{Work Item ID}\r\n */\r\n CommentMentionType[CommentMentionType[\"WorkItem\"] = 1] = \"WorkItem\";\r\n /**\r\n * A Pull Request was mentioned by using the format !{PR Number}\r\n */\r\n CommentMentionType[CommentMentionType[\"PullRequest\"] = 2] = \"PullRequest\";\r\n})(CommentMentionType = exports.CommentMentionType || (exports.CommentMentionType = {}));\r\n/**\r\n * Represents different reaction types for a comment\r\n */\r\nvar CommentReactionType;\r\n(function (CommentReactionType) {\r\n CommentReactionType[CommentReactionType[\"Like\"] = 0] = \"Like\";\r\n CommentReactionType[CommentReactionType[\"Dislike\"] = 1] = \"Dislike\";\r\n CommentReactionType[CommentReactionType[\"Heart\"] = 2] = \"Heart\";\r\n CommentReactionType[CommentReactionType[\"Hooray\"] = 3] = \"Hooray\";\r\n CommentReactionType[CommentReactionType[\"Smile\"] = 4] = \"Smile\";\r\n CommentReactionType[CommentReactionType[\"Confused\"] = 5] = \"Confused\";\r\n})(CommentReactionType = exports.CommentReactionType || (exports.CommentReactionType = {}));\r\nvar CommentSortOrder;\r\n(function (CommentSortOrder) {\r\n /**\r\n * The results will be sorted in Ascending order.\r\n */\r\n CommentSortOrder[CommentSortOrder[\"Asc\"] = 1] = \"Asc\";\r\n /**\r\n * The results will be sorted in Descending order.\r\n */\r\n CommentSortOrder[CommentSortOrder[\"Desc\"] = 2] = \"Desc\";\r\n})(CommentSortOrder = exports.CommentSortOrder || (exports.CommentSortOrder = {}));\r\n/**\r\n * Represents the possible comment states.\r\n */\r\nvar CommentState;\r\n(function (CommentState) {\r\n CommentState[CommentState[\"Active\"] = 0] = \"Active\";\r\n CommentState[CommentState[\"Resolved\"] = 1] = \"Resolved\";\r\n CommentState[CommentState[\"Closed\"] = 2] = \"Closed\";\r\n})(CommentState = exports.CommentState || (exports.CommentState = {}));\r\nexports.TypeInfo = {\r\n Comment: {},\r\n CommentAttachment: {},\r\n CommentExpandOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"reactions\": 1,\r\n \"renderedText\": 8,\r\n \"renderedTextOnly\": 16,\r\n \"children\": 32,\r\n \"all\": -17\r\n }\r\n },\r\n CommentFormat: {\r\n enumValues: {\r\n \"markdown\": 0,\r\n \"html\": 1\r\n }\r\n },\r\n CommentList: {},\r\n CommentMention: {},\r\n CommentMentionType: {\r\n enumValues: {\r\n \"person\": 0,\r\n \"workItem\": 1,\r\n \"pullRequest\": 2\r\n }\r\n },\r\n CommentReaction: {},\r\n CommentReactionType: {\r\n enumValues: {\r\n \"like\": 0,\r\n \"dislike\": 1,\r\n \"heart\": 2,\r\n \"hooray\": 3,\r\n \"smile\": 4,\r\n \"confused\": 5\r\n }\r\n },\r\n CommentSortOrder: {\r\n enumValues: {\r\n \"asc\": 1,\r\n \"desc\": 2\r\n }\r\n },\r\n CommentState: {\r\n enumValues: {\r\n \"active\": 0,\r\n \"resolved\": 1,\r\n \"closed\": 2\r\n }\r\n },\r\n CommentUpdateParameters: {},\r\n CommentVersion: {},\r\n};\r\nexports.TypeInfo.Comment.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n mentions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.CommentMention\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n reactions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.CommentReaction\r\n },\r\n replies: {\r\n typeInfo: exports.TypeInfo.CommentList\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.CommentState\r\n }\r\n};\r\nexports.TypeInfo.CommentAttachment.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CommentList.fields = {\r\n comments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Comment\r\n }\r\n};\r\nexports.TypeInfo.CommentMention.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.CommentMentionType\r\n }\r\n};\r\nexports.TypeInfo.CommentReaction.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.CommentReactionType\r\n }\r\n};\r\nexports.TypeInfo.CommentUpdateParameters.fields = {\r\n state: {\r\n enumType: exports.TypeInfo.CommentState\r\n }\r\n};\r\nexports.TypeInfo.CommentVersion.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.CommentState\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ConnectedServiceKind;\r\n(function (ConnectedServiceKind) {\r\n /**\r\n * Custom or unknown service\r\n */\r\n ConnectedServiceKind[ConnectedServiceKind[\"Custom\"] = 0] = \"Custom\";\r\n /**\r\n * Azure Subscription\r\n */\r\n ConnectedServiceKind[ConnectedServiceKind[\"AzureSubscription\"] = 1] = \"AzureSubscription\";\r\n /**\r\n * Chef Connection\r\n */\r\n ConnectedServiceKind[ConnectedServiceKind[\"Chef\"] = 2] = \"Chef\";\r\n /**\r\n * Generic Connection\r\n */\r\n ConnectedServiceKind[ConnectedServiceKind[\"Generic\"] = 3] = \"Generic\";\r\n})(ConnectedServiceKind = exports.ConnectedServiceKind || (exports.ConnectedServiceKind = {}));\r\n/**\r\n * Type of process customization on a collection.\r\n */\r\nvar ProcessCustomizationType;\r\n(function (ProcessCustomizationType) {\r\n /**\r\n * Process customization can't be computed.\r\n */\r\n ProcessCustomizationType[ProcessCustomizationType[\"Unknown\"] = -1] = \"Unknown\";\r\n /**\r\n * Customization based on project-scoped xml customization\r\n */\r\n ProcessCustomizationType[ProcessCustomizationType[\"Xml\"] = 0] = \"Xml\";\r\n /**\r\n * Customization based on process inheritance\r\n */\r\n ProcessCustomizationType[ProcessCustomizationType[\"Inherited\"] = 1] = \"Inherited\";\r\n})(ProcessCustomizationType = exports.ProcessCustomizationType || (exports.ProcessCustomizationType = {}));\r\nvar ProcessType;\r\n(function (ProcessType) {\r\n ProcessType[ProcessType[\"System\"] = 0] = \"System\";\r\n ProcessType[ProcessType[\"Custom\"] = 1] = \"Custom\";\r\n ProcessType[ProcessType[\"Inherited\"] = 2] = \"Inherited\";\r\n})(ProcessType = exports.ProcessType || (exports.ProcessType = {}));\r\nvar ProjectChangeType;\r\n(function (ProjectChangeType) {\r\n ProjectChangeType[ProjectChangeType[\"Modified\"] = 0] = \"Modified\";\r\n ProjectChangeType[ProjectChangeType[\"Deleted\"] = 1] = \"Deleted\";\r\n ProjectChangeType[ProjectChangeType[\"Added\"] = 2] = \"Added\";\r\n})(ProjectChangeType = exports.ProjectChangeType || (exports.ProjectChangeType = {}));\r\nvar ProjectVisibility;\r\n(function (ProjectVisibility) {\r\n ProjectVisibility[ProjectVisibility[\"Unchanged\"] = -1] = \"Unchanged\";\r\n /**\r\n * The project is only visible to users with explicit access.\r\n */\r\n ProjectVisibility[ProjectVisibility[\"Private\"] = 0] = \"Private\";\r\n /**\r\n * Enterprise level project visibility\r\n */\r\n ProjectVisibility[ProjectVisibility[\"Organization\"] = 1] = \"Organization\";\r\n /**\r\n * The project is visible to all.\r\n */\r\n ProjectVisibility[ProjectVisibility[\"Public\"] = 2] = \"Public\";\r\n ProjectVisibility[ProjectVisibility[\"SystemPrivate\"] = 3] = \"SystemPrivate\";\r\n})(ProjectVisibility = exports.ProjectVisibility || (exports.ProjectVisibility = {}));\r\nvar SourceControlTypes;\r\n(function (SourceControlTypes) {\r\n SourceControlTypes[SourceControlTypes[\"Tfvc\"] = 1] = \"Tfvc\";\r\n SourceControlTypes[SourceControlTypes[\"Git\"] = 2] = \"Git\";\r\n})(SourceControlTypes = exports.SourceControlTypes || (exports.SourceControlTypes = {}));\r\nexports.TypeInfo = {\r\n ConnectedServiceKind: {\r\n enumValues: {\r\n \"custom\": 0,\r\n \"azureSubscription\": 1,\r\n \"chef\": 2,\r\n \"generic\": 3\r\n }\r\n },\r\n Process: {},\r\n ProcessCustomizationType: {\r\n enumValues: {\r\n \"unknown\": -1,\r\n \"xml\": 0,\r\n \"inherited\": 1\r\n }\r\n },\r\n ProcessType: {\r\n enumValues: {\r\n \"system\": 0,\r\n \"custom\": 1,\r\n \"inherited\": 2\r\n }\r\n },\r\n ProjectChangeType: {\r\n enumValues: {\r\n \"modified\": 0,\r\n \"deleted\": 1,\r\n \"added\": 2\r\n }\r\n },\r\n ProjectInfo: {},\r\n ProjectMessage: {},\r\n ProjectVisibility: {\r\n enumValues: {\r\n \"private\": 0,\r\n \"organization\": 1,\r\n \"public\": 2\r\n }\r\n },\r\n SourceControlTypes: {\r\n enumValues: {\r\n \"tfvc\": 1,\r\n \"git\": 2\r\n }\r\n },\r\n TeamProject: {},\r\n TeamProjectCollection: {},\r\n TeamProjectReference: {},\r\n TemporaryDataCreatedDTO: {},\r\n WebApiConnectedService: {},\r\n WebApiConnectedServiceDetails: {},\r\n WebApiProject: {},\r\n};\r\nexports.TypeInfo.Process.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.ProcessType\r\n }\r\n};\r\nexports.TypeInfo.ProjectInfo.fields = {\r\n lastUpdateTime: {\r\n isDate: true,\r\n },\r\n visibility: {\r\n enumType: exports.TypeInfo.ProjectVisibility\r\n }\r\n};\r\nexports.TypeInfo.ProjectMessage.fields = {\r\n project: {\r\n typeInfo: exports.TypeInfo.ProjectInfo\r\n },\r\n projectChangeType: {\r\n enumType: exports.TypeInfo.ProjectChangeType\r\n }\r\n};\r\nexports.TypeInfo.TeamProject.fields = {\r\n lastUpdateTime: {\r\n isDate: true,\r\n },\r\n visibility: {\r\n enumType: exports.TypeInfo.ProjectVisibility\r\n }\r\n};\r\nexports.TypeInfo.TeamProjectCollection.fields = {\r\n processCustomizationType: {\r\n enumType: exports.TypeInfo.ProcessCustomizationType\r\n }\r\n};\r\nexports.TypeInfo.TeamProjectReference.fields = {\r\n lastUpdateTime: {\r\n isDate: true,\r\n },\r\n visibility: {\r\n enumType: exports.TypeInfo.ProjectVisibility\r\n }\r\n};\r\nexports.TypeInfo.TemporaryDataCreatedDTO.fields = {\r\n expirationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.WebApiConnectedService.fields = {\r\n project: {\r\n typeInfo: exports.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.WebApiConnectedServiceDetails.fields = {\r\n connectedServiceMetaData: {\r\n typeInfo: exports.TypeInfo.WebApiConnectedService\r\n }\r\n};\r\nexports.TypeInfo.WebApiProject.fields = {\r\n lastUpdateTime: {\r\n isDate: true,\r\n },\r\n visibility: {\r\n enumType: exports.TypeInfo.ProjectVisibility\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * identifies the scope of dashboard storage and permissions.\r\n */\r\nvar DashboardScope;\r\n(function (DashboardScope) {\r\n /**\r\n * [DEPRECATED] Dashboard is scoped to the collection user.\r\n */\r\n DashboardScope[DashboardScope[\"Collection_User\"] = 0] = \"Collection_User\";\r\n /**\r\n * Dashboard is scoped to the team.\r\n */\r\n DashboardScope[DashboardScope[\"Project_Team\"] = 1] = \"Project_Team\";\r\n /**\r\n * Dashboard is scoped to the project.\r\n */\r\n DashboardScope[DashboardScope[\"Project\"] = 2] = \"Project\";\r\n})(DashboardScope = exports.DashboardScope || (exports.DashboardScope = {}));\r\nvar GroupMemberPermission;\r\n(function (GroupMemberPermission) {\r\n GroupMemberPermission[GroupMemberPermission[\"None\"] = 0] = \"None\";\r\n GroupMemberPermission[GroupMemberPermission[\"Edit\"] = 1] = \"Edit\";\r\n GroupMemberPermission[GroupMemberPermission[\"Manage\"] = 2] = \"Manage\";\r\n GroupMemberPermission[GroupMemberPermission[\"ManagePermissions\"] = 3] = \"ManagePermissions\";\r\n})(GroupMemberPermission = exports.GroupMemberPermission || (exports.GroupMemberPermission = {}));\r\nvar TeamDashboardPermission;\r\n(function (TeamDashboardPermission) {\r\n TeamDashboardPermission[TeamDashboardPermission[\"None\"] = 0] = \"None\";\r\n TeamDashboardPermission[TeamDashboardPermission[\"Read\"] = 1] = \"Read\";\r\n TeamDashboardPermission[TeamDashboardPermission[\"Create\"] = 2] = \"Create\";\r\n TeamDashboardPermission[TeamDashboardPermission[\"Edit\"] = 4] = \"Edit\";\r\n TeamDashboardPermission[TeamDashboardPermission[\"Delete\"] = 8] = \"Delete\";\r\n TeamDashboardPermission[TeamDashboardPermission[\"ManagePermissions\"] = 16] = \"ManagePermissions\";\r\n})(TeamDashboardPermission = exports.TeamDashboardPermission || (exports.TeamDashboardPermission = {}));\r\n/**\r\n * data contract required for the widget to function in a webaccess area or page.\r\n */\r\nvar WidgetScope;\r\n(function (WidgetScope) {\r\n WidgetScope[WidgetScope[\"Collection_User\"] = 0] = \"Collection_User\";\r\n WidgetScope[WidgetScope[\"Project_Team\"] = 1] = \"Project_Team\";\r\n})(WidgetScope = exports.WidgetScope || (exports.WidgetScope = {}));\r\nexports.TypeInfo = {\r\n Dashboard: {},\r\n DashboardGroup: {},\r\n DashboardGroupEntry: {},\r\n DashboardGroupEntryResponse: {},\r\n DashboardResponse: {},\r\n DashboardScope: {\r\n enumValues: {\r\n \"collection_User\": 0,\r\n \"project_Team\": 1,\r\n \"project\": 2\r\n }\r\n },\r\n GroupMemberPermission: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"edit\": 1,\r\n \"manage\": 2,\r\n \"managePermissions\": 3\r\n }\r\n },\r\n TeamDashboardPermission: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"read\": 1,\r\n \"create\": 2,\r\n \"edit\": 4,\r\n \"delete\": 8,\r\n \"managePermissions\": 16\r\n }\r\n },\r\n Widget: {},\r\n WidgetMetadata: {},\r\n WidgetMetadataResponse: {},\r\n WidgetResponse: {},\r\n WidgetScope: {\r\n enumValues: {\r\n \"collection_User\": 0,\r\n \"project_Team\": 1\r\n }\r\n },\r\n WidgetsVersionedList: {},\r\n WidgetTypesResponse: {},\r\n};\r\nexports.TypeInfo.Dashboard.fields = {\r\n dashboardScope: {\r\n enumType: exports.TypeInfo.DashboardScope\r\n },\r\n widgets: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Widget\r\n }\r\n};\r\nexports.TypeInfo.DashboardGroup.fields = {\r\n dashboardEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DashboardGroupEntry\r\n },\r\n permission: {\r\n enumType: exports.TypeInfo.GroupMemberPermission\r\n },\r\n teamDashboardPermission: {\r\n enumType: exports.TypeInfo.TeamDashboardPermission\r\n }\r\n};\r\nexports.TypeInfo.DashboardGroupEntry.fields = {\r\n dashboardScope: {\r\n enumType: exports.TypeInfo.DashboardScope\r\n },\r\n widgets: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Widget\r\n }\r\n};\r\nexports.TypeInfo.DashboardGroupEntryResponse.fields = {\r\n dashboardScope: {\r\n enumType: exports.TypeInfo.DashboardScope\r\n },\r\n widgets: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Widget\r\n }\r\n};\r\nexports.TypeInfo.DashboardResponse.fields = {\r\n dashboardScope: {\r\n enumType: exports.TypeInfo.DashboardScope\r\n },\r\n widgets: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Widget\r\n }\r\n};\r\nexports.TypeInfo.Widget.fields = {\r\n dashboard: {\r\n typeInfo: exports.TypeInfo.Dashboard\r\n }\r\n};\r\nexports.TypeInfo.WidgetMetadata.fields = {\r\n supportedScopes: {\r\n isArray: true,\r\n enumType: exports.TypeInfo.WidgetScope\r\n }\r\n};\r\nexports.TypeInfo.WidgetMetadataResponse.fields = {\r\n widgetMetadata: {\r\n typeInfo: exports.TypeInfo.WidgetMetadata\r\n }\r\n};\r\nexports.TypeInfo.WidgetResponse.fields = {\r\n dashboard: {\r\n typeInfo: exports.TypeInfo.Dashboard\r\n }\r\n};\r\nexports.TypeInfo.WidgetsVersionedList.fields = {\r\n widgets: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Widget\r\n }\r\n};\r\nexports.TypeInfo.WidgetTypesResponse.fields = {\r\n widgetTypes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WidgetMetadata\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst GalleryInterfaces = require(\"../interfaces/GalleryInterfaces\");\r\n/**\r\n * How the acquisition is assigned\r\n */\r\nvar AcquisitionAssignmentType;\r\n(function (AcquisitionAssignmentType) {\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Just assign for me\r\n */\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"Me\"] = 1] = \"Me\";\r\n /**\r\n * Assign for all users in the account\r\n */\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"All\"] = 2] = \"All\";\r\n})(AcquisitionAssignmentType = exports.AcquisitionAssignmentType || (exports.AcquisitionAssignmentType = {}));\r\nvar AcquisitionOperationState;\r\n(function (AcquisitionOperationState) {\r\n /**\r\n * Not allowed to use this AcquisitionOperation\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Disallow\"] = 0] = \"Disallow\";\r\n /**\r\n * Allowed to use this AcquisitionOperation\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Allow\"] = 1] = \"Allow\";\r\n /**\r\n * Operation has already been completed and is no longer available\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Completed\"] = 3] = \"Completed\";\r\n})(AcquisitionOperationState = exports.AcquisitionOperationState || (exports.AcquisitionOperationState = {}));\r\n/**\r\n * Set of different types of operations that can be requested.\r\n */\r\nvar AcquisitionOperationType;\r\n(function (AcquisitionOperationType) {\r\n /**\r\n * Not yet used\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Get\"] = 0] = \"Get\";\r\n /**\r\n * Install this extension into the host provided\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Install\"] = 1] = \"Install\";\r\n /**\r\n * Buy licenses for this extension and install into the host provided\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Buy\"] = 2] = \"Buy\";\r\n /**\r\n * Try this extension\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Try\"] = 3] = \"Try\";\r\n /**\r\n * Request this extension for installation\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Request\"] = 4] = \"Request\";\r\n /**\r\n * No action found\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"None\"] = 5] = \"None\";\r\n /**\r\n * Request admins for purchasing extension\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"PurchaseRequest\"] = 6] = \"PurchaseRequest\";\r\n})(AcquisitionOperationType = exports.AcquisitionOperationType || (exports.AcquisitionOperationType = {}));\r\n/**\r\n * Represents different ways of including contributions based on licensing\r\n */\r\nvar ContributionLicensingBehaviorType;\r\n(function (ContributionLicensingBehaviorType) {\r\n /**\r\n * Default value - only include the contribution if the user is licensed for the extension\r\n */\r\n ContributionLicensingBehaviorType[ContributionLicensingBehaviorType[\"OnlyIfLicensed\"] = 0] = \"OnlyIfLicensed\";\r\n /**\r\n * Only include the contribution if the user is NOT licensed for the extension\r\n */\r\n ContributionLicensingBehaviorType[ContributionLicensingBehaviorType[\"OnlyIfUnlicensed\"] = 1] = \"OnlyIfUnlicensed\";\r\n /**\r\n * Always include the contribution regardless of whether or not the user is licensed for the extension\r\n */\r\n ContributionLicensingBehaviorType[ContributionLicensingBehaviorType[\"AlwaysInclude\"] = 2] = \"AlwaysInclude\";\r\n})(ContributionLicensingBehaviorType = exports.ContributionLicensingBehaviorType || (exports.ContributionLicensingBehaviorType = {}));\r\n/**\r\n * The type of value used for a property\r\n */\r\nvar ContributionPropertyType;\r\n(function (ContributionPropertyType) {\r\n /**\r\n * Contribution type is unknown (value may be anything)\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * Value is a string\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"String\"] = 1] = \"String\";\r\n /**\r\n * Value is a Uri\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Uri\"] = 2] = \"Uri\";\r\n /**\r\n * Value is a GUID\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Guid\"] = 4] = \"Guid\";\r\n /**\r\n * Value is True or False\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Boolean\"] = 8] = \"Boolean\";\r\n /**\r\n * Value is an integer\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Integer\"] = 16] = \"Integer\";\r\n /**\r\n * Value is a double\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Double\"] = 32] = \"Double\";\r\n /**\r\n * Value is a DateTime object\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"DateTime\"] = 64] = \"DateTime\";\r\n /**\r\n * Value is a generic Dictionary/JObject/property bag\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Dictionary\"] = 128] = \"Dictionary\";\r\n /**\r\n * Value is an array\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Array\"] = 256] = \"Array\";\r\n /**\r\n * Value is an arbitrary/custom object\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Object\"] = 512] = \"Object\";\r\n})(ContributionPropertyType = exports.ContributionPropertyType || (exports.ContributionPropertyType = {}));\r\n/**\r\n * Options that control the contributions to include in a query\r\n */\r\nvar ContributionQueryOptions;\r\n(function (ContributionQueryOptions) {\r\n ContributionQueryOptions[ContributionQueryOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include the direct contributions that have the ids queried.\r\n */\r\n ContributionQueryOptions[ContributionQueryOptions[\"IncludeSelf\"] = 16] = \"IncludeSelf\";\r\n /**\r\n * Include the contributions that directly target the contributions queried.\r\n */\r\n ContributionQueryOptions[ContributionQueryOptions[\"IncludeChildren\"] = 32] = \"IncludeChildren\";\r\n /**\r\n * Include the contributions from the entire sub-tree targeting the contributions queried.\r\n */\r\n ContributionQueryOptions[ContributionQueryOptions[\"IncludeSubTree\"] = 96] = \"IncludeSubTree\";\r\n /**\r\n * Include the contribution being queried as well as all contributions that target them recursively.\r\n */\r\n ContributionQueryOptions[ContributionQueryOptions[\"IncludeAll\"] = 112] = \"IncludeAll\";\r\n /**\r\n * Some callers may want the entire tree back without constraint evaluation being performed.\r\n */\r\n ContributionQueryOptions[ContributionQueryOptions[\"IgnoreConstraints\"] = 256] = \"IgnoreConstraints\";\r\n})(ContributionQueryOptions = exports.ContributionQueryOptions || (exports.ContributionQueryOptions = {}));\r\n/**\r\n * Set of flags applied to extensions that are relevant to contribution consumers\r\n */\r\nvar ExtensionFlags;\r\n(function (ExtensionFlags) {\r\n /**\r\n * A built-in extension is installed for all VSTS accounts by default\r\n */\r\n ExtensionFlags[ExtensionFlags[\"BuiltIn\"] = 1] = \"BuiltIn\";\r\n /**\r\n * The extension comes from a fully-trusted publisher\r\n */\r\n ExtensionFlags[ExtensionFlags[\"Trusted\"] = 2] = \"Trusted\";\r\n})(ExtensionFlags = exports.ExtensionFlags || (exports.ExtensionFlags = {}));\r\n/**\r\n * Represents the state of an extension request\r\n */\r\nvar ExtensionRequestState;\r\n(function (ExtensionRequestState) {\r\n /**\r\n * The request has been opened, but not yet responded to\r\n */\r\n ExtensionRequestState[ExtensionRequestState[\"Open\"] = 0] = \"Open\";\r\n /**\r\n * The request was accepted (extension installed or license assigned)\r\n */\r\n ExtensionRequestState[ExtensionRequestState[\"Accepted\"] = 1] = \"Accepted\";\r\n /**\r\n * The request was rejected (extension not installed or license not assigned)\r\n */\r\n ExtensionRequestState[ExtensionRequestState[\"Rejected\"] = 2] = \"Rejected\";\r\n})(ExtensionRequestState = exports.ExtensionRequestState || (exports.ExtensionRequestState = {}));\r\nvar ExtensionRequestUpdateType;\r\n(function (ExtensionRequestUpdateType) {\r\n ExtensionRequestUpdateType[ExtensionRequestUpdateType[\"Created\"] = 1] = \"Created\";\r\n ExtensionRequestUpdateType[ExtensionRequestUpdateType[\"Approved\"] = 2] = \"Approved\";\r\n ExtensionRequestUpdateType[ExtensionRequestUpdateType[\"Rejected\"] = 3] = \"Rejected\";\r\n ExtensionRequestUpdateType[ExtensionRequestUpdateType[\"Deleted\"] = 4] = \"Deleted\";\r\n})(ExtensionRequestUpdateType = exports.ExtensionRequestUpdateType || (exports.ExtensionRequestUpdateType = {}));\r\n/**\r\n * States of an extension Note: If you add value to this enum, you need to do 2 other things. First add the back compat enum in value src\\Vssf\\Sdk\\Server\\Contributions\\InstalledExtensionMessage.cs. Second, you can not send the new value on the message bus. You need to remove it from the message bus event prior to being sent.\r\n */\r\nvar ExtensionStateFlags;\r\n(function (ExtensionStateFlags) {\r\n /**\r\n * No flags set\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Extension is disabled\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"Disabled\"] = 1] = \"Disabled\";\r\n /**\r\n * Extension is a built in\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"BuiltIn\"] = 2] = \"BuiltIn\";\r\n /**\r\n * Extension has multiple versions\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"MultiVersion\"] = 4] = \"MultiVersion\";\r\n /**\r\n * Extension is not installed. This is for builtin extensions only and can not otherwise be set.\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"UnInstalled\"] = 8] = \"UnInstalled\";\r\n /**\r\n * Error performing version check\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"VersionCheckError\"] = 16] = \"VersionCheckError\";\r\n /**\r\n * Trusted extensions are ones that are given special capabilities. These tend to come from Microsoft and can't be published by the general public. Note: BuiltIn extensions are always trusted.\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"Trusted\"] = 32] = \"Trusted\";\r\n /**\r\n * Extension is currently in an error state\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"Error\"] = 64] = \"Error\";\r\n /**\r\n * Extension scopes have changed and the extension requires re-authorization\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"NeedsReauthorization\"] = 128] = \"NeedsReauthorization\";\r\n /**\r\n * Error performing auto-upgrade. For example, if the new version has demands not supported the extension cannot be auto-upgraded.\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"AutoUpgradeError\"] = 256] = \"AutoUpgradeError\";\r\n /**\r\n * Extension is currently in a warning state, that can cause a degraded experience. The degraded experience can be caused for example by some installation issues detected such as implicit demands not supported.\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"Warning\"] = 512] = \"Warning\";\r\n})(ExtensionStateFlags = exports.ExtensionStateFlags || (exports.ExtensionStateFlags = {}));\r\nvar ExtensionUpdateType;\r\n(function (ExtensionUpdateType) {\r\n ExtensionUpdateType[ExtensionUpdateType[\"Installed\"] = 1] = \"Installed\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"Uninstalled\"] = 2] = \"Uninstalled\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"Enabled\"] = 3] = \"Enabled\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"Disabled\"] = 4] = \"Disabled\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"VersionUpdated\"] = 5] = \"VersionUpdated\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"ActionRequired\"] = 6] = \"ActionRequired\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"ActionResolved\"] = 7] = \"ActionResolved\";\r\n})(ExtensionUpdateType = exports.ExtensionUpdateType || (exports.ExtensionUpdateType = {}));\r\n/**\r\n * Installation issue type (Warning, Error)\r\n */\r\nvar InstalledExtensionStateIssueType;\r\n(function (InstalledExtensionStateIssueType) {\r\n /**\r\n * Represents an installation warning, for example an implicit demand not supported\r\n */\r\n InstalledExtensionStateIssueType[InstalledExtensionStateIssueType[\"Warning\"] = 0] = \"Warning\";\r\n /**\r\n * Represents an installation error, for example an explicit demand not supported\r\n */\r\n InstalledExtensionStateIssueType[InstalledExtensionStateIssueType[\"Error\"] = 1] = \"Error\";\r\n})(InstalledExtensionStateIssueType = exports.InstalledExtensionStateIssueType || (exports.InstalledExtensionStateIssueType = {}));\r\nexports.TypeInfo = {\r\n AcquisitionAssignmentType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"me\": 1,\r\n \"all\": 2\r\n }\r\n },\r\n AcquisitionOperation: {},\r\n AcquisitionOperationState: {\r\n enumValues: {\r\n \"disallow\": 0,\r\n \"allow\": 1,\r\n \"completed\": 3\r\n }\r\n },\r\n AcquisitionOperationType: {\r\n enumValues: {\r\n \"get\": 0,\r\n \"install\": 1,\r\n \"buy\": 2,\r\n \"try\": 3,\r\n \"request\": 4,\r\n \"none\": 5,\r\n \"purchaseRequest\": 6\r\n }\r\n },\r\n AcquisitionOptions: {},\r\n ContributionLicensingBehaviorType: {\r\n enumValues: {\r\n \"onlyIfLicensed\": 0,\r\n \"onlyIfUnlicensed\": 1,\r\n \"alwaysInclude\": 2\r\n }\r\n },\r\n ContributionNodeQuery: {},\r\n ContributionPropertyDescription: {},\r\n ContributionPropertyType: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"string\": 1,\r\n \"uri\": 2,\r\n \"guid\": 4,\r\n \"boolean\": 8,\r\n \"integer\": 16,\r\n \"double\": 32,\r\n \"dateTime\": 64,\r\n \"dictionary\": 128,\r\n \"array\": 256,\r\n \"object\": 512\r\n }\r\n },\r\n ContributionQueryOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeSelf\": 16,\r\n \"includeChildren\": 32,\r\n \"includeSubTree\": 96,\r\n \"includeAll\": 112,\r\n \"ignoreConstraints\": 256\r\n }\r\n },\r\n ContributionType: {},\r\n ExtensionAcquisitionRequest: {},\r\n ExtensionAuditLog: {},\r\n ExtensionAuditLogEntry: {},\r\n ExtensionEvent: {},\r\n ExtensionFlags: {\r\n enumValues: {\r\n \"builtIn\": 1,\r\n \"trusted\": 2\r\n }\r\n },\r\n ExtensionLicensing: {},\r\n ExtensionManifest: {},\r\n ExtensionRequest: {},\r\n ExtensionRequestEvent: {},\r\n ExtensionRequestsEvent: {},\r\n ExtensionRequestState: {\r\n enumValues: {\r\n \"open\": 0,\r\n \"accepted\": 1,\r\n \"rejected\": 2\r\n }\r\n },\r\n ExtensionRequestUpdateType: {\r\n enumValues: {\r\n \"created\": 1,\r\n \"approved\": 2,\r\n \"rejected\": 3,\r\n \"deleted\": 4\r\n }\r\n },\r\n ExtensionState: {},\r\n ExtensionStateFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"disabled\": 1,\r\n \"builtIn\": 2,\r\n \"multiVersion\": 4,\r\n \"unInstalled\": 8,\r\n \"versionCheckError\": 16,\r\n \"trusted\": 32,\r\n \"error\": 64,\r\n \"needsReauthorization\": 128,\r\n \"autoUpgradeError\": 256,\r\n \"warning\": 512\r\n }\r\n },\r\n ExtensionUpdateType: {\r\n enumValues: {\r\n \"installed\": 1,\r\n \"uninstalled\": 2,\r\n \"enabled\": 3,\r\n \"disabled\": 4,\r\n \"versionUpdated\": 5,\r\n \"actionRequired\": 6,\r\n \"actionResolved\": 7\r\n }\r\n },\r\n InstalledExtension: {},\r\n InstalledExtensionState: {},\r\n InstalledExtensionStateIssue: {},\r\n InstalledExtensionStateIssueType: {\r\n enumValues: {\r\n \"warning\": 0,\r\n \"error\": 1\r\n }\r\n },\r\n LicensingOverride: {},\r\n RequestedExtension: {},\r\n};\r\nexports.TypeInfo.AcquisitionOperation.fields = {\r\n operationState: {\r\n enumType: exports.TypeInfo.AcquisitionOperationState\r\n },\r\n operationType: {\r\n enumType: exports.TypeInfo.AcquisitionOperationType\r\n }\r\n};\r\nexports.TypeInfo.AcquisitionOptions.fields = {\r\n defaultOperation: {\r\n typeInfo: exports.TypeInfo.AcquisitionOperation\r\n },\r\n operations: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.AcquisitionOperation\r\n }\r\n};\r\nexports.TypeInfo.ContributionNodeQuery.fields = {\r\n queryOptions: {\r\n enumType: exports.TypeInfo.ContributionQueryOptions\r\n }\r\n};\r\nexports.TypeInfo.ContributionPropertyDescription.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.ContributionPropertyType\r\n }\r\n};\r\nexports.TypeInfo.ContributionType.fields = {\r\n properties: {\r\n isDictionary: true,\r\n dictionaryValueTypeInfo: exports.TypeInfo.ContributionPropertyDescription\r\n }\r\n};\r\nexports.TypeInfo.ExtensionAcquisitionRequest.fields = {\r\n assignmentType: {\r\n enumType: exports.TypeInfo.AcquisitionAssignmentType\r\n },\r\n operationType: {\r\n enumType: exports.TypeInfo.AcquisitionOperationType\r\n }\r\n};\r\nexports.TypeInfo.ExtensionAuditLog.fields = {\r\n entries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionAuditLogEntry\r\n }\r\n};\r\nexports.TypeInfo.ExtensionAuditLogEntry.fields = {\r\n auditDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ExtensionEvent.fields = {\r\n extension: {\r\n typeInfo: GalleryInterfaces.TypeInfo.PublishedExtension\r\n },\r\n updateType: {\r\n enumType: exports.TypeInfo.ExtensionUpdateType\r\n }\r\n};\r\nexports.TypeInfo.ExtensionLicensing.fields = {\r\n overrides: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LicensingOverride\r\n }\r\n};\r\nexports.TypeInfo.ExtensionManifest.fields = {\r\n contributionTypes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ContributionType\r\n },\r\n licensing: {\r\n typeInfo: exports.TypeInfo.ExtensionLicensing\r\n }\r\n};\r\nexports.TypeInfo.ExtensionRequest.fields = {\r\n requestDate: {\r\n isDate: true,\r\n },\r\n requestState: {\r\n enumType: exports.TypeInfo.ExtensionRequestState\r\n },\r\n resolveDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ExtensionRequestEvent.fields = {\r\n extension: {\r\n typeInfo: GalleryInterfaces.TypeInfo.PublishedExtension\r\n },\r\n request: {\r\n typeInfo: exports.TypeInfo.ExtensionRequest\r\n },\r\n updateType: {\r\n enumType: exports.TypeInfo.ExtensionRequestUpdateType\r\n }\r\n};\r\nexports.TypeInfo.ExtensionRequestsEvent.fields = {\r\n extension: {\r\n typeInfo: GalleryInterfaces.TypeInfo.PublishedExtension\r\n },\r\n requests: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionRequest\r\n },\r\n updateType: {\r\n enumType: exports.TypeInfo.ExtensionRequestUpdateType\r\n }\r\n};\r\nexports.TypeInfo.ExtensionState.fields = {\r\n flags: {\r\n enumType: exports.TypeInfo.ExtensionStateFlags\r\n },\r\n installationIssues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.InstalledExtensionStateIssue\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n lastVersionCheck: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.InstalledExtension.fields = {\r\n contributionTypes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ContributionType\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.ExtensionFlags\r\n },\r\n installState: {\r\n typeInfo: exports.TypeInfo.InstalledExtensionState\r\n },\r\n lastPublished: {\r\n isDate: true,\r\n },\r\n licensing: {\r\n typeInfo: exports.TypeInfo.ExtensionLicensing\r\n }\r\n};\r\nexports.TypeInfo.InstalledExtensionState.fields = {\r\n flags: {\r\n enumType: exports.TypeInfo.ExtensionStateFlags\r\n },\r\n installationIssues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.InstalledExtensionStateIssue\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.InstalledExtensionStateIssue.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.InstalledExtensionStateIssueType\r\n }\r\n};\r\nexports.TypeInfo.LicensingOverride.fields = {\r\n behavior: {\r\n enumType: exports.TypeInfo.ContributionLicensingBehaviorType\r\n }\r\n};\r\nexports.TypeInfo.RequestedExtension.fields = {\r\n extensionRequests: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionRequest\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * The current state of a feature within a given scope\r\n */\r\nvar ContributedFeatureEnabledValue;\r\n(function (ContributedFeatureEnabledValue) {\r\n /**\r\n * The state of the feature is not set for the specified scope\r\n */\r\n ContributedFeatureEnabledValue[ContributedFeatureEnabledValue[\"Undefined\"] = -1] = \"Undefined\";\r\n /**\r\n * The feature is disabled at the specified scope\r\n */\r\n ContributedFeatureEnabledValue[ContributedFeatureEnabledValue[\"Disabled\"] = 0] = \"Disabled\";\r\n /**\r\n * The feature is enabled at the specified scope\r\n */\r\n ContributedFeatureEnabledValue[ContributedFeatureEnabledValue[\"Enabled\"] = 1] = \"Enabled\";\r\n})(ContributedFeatureEnabledValue = exports.ContributedFeatureEnabledValue || (exports.ContributedFeatureEnabledValue = {}));\r\nexports.TypeInfo = {\r\n ContributedFeatureEnabledValue: {\r\n enumValues: {\r\n \"undefined\": -1,\r\n \"disabled\": 0,\r\n \"enabled\": 1\r\n }\r\n },\r\n ContributedFeatureState: {},\r\n ContributedFeatureStateQuery: {},\r\n};\r\nexports.TypeInfo.ContributedFeatureState.fields = {\r\n state: {\r\n enumType: exports.TypeInfo.ContributedFeatureEnabledValue\r\n }\r\n};\r\nexports.TypeInfo.ContributedFeatureStateQuery.fields = {\r\n featureStates: {\r\n isDictionary: true,\r\n dictionaryValueTypeInfo: exports.TypeInfo.ContributedFeatureState\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Compression type for file stored in Blobstore\r\n */\r\nvar BlobCompressionType;\r\n(function (BlobCompressionType) {\r\n BlobCompressionType[BlobCompressionType[\"None\"] = 0] = \"None\";\r\n BlobCompressionType[BlobCompressionType[\"GZip\"] = 1] = \"GZip\";\r\n})(BlobCompressionType = exports.BlobCompressionType || (exports.BlobCompressionType = {}));\r\n/**\r\n * Status of a container item.\r\n */\r\nvar ContainerItemStatus;\r\n(function (ContainerItemStatus) {\r\n /**\r\n * Item is created.\r\n */\r\n ContainerItemStatus[ContainerItemStatus[\"Created\"] = 1] = \"Created\";\r\n /**\r\n * Item is a file pending for upload.\r\n */\r\n ContainerItemStatus[ContainerItemStatus[\"PendingUpload\"] = 2] = \"PendingUpload\";\r\n})(ContainerItemStatus = exports.ContainerItemStatus || (exports.ContainerItemStatus = {}));\r\n/**\r\n * Type of a container item.\r\n */\r\nvar ContainerItemType;\r\n(function (ContainerItemType) {\r\n /**\r\n * Any item type.\r\n */\r\n ContainerItemType[ContainerItemType[\"Any\"] = 0] = \"Any\";\r\n /**\r\n * Item is a folder which can have child items.\r\n */\r\n ContainerItemType[ContainerItemType[\"Folder\"] = 1] = \"Folder\";\r\n /**\r\n * Item is a file which is stored in the file service.\r\n */\r\n ContainerItemType[ContainerItemType[\"File\"] = 2] = \"File\";\r\n})(ContainerItemType = exports.ContainerItemType || (exports.ContainerItemType = {}));\r\n/**\r\n * Options a container can have.\r\n */\r\nvar ContainerOptions;\r\n(function (ContainerOptions) {\r\n /**\r\n * No option.\r\n */\r\n ContainerOptions[ContainerOptions[\"None\"] = 0] = \"None\";\r\n})(ContainerOptions = exports.ContainerOptions || (exports.ContainerOptions = {}));\r\nexports.TypeInfo = {\r\n BlobCompressionType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"gZip\": 1\r\n }\r\n },\r\n ContainerItemBlobReference: {},\r\n ContainerItemStatus: {\r\n enumValues: {\r\n \"created\": 1,\r\n \"pendingUpload\": 2\r\n }\r\n },\r\n ContainerItemType: {\r\n enumValues: {\r\n \"any\": 0,\r\n \"folder\": 1,\r\n \"file\": 2\r\n }\r\n },\r\n ContainerOptions: {\r\n enumValues: {\r\n \"none\": 0\r\n }\r\n },\r\n FileContainer: {},\r\n FileContainerItem: {},\r\n};\r\nexports.TypeInfo.ContainerItemBlobReference.fields = {\r\n compressionType: {\r\n enumType: exports.TypeInfo.BlobCompressionType\r\n }\r\n};\r\nexports.TypeInfo.FileContainer.fields = {\r\n dateCreated: {\r\n isDate: true,\r\n },\r\n options: {\r\n enumType: exports.TypeInfo.ContainerOptions\r\n }\r\n};\r\nexports.TypeInfo.FileContainerItem.fields = {\r\n blobMetadata: {\r\n typeInfo: exports.TypeInfo.ContainerItemBlobReference\r\n },\r\n dateCreated: {\r\n isDate: true,\r\n },\r\n dateLastModified: {\r\n isDate: true,\r\n },\r\n itemType: {\r\n enumType: exports.TypeInfo.ContainerItemType\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ContainerItemStatus\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * How the acquisition is assigned\r\n */\r\nvar AcquisitionAssignmentType;\r\n(function (AcquisitionAssignmentType) {\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Just assign for me\r\n */\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"Me\"] = 1] = \"Me\";\r\n /**\r\n * Assign for all users in the account\r\n */\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"All\"] = 2] = \"All\";\r\n})(AcquisitionAssignmentType = exports.AcquisitionAssignmentType || (exports.AcquisitionAssignmentType = {}));\r\nvar AcquisitionOperationState;\r\n(function (AcquisitionOperationState) {\r\n /**\r\n * Not allowed to use this AcquisitionOperation\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Disallow\"] = 0] = \"Disallow\";\r\n /**\r\n * Allowed to use this AcquisitionOperation\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Allow\"] = 1] = \"Allow\";\r\n /**\r\n * Operation has already been completed and is no longer available\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Completed\"] = 3] = \"Completed\";\r\n})(AcquisitionOperationState = exports.AcquisitionOperationState || (exports.AcquisitionOperationState = {}));\r\n/**\r\n * Set of different types of operations that can be requested.\r\n */\r\nvar AcquisitionOperationType;\r\n(function (AcquisitionOperationType) {\r\n /**\r\n * Not yet used\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Get\"] = 0] = \"Get\";\r\n /**\r\n * Install this extension into the host provided\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Install\"] = 1] = \"Install\";\r\n /**\r\n * Buy licenses for this extension and install into the host provided\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Buy\"] = 2] = \"Buy\";\r\n /**\r\n * Try this extension\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Try\"] = 3] = \"Try\";\r\n /**\r\n * Request this extension for installation\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Request\"] = 4] = \"Request\";\r\n /**\r\n * No action found\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"None\"] = 5] = \"None\";\r\n /**\r\n * Request admins for purchasing extension\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"PurchaseRequest\"] = 6] = \"PurchaseRequest\";\r\n})(AcquisitionOperationType = exports.AcquisitionOperationType || (exports.AcquisitionOperationType = {}));\r\nvar ConcernCategory;\r\n(function (ConcernCategory) {\r\n ConcernCategory[ConcernCategory[\"General\"] = 1] = \"General\";\r\n ConcernCategory[ConcernCategory[\"Abusive\"] = 2] = \"Abusive\";\r\n ConcernCategory[ConcernCategory[\"Spam\"] = 4] = \"Spam\";\r\n})(ConcernCategory = exports.ConcernCategory || (exports.ConcernCategory = {}));\r\nvar DraftPatchOperation;\r\n(function (DraftPatchOperation) {\r\n DraftPatchOperation[DraftPatchOperation[\"Publish\"] = 1] = \"Publish\";\r\n DraftPatchOperation[DraftPatchOperation[\"Cancel\"] = 2] = \"Cancel\";\r\n})(DraftPatchOperation = exports.DraftPatchOperation || (exports.DraftPatchOperation = {}));\r\nvar DraftStateType;\r\n(function (DraftStateType) {\r\n DraftStateType[DraftStateType[\"Unpublished\"] = 1] = \"Unpublished\";\r\n DraftStateType[DraftStateType[\"Published\"] = 2] = \"Published\";\r\n DraftStateType[DraftStateType[\"Cancelled\"] = 3] = \"Cancelled\";\r\n DraftStateType[DraftStateType[\"Error\"] = 4] = \"Error\";\r\n})(DraftStateType = exports.DraftStateType || (exports.DraftStateType = {}));\r\nvar ExtensionDeploymentTechnology;\r\n(function (ExtensionDeploymentTechnology) {\r\n ExtensionDeploymentTechnology[ExtensionDeploymentTechnology[\"Exe\"] = 1] = \"Exe\";\r\n ExtensionDeploymentTechnology[ExtensionDeploymentTechnology[\"Msi\"] = 2] = \"Msi\";\r\n ExtensionDeploymentTechnology[ExtensionDeploymentTechnology[\"Vsix\"] = 3] = \"Vsix\";\r\n ExtensionDeploymentTechnology[ExtensionDeploymentTechnology[\"ReferralLink\"] = 4] = \"ReferralLink\";\r\n})(ExtensionDeploymentTechnology = exports.ExtensionDeploymentTechnology || (exports.ExtensionDeploymentTechnology = {}));\r\n/**\r\n * Type of event\r\n */\r\nvar ExtensionLifecycleEventType;\r\n(function (ExtensionLifecycleEventType) {\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Uninstall\"] = 1] = \"Uninstall\";\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Install\"] = 2] = \"Install\";\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Review\"] = 3] = \"Review\";\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Acquisition\"] = 4] = \"Acquisition\";\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Sales\"] = 5] = \"Sales\";\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Other\"] = 999] = \"Other\";\r\n})(ExtensionLifecycleEventType = exports.ExtensionLifecycleEventType || (exports.ExtensionLifecycleEventType = {}));\r\n/**\r\n * Set of flags that can be associated with a given permission over an extension\r\n */\r\nvar ExtensionPolicyFlags;\r\n(function (ExtensionPolicyFlags) {\r\n /**\r\n * No permission\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Permission on private extensions\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"Private\"] = 1] = \"Private\";\r\n /**\r\n * Permission on public extensions\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"Public\"] = 2] = \"Public\";\r\n /**\r\n * Permission in extensions that are in preview\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"Preview\"] = 4] = \"Preview\";\r\n /**\r\n * Permission in released extensions\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"Released\"] = 8] = \"Released\";\r\n /**\r\n * Permission in 1st party extensions\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"FirstParty\"] = 16] = \"FirstParty\";\r\n /**\r\n * Mask that defines all permissions\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"All\"] = 31] = \"All\";\r\n})(ExtensionPolicyFlags = exports.ExtensionPolicyFlags || (exports.ExtensionPolicyFlags = {}));\r\n/**\r\n * Type of extension filters that are supported in the queries.\r\n */\r\nvar ExtensionQueryFilterType;\r\n(function (ExtensionQueryFilterType) {\r\n /**\r\n * The values are used as tags. All tags are treated as \"OR\" conditions with each other. There may be some value put on the number of matched tags from the query.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Tag\"] = 1] = \"Tag\";\r\n /**\r\n * The Values are an ExtensionName or fragment that is used to match other extension names.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"DisplayName\"] = 2] = \"DisplayName\";\r\n /**\r\n * The Filter is one or more tokens that define what scope to return private extensions for.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Private\"] = 3] = \"Private\";\r\n /**\r\n * Retrieve a set of extensions based on their id's. The values should be the extension id's encoded as strings.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Id\"] = 4] = \"Id\";\r\n /**\r\n * The category is unlike other filters. It is AND'd with the other filters instead of being a separate query.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Category\"] = 5] = \"Category\";\r\n /**\r\n * Certain contribution types may be indexed to allow for query by type. User defined types can't be indexed at the moment.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"ContributionType\"] = 6] = \"ContributionType\";\r\n /**\r\n * Retrieve an set extension based on the name based identifier. This differs from the internal id (which is being deprecated).\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Name\"] = 7] = \"Name\";\r\n /**\r\n * The InstallationTarget for an extension defines the target consumer for the extension. This may be something like VS, VSOnline, or VSCode\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"InstallationTarget\"] = 8] = \"InstallationTarget\";\r\n /**\r\n * Query for featured extensions, no value is allowed when using the query type.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Featured\"] = 9] = \"Featured\";\r\n /**\r\n * The SearchText provided by the user to search for extensions\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"SearchText\"] = 10] = \"SearchText\";\r\n /**\r\n * Query for extensions that are featured in their own category, The filterValue for this is name of category of extensions.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"FeaturedInCategory\"] = 11] = \"FeaturedInCategory\";\r\n /**\r\n * When retrieving extensions from a query, exclude the extensions which are having the given flags. The value specified for this filter should be a string representing the integer values of the flags to be excluded. In case of multiple flags to be specified, a logical OR of the interger values should be given as value for this filter This should be at most one filter of this type. This only acts as a restrictive filter after. In case of having a particular flag in both IncludeWithFlags and ExcludeWithFlags, excludeFlags will remove the included extensions giving empty result for that flag.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"ExcludeWithFlags\"] = 12] = \"ExcludeWithFlags\";\r\n /**\r\n * When retrieving extensions from a query, include the extensions which are having the given flags. The value specified for this filter should be a string representing the integer values of the flags to be included. In case of multiple flags to be specified, a logical OR of the integer values should be given as value for this filter This should be at most one filter of this type. This only acts as a restrictive filter after. In case of having a particular flag in both IncludeWithFlags and ExcludeWithFlags, excludeFlags will remove the included extensions giving empty result for that flag. In case of multiple flags given in IncludeWithFlags in ORed fashion, extensions having any of the given flags will be included.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"IncludeWithFlags\"] = 13] = \"IncludeWithFlags\";\r\n /**\r\n * Filter the extensions based on the LCID values applicable. Any extensions which are not having any LCID values will also be filtered. This is currently only supported for VS extensions.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Lcid\"] = 14] = \"Lcid\";\r\n /**\r\n * Filter to provide the version of the installation target. This filter will be used along with InstallationTarget filter. The value should be a valid version string. Currently supported only if search text is provided.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"InstallationTargetVersion\"] = 15] = \"InstallationTargetVersion\";\r\n /**\r\n * Filter type for specifying a range of installation target version. The filter will be used along with InstallationTarget filter. The value should be a pair of well formed version values separated by hyphen(-). Currently supported only if search text is provided.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"InstallationTargetVersionRange\"] = 16] = \"InstallationTargetVersionRange\";\r\n /**\r\n * Filter type for specifying metadata key and value to be used for filtering.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"VsixMetadata\"] = 17] = \"VsixMetadata\";\r\n /**\r\n * Filter to get extensions published by a publisher having supplied internal name\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"PublisherName\"] = 18] = \"PublisherName\";\r\n /**\r\n * Filter to get extensions published by all publishers having supplied display name\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"PublisherDisplayName\"] = 19] = \"PublisherDisplayName\";\r\n /**\r\n * When retrieving extensions from a query, include the extensions which have a publisher having the given flags. The value specified for this filter should be a string representing the integer values of the flags to be included. In case of multiple flags to be specified, a logical OR of the integer values should be given as value for this filter There should be at most one filter of this type. This only acts as a restrictive filter after. In case of multiple flags given in IncludeWithFlags in ORed fashion, extensions having any of the given flags will be included.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"IncludeWithPublisherFlags\"] = 20] = \"IncludeWithPublisherFlags\";\r\n /**\r\n * Filter to get extensions shared with particular organization\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"OrganizationSharedWith\"] = 21] = \"OrganizationSharedWith\";\r\n})(ExtensionQueryFilterType = exports.ExtensionQueryFilterType || (exports.ExtensionQueryFilterType = {}));\r\n/**\r\n * Set of flags used to determine which set of information is retrieved when reading published extensions\r\n */\r\nvar ExtensionQueryFlags;\r\n(function (ExtensionQueryFlags) {\r\n /**\r\n * None is used to retrieve only the basic extension details.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * IncludeVersions will return version information for extensions returned\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeVersions\"] = 1] = \"IncludeVersions\";\r\n /**\r\n * IncludeFiles will return information about which files were found within the extension that were stored independent of the manifest. When asking for files, versions will be included as well since files are returned as a property of the versions. These files can be retrieved using the path to the file without requiring the entire manifest be downloaded.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeFiles\"] = 2] = \"IncludeFiles\";\r\n /**\r\n * Include the Categories and Tags that were added to the extension definition.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeCategoryAndTags\"] = 4] = \"IncludeCategoryAndTags\";\r\n /**\r\n * Include the details about which accounts the extension has been shared with if the extension is a private extension.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeSharedAccounts\"] = 8] = \"IncludeSharedAccounts\";\r\n /**\r\n * Include properties associated with versions of the extension\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeVersionProperties\"] = 16] = \"IncludeVersionProperties\";\r\n /**\r\n * Excluding non-validated extensions will remove any extension versions that either are in the process of being validated or have failed validation.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"ExcludeNonValidated\"] = 32] = \"ExcludeNonValidated\";\r\n /**\r\n * Include the set of installation targets the extension has requested.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeInstallationTargets\"] = 64] = \"IncludeInstallationTargets\";\r\n /**\r\n * Include the base uri for assets of this extension\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeAssetUri\"] = 128] = \"IncludeAssetUri\";\r\n /**\r\n * Include the statistics associated with this extension\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeStatistics\"] = 256] = \"IncludeStatistics\";\r\n /**\r\n * When retrieving versions from a query, only include the latest version of the extensions that matched. This is useful when the caller doesn't need all the published versions. It will save a significant size in the returned payload.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeLatestVersionOnly\"] = 512] = \"IncludeLatestVersionOnly\";\r\n /**\r\n * This flag switches the asset uri to use GetAssetByName instead of CDN When this is used, values of base asset uri and base asset uri fallback are switched When this is used, source of asset files are pointed to Gallery service always even if CDN is available\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"UseFallbackAssetUri\"] = 1024] = \"UseFallbackAssetUri\";\r\n /**\r\n * This flag is used to get all the metadata values associated with the extension. This is not applicable to VSTS or VSCode extensions and usage is only internal.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeMetadata\"] = 2048] = \"IncludeMetadata\";\r\n /**\r\n * This flag is used to indicate to return very small data for extension required by VS IDE. This flag is only compatible when querying is done by VS IDE\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeMinimalPayloadForVsIde\"] = 4096] = \"IncludeMinimalPayloadForVsIde\";\r\n /**\r\n * This flag is used to get Lcid values associated with the extension. This is not applicable to VSTS or VSCode extensions and usage is only internal\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeLcids\"] = 8192] = \"IncludeLcids\";\r\n /**\r\n * Include the details about which organizations the extension has been shared with if the extension is a private extension.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeSharedOrganizations\"] = 16384] = \"IncludeSharedOrganizations\";\r\n /**\r\n * AllAttributes is designed to be a mask that defines all sub-elements of the extension should be returned. NOTE: This is not actually All flags. This is now locked to the set defined since changing this enum would be a breaking change and would change the behavior of anyone using it. Try not to use this value when making calls to the service, instead be explicit about the options required.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"AllAttributes\"] = 16863] = \"AllAttributes\";\r\n})(ExtensionQueryFlags = exports.ExtensionQueryFlags || (exports.ExtensionQueryFlags = {}));\r\nvar ExtensionStatisticOperation;\r\n(function (ExtensionStatisticOperation) {\r\n ExtensionStatisticOperation[ExtensionStatisticOperation[\"None\"] = 0] = \"None\";\r\n ExtensionStatisticOperation[ExtensionStatisticOperation[\"Set\"] = 1] = \"Set\";\r\n ExtensionStatisticOperation[ExtensionStatisticOperation[\"Increment\"] = 2] = \"Increment\";\r\n ExtensionStatisticOperation[ExtensionStatisticOperation[\"Decrement\"] = 3] = \"Decrement\";\r\n ExtensionStatisticOperation[ExtensionStatisticOperation[\"Delete\"] = 4] = \"Delete\";\r\n})(ExtensionStatisticOperation = exports.ExtensionStatisticOperation || (exports.ExtensionStatisticOperation = {}));\r\n/**\r\n * Stats aggregation type\r\n */\r\nvar ExtensionStatsAggregateType;\r\n(function (ExtensionStatsAggregateType) {\r\n ExtensionStatsAggregateType[ExtensionStatsAggregateType[\"Daily\"] = 1] = \"Daily\";\r\n})(ExtensionStatsAggregateType = exports.ExtensionStatsAggregateType || (exports.ExtensionStatsAggregateType = {}));\r\n/**\r\n * Set of flags that can be associated with a given extension version. These flags apply to a specific version of the extension.\r\n */\r\nvar ExtensionVersionFlags;\r\n(function (ExtensionVersionFlags) {\r\n /**\r\n * No flags exist for this version.\r\n */\r\n ExtensionVersionFlags[ExtensionVersionFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * The Validated flag for a version means the extension version has passed validation and can be used..\r\n */\r\n ExtensionVersionFlags[ExtensionVersionFlags[\"Validated\"] = 1] = \"Validated\";\r\n})(ExtensionVersionFlags = exports.ExtensionVersionFlags || (exports.ExtensionVersionFlags = {}));\r\n/**\r\n * Type of event\r\n */\r\nvar NotificationTemplateType;\r\n(function (NotificationTemplateType) {\r\n /**\r\n * Template type for Review Notification.\r\n */\r\n NotificationTemplateType[NotificationTemplateType[\"ReviewNotification\"] = 1] = \"ReviewNotification\";\r\n /**\r\n * Template type for Qna Notification.\r\n */\r\n NotificationTemplateType[NotificationTemplateType[\"QnaNotification\"] = 2] = \"QnaNotification\";\r\n /**\r\n * Template type for Customer Contact Notification.\r\n */\r\n NotificationTemplateType[NotificationTemplateType[\"CustomerContactNotification\"] = 3] = \"CustomerContactNotification\";\r\n /**\r\n * Template type for Publisher Member Notification.\r\n */\r\n NotificationTemplateType[NotificationTemplateType[\"PublisherMemberUpdateNotification\"] = 4] = \"PublisherMemberUpdateNotification\";\r\n})(NotificationTemplateType = exports.NotificationTemplateType || (exports.NotificationTemplateType = {}));\r\n/**\r\n * PagingDirection is used to define which set direction to move the returned result set based on a previous query.\r\n */\r\nvar PagingDirection;\r\n(function (PagingDirection) {\r\n /**\r\n * Backward will return results from earlier in the resultset.\r\n */\r\n PagingDirection[PagingDirection[\"Backward\"] = 1] = \"Backward\";\r\n /**\r\n * Forward will return results from later in the resultset.\r\n */\r\n PagingDirection[PagingDirection[\"Forward\"] = 2] = \"Forward\";\r\n})(PagingDirection = exports.PagingDirection || (exports.PagingDirection = {}));\r\n/**\r\n * Set of flags that can be associated with a given extension. These flags apply to all versions of the extension and not to a specific version.\r\n */\r\nvar PublishedExtensionFlags;\r\n(function (PublishedExtensionFlags) {\r\n /**\r\n * No flags exist for this extension.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * The Disabled flag for an extension means the extension can't be changed and won't be used by consumers. The disabled flag is managed by the service and can't be supplied by the Extension Developers.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Disabled\"] = 1] = \"Disabled\";\r\n /**\r\n * BuiltIn Extension are available to all Tenants. An explicit registration is not required. This attribute is reserved and can't be supplied by Extension Developers. BuiltIn extensions are by definition Public. There is no need to set the public flag for extensions marked BuiltIn.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"BuiltIn\"] = 2] = \"BuiltIn\";\r\n /**\r\n * This extension has been validated by the service. The extension meets the requirements specified. This attribute is reserved and can't be supplied by the Extension Developers. Validation is a process that ensures that all contributions are well formed. They meet the requirements defined by the contribution type they are extending. Note this attribute will be updated asynchronously as the extension is validated by the developer of the contribution type. There will be restricted access to the extension while this process is performed.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Validated\"] = 4] = \"Validated\";\r\n /**\r\n * Trusted extensions are ones that are given special capabilities. These tend to come from Microsoft and can't be published by the general public. Note: BuiltIn extensions are always trusted.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Trusted\"] = 8] = \"Trusted\";\r\n /**\r\n * The Paid flag indicates that the commerce can be enabled for this extension. Publisher needs to setup Offer/Pricing plan in Azure. If Paid flag is set and a corresponding Offer is not available, the extension will automatically be marked as Preview. If the publisher intends to make the extension Paid in the future, it is mandatory to set the Preview flag. This is currently available only for VSTS extensions only.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Paid\"] = 16] = \"Paid\";\r\n /**\r\n * This extension registration is public, making its visibility open to the public. This means all tenants have the ability to install this extension. Without this flag the extension will be private and will need to be shared with the tenants that can install it.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Public\"] = 256] = \"Public\";\r\n /**\r\n * This extension has multiple versions active at one time and version discovery should be done using the defined \"Version Discovery\" protocol to determine the version available to a specific user or tenant. @TODO: Link to Version Discovery Protocol.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"MultiVersion\"] = 512] = \"MultiVersion\";\r\n /**\r\n * The system flag is reserved, and cant be used by publishers.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"System\"] = 1024] = \"System\";\r\n /**\r\n * The Preview flag indicates that the extension is still under preview (not yet of \"release\" quality). These extensions may be decorated differently in the gallery and may have different policies applied to them.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Preview\"] = 2048] = \"Preview\";\r\n /**\r\n * The Unpublished flag indicates that the extension can't be installed/downloaded. Users who have installed such an extension can continue to use the extension.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Unpublished\"] = 4096] = \"Unpublished\";\r\n /**\r\n * The Trial flag indicates that the extension is in Trial version. The flag is right now being used only with respect to Visual Studio extensions.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Trial\"] = 8192] = \"Trial\";\r\n /**\r\n * The Locked flag indicates that extension has been locked from Marketplace. Further updates/acquisitions are not allowed on the extension until this is present. This should be used along with making the extension private/unpublished.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Locked\"] = 16384] = \"Locked\";\r\n /**\r\n * This flag is set for extensions we want to hide from Marketplace home and search pages. This will be used to override the exposure of builtIn flags.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Hidden\"] = 32768] = \"Hidden\";\r\n})(PublishedExtensionFlags = exports.PublishedExtensionFlags || (exports.PublishedExtensionFlags = {}));\r\nvar PublisherFlags;\r\n(function (PublisherFlags) {\r\n /**\r\n * This should never be returned, it is used to represent a publisher who's flags haven't changed during update calls.\r\n */\r\n PublisherFlags[PublisherFlags[\"UnChanged\"] = 1073741824] = \"UnChanged\";\r\n /**\r\n * No flags exist for this publisher.\r\n */\r\n PublisherFlags[PublisherFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * The Disabled flag for a publisher means the publisher can't be changed and won't be used by consumers, this extends to extensions owned by the publisher as well. The disabled flag is managed by the service and can't be supplied by the Extension Developers.\r\n */\r\n PublisherFlags[PublisherFlags[\"Disabled\"] = 1] = \"Disabled\";\r\n /**\r\n * A verified publisher is one that Microsoft has done some review of and ensured the publisher meets a set of requirements. The requirements to become a verified publisher are not listed here. They can be found in public documentation (TBD).\r\n */\r\n PublisherFlags[PublisherFlags[\"Verified\"] = 2] = \"Verified\";\r\n /**\r\n * A Certified publisher is one that is Microsoft verified and in addition meets a set of requirements for its published extensions. The requirements to become a certified publisher are not listed here. They can be found in public documentation (TBD).\r\n */\r\n PublisherFlags[PublisherFlags[\"Certified\"] = 4] = \"Certified\";\r\n /**\r\n * This is the set of flags that can't be supplied by the developer and is managed by the service itself.\r\n */\r\n PublisherFlags[PublisherFlags[\"ServiceFlags\"] = 7] = \"ServiceFlags\";\r\n})(PublisherFlags = exports.PublisherFlags || (exports.PublisherFlags = {}));\r\nvar PublisherPermissions;\r\n(function (PublisherPermissions) {\r\n /**\r\n * This gives the bearer the rights to read Publishers and Extensions.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"Read\"] = 1] = \"Read\";\r\n /**\r\n * This gives the bearer the rights to update, delete, and share Extensions (but not the ability to create them).\r\n */\r\n PublisherPermissions[PublisherPermissions[\"UpdateExtension\"] = 2] = \"UpdateExtension\";\r\n /**\r\n * This gives the bearer the rights to create new Publishers at the root of the namespace.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"CreatePublisher\"] = 4] = \"CreatePublisher\";\r\n /**\r\n * This gives the bearer the rights to create new Extensions within a publisher.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"PublishExtension\"] = 8] = \"PublishExtension\";\r\n /**\r\n * Admin gives the bearer the rights to manage restricted attributes of Publishers and Extensions.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"Admin\"] = 16] = \"Admin\";\r\n /**\r\n * TrustedPartner gives the bearer the rights to publish a extensions with restricted capabilities.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"TrustedPartner\"] = 32] = \"TrustedPartner\";\r\n /**\r\n * PrivateRead is another form of read designed to allow higher privilege accessors the ability to read private extensions.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"PrivateRead\"] = 64] = \"PrivateRead\";\r\n /**\r\n * This gives the bearer the rights to delete any extension.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"DeleteExtension\"] = 128] = \"DeleteExtension\";\r\n /**\r\n * This gives the bearer the rights edit the publisher settings.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"EditSettings\"] = 256] = \"EditSettings\";\r\n /**\r\n * This gives the bearer the rights to see all permissions on the publisher.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"ViewPermissions\"] = 512] = \"ViewPermissions\";\r\n /**\r\n * This gives the bearer the rights to assign permissions on the publisher.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"ManagePermissions\"] = 1024] = \"ManagePermissions\";\r\n /**\r\n * This gives the bearer the rights to delete the publisher.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"DeletePublisher\"] = 2048] = \"DeletePublisher\";\r\n})(PublisherPermissions = exports.PublisherPermissions || (exports.PublisherPermissions = {}));\r\n/**\r\n * Set of flags used to define the attributes requested when a publisher is returned. Some API's allow the caller to specify the level of detail needed.\r\n */\r\nvar PublisherQueryFlags;\r\n(function (PublisherQueryFlags) {\r\n /**\r\n * None is used to retrieve only the basic publisher details.\r\n */\r\n PublisherQueryFlags[PublisherQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Is used to include a list of basic extension details for all extensions published by the requested publisher.\r\n */\r\n PublisherQueryFlags[PublisherQueryFlags[\"IncludeExtensions\"] = 1] = \"IncludeExtensions\";\r\n /**\r\n * Is used to include email address of all the users who are marked as owners for the publisher\r\n */\r\n PublisherQueryFlags[PublisherQueryFlags[\"IncludeEmailAddress\"] = 2] = \"IncludeEmailAddress\";\r\n})(PublisherQueryFlags = exports.PublisherQueryFlags || (exports.PublisherQueryFlags = {}));\r\n/**\r\n * Access definition for a RoleAssignment.\r\n */\r\nvar PublisherRoleAccess;\r\n(function (PublisherRoleAccess) {\r\n /**\r\n * Access has been explicitly set.\r\n */\r\n PublisherRoleAccess[PublisherRoleAccess[\"Assigned\"] = 1] = \"Assigned\";\r\n /**\r\n * Access has been inherited from a higher scope.\r\n */\r\n PublisherRoleAccess[PublisherRoleAccess[\"Inherited\"] = 2] = \"Inherited\";\r\n})(PublisherRoleAccess = exports.PublisherRoleAccess || (exports.PublisherRoleAccess = {}));\r\nvar PublisherState;\r\n(function (PublisherState) {\r\n /**\r\n * No state exists for this publisher.\r\n */\r\n PublisherState[PublisherState[\"None\"] = 0] = \"None\";\r\n /**\r\n * This state indicates that publisher has applied for Marketplace verification (via UI) and still not been certified. This state would be reset once the publisher is verified.\r\n */\r\n PublisherState[PublisherState[\"VerificationPending\"] = 1] = \"VerificationPending\";\r\n /**\r\n * This state indicates that publisher has applied for Marketplace certification (via UI) and still not been certified. This state would be reset once the publisher is certified.\r\n */\r\n PublisherState[PublisherState[\"CertificationPending\"] = 2] = \"CertificationPending\";\r\n /**\r\n * This state indicates that publisher had applied for Marketplace certification (via UI) but his/her certification got rejected. This state would be reset if and when the publisher is certified.\r\n */\r\n PublisherState[PublisherState[\"CertificationRejected\"] = 4] = \"CertificationRejected\";\r\n /**\r\n * This state indicates that publisher was certified on the Marketplace, but his/her certification got revoked. This state would never be reset, even after publisher gets re-certified. It would indicate that the publisher certification was revoked at least once.\r\n */\r\n PublisherState[PublisherState[\"CertificationRevoked\"] = 8] = \"CertificationRevoked\";\r\n})(PublisherState = exports.PublisherState || (exports.PublisherState = {}));\r\n/**\r\n * Denotes the status of the QnA Item\r\n */\r\nvar QnAItemStatus;\r\n(function (QnAItemStatus) {\r\n QnAItemStatus[QnAItemStatus[\"None\"] = 0] = \"None\";\r\n /**\r\n * The UserEditable flag indicates whether the item is editable by the logged in user.\r\n */\r\n QnAItemStatus[QnAItemStatus[\"UserEditable\"] = 1] = \"UserEditable\";\r\n /**\r\n * The PublisherCreated flag indicates whether the item has been created by extension publisher.\r\n */\r\n QnAItemStatus[QnAItemStatus[\"PublisherCreated\"] = 2] = \"PublisherCreated\";\r\n})(QnAItemStatus = exports.QnAItemStatus || (exports.QnAItemStatus = {}));\r\n/**\r\n * The status of a REST Api response status.\r\n */\r\nvar RestApiResponseStatus;\r\n(function (RestApiResponseStatus) {\r\n /**\r\n * The operation is completed.\r\n */\r\n RestApiResponseStatus[RestApiResponseStatus[\"Completed\"] = 0] = \"Completed\";\r\n /**\r\n * The operation is failed.\r\n */\r\n RestApiResponseStatus[RestApiResponseStatus[\"Failed\"] = 1] = \"Failed\";\r\n /**\r\n * The operation is in progress.\r\n */\r\n RestApiResponseStatus[RestApiResponseStatus[\"Inprogress\"] = 2] = \"Inprogress\";\r\n /**\r\n * The operation is in skipped.\r\n */\r\n RestApiResponseStatus[RestApiResponseStatus[\"Skipped\"] = 3] = \"Skipped\";\r\n})(RestApiResponseStatus = exports.RestApiResponseStatus || (exports.RestApiResponseStatus = {}));\r\n/**\r\n * Type of operation\r\n */\r\nvar ReviewEventOperation;\r\n(function (ReviewEventOperation) {\r\n ReviewEventOperation[ReviewEventOperation[\"Create\"] = 1] = \"Create\";\r\n ReviewEventOperation[ReviewEventOperation[\"Update\"] = 2] = \"Update\";\r\n ReviewEventOperation[ReviewEventOperation[\"Delete\"] = 3] = \"Delete\";\r\n})(ReviewEventOperation = exports.ReviewEventOperation || (exports.ReviewEventOperation = {}));\r\n/**\r\n * Options to GetReviews query\r\n */\r\nvar ReviewFilterOptions;\r\n(function (ReviewFilterOptions) {\r\n /**\r\n * No filtering, all reviews are returned (default option)\r\n */\r\n ReviewFilterOptions[ReviewFilterOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Filter out review items with empty review text\r\n */\r\n ReviewFilterOptions[ReviewFilterOptions[\"FilterEmptyReviews\"] = 1] = \"FilterEmptyReviews\";\r\n /**\r\n * Filter out review items with empty usernames\r\n */\r\n ReviewFilterOptions[ReviewFilterOptions[\"FilterEmptyUserNames\"] = 2] = \"FilterEmptyUserNames\";\r\n})(ReviewFilterOptions = exports.ReviewFilterOptions || (exports.ReviewFilterOptions = {}));\r\n/**\r\n * Denotes the patch operation type\r\n */\r\nvar ReviewPatchOperation;\r\n(function (ReviewPatchOperation) {\r\n /**\r\n * Flag a review\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"FlagReview\"] = 1] = \"FlagReview\";\r\n /**\r\n * Update an existing review\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"UpdateReview\"] = 2] = \"UpdateReview\";\r\n /**\r\n * Submit a reply for a review\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"ReplyToReview\"] = 3] = \"ReplyToReview\";\r\n /**\r\n * Submit an admin response\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"AdminResponseForReview\"] = 4] = \"AdminResponseForReview\";\r\n /**\r\n * Delete an Admin Reply\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"DeleteAdminReply\"] = 5] = \"DeleteAdminReply\";\r\n /**\r\n * Delete Publisher Reply\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"DeletePublisherReply\"] = 6] = \"DeletePublisherReply\";\r\n})(ReviewPatchOperation = exports.ReviewPatchOperation || (exports.ReviewPatchOperation = {}));\r\n/**\r\n * Type of event\r\n */\r\nvar ReviewResourceType;\r\n(function (ReviewResourceType) {\r\n ReviewResourceType[ReviewResourceType[\"Review\"] = 1] = \"Review\";\r\n ReviewResourceType[ReviewResourceType[\"PublisherReply\"] = 2] = \"PublisherReply\";\r\n ReviewResourceType[ReviewResourceType[\"AdminReply\"] = 3] = \"AdminReply\";\r\n})(ReviewResourceType = exports.ReviewResourceType || (exports.ReviewResourceType = {}));\r\n/**\r\n * Defines the sort order that can be defined for Extensions query\r\n */\r\nvar SortByType;\r\n(function (SortByType) {\r\n /**\r\n * The results will be sorted by relevance in case search query is given, if no search query resutls will be provided as is\r\n */\r\n SortByType[SortByType[\"Relevance\"] = 0] = \"Relevance\";\r\n /**\r\n * The results will be sorted as per Last Updated date of the extensions with recently updated at the top\r\n */\r\n SortByType[SortByType[\"LastUpdatedDate\"] = 1] = \"LastUpdatedDate\";\r\n /**\r\n * Results will be sorted Alphabetically as per the title of the extension\r\n */\r\n SortByType[SortByType[\"Title\"] = 2] = \"Title\";\r\n /**\r\n * Results will be sorted Alphabetically as per Publisher title\r\n */\r\n SortByType[SortByType[\"Publisher\"] = 3] = \"Publisher\";\r\n /**\r\n * Results will be sorted by Install Count\r\n */\r\n SortByType[SortByType[\"InstallCount\"] = 4] = \"InstallCount\";\r\n /**\r\n * The results will be sorted as per Published date of the extensions\r\n */\r\n SortByType[SortByType[\"PublishedDate\"] = 5] = \"PublishedDate\";\r\n /**\r\n * The results will be sorted as per Average ratings of the extensions\r\n */\r\n SortByType[SortByType[\"AverageRating\"] = 6] = \"AverageRating\";\r\n /**\r\n * The results will be sorted as per Trending Daily Score of the extensions\r\n */\r\n SortByType[SortByType[\"TrendingDaily\"] = 7] = \"TrendingDaily\";\r\n /**\r\n * The results will be sorted as per Trending weekly Score of the extensions\r\n */\r\n SortByType[SortByType[\"TrendingWeekly\"] = 8] = \"TrendingWeekly\";\r\n /**\r\n * The results will be sorted as per Trending monthly Score of the extensions\r\n */\r\n SortByType[SortByType[\"TrendingMonthly\"] = 9] = \"TrendingMonthly\";\r\n /**\r\n * The results will be sorted as per ReleaseDate of the extensions (date on which the extension first went public)\r\n */\r\n SortByType[SortByType[\"ReleaseDate\"] = 10] = \"ReleaseDate\";\r\n /**\r\n * The results will be sorted as per Author defined in the VSix/Metadata. If not defined, publisher name is used This is specifically needed by VS IDE, other (new and old) clients are not encouraged to use this\r\n */\r\n SortByType[SortByType[\"Author\"] = 11] = \"Author\";\r\n /**\r\n * The results will be sorted as per Weighted Rating of the extension.\r\n */\r\n SortByType[SortByType[\"WeightedRating\"] = 12] = \"WeightedRating\";\r\n})(SortByType = exports.SortByType || (exports.SortByType = {}));\r\n/**\r\n * Defines the sort order that can be defined for Extensions query\r\n */\r\nvar SortOrderType;\r\n(function (SortOrderType) {\r\n /**\r\n * Results will be sorted in the default order as per the sorting type defined. The default varies for each type, e.g. for Relevance, default is Descending, for Title default is Ascending etc.\r\n */\r\n SortOrderType[SortOrderType[\"Default\"] = 0] = \"Default\";\r\n /**\r\n * The results will be sorted in Ascending order\r\n */\r\n SortOrderType[SortOrderType[\"Ascending\"] = 1] = \"Ascending\";\r\n /**\r\n * The results will be sorted in Descending order\r\n */\r\n SortOrderType[SortOrderType[\"Descending\"] = 2] = \"Descending\";\r\n})(SortOrderType = exports.SortOrderType || (exports.SortOrderType = {}));\r\nexports.TypeInfo = {\r\n AcquisitionAssignmentType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"me\": 1,\r\n \"all\": 2\r\n }\r\n },\r\n AcquisitionOperation: {},\r\n AcquisitionOperationState: {\r\n enumValues: {\r\n \"disallow\": 0,\r\n \"allow\": 1,\r\n \"completed\": 3\r\n }\r\n },\r\n AcquisitionOperationType: {\r\n enumValues: {\r\n \"get\": 0,\r\n \"install\": 1,\r\n \"buy\": 2,\r\n \"try\": 3,\r\n \"request\": 4,\r\n \"none\": 5,\r\n \"purchaseRequest\": 6\r\n }\r\n },\r\n AcquisitionOptions: {},\r\n AzureRestApiResponseModel: {},\r\n Concern: {},\r\n ConcernCategory: {\r\n enumValues: {\r\n \"general\": 1,\r\n \"abusive\": 2,\r\n \"spam\": 4\r\n }\r\n },\r\n CustomerLastContact: {},\r\n CustomerSupportRequest: {},\r\n DraftPatchOperation: {\r\n enumValues: {\r\n \"publish\": 1,\r\n \"cancel\": 2\r\n }\r\n },\r\n DraftStateType: {\r\n enumValues: {\r\n \"unpublished\": 1,\r\n \"published\": 2,\r\n \"cancelled\": 3,\r\n \"error\": 4\r\n }\r\n },\r\n ExtensionAcquisitionRequest: {},\r\n ExtensionDailyStat: {},\r\n ExtensionDailyStats: {},\r\n ExtensionDeploymentTechnology: {\r\n enumValues: {\r\n \"exe\": 1,\r\n \"msi\": 2,\r\n \"vsix\": 3,\r\n \"referralLink\": 4\r\n }\r\n },\r\n ExtensionDraft: {},\r\n ExtensionDraftPatch: {},\r\n ExtensionEvent: {},\r\n ExtensionEvents: {},\r\n ExtensionFilterResult: {},\r\n ExtensionLifecycleEventType: {\r\n enumValues: {\r\n \"uninstall\": 1,\r\n \"install\": 2,\r\n \"review\": 3,\r\n \"acquisition\": 4,\r\n \"sales\": 5,\r\n \"other\": 999\r\n }\r\n },\r\n ExtensionPayload: {},\r\n ExtensionPolicy: {},\r\n ExtensionPolicyFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"private\": 1,\r\n \"public\": 2,\r\n \"preview\": 4,\r\n \"released\": 8,\r\n \"firstParty\": 16,\r\n \"all\": 31\r\n }\r\n },\r\n ExtensionQuery: {},\r\n ExtensionQueryFilterType: {\r\n enumValues: {\r\n \"tag\": 1,\r\n \"displayName\": 2,\r\n \"private\": 3,\r\n \"id\": 4,\r\n \"category\": 5,\r\n \"contributionType\": 6,\r\n \"name\": 7,\r\n \"installationTarget\": 8,\r\n \"featured\": 9,\r\n \"searchText\": 10,\r\n \"featuredInCategory\": 11,\r\n \"excludeWithFlags\": 12,\r\n \"includeWithFlags\": 13,\r\n \"lcid\": 14,\r\n \"installationTargetVersion\": 15,\r\n \"installationTargetVersionRange\": 16,\r\n \"vsixMetadata\": 17,\r\n \"publisherName\": 18,\r\n \"publisherDisplayName\": 19,\r\n \"includeWithPublisherFlags\": 20,\r\n \"organizationSharedWith\": 21\r\n }\r\n },\r\n ExtensionQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeVersions\": 1,\r\n \"includeFiles\": 2,\r\n \"includeCategoryAndTags\": 4,\r\n \"includeSharedAccounts\": 8,\r\n \"includeVersionProperties\": 16,\r\n \"excludeNonValidated\": 32,\r\n \"includeInstallationTargets\": 64,\r\n \"includeAssetUri\": 128,\r\n \"includeStatistics\": 256,\r\n \"includeLatestVersionOnly\": 512,\r\n \"useFallbackAssetUri\": 1024,\r\n \"includeMetadata\": 2048,\r\n \"includeMinimalPayloadForVsIde\": 4096,\r\n \"includeLcids\": 8192,\r\n \"includeSharedOrganizations\": 16384,\r\n \"allAttributes\": 16863\r\n }\r\n },\r\n ExtensionQueryResult: {},\r\n ExtensionStatisticOperation: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"set\": 1,\r\n \"increment\": 2,\r\n \"decrement\": 3,\r\n \"delete\": 4\r\n }\r\n },\r\n ExtensionStatisticUpdate: {},\r\n ExtensionStatsAggregateType: {\r\n enumValues: {\r\n \"daily\": 1\r\n }\r\n },\r\n ExtensionVersion: {},\r\n ExtensionVersionFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"validated\": 1\r\n }\r\n },\r\n NotificationsData: {},\r\n NotificationTemplateType: {\r\n enumValues: {\r\n \"reviewNotification\": 1,\r\n \"qnaNotification\": 2,\r\n \"customerContactNotification\": 3,\r\n \"publisherMemberUpdateNotification\": 4\r\n }\r\n },\r\n PagingDirection: {\r\n enumValues: {\r\n \"backward\": 1,\r\n \"forward\": 2\r\n }\r\n },\r\n PublishedExtension: {},\r\n PublishedExtensionFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"disabled\": 1,\r\n \"builtIn\": 2,\r\n \"validated\": 4,\r\n \"trusted\": 8,\r\n \"paid\": 16,\r\n \"public\": 256,\r\n \"multiVersion\": 512,\r\n \"system\": 1024,\r\n \"preview\": 2048,\r\n \"unpublished\": 4096,\r\n \"trial\": 8192,\r\n \"locked\": 16384,\r\n \"hidden\": 32768\r\n }\r\n },\r\n Publisher: {},\r\n PublisherBase: {},\r\n PublisherFacts: {},\r\n PublisherFilterResult: {},\r\n PublisherFlags: {\r\n enumValues: {\r\n \"unChanged\": 1073741824,\r\n \"none\": 0,\r\n \"disabled\": 1,\r\n \"verified\": 2,\r\n \"certified\": 4,\r\n \"serviceFlags\": 7\r\n }\r\n },\r\n PublisherPermissions: {\r\n enumValues: {\r\n \"read\": 1,\r\n \"updateExtension\": 2,\r\n \"createPublisher\": 4,\r\n \"publishExtension\": 8,\r\n \"admin\": 16,\r\n \"trustedPartner\": 32,\r\n \"privateRead\": 64,\r\n \"deleteExtension\": 128,\r\n \"editSettings\": 256,\r\n \"viewPermissions\": 512,\r\n \"managePermissions\": 1024,\r\n \"deletePublisher\": 2048\r\n }\r\n },\r\n PublisherQuery: {},\r\n PublisherQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeExtensions\": 1,\r\n \"includeEmailAddress\": 2\r\n }\r\n },\r\n PublisherQueryResult: {},\r\n PublisherRoleAccess: {\r\n enumValues: {\r\n \"assigned\": 1,\r\n \"inherited\": 2\r\n }\r\n },\r\n PublisherRoleAssignment: {},\r\n PublisherState: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"verificationPending\": 1,\r\n \"certificationPending\": 2,\r\n \"certificationRejected\": 4,\r\n \"certificationRevoked\": 8\r\n }\r\n },\r\n QnAItem: {},\r\n QnAItemStatus: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"userEditable\": 1,\r\n \"publisherCreated\": 2\r\n }\r\n },\r\n QueryFilter: {},\r\n Question: {},\r\n QuestionsResult: {},\r\n Response: {},\r\n RestApiResponseStatus: {\r\n enumValues: {\r\n \"completed\": 0,\r\n \"failed\": 1,\r\n \"inprogress\": 2,\r\n \"skipped\": 3\r\n }\r\n },\r\n RestApiResponseStatusModel: {},\r\n Review: {},\r\n ReviewEventOperation: {\r\n enumValues: {\r\n \"create\": 1,\r\n \"update\": 2,\r\n \"delete\": 3\r\n }\r\n },\r\n ReviewEventProperties: {},\r\n ReviewFilterOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"filterEmptyReviews\": 1,\r\n \"filterEmptyUserNames\": 2\r\n }\r\n },\r\n ReviewPatch: {},\r\n ReviewPatchOperation: {\r\n enumValues: {\r\n \"flagReview\": 1,\r\n \"updateReview\": 2,\r\n \"replyToReview\": 3,\r\n \"adminResponseForReview\": 4,\r\n \"deleteAdminReply\": 5,\r\n \"deletePublisherReply\": 6\r\n }\r\n },\r\n ReviewReply: {},\r\n ReviewResourceType: {\r\n enumValues: {\r\n \"review\": 1,\r\n \"publisherReply\": 2,\r\n \"adminReply\": 3\r\n }\r\n },\r\n ReviewsResult: {},\r\n SortByType: {\r\n enumValues: {\r\n \"relevance\": 0,\r\n \"lastUpdatedDate\": 1,\r\n \"title\": 2,\r\n \"publisher\": 3,\r\n \"installCount\": 4,\r\n \"publishedDate\": 5,\r\n \"averageRating\": 6,\r\n \"trendingDaily\": 7,\r\n \"trendingWeekly\": 8,\r\n \"trendingMonthly\": 9,\r\n \"releaseDate\": 10,\r\n \"author\": 11,\r\n \"weightedRating\": 12\r\n }\r\n },\r\n SortOrderType: {\r\n enumValues: {\r\n \"default\": 0,\r\n \"ascending\": 1,\r\n \"descending\": 2\r\n }\r\n },\r\n UserExtensionPolicy: {},\r\n UserReportedConcern: {},\r\n};\r\nexports.TypeInfo.AcquisitionOperation.fields = {\r\n operationState: {\r\n enumType: exports.TypeInfo.AcquisitionOperationState\r\n },\r\n operationType: {\r\n enumType: exports.TypeInfo.AcquisitionOperationType\r\n }\r\n};\r\nexports.TypeInfo.AcquisitionOptions.fields = {\r\n defaultOperation: {\r\n typeInfo: exports.TypeInfo.AcquisitionOperation\r\n },\r\n operations: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.AcquisitionOperation\r\n }\r\n};\r\nexports.TypeInfo.AzureRestApiResponseModel.fields = {\r\n operationStatus: {\r\n typeInfo: exports.TypeInfo.RestApiResponseStatusModel\r\n }\r\n};\r\nexports.TypeInfo.Concern.fields = {\r\n category: {\r\n enumType: exports.TypeInfo.ConcernCategory\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.QnAItemStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CustomerLastContact.fields = {\r\n lastContactDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CustomerSupportRequest.fields = {\r\n review: {\r\n typeInfo: exports.TypeInfo.Review\r\n }\r\n};\r\nexports.TypeInfo.ExtensionAcquisitionRequest.fields = {\r\n assignmentType: {\r\n enumType: exports.TypeInfo.AcquisitionAssignmentType\r\n },\r\n operationType: {\r\n enumType: exports.TypeInfo.AcquisitionOperationType\r\n }\r\n};\r\nexports.TypeInfo.ExtensionDailyStat.fields = {\r\n statisticDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ExtensionDailyStats.fields = {\r\n dailyStats: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionDailyStat\r\n }\r\n};\r\nexports.TypeInfo.ExtensionDraft.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n draftState: {\r\n enumType: exports.TypeInfo.DraftStateType\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n payload: {\r\n typeInfo: exports.TypeInfo.ExtensionPayload\r\n }\r\n};\r\nexports.TypeInfo.ExtensionDraftPatch.fields = {\r\n operation: {\r\n enumType: exports.TypeInfo.DraftPatchOperation\r\n }\r\n};\r\nexports.TypeInfo.ExtensionEvent.fields = {\r\n statisticDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ExtensionEvents.fields = {\r\n events: {\r\n isDictionary: true,\r\n dictionaryValueFieldInfo: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionEvent\r\n }\r\n }\r\n};\r\nexports.TypeInfo.ExtensionFilterResult.fields = {\r\n extensions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PublishedExtension\r\n }\r\n};\r\nexports.TypeInfo.ExtensionPayload.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.ExtensionDeploymentTechnology\r\n }\r\n};\r\nexports.TypeInfo.ExtensionPolicy.fields = {\r\n install: {\r\n enumType: exports.TypeInfo.ExtensionPolicyFlags\r\n },\r\n request: {\r\n enumType: exports.TypeInfo.ExtensionPolicyFlags\r\n }\r\n};\r\nexports.TypeInfo.ExtensionQuery.fields = {\r\n filters: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.QueryFilter\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.ExtensionQueryFlags\r\n }\r\n};\r\nexports.TypeInfo.ExtensionQueryResult.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionFilterResult\r\n }\r\n};\r\nexports.TypeInfo.ExtensionStatisticUpdate.fields = {\r\n operation: {\r\n enumType: exports.TypeInfo.ExtensionStatisticOperation\r\n }\r\n};\r\nexports.TypeInfo.ExtensionVersion.fields = {\r\n flags: {\r\n enumType: exports.TypeInfo.ExtensionVersionFlags\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationsData.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.NotificationTemplateType\r\n }\r\n};\r\nexports.TypeInfo.PublishedExtension.fields = {\r\n deploymentType: {\r\n enumType: exports.TypeInfo.ExtensionDeploymentTechnology\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.PublishedExtensionFlags\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n publishedDate: {\r\n isDate: true,\r\n },\r\n publisher: {\r\n typeInfo: exports.TypeInfo.PublisherFacts\r\n },\r\n releaseDate: {\r\n isDate: true,\r\n },\r\n versions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionVersion\r\n }\r\n};\r\nexports.TypeInfo.Publisher.fields = {\r\n extensions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PublishedExtension\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.PublisherFlags\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.PublisherState\r\n }\r\n};\r\nexports.TypeInfo.PublisherBase.fields = {\r\n extensions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PublishedExtension\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.PublisherFlags\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.PublisherState\r\n }\r\n};\r\nexports.TypeInfo.PublisherFacts.fields = {\r\n flags: {\r\n enumType: exports.TypeInfo.PublisherFlags\r\n }\r\n};\r\nexports.TypeInfo.PublisherFilterResult.fields = {\r\n publishers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Publisher\r\n }\r\n};\r\nexports.TypeInfo.PublisherQuery.fields = {\r\n filters: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.QueryFilter\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.PublisherQueryFlags\r\n }\r\n};\r\nexports.TypeInfo.PublisherQueryResult.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PublisherFilterResult\r\n }\r\n};\r\nexports.TypeInfo.PublisherRoleAssignment.fields = {\r\n access: {\r\n enumType: exports.TypeInfo.PublisherRoleAccess\r\n }\r\n};\r\nexports.TypeInfo.QnAItem.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.QnAItemStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.QueryFilter.fields = {\r\n direction: {\r\n enumType: exports.TypeInfo.PagingDirection\r\n }\r\n};\r\nexports.TypeInfo.Question.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n responses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Response\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.QnAItemStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.QuestionsResult.fields = {\r\n questions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Question\r\n }\r\n};\r\nexports.TypeInfo.Response.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.QnAItemStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.RestApiResponseStatusModel.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.RestApiResponseStatus\r\n }\r\n};\r\nexports.TypeInfo.Review.fields = {\r\n adminReply: {\r\n typeInfo: exports.TypeInfo.ReviewReply\r\n },\r\n reply: {\r\n typeInfo: exports.TypeInfo.ReviewReply\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReviewEventProperties.fields = {\r\n eventOperation: {\r\n enumType: exports.TypeInfo.ReviewEventOperation\r\n },\r\n replyDate: {\r\n isDate: true,\r\n },\r\n resourceType: {\r\n enumType: exports.TypeInfo.ReviewResourceType\r\n },\r\n reviewDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReviewPatch.fields = {\r\n operation: {\r\n enumType: exports.TypeInfo.ReviewPatchOperation\r\n },\r\n reportedConcern: {\r\n typeInfo: exports.TypeInfo.UserReportedConcern\r\n },\r\n reviewItem: {\r\n typeInfo: exports.TypeInfo.Review\r\n }\r\n};\r\nexports.TypeInfo.ReviewReply.fields = {\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReviewsResult.fields = {\r\n reviews: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Review\r\n }\r\n};\r\nexports.TypeInfo.UserExtensionPolicy.fields = {\r\n permissions: {\r\n typeInfo: exports.TypeInfo.ExtensionPolicy\r\n }\r\n};\r\nexports.TypeInfo.UserReportedConcern.fields = {\r\n category: {\r\n enumType: exports.TypeInfo.ConcernCategory\r\n },\r\n submittedDate: {\r\n isDate: true,\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst PolicyInterfaces = require(\"../interfaces/PolicyInterfaces\");\r\nconst TfsCoreInterfaces = require(\"../interfaces/CoreInterfaces\");\r\n/**\r\n * The status of a comment thread.\r\n */\r\nvar CommentThreadStatus;\r\n(function (CommentThreadStatus) {\r\n /**\r\n * The thread status is unknown.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * The thread status is active.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"Active\"] = 1] = \"Active\";\r\n /**\r\n * The thread status is resolved as fixed.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"Fixed\"] = 2] = \"Fixed\";\r\n /**\r\n * The thread status is resolved as won't fix.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"WontFix\"] = 3] = \"WontFix\";\r\n /**\r\n * The thread status is closed.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"Closed\"] = 4] = \"Closed\";\r\n /**\r\n * The thread status is resolved as by design.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"ByDesign\"] = 5] = \"ByDesign\";\r\n /**\r\n * The thread status is pending.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"Pending\"] = 6] = \"Pending\";\r\n})(CommentThreadStatus = exports.CommentThreadStatus || (exports.CommentThreadStatus = {}));\r\n/**\r\n * The type of a comment.\r\n */\r\nvar CommentType;\r\n(function (CommentType) {\r\n /**\r\n * The comment type is not known.\r\n */\r\n CommentType[CommentType[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * This is a regular user comment.\r\n */\r\n CommentType[CommentType[\"Text\"] = 1] = \"Text\";\r\n /**\r\n * The comment comes as a result of a code change.\r\n */\r\n CommentType[CommentType[\"CodeChange\"] = 2] = \"CodeChange\";\r\n /**\r\n * The comment represents a system message.\r\n */\r\n CommentType[CommentType[\"System\"] = 3] = \"System\";\r\n})(CommentType = exports.CommentType || (exports.CommentType = {}));\r\n/**\r\n * Current status of the asynchronous operation.\r\n */\r\nvar GitAsyncOperationStatus;\r\n(function (GitAsyncOperationStatus) {\r\n /**\r\n * The operation is waiting in a queue and has not yet started.\r\n */\r\n GitAsyncOperationStatus[GitAsyncOperationStatus[\"Queued\"] = 1] = \"Queued\";\r\n /**\r\n * The operation is currently in progress.\r\n */\r\n GitAsyncOperationStatus[GitAsyncOperationStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The operation has completed.\r\n */\r\n GitAsyncOperationStatus[GitAsyncOperationStatus[\"Completed\"] = 3] = \"Completed\";\r\n /**\r\n * The operation has failed. Check for an error message.\r\n */\r\n GitAsyncOperationStatus[GitAsyncOperationStatus[\"Failed\"] = 4] = \"Failed\";\r\n /**\r\n * The operation has been abandoned.\r\n */\r\n GitAsyncOperationStatus[GitAsyncOperationStatus[\"Abandoned\"] = 5] = \"Abandoned\";\r\n})(GitAsyncOperationStatus = exports.GitAsyncOperationStatus || (exports.GitAsyncOperationStatus = {}));\r\nvar GitAsyncRefOperationFailureStatus;\r\n(function (GitAsyncRefOperationFailureStatus) {\r\n /**\r\n * No status\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"None\"] = 0] = \"None\";\r\n /**\r\n * Indicates that the ref update request could not be completed because the ref name presented in the request was not valid.\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"InvalidRefName\"] = 1] = \"InvalidRefName\";\r\n /**\r\n * The ref update could not be completed because, in case-insensitive mode, the ref name conflicts with an existing, differently-cased ref name.\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"RefNameConflict\"] = 2] = \"RefNameConflict\";\r\n /**\r\n * The ref update request could not be completed because the user lacks the permission to create a branch\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"CreateBranchPermissionRequired\"] = 3] = \"CreateBranchPermissionRequired\";\r\n /**\r\n * The ref update request could not be completed because the user lacks write permissions required to write this ref\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"WritePermissionRequired\"] = 4] = \"WritePermissionRequired\";\r\n /**\r\n * Target branch was deleted after Git async operation started\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"TargetBranchDeleted\"] = 5] = \"TargetBranchDeleted\";\r\n /**\r\n * Git object is too large to materialize into memory\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"GitObjectTooLarge\"] = 6] = \"GitObjectTooLarge\";\r\n /**\r\n * Identity who authorized the operation was not found\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"OperationIndentityNotFound\"] = 7] = \"OperationIndentityNotFound\";\r\n /**\r\n * Async operation was not found\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"AsyncOperationNotFound\"] = 8] = \"AsyncOperationNotFound\";\r\n /**\r\n * Unexpected failure\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"Other\"] = 9] = \"Other\";\r\n /**\r\n * Initiator of async operation has signature with empty name or email\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"EmptyCommitterSignature\"] = 10] = \"EmptyCommitterSignature\";\r\n})(GitAsyncRefOperationFailureStatus = exports.GitAsyncRefOperationFailureStatus || (exports.GitAsyncRefOperationFailureStatus = {}));\r\n/**\r\n * The type of a merge conflict.\r\n */\r\nvar GitConflictType;\r\n(function (GitConflictType) {\r\n /**\r\n * No conflict\r\n */\r\n GitConflictType[GitConflictType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Added on source and target; content differs\r\n */\r\n GitConflictType[GitConflictType[\"AddAdd\"] = 1] = \"AddAdd\";\r\n /**\r\n * Added on source and rename destination on target\r\n */\r\n GitConflictType[GitConflictType[\"AddRename\"] = 2] = \"AddRename\";\r\n /**\r\n * Deleted on source and edited on target\r\n */\r\n GitConflictType[GitConflictType[\"DeleteEdit\"] = 3] = \"DeleteEdit\";\r\n /**\r\n * Deleted on source and renamed on target\r\n */\r\n GitConflictType[GitConflictType[\"DeleteRename\"] = 4] = \"DeleteRename\";\r\n /**\r\n * Path is a directory on source and a file on target\r\n */\r\n GitConflictType[GitConflictType[\"DirectoryFile\"] = 5] = \"DirectoryFile\";\r\n /**\r\n * Children of directory which has DirectoryFile or FileDirectory conflict\r\n */\r\n GitConflictType[GitConflictType[\"DirectoryChild\"] = 6] = \"DirectoryChild\";\r\n /**\r\n * Edited on source and deleted on target\r\n */\r\n GitConflictType[GitConflictType[\"EditDelete\"] = 7] = \"EditDelete\";\r\n /**\r\n * Edited on source and target; content differs\r\n */\r\n GitConflictType[GitConflictType[\"EditEdit\"] = 8] = \"EditEdit\";\r\n /**\r\n * Path is a file on source and a directory on target\r\n */\r\n GitConflictType[GitConflictType[\"FileDirectory\"] = 9] = \"FileDirectory\";\r\n /**\r\n * Same file renamed on both source and target; destination paths differ\r\n */\r\n GitConflictType[GitConflictType[\"Rename1to2\"] = 10] = \"Rename1to2\";\r\n /**\r\n * Different files renamed to same destination path on both source and target\r\n */\r\n GitConflictType[GitConflictType[\"Rename2to1\"] = 11] = \"Rename2to1\";\r\n /**\r\n * Rename destination on source and new file on target\r\n */\r\n GitConflictType[GitConflictType[\"RenameAdd\"] = 12] = \"RenameAdd\";\r\n /**\r\n * Renamed on source and deleted on target\r\n */\r\n GitConflictType[GitConflictType[\"RenameDelete\"] = 13] = \"RenameDelete\";\r\n /**\r\n * Rename destination on both source and target; content differs\r\n */\r\n GitConflictType[GitConflictType[\"RenameRename\"] = 14] = \"RenameRename\";\r\n})(GitConflictType = exports.GitConflictType || (exports.GitConflictType = {}));\r\n/**\r\n * Represents the possible outcomes from a request to update a pull request conflict\r\n */\r\nvar GitConflictUpdateStatus;\r\n(function (GitConflictUpdateStatus) {\r\n /**\r\n * Indicates that pull request conflict update request was completed successfully\r\n */\r\n GitConflictUpdateStatus[GitConflictUpdateStatus[\"Succeeded\"] = 0] = \"Succeeded\";\r\n /**\r\n * Indicates that the update request did not fit the expected data contract\r\n */\r\n GitConflictUpdateStatus[GitConflictUpdateStatus[\"BadRequest\"] = 1] = \"BadRequest\";\r\n /**\r\n * Indicates that the requested resolution was not valid\r\n */\r\n GitConflictUpdateStatus[GitConflictUpdateStatus[\"InvalidResolution\"] = 2] = \"InvalidResolution\";\r\n /**\r\n * Indicates that the conflict in the update request was not a supported conflict type\r\n */\r\n GitConflictUpdateStatus[GitConflictUpdateStatus[\"UnsupportedConflictType\"] = 3] = \"UnsupportedConflictType\";\r\n /**\r\n * Indicates that the conflict could not be found\r\n */\r\n GitConflictUpdateStatus[GitConflictUpdateStatus[\"NotFound\"] = 4] = \"NotFound\";\r\n})(GitConflictUpdateStatus = exports.GitConflictUpdateStatus || (exports.GitConflictUpdateStatus = {}));\r\n/**\r\n * Accepted types of version\r\n */\r\nvar GitHistoryMode;\r\n(function (GitHistoryMode) {\r\n /**\r\n * The history mode used by `git log`. This is the default.\r\n */\r\n GitHistoryMode[GitHistoryMode[\"SimplifiedHistory\"] = 0] = \"SimplifiedHistory\";\r\n /**\r\n * The history mode used by `git log --first-parent`\r\n */\r\n GitHistoryMode[GitHistoryMode[\"FirstParent\"] = 1] = \"FirstParent\";\r\n /**\r\n * The history mode used by `git log --full-history`\r\n */\r\n GitHistoryMode[GitHistoryMode[\"FullHistory\"] = 2] = \"FullHistory\";\r\n /**\r\n * The history mode used by `git log --full-history --simplify-merges`\r\n */\r\n GitHistoryMode[GitHistoryMode[\"FullHistorySimplifyMerges\"] = 3] = \"FullHistorySimplifyMerges\";\r\n})(GitHistoryMode = exports.GitHistoryMode || (exports.GitHistoryMode = {}));\r\nvar GitObjectType;\r\n(function (GitObjectType) {\r\n GitObjectType[GitObjectType[\"Bad\"] = 0] = \"Bad\";\r\n GitObjectType[GitObjectType[\"Commit\"] = 1] = \"Commit\";\r\n GitObjectType[GitObjectType[\"Tree\"] = 2] = \"Tree\";\r\n GitObjectType[GitObjectType[\"Blob\"] = 3] = \"Blob\";\r\n GitObjectType[GitObjectType[\"Tag\"] = 4] = \"Tag\";\r\n GitObjectType[GitObjectType[\"Ext2\"] = 5] = \"Ext2\";\r\n GitObjectType[GitObjectType[\"OfsDelta\"] = 6] = \"OfsDelta\";\r\n GitObjectType[GitObjectType[\"RefDelta\"] = 7] = \"RefDelta\";\r\n})(GitObjectType = exports.GitObjectType || (exports.GitObjectType = {}));\r\nvar GitPathActions;\r\n(function (GitPathActions) {\r\n GitPathActions[GitPathActions[\"None\"] = 0] = \"None\";\r\n GitPathActions[GitPathActions[\"Edit\"] = 1] = \"Edit\";\r\n GitPathActions[GitPathActions[\"Delete\"] = 2] = \"Delete\";\r\n GitPathActions[GitPathActions[\"Add\"] = 3] = \"Add\";\r\n GitPathActions[GitPathActions[\"Rename\"] = 4] = \"Rename\";\r\n})(GitPathActions = exports.GitPathActions || (exports.GitPathActions = {}));\r\n/**\r\n * Enumeration of possible merge strategies which can be used to complete a pull request.\r\n */\r\nvar GitPullRequestMergeStrategy;\r\n(function (GitPullRequestMergeStrategy) {\r\n /**\r\n * A two-parent, no-fast-forward merge. The source branch is unchanged. This is the default behavior.\r\n */\r\n GitPullRequestMergeStrategy[GitPullRequestMergeStrategy[\"NoFastForward\"] = 1] = \"NoFastForward\";\r\n /**\r\n * Put all changes from the pull request into a single-parent commit.\r\n */\r\n GitPullRequestMergeStrategy[GitPullRequestMergeStrategy[\"Squash\"] = 2] = \"Squash\";\r\n /**\r\n * Rebase the source branch on top of the target branch HEAD commit, and fast-forward the target branch. The source branch is updated during the rebase operation.\r\n */\r\n GitPullRequestMergeStrategy[GitPullRequestMergeStrategy[\"Rebase\"] = 3] = \"Rebase\";\r\n /**\r\n * Rebase the source branch on top of the target branch HEAD commit, and create a two-parent, no-fast-forward merge. The source branch is updated during the rebase operation.\r\n */\r\n GitPullRequestMergeStrategy[GitPullRequestMergeStrategy[\"RebaseMerge\"] = 4] = \"RebaseMerge\";\r\n})(GitPullRequestMergeStrategy = exports.GitPullRequestMergeStrategy || (exports.GitPullRequestMergeStrategy = {}));\r\n/**\r\n * Accepted types of pull request queries.\r\n */\r\nvar GitPullRequestQueryType;\r\n(function (GitPullRequestQueryType) {\r\n /**\r\n * No query type set.\r\n */\r\n GitPullRequestQueryType[GitPullRequestQueryType[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * Search for pull requests that created the supplied merge commits.\r\n */\r\n GitPullRequestQueryType[GitPullRequestQueryType[\"LastMergeCommit\"] = 1] = \"LastMergeCommit\";\r\n /**\r\n * Search for pull requests that merged the supplied commits.\r\n */\r\n GitPullRequestQueryType[GitPullRequestQueryType[\"Commit\"] = 2] = \"Commit\";\r\n})(GitPullRequestQueryType = exports.GitPullRequestQueryType || (exports.GitPullRequestQueryType = {}));\r\nvar GitPullRequestReviewFileType;\r\n(function (GitPullRequestReviewFileType) {\r\n GitPullRequestReviewFileType[GitPullRequestReviewFileType[\"ChangeEntry\"] = 0] = \"ChangeEntry\";\r\n GitPullRequestReviewFileType[GitPullRequestReviewFileType[\"Attachment\"] = 1] = \"Attachment\";\r\n})(GitPullRequestReviewFileType = exports.GitPullRequestReviewFileType || (exports.GitPullRequestReviewFileType = {}));\r\n/**\r\n * Search type on ref name\r\n */\r\nvar GitRefSearchType;\r\n(function (GitRefSearchType) {\r\n GitRefSearchType[GitRefSearchType[\"Exact\"] = 0] = \"Exact\";\r\n GitRefSearchType[GitRefSearchType[\"StartsWith\"] = 1] = \"StartsWith\";\r\n GitRefSearchType[GitRefSearchType[\"Contains\"] = 2] = \"Contains\";\r\n})(GitRefSearchType = exports.GitRefSearchType || (exports.GitRefSearchType = {}));\r\n/**\r\n * Enumerates the modes under which ref updates can be written to their repositories.\r\n */\r\nvar GitRefUpdateMode;\r\n(function (GitRefUpdateMode) {\r\n /**\r\n * Indicates the Git protocol model where any refs that can be updated will be updated, but any failures will not prevent other updates from succeeding.\r\n */\r\n GitRefUpdateMode[GitRefUpdateMode[\"BestEffort\"] = 0] = \"BestEffort\";\r\n /**\r\n * Indicates that all ref updates must succeed or none will succeed. All ref updates will be atomically written. If any failure is encountered, previously successful updates will be rolled back and the entire operation will fail.\r\n */\r\n GitRefUpdateMode[GitRefUpdateMode[\"AllOrNone\"] = 1] = \"AllOrNone\";\r\n})(GitRefUpdateMode = exports.GitRefUpdateMode || (exports.GitRefUpdateMode = {}));\r\n/**\r\n * Represents the possible outcomes from a request to update a ref in a repository.\r\n */\r\nvar GitRefUpdateStatus;\r\n(function (GitRefUpdateStatus) {\r\n /**\r\n * Indicates that the ref update request was completed successfully.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"Succeeded\"] = 0] = \"Succeeded\";\r\n /**\r\n * Indicates that the ref update request could not be completed because part of the graph would be disconnected by this change, and the caller does not have ForcePush permission on the repository.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"ForcePushRequired\"] = 1] = \"ForcePushRequired\";\r\n /**\r\n * Indicates that the ref update request could not be completed because the old object ID presented in the request was not the object ID of the ref when the database attempted the update. The most likely scenario is that the caller lost a race to update the ref.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"StaleOldObjectId\"] = 2] = \"StaleOldObjectId\";\r\n /**\r\n * Indicates that the ref update request could not be completed because the ref name presented in the request was not valid.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"InvalidRefName\"] = 3] = \"InvalidRefName\";\r\n /**\r\n * The request was not processed\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"Unprocessed\"] = 4] = \"Unprocessed\";\r\n /**\r\n * The ref update request could not be completed because the new object ID for the ref could not be resolved to a commit object (potentially through any number of tags)\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"UnresolvableToCommit\"] = 5] = \"UnresolvableToCommit\";\r\n /**\r\n * The ref update request could not be completed because the user lacks write permissions required to write this ref\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"WritePermissionRequired\"] = 6] = \"WritePermissionRequired\";\r\n /**\r\n * The ref update request could not be completed because the user lacks note creation permissions required to write this note\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"ManageNotePermissionRequired\"] = 7] = \"ManageNotePermissionRequired\";\r\n /**\r\n * The ref update request could not be completed because the user lacks the permission to create a branch\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"CreateBranchPermissionRequired\"] = 8] = \"CreateBranchPermissionRequired\";\r\n /**\r\n * The ref update request could not be completed because the user lacks the permission to create a tag\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"CreateTagPermissionRequired\"] = 9] = \"CreateTagPermissionRequired\";\r\n /**\r\n * The ref update could not be completed because it was rejected by the plugin.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"RejectedByPlugin\"] = 10] = \"RejectedByPlugin\";\r\n /**\r\n * The ref update could not be completed because the ref is locked by another user.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"Locked\"] = 11] = \"Locked\";\r\n /**\r\n * The ref update could not be completed because, in case-insensitive mode, the ref name conflicts with an existing, differently-cased ref name.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"RefNameConflict\"] = 12] = \"RefNameConflict\";\r\n /**\r\n * The ref update could not be completed because it was rejected by policy.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"RejectedByPolicy\"] = 13] = \"RejectedByPolicy\";\r\n /**\r\n * Indicates that the ref update request was completed successfully, but the ref doesn't actually exist so no changes were made. This should only happen during deletes.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"SucceededNonExistentRef\"] = 14] = \"SucceededNonExistentRef\";\r\n /**\r\n * Indicates that the ref update request was completed successfully, but the passed-in ref was corrupt - as in, the old object ID was bad. This should only happen during deletes.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"SucceededCorruptRef\"] = 15] = \"SucceededCorruptRef\";\r\n})(GitRefUpdateStatus = exports.GitRefUpdateStatus || (exports.GitRefUpdateStatus = {}));\r\n/**\r\n * The type of a merge conflict.\r\n */\r\nvar GitResolutionError;\r\n(function (GitResolutionError) {\r\n /**\r\n * No error\r\n */\r\n GitResolutionError[GitResolutionError[\"None\"] = 0] = \"None\";\r\n /**\r\n * User set a blob id for resolving a content merge, but blob was not found in repo during application\r\n */\r\n GitResolutionError[GitResolutionError[\"MergeContentNotFound\"] = 1] = \"MergeContentNotFound\";\r\n /**\r\n * Attempted to resolve a conflict by moving a file to another path, but path was already in use\r\n */\r\n GitResolutionError[GitResolutionError[\"PathInUse\"] = 2] = \"PathInUse\";\r\n /**\r\n * No error\r\n */\r\n GitResolutionError[GitResolutionError[\"InvalidPath\"] = 3] = \"InvalidPath\";\r\n /**\r\n * GitResolutionAction was set to an unrecognized value\r\n */\r\n GitResolutionError[GitResolutionError[\"UnknownAction\"] = 4] = \"UnknownAction\";\r\n /**\r\n * GitResolutionMergeType was set to an unrecognized value\r\n */\r\n GitResolutionError[GitResolutionError[\"UnknownMergeType\"] = 5] = \"UnknownMergeType\";\r\n /**\r\n * Any error for which a more specific code doesn't apply\r\n */\r\n GitResolutionError[GitResolutionError[\"OtherError\"] = 255] = \"OtherError\";\r\n})(GitResolutionError = exports.GitResolutionError || (exports.GitResolutionError = {}));\r\nvar GitResolutionMergeType;\r\n(function (GitResolutionMergeType) {\r\n GitResolutionMergeType[GitResolutionMergeType[\"Undecided\"] = 0] = \"Undecided\";\r\n GitResolutionMergeType[GitResolutionMergeType[\"TakeSourceContent\"] = 1] = \"TakeSourceContent\";\r\n GitResolutionMergeType[GitResolutionMergeType[\"TakeTargetContent\"] = 2] = \"TakeTargetContent\";\r\n GitResolutionMergeType[GitResolutionMergeType[\"AutoMerged\"] = 3] = \"AutoMerged\";\r\n GitResolutionMergeType[GitResolutionMergeType[\"UserMerged\"] = 4] = \"UserMerged\";\r\n})(GitResolutionMergeType = exports.GitResolutionMergeType || (exports.GitResolutionMergeType = {}));\r\nvar GitResolutionPathConflictAction;\r\n(function (GitResolutionPathConflictAction) {\r\n GitResolutionPathConflictAction[GitResolutionPathConflictAction[\"Undecided\"] = 0] = \"Undecided\";\r\n GitResolutionPathConflictAction[GitResolutionPathConflictAction[\"KeepSourceRenameTarget\"] = 1] = \"KeepSourceRenameTarget\";\r\n GitResolutionPathConflictAction[GitResolutionPathConflictAction[\"KeepSourceDeleteTarget\"] = 2] = \"KeepSourceDeleteTarget\";\r\n GitResolutionPathConflictAction[GitResolutionPathConflictAction[\"KeepTargetRenameSource\"] = 3] = \"KeepTargetRenameSource\";\r\n GitResolutionPathConflictAction[GitResolutionPathConflictAction[\"KeepTargetDeleteSource\"] = 4] = \"KeepTargetDeleteSource\";\r\n})(GitResolutionPathConflictAction = exports.GitResolutionPathConflictAction || (exports.GitResolutionPathConflictAction = {}));\r\nvar GitResolutionRename1to2Action;\r\n(function (GitResolutionRename1to2Action) {\r\n GitResolutionRename1to2Action[GitResolutionRename1to2Action[\"Undecided\"] = 0] = \"Undecided\";\r\n GitResolutionRename1to2Action[GitResolutionRename1to2Action[\"KeepSourcePath\"] = 1] = \"KeepSourcePath\";\r\n GitResolutionRename1to2Action[GitResolutionRename1to2Action[\"KeepTargetPath\"] = 2] = \"KeepTargetPath\";\r\n GitResolutionRename1to2Action[GitResolutionRename1to2Action[\"KeepBothFiles\"] = 3] = \"KeepBothFiles\";\r\n})(GitResolutionRename1to2Action = exports.GitResolutionRename1to2Action || (exports.GitResolutionRename1to2Action = {}));\r\n/**\r\n * Resolution status of a conflict.\r\n */\r\nvar GitResolutionStatus;\r\n(function (GitResolutionStatus) {\r\n GitResolutionStatus[GitResolutionStatus[\"Unresolved\"] = 0] = \"Unresolved\";\r\n GitResolutionStatus[GitResolutionStatus[\"PartiallyResolved\"] = 1] = \"PartiallyResolved\";\r\n GitResolutionStatus[GitResolutionStatus[\"Resolved\"] = 2] = \"Resolved\";\r\n})(GitResolutionStatus = exports.GitResolutionStatus || (exports.GitResolutionStatus = {}));\r\nvar GitResolutionWhichAction;\r\n(function (GitResolutionWhichAction) {\r\n GitResolutionWhichAction[GitResolutionWhichAction[\"Undecided\"] = 0] = \"Undecided\";\r\n GitResolutionWhichAction[GitResolutionWhichAction[\"PickSourceAction\"] = 1] = \"PickSourceAction\";\r\n GitResolutionWhichAction[GitResolutionWhichAction[\"PickTargetAction\"] = 2] = \"PickTargetAction\";\r\n})(GitResolutionWhichAction = exports.GitResolutionWhichAction || (exports.GitResolutionWhichAction = {}));\r\n/**\r\n * State of the status.\r\n */\r\nvar GitStatusState;\r\n(function (GitStatusState) {\r\n /**\r\n * Status state not set. Default state.\r\n */\r\n GitStatusState[GitStatusState[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * Status pending.\r\n */\r\n GitStatusState[GitStatusState[\"Pending\"] = 1] = \"Pending\";\r\n /**\r\n * Status succeeded.\r\n */\r\n GitStatusState[GitStatusState[\"Succeeded\"] = 2] = \"Succeeded\";\r\n /**\r\n * Status failed.\r\n */\r\n GitStatusState[GitStatusState[\"Failed\"] = 3] = \"Failed\";\r\n /**\r\n * Status with an error.\r\n */\r\n GitStatusState[GitStatusState[\"Error\"] = 4] = \"Error\";\r\n /**\r\n * Status is not applicable to the target object.\r\n */\r\n GitStatusState[GitStatusState[\"NotApplicable\"] = 5] = \"NotApplicable\";\r\n})(GitStatusState = exports.GitStatusState || (exports.GitStatusState = {}));\r\n/**\r\n * Accepted types of version options\r\n */\r\nvar GitVersionOptions;\r\n(function (GitVersionOptions) {\r\n /**\r\n * Not specified\r\n */\r\n GitVersionOptions[GitVersionOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Commit that changed item prior to the current version\r\n */\r\n GitVersionOptions[GitVersionOptions[\"PreviousChange\"] = 1] = \"PreviousChange\";\r\n /**\r\n * First parent of commit (HEAD^)\r\n */\r\n GitVersionOptions[GitVersionOptions[\"FirstParent\"] = 2] = \"FirstParent\";\r\n})(GitVersionOptions = exports.GitVersionOptions || (exports.GitVersionOptions = {}));\r\n/**\r\n * Accepted types of version\r\n */\r\nvar GitVersionType;\r\n(function (GitVersionType) {\r\n /**\r\n * Interpret the version as a branch name\r\n */\r\n GitVersionType[GitVersionType[\"Branch\"] = 0] = \"Branch\";\r\n /**\r\n * Interpret the version as a tag name\r\n */\r\n GitVersionType[GitVersionType[\"Tag\"] = 1] = \"Tag\";\r\n /**\r\n * Interpret the version as a commit ID (SHA1)\r\n */\r\n GitVersionType[GitVersionType[\"Commit\"] = 2] = \"Commit\";\r\n})(GitVersionType = exports.GitVersionType || (exports.GitVersionType = {}));\r\nvar ItemContentType;\r\n(function (ItemContentType) {\r\n ItemContentType[ItemContentType[\"RawText\"] = 0] = \"RawText\";\r\n ItemContentType[ItemContentType[\"Base64Encoded\"] = 1] = \"Base64Encoded\";\r\n})(ItemContentType = exports.ItemContentType || (exports.ItemContentType = {}));\r\n/**\r\n * The reason for which the pull request iteration was created.\r\n */\r\nvar IterationReason;\r\n(function (IterationReason) {\r\n IterationReason[IterationReason[\"Push\"] = 0] = \"Push\";\r\n IterationReason[IterationReason[\"ForcePush\"] = 1] = \"ForcePush\";\r\n IterationReason[IterationReason[\"Create\"] = 2] = \"Create\";\r\n IterationReason[IterationReason[\"Rebase\"] = 4] = \"Rebase\";\r\n IterationReason[IterationReason[\"Unknown\"] = 8] = \"Unknown\";\r\n IterationReason[IterationReason[\"Retarget\"] = 16] = \"Retarget\";\r\n})(IterationReason = exports.IterationReason || (exports.IterationReason = {}));\r\n/**\r\n * Type of change for a line diff block\r\n */\r\nvar LineDiffBlockChangeType;\r\n(function (LineDiffBlockChangeType) {\r\n /**\r\n * No change - both the blocks are identical\r\n */\r\n LineDiffBlockChangeType[LineDiffBlockChangeType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Lines were added to the block in the modified file\r\n */\r\n LineDiffBlockChangeType[LineDiffBlockChangeType[\"Add\"] = 1] = \"Add\";\r\n /**\r\n * Lines were deleted from the block in the original file\r\n */\r\n LineDiffBlockChangeType[LineDiffBlockChangeType[\"Delete\"] = 2] = \"Delete\";\r\n /**\r\n * Lines were modified\r\n */\r\n LineDiffBlockChangeType[LineDiffBlockChangeType[\"Edit\"] = 3] = \"Edit\";\r\n})(LineDiffBlockChangeType = exports.LineDiffBlockChangeType || (exports.LineDiffBlockChangeType = {}));\r\n/**\r\n * The status of a pull request merge.\r\n */\r\nvar PullRequestAsyncStatus;\r\n(function (PullRequestAsyncStatus) {\r\n /**\r\n * Status is not set. Default state.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * Pull request merge is queued.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"Queued\"] = 1] = \"Queued\";\r\n /**\r\n * Pull request merge failed due to conflicts.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"Conflicts\"] = 2] = \"Conflicts\";\r\n /**\r\n * Pull request merge succeeded.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"Succeeded\"] = 3] = \"Succeeded\";\r\n /**\r\n * Pull request merge rejected by policy.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"RejectedByPolicy\"] = 4] = \"RejectedByPolicy\";\r\n /**\r\n * Pull request merge failed.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"Failure\"] = 5] = \"Failure\";\r\n})(PullRequestAsyncStatus = exports.PullRequestAsyncStatus || (exports.PullRequestAsyncStatus = {}));\r\n/**\r\n * The specific type of a pull request merge failure.\r\n */\r\nvar PullRequestMergeFailureType;\r\n(function (PullRequestMergeFailureType) {\r\n /**\r\n * Type is not set. Default type.\r\n */\r\n PullRequestMergeFailureType[PullRequestMergeFailureType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Pull request merge failure type unknown.\r\n */\r\n PullRequestMergeFailureType[PullRequestMergeFailureType[\"Unknown\"] = 1] = \"Unknown\";\r\n /**\r\n * Pull request merge failed due to case mismatch.\r\n */\r\n PullRequestMergeFailureType[PullRequestMergeFailureType[\"CaseSensitive\"] = 2] = \"CaseSensitive\";\r\n /**\r\n * Pull request merge failed due to an object being too large.\r\n */\r\n PullRequestMergeFailureType[PullRequestMergeFailureType[\"ObjectTooLarge\"] = 3] = \"ObjectTooLarge\";\r\n})(PullRequestMergeFailureType = exports.PullRequestMergeFailureType || (exports.PullRequestMergeFailureType = {}));\r\n/**\r\n * Status of a pull request.\r\n */\r\nvar PullRequestStatus;\r\n(function (PullRequestStatus) {\r\n /**\r\n * Status not set. Default state.\r\n */\r\n PullRequestStatus[PullRequestStatus[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * Pull request is active.\r\n */\r\n PullRequestStatus[PullRequestStatus[\"Active\"] = 1] = \"Active\";\r\n /**\r\n * Pull request is abandoned.\r\n */\r\n PullRequestStatus[PullRequestStatus[\"Abandoned\"] = 2] = \"Abandoned\";\r\n /**\r\n * Pull request is completed.\r\n */\r\n PullRequestStatus[PullRequestStatus[\"Completed\"] = 3] = \"Completed\";\r\n /**\r\n * Used in pull request search criteria to include all statuses.\r\n */\r\n PullRequestStatus[PullRequestStatus[\"All\"] = 4] = \"All\";\r\n})(PullRequestStatus = exports.PullRequestStatus || (exports.PullRequestStatus = {}));\r\nvar RefFavoriteType;\r\n(function (RefFavoriteType) {\r\n RefFavoriteType[RefFavoriteType[\"Invalid\"] = 0] = \"Invalid\";\r\n RefFavoriteType[RefFavoriteType[\"Folder\"] = 1] = \"Folder\";\r\n RefFavoriteType[RefFavoriteType[\"Ref\"] = 2] = \"Ref\";\r\n})(RefFavoriteType = exports.RefFavoriteType || (exports.RefFavoriteType = {}));\r\n/**\r\n * Enumeration that represents the types of IDEs supported.\r\n */\r\nvar SupportedIdeType;\r\n(function (SupportedIdeType) {\r\n SupportedIdeType[SupportedIdeType[\"Unknown\"] = 0] = \"Unknown\";\r\n SupportedIdeType[SupportedIdeType[\"AndroidStudio\"] = 1] = \"AndroidStudio\";\r\n SupportedIdeType[SupportedIdeType[\"AppCode\"] = 2] = \"AppCode\";\r\n SupportedIdeType[SupportedIdeType[\"CLion\"] = 3] = \"CLion\";\r\n SupportedIdeType[SupportedIdeType[\"DataGrip\"] = 4] = \"DataGrip\";\r\n SupportedIdeType[SupportedIdeType[\"Eclipse\"] = 13] = \"Eclipse\";\r\n SupportedIdeType[SupportedIdeType[\"IntelliJ\"] = 5] = \"IntelliJ\";\r\n SupportedIdeType[SupportedIdeType[\"MPS\"] = 6] = \"MPS\";\r\n SupportedIdeType[SupportedIdeType[\"PhpStorm\"] = 7] = \"PhpStorm\";\r\n SupportedIdeType[SupportedIdeType[\"PyCharm\"] = 8] = \"PyCharm\";\r\n SupportedIdeType[SupportedIdeType[\"RubyMine\"] = 9] = \"RubyMine\";\r\n SupportedIdeType[SupportedIdeType[\"Tower\"] = 10] = \"Tower\";\r\n SupportedIdeType[SupportedIdeType[\"VisualStudio\"] = 11] = \"VisualStudio\";\r\n SupportedIdeType[SupportedIdeType[\"VSCode\"] = 14] = \"VSCode\";\r\n SupportedIdeType[SupportedIdeType[\"WebStorm\"] = 12] = \"WebStorm\";\r\n})(SupportedIdeType = exports.SupportedIdeType || (exports.SupportedIdeType = {}));\r\n/**\r\n * Options for Version handling.\r\n */\r\nvar TfvcVersionOption;\r\n(function (TfvcVersionOption) {\r\n /**\r\n * None.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"None\"] = 0] = \"None\";\r\n /**\r\n * Return the previous version.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"Previous\"] = 1] = \"Previous\";\r\n /**\r\n * Only usuable with versiontype MergeSource and integer versions, uses RenameSource identifier instead of Merge identifier.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"UseRename\"] = 2] = \"UseRename\";\r\n})(TfvcVersionOption = exports.TfvcVersionOption || (exports.TfvcVersionOption = {}));\r\n/**\r\n * Type of Version object\r\n */\r\nvar TfvcVersionType;\r\n(function (TfvcVersionType) {\r\n /**\r\n * Version is treated as a ChangesetId.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Version is treated as a ChangesetId.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Changeset\"] = 1] = \"Changeset\";\r\n /**\r\n * Version is treated as a Shelveset name and owner.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Shelveset\"] = 2] = \"Shelveset\";\r\n /**\r\n * Version is treated as a Change.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Change\"] = 3] = \"Change\";\r\n /**\r\n * Version is treated as a Date.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Date\"] = 4] = \"Date\";\r\n /**\r\n * If Version is defined the Latest of that Version will be used, if no version is defined the latest ChangesetId will be used.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Latest\"] = 5] = \"Latest\";\r\n /**\r\n * Version will be treated as a Tip, if no version is defined latest will be used.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Tip\"] = 6] = \"Tip\";\r\n /**\r\n * Version will be treated as a MergeSource.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"MergeSource\"] = 7] = \"MergeSource\";\r\n})(TfvcVersionType = exports.TfvcVersionType || (exports.TfvcVersionType = {}));\r\nvar VersionControlChangeType;\r\n(function (VersionControlChangeType) {\r\n VersionControlChangeType[VersionControlChangeType[\"None\"] = 0] = \"None\";\r\n VersionControlChangeType[VersionControlChangeType[\"Add\"] = 1] = \"Add\";\r\n VersionControlChangeType[VersionControlChangeType[\"Edit\"] = 2] = \"Edit\";\r\n VersionControlChangeType[VersionControlChangeType[\"Encoding\"] = 4] = \"Encoding\";\r\n VersionControlChangeType[VersionControlChangeType[\"Rename\"] = 8] = \"Rename\";\r\n VersionControlChangeType[VersionControlChangeType[\"Delete\"] = 16] = \"Delete\";\r\n VersionControlChangeType[VersionControlChangeType[\"Undelete\"] = 32] = \"Undelete\";\r\n VersionControlChangeType[VersionControlChangeType[\"Branch\"] = 64] = \"Branch\";\r\n VersionControlChangeType[VersionControlChangeType[\"Merge\"] = 128] = \"Merge\";\r\n VersionControlChangeType[VersionControlChangeType[\"Lock\"] = 256] = \"Lock\";\r\n VersionControlChangeType[VersionControlChangeType[\"Rollback\"] = 512] = \"Rollback\";\r\n VersionControlChangeType[VersionControlChangeType[\"SourceRename\"] = 1024] = \"SourceRename\";\r\n VersionControlChangeType[VersionControlChangeType[\"TargetRename\"] = 2048] = \"TargetRename\";\r\n VersionControlChangeType[VersionControlChangeType[\"Property\"] = 4096] = \"Property\";\r\n VersionControlChangeType[VersionControlChangeType[\"All\"] = 8191] = \"All\";\r\n})(VersionControlChangeType = exports.VersionControlChangeType || (exports.VersionControlChangeType = {}));\r\nvar VersionControlRecursionType;\r\n(function (VersionControlRecursionType) {\r\n /**\r\n * Only return the specified item.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Return the specified item and its direct children.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"OneLevel\"] = 1] = \"OneLevel\";\r\n /**\r\n * Return the specified item and its direct children, as well as recursive chains of nested child folders that only contain a single folder.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"OneLevelPlusNestedEmptyFolders\"] = 4] = \"OneLevelPlusNestedEmptyFolders\";\r\n /**\r\n * Return specified item and all descendants\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"Full\"] = 120] = \"Full\";\r\n})(VersionControlRecursionType = exports.VersionControlRecursionType || (exports.VersionControlRecursionType = {}));\r\nexports.TypeInfo = {\r\n Attachment: {},\r\n Change: {},\r\n ChangeList: {},\r\n Comment: {},\r\n CommentThread: {},\r\n CommentThreadStatus: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"active\": 1,\r\n \"fixed\": 2,\r\n \"wontFix\": 3,\r\n \"closed\": 4,\r\n \"byDesign\": 5,\r\n \"pending\": 6\r\n }\r\n },\r\n CommentType: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"text\": 1,\r\n \"codeChange\": 2,\r\n \"system\": 3\r\n }\r\n },\r\n FileDiff: {},\r\n GitAnnotatedTag: {},\r\n GitAsyncOperationStatus: {\r\n enumValues: {\r\n \"queued\": 1,\r\n \"inProgress\": 2,\r\n \"completed\": 3,\r\n \"failed\": 4,\r\n \"abandoned\": 5\r\n }\r\n },\r\n GitAsyncRefOperation: {},\r\n GitAsyncRefOperationDetail: {},\r\n GitAsyncRefOperationFailureStatus: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"invalidRefName\": 1,\r\n \"refNameConflict\": 2,\r\n \"createBranchPermissionRequired\": 3,\r\n \"writePermissionRequired\": 4,\r\n \"targetBranchDeleted\": 5,\r\n \"gitObjectTooLarge\": 6,\r\n \"operationIndentityNotFound\": 7,\r\n \"asyncOperationNotFound\": 8,\r\n \"other\": 9,\r\n \"emptyCommitterSignature\": 10\r\n }\r\n },\r\n GitAsyncRefOperationParameters: {},\r\n GitAsyncRefOperationSource: {},\r\n GitBaseVersionDescriptor: {},\r\n GitBranchStats: {},\r\n GitChange: {},\r\n GitCherryPick: {},\r\n GitCommit: {},\r\n GitCommitChanges: {},\r\n GitCommitDiffs: {},\r\n GitCommitRef: {},\r\n GitCommitToCreate: {},\r\n GitConflict: {},\r\n GitConflictAddAdd: {},\r\n GitConflictAddRename: {},\r\n GitConflictDeleteEdit: {},\r\n GitConflictDeleteRename: {},\r\n GitConflictDirectoryFile: {},\r\n GitConflictEditDelete: {},\r\n GitConflictEditEdit: {},\r\n GitConflictFileDirectory: {},\r\n GitConflictRename1to2: {},\r\n GitConflictRename2to1: {},\r\n GitConflictRenameAdd: {},\r\n GitConflictRenameDelete: {},\r\n GitConflictRenameRename: {},\r\n GitConflictType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"addAdd\": 1,\r\n \"addRename\": 2,\r\n \"deleteEdit\": 3,\r\n \"deleteRename\": 4,\r\n \"directoryFile\": 5,\r\n \"directoryChild\": 6,\r\n \"editDelete\": 7,\r\n \"editEdit\": 8,\r\n \"fileDirectory\": 9,\r\n \"rename1to2\": 10,\r\n \"rename2to1\": 11,\r\n \"renameAdd\": 12,\r\n \"renameDelete\": 13,\r\n \"renameRename\": 14\r\n }\r\n },\r\n GitConflictUpdateResult: {},\r\n GitConflictUpdateStatus: {\r\n enumValues: {\r\n \"succeeded\": 0,\r\n \"badRequest\": 1,\r\n \"invalidResolution\": 2,\r\n \"unsupportedConflictType\": 3,\r\n \"notFound\": 4\r\n }\r\n },\r\n GitDeletedRepository: {},\r\n GitForkRef: {},\r\n GitForkSyncRequest: {},\r\n GitForkTeamProjectReference: {},\r\n GitHistoryMode: {\r\n enumValues: {\r\n \"simplifiedHistory\": 0,\r\n \"firstParent\": 1,\r\n \"fullHistory\": 2,\r\n \"fullHistorySimplifyMerges\": 3\r\n }\r\n },\r\n GitImportFailedEvent: {},\r\n GitImportRequest: {},\r\n GitImportSucceededEvent: {},\r\n GitItem: {},\r\n GitItemDescriptor: {},\r\n GitItemRequestData: {},\r\n GitLastChangeTreeItems: {},\r\n GitMerge: {},\r\n GitObject: {},\r\n GitObjectType: {\r\n enumValues: {\r\n \"bad\": 0,\r\n \"commit\": 1,\r\n \"tree\": 2,\r\n \"blob\": 3,\r\n \"tag\": 4,\r\n \"ext2\": 5,\r\n \"ofsDelta\": 6,\r\n \"refDelta\": 7\r\n }\r\n },\r\n GitPathAction: {},\r\n GitPathActions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"edit\": 1,\r\n \"delete\": 2,\r\n \"add\": 3,\r\n \"rename\": 4\r\n }\r\n },\r\n GitPathToItemsCollection: {},\r\n GitPolicyConfigurationResponse: {},\r\n GitPullRequest: {},\r\n GitPullRequestChange: {},\r\n GitPullRequestCommentThread: {},\r\n GitPullRequestCompletionOptions: {},\r\n GitPullRequestIteration: {},\r\n GitPullRequestIterationChanges: {},\r\n GitPullRequestMergeStrategy: {\r\n enumValues: {\r\n \"noFastForward\": 1,\r\n \"squash\": 2,\r\n \"rebase\": 3,\r\n \"rebaseMerge\": 4\r\n }\r\n },\r\n GitPullRequestQuery: {},\r\n GitPullRequestQueryInput: {},\r\n GitPullRequestQueryType: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"lastMergeCommit\": 1,\r\n \"commit\": 2\r\n }\r\n },\r\n GitPullRequestReviewFileType: {\r\n enumValues: {\r\n \"changeEntry\": 0,\r\n \"attachment\": 1\r\n }\r\n },\r\n GitPullRequestSearchCriteria: {},\r\n GitPullRequestStatus: {},\r\n GitPush: {},\r\n GitPushEventData: {},\r\n GitPushRef: {},\r\n GitPushSearchCriteria: {},\r\n GitQueryBranchStatsCriteria: {},\r\n GitQueryCommitsCriteria: {},\r\n GitQueryRefsCriteria: {},\r\n GitRef: {},\r\n GitRefFavorite: {},\r\n GitRefSearchType: {\r\n enumValues: {\r\n \"exact\": 0,\r\n \"startsWith\": 1,\r\n \"contains\": 2\r\n }\r\n },\r\n GitRefUpdateMode: {\r\n enumValues: {\r\n \"bestEffort\": 0,\r\n \"allOrNone\": 1\r\n }\r\n },\r\n GitRefUpdateResult: {},\r\n GitRefUpdateStatus: {\r\n enumValues: {\r\n \"succeeded\": 0,\r\n \"forcePushRequired\": 1,\r\n \"staleOldObjectId\": 2,\r\n \"invalidRefName\": 3,\r\n \"unprocessed\": 4,\r\n \"unresolvableToCommit\": 5,\r\n \"writePermissionRequired\": 6,\r\n \"manageNotePermissionRequired\": 7,\r\n \"createBranchPermissionRequired\": 8,\r\n \"createTagPermissionRequired\": 9,\r\n \"rejectedByPlugin\": 10,\r\n \"locked\": 11,\r\n \"refNameConflict\": 12,\r\n \"rejectedByPolicy\": 13,\r\n \"succeededNonExistentRef\": 14,\r\n \"succeededCorruptRef\": 15\r\n }\r\n },\r\n GitRepository: {},\r\n GitRepositoryCreateOptions: {},\r\n GitRepositoryRef: {},\r\n GitResolutionError: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"mergeContentNotFound\": 1,\r\n \"pathInUse\": 2,\r\n \"invalidPath\": 3,\r\n \"unknownAction\": 4,\r\n \"unknownMergeType\": 5,\r\n \"otherError\": 255\r\n }\r\n },\r\n GitResolutionMergeContent: {},\r\n GitResolutionMergeType: {\r\n enumValues: {\r\n \"undecided\": 0,\r\n \"takeSourceContent\": 1,\r\n \"takeTargetContent\": 2,\r\n \"autoMerged\": 3,\r\n \"userMerged\": 4\r\n }\r\n },\r\n GitResolutionPathConflict: {},\r\n GitResolutionPathConflictAction: {\r\n enumValues: {\r\n \"undecided\": 0,\r\n \"keepSourceRenameTarget\": 1,\r\n \"keepSourceDeleteTarget\": 2,\r\n \"keepTargetRenameSource\": 3,\r\n \"keepTargetDeleteSource\": 4\r\n }\r\n },\r\n GitResolutionPickOneAction: {},\r\n GitResolutionRename1to2: {},\r\n GitResolutionRename1to2Action: {\r\n enumValues: {\r\n \"undecided\": 0,\r\n \"keepSourcePath\": 1,\r\n \"keepTargetPath\": 2,\r\n \"keepBothFiles\": 3\r\n }\r\n },\r\n GitResolutionStatus: {\r\n enumValues: {\r\n \"unresolved\": 0,\r\n \"partiallyResolved\": 1,\r\n \"resolved\": 2\r\n }\r\n },\r\n GitResolutionWhichAction: {\r\n enumValues: {\r\n \"undecided\": 0,\r\n \"pickSourceAction\": 1,\r\n \"pickTargetAction\": 2\r\n }\r\n },\r\n GitRevert: {},\r\n GitStatus: {},\r\n GitStatusState: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"pending\": 1,\r\n \"succeeded\": 2,\r\n \"failed\": 3,\r\n \"error\": 4,\r\n \"notApplicable\": 5\r\n }\r\n },\r\n GitTargetVersionDescriptor: {},\r\n GitTreeDiff: {},\r\n GitTreeDiffEntry: {},\r\n GitTreeDiffResponse: {},\r\n GitTreeEntryRef: {},\r\n GitTreeRef: {},\r\n GitUserDate: {},\r\n GitVersionDescriptor: {},\r\n GitVersionOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"previousChange\": 1,\r\n \"firstParent\": 2\r\n }\r\n },\r\n GitVersionType: {\r\n enumValues: {\r\n \"branch\": 0,\r\n \"tag\": 1,\r\n \"commit\": 2\r\n }\r\n },\r\n HistoryEntry: {},\r\n IncludedGitCommit: {},\r\n ItemContent: {},\r\n ItemContentType: {\r\n enumValues: {\r\n \"rawText\": 0,\r\n \"base64Encoded\": 1\r\n }\r\n },\r\n ItemDetailsOptions: {},\r\n IterationReason: {\r\n enumValues: {\r\n \"push\": 0,\r\n \"forcePush\": 1,\r\n \"create\": 2,\r\n \"rebase\": 4,\r\n \"unknown\": 8,\r\n \"retarget\": 16\r\n }\r\n },\r\n LineDiffBlock: {},\r\n LineDiffBlockChangeType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"add\": 1,\r\n \"delete\": 2,\r\n \"edit\": 3\r\n }\r\n },\r\n PullRequestAsyncStatus: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"queued\": 1,\r\n \"conflicts\": 2,\r\n \"succeeded\": 3,\r\n \"rejectedByPolicy\": 4,\r\n \"failure\": 5\r\n }\r\n },\r\n PullRequestMergeFailureType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"unknown\": 1,\r\n \"caseSensitive\": 2,\r\n \"objectTooLarge\": 3\r\n }\r\n },\r\n PullRequestStatus: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"active\": 1,\r\n \"abandoned\": 2,\r\n \"completed\": 3,\r\n \"all\": 4\r\n }\r\n },\r\n RefFavoriteType: {\r\n enumValues: {\r\n \"invalid\": 0,\r\n \"folder\": 1,\r\n \"ref\": 2\r\n }\r\n },\r\n SupportedIde: {},\r\n SupportedIdeType: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"androidStudio\": 1,\r\n \"appCode\": 2,\r\n \"cLion\": 3,\r\n \"dataGrip\": 4,\r\n \"eclipse\": 13,\r\n \"intelliJ\": 5,\r\n \"mps\": 6,\r\n \"phpStorm\": 7,\r\n \"pyCharm\": 8,\r\n \"rubyMine\": 9,\r\n \"tower\": 10,\r\n \"visualStudio\": 11,\r\n \"vsCode\": 14,\r\n \"webStorm\": 12\r\n }\r\n },\r\n TfvcBranch: {},\r\n TfvcBranchRef: {},\r\n TfvcChange: {},\r\n TfvcChangeset: {},\r\n TfvcChangesetRef: {},\r\n TfvcCheckinEventData: {},\r\n TfvcHistoryEntry: {},\r\n TfvcItem: {},\r\n TfvcItemDescriptor: {},\r\n TfvcItemPreviousHash: {},\r\n TfvcItemRequestData: {},\r\n TfvcLabel: {},\r\n TfvcLabelRef: {},\r\n TfvcShelveset: {},\r\n TfvcShelvesetRef: {},\r\n TfvcVersionDescriptor: {},\r\n TfvcVersionOption: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"previous\": 1,\r\n \"useRename\": 2\r\n }\r\n },\r\n TfvcVersionType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"changeset\": 1,\r\n \"shelveset\": 2,\r\n \"change\": 3,\r\n \"date\": 4,\r\n \"latest\": 5,\r\n \"tip\": 6,\r\n \"mergeSource\": 7\r\n }\r\n },\r\n UpdateRefsRequest: {},\r\n VersionControlChangeType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"add\": 1,\r\n \"edit\": 2,\r\n \"encoding\": 4,\r\n \"rename\": 8,\r\n \"delete\": 16,\r\n \"undelete\": 32,\r\n \"branch\": 64,\r\n \"merge\": 128,\r\n \"lock\": 256,\r\n \"rollback\": 512,\r\n \"sourceRename\": 1024,\r\n \"targetRename\": 2048,\r\n \"property\": 4096,\r\n \"all\": 8191\r\n }\r\n },\r\n VersionControlProjectInfo: {},\r\n VersionControlRecursionType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"oneLevel\": 1,\r\n \"oneLevelPlusNestedEmptyFolders\": 4,\r\n \"full\": 120\r\n }\r\n },\r\n};\r\nexports.TypeInfo.Attachment.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Change.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.ChangeList.fields = {\r\n changeCounts: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.VersionControlChangeType,\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n sortDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Comment.fields = {\r\n commentType: {\r\n enumType: exports.TypeInfo.CommentType\r\n },\r\n lastContentUpdatedDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n publishedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CommentThread.fields = {\r\n comments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Comment\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n publishedDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.CommentThreadStatus\r\n }\r\n};\r\nexports.TypeInfo.FileDiff.fields = {\r\n lineDiffBlocks: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LineDiffBlock\r\n }\r\n};\r\nexports.TypeInfo.GitAnnotatedTag.fields = {\r\n taggedBy: {\r\n typeInfo: exports.TypeInfo.GitUserDate\r\n },\r\n taggedObject: {\r\n typeInfo: exports.TypeInfo.GitObject\r\n }\r\n};\r\nexports.TypeInfo.GitAsyncRefOperation.fields = {\r\n detailedStatus: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationDetail\r\n },\r\n parameters: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationParameters\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitAsyncRefOperationDetail.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncRefOperationFailureStatus\r\n }\r\n};\r\nexports.TypeInfo.GitAsyncRefOperationParameters.fields = {\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n },\r\n source: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationSource\r\n }\r\n};\r\nexports.TypeInfo.GitAsyncRefOperationSource.fields = {\r\n commitList: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n }\r\n};\r\nexports.TypeInfo.GitBaseVersionDescriptor.fields = {\r\n baseVersionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n baseVersionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n },\r\n versionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n }\r\n};\r\nexports.TypeInfo.GitBranchStats.fields = {\r\n commit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n }\r\n};\r\nexports.TypeInfo.GitChange.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.GitCherryPick.fields = {\r\n detailedStatus: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationDetail\r\n },\r\n parameters: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationParameters\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitCommit.fields = {\r\n author: {\r\n typeInfo: exports.TypeInfo.GitUserDate\r\n },\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitChange\r\n },\r\n committer: {\r\n typeInfo: exports.TypeInfo.GitUserDate\r\n },\r\n push: {\r\n typeInfo: exports.TypeInfo.GitPushRef\r\n },\r\n statuses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitStatus\r\n }\r\n};\r\nexports.TypeInfo.GitCommitChanges.fields = {\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitChange\r\n }\r\n};\r\nexports.TypeInfo.GitCommitDiffs.fields = {\r\n changeCounts: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.VersionControlChangeType,\r\n },\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitChange\r\n }\r\n};\r\nexports.TypeInfo.GitCommitRef.fields = {\r\n author: {\r\n typeInfo: exports.TypeInfo.GitUserDate\r\n },\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitChange\r\n },\r\n committer: {\r\n typeInfo: exports.TypeInfo.GitUserDate\r\n },\r\n push: {\r\n typeInfo: exports.TypeInfo.GitPushRef\r\n },\r\n statuses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitStatus\r\n }\r\n};\r\nexports.TypeInfo.GitCommitToCreate.fields = {\r\n baseRef: {\r\n typeInfo: exports.TypeInfo.GitRef\r\n },\r\n pathActions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitPathAction\r\n }\r\n};\r\nexports.TypeInfo.GitConflict.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictAddAdd.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionMergeContent\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictAddRename.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPathConflict\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictDeleteEdit.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPickOneAction\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictDeleteRename.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPickOneAction\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictDirectoryFile.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPathConflict\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n },\r\n sourceTree: {\r\n typeInfo: exports.TypeInfo.GitTreeRef\r\n }\r\n};\r\nexports.TypeInfo.GitConflictEditDelete.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPickOneAction\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictEditEdit.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionMergeContent\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictFileDirectory.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPathConflict\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n },\r\n targetTree: {\r\n typeInfo: exports.TypeInfo.GitTreeRef\r\n }\r\n};\r\nexports.TypeInfo.GitConflictRename1to2.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionRename1to2\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictRename2to1.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPathConflict\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictRenameAdd.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPathConflict\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictRenameDelete.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPickOneAction\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictRenameRename.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionMergeContent\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictUpdateResult.fields = {\r\n updatedConflict: {\r\n typeInfo: exports.TypeInfo.GitConflict\r\n },\r\n updateStatus: {\r\n enumType: exports.TypeInfo.GitConflictUpdateStatus\r\n }\r\n};\r\nexports.TypeInfo.GitDeletedRepository.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n deletedDate: {\r\n isDate: true,\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GitForkRef.fields = {\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n },\r\n statuses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitStatus\r\n }\r\n};\r\nexports.TypeInfo.GitForkSyncRequest.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitForkTeamProjectReference.fields = {\r\n lastUpdateTime: {\r\n isDate: true,\r\n },\r\n visibility: {\r\n enumType: TfsCoreInterfaces.TypeInfo.ProjectVisibility\r\n }\r\n};\r\nexports.TypeInfo.GitImportFailedEvent.fields = {\r\n targetRepository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n }\r\n};\r\nexports.TypeInfo.GitImportRequest.fields = {\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitImportSucceededEvent.fields = {\r\n targetRepository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n }\r\n};\r\nexports.TypeInfo.GitItem.fields = {\r\n gitObjectType: {\r\n enumType: exports.TypeInfo.GitObjectType\r\n },\r\n latestProcessedChange: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n }\r\n};\r\nexports.TypeInfo.GitItemDescriptor.fields = {\r\n recursionLevel: {\r\n enumType: exports.TypeInfo.VersionControlRecursionType\r\n },\r\n versionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n }\r\n};\r\nexports.TypeInfo.GitItemRequestData.fields = {\r\n itemDescriptors: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitItemDescriptor\r\n }\r\n};\r\nexports.TypeInfo.GitLastChangeTreeItems.fields = {\r\n commits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n lastExploredTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitMerge.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitObject.fields = {\r\n objectType: {\r\n enumType: exports.TypeInfo.GitObjectType\r\n }\r\n};\r\nexports.TypeInfo.GitPathAction.fields = {\r\n action: {\r\n enumType: exports.TypeInfo.GitPathActions\r\n }\r\n};\r\nexports.TypeInfo.GitPathToItemsCollection.fields = {\r\n items: {\r\n isDictionary: true,\r\n dictionaryValueFieldInfo: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitItem\r\n }\r\n }\r\n};\r\nexports.TypeInfo.GitPolicyConfigurationResponse.fields = {\r\n policyConfigurations: {\r\n isArray: true,\r\n typeInfo: PolicyInterfaces.TypeInfo.PolicyConfiguration\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequest.fields = {\r\n closedDate: {\r\n isDate: true,\r\n },\r\n commits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n completionOptions: {\r\n typeInfo: exports.TypeInfo.GitPullRequestCompletionOptions\r\n },\r\n completionQueueTime: {\r\n isDate: true,\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n forkSource: {\r\n typeInfo: exports.TypeInfo.GitForkRef\r\n },\r\n lastMergeCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n lastMergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n lastMergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeFailureType: {\r\n enumType: exports.TypeInfo.PullRequestMergeFailureType\r\n },\r\n mergeStatus: {\r\n enumType: exports.TypeInfo.PullRequestAsyncStatus\r\n },\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.PullRequestStatus\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestChange.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestCommentThread.fields = {\r\n comments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Comment\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n publishedDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.CommentThreadStatus\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestCompletionOptions.fields = {\r\n mergeStrategy: {\r\n enumType: exports.TypeInfo.GitPullRequestMergeStrategy\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestIteration.fields = {\r\n changeList: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitPullRequestChange\r\n },\r\n commits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n commonRefCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n push: {\r\n typeInfo: exports.TypeInfo.GitPushRef\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.IterationReason\r\n },\r\n sourceRefCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n targetRefCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestIterationChanges.fields = {\r\n changeEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitPullRequestChange\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestQuery.fields = {\r\n queries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitPullRequestQueryInput\r\n },\r\n};\r\nexports.TypeInfo.GitPullRequestQueryInput.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.GitPullRequestQueryType\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestSearchCriteria.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.PullRequestStatus\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestStatus.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.GitStatusState\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitPush.fields = {\r\n commits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n date: {\r\n isDate: true,\r\n },\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n }\r\n};\r\nexports.TypeInfo.GitPushEventData.fields = {\r\n commits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommit\r\n },\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n }\r\n};\r\nexports.TypeInfo.GitPushRef.fields = {\r\n date: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitPushSearchCriteria.fields = {\r\n fromDate: {\r\n isDate: true,\r\n },\r\n toDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitQueryBranchStatsCriteria.fields = {\r\n baseCommit: {\r\n typeInfo: exports.TypeInfo.GitVersionDescriptor\r\n },\r\n targetCommits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitVersionDescriptor\r\n }\r\n};\r\nexports.TypeInfo.GitQueryCommitsCriteria.fields = {\r\n compareVersion: {\r\n typeInfo: exports.TypeInfo.GitVersionDescriptor\r\n },\r\n historyMode: {\r\n enumType: exports.TypeInfo.GitHistoryMode\r\n },\r\n itemVersion: {\r\n typeInfo: exports.TypeInfo.GitVersionDescriptor\r\n }\r\n};\r\nexports.TypeInfo.GitQueryRefsCriteria.fields = {\r\n searchType: {\r\n enumType: exports.TypeInfo.GitRefSearchType\r\n }\r\n};\r\nexports.TypeInfo.GitRef.fields = {\r\n statuses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitStatus\r\n }\r\n};\r\nexports.TypeInfo.GitRefFavorite.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.RefFavoriteType\r\n }\r\n};\r\nexports.TypeInfo.GitRefUpdateResult.fields = {\r\n updateStatus: {\r\n enumType: exports.TypeInfo.GitRefUpdateStatus\r\n }\r\n};\r\nexports.TypeInfo.GitRepository.fields = {\r\n parentRepository: {\r\n typeInfo: exports.TypeInfo.GitRepositoryRef\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GitRepositoryCreateOptions.fields = {\r\n parentRepository: {\r\n typeInfo: exports.TypeInfo.GitRepositoryRef\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GitRepositoryRef.fields = {\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GitResolutionMergeContent.fields = {\r\n mergeType: {\r\n enumType: exports.TypeInfo.GitResolutionMergeType\r\n }\r\n};\r\nexports.TypeInfo.GitResolutionPathConflict.fields = {\r\n action: {\r\n enumType: exports.TypeInfo.GitResolutionPathConflictAction\r\n }\r\n};\r\nexports.TypeInfo.GitResolutionPickOneAction.fields = {\r\n action: {\r\n enumType: exports.TypeInfo.GitResolutionWhichAction\r\n }\r\n};\r\nexports.TypeInfo.GitResolutionRename1to2.fields = {\r\n action: {\r\n enumType: exports.TypeInfo.GitResolutionRename1to2Action\r\n },\r\n mergeType: {\r\n enumType: exports.TypeInfo.GitResolutionMergeType\r\n }\r\n};\r\nexports.TypeInfo.GitRevert.fields = {\r\n detailedStatus: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationDetail\r\n },\r\n parameters: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationParameters\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitStatus.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.GitStatusState\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitTargetVersionDescriptor.fields = {\r\n targetVersionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n targetVersionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n },\r\n versionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n }\r\n};\r\nexports.TypeInfo.GitTreeDiff.fields = {\r\n diffEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitTreeDiffEntry\r\n }\r\n};\r\nexports.TypeInfo.GitTreeDiffEntry.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n objectType: {\r\n enumType: exports.TypeInfo.GitObjectType\r\n }\r\n};\r\nexports.TypeInfo.GitTreeDiffResponse.fields = {\r\n treeDiff: {\r\n typeInfo: exports.TypeInfo.GitTreeDiff\r\n }\r\n};\r\nexports.TypeInfo.GitTreeEntryRef.fields = {\r\n gitObjectType: {\r\n enumType: exports.TypeInfo.GitObjectType\r\n }\r\n};\r\nexports.TypeInfo.GitTreeRef.fields = {\r\n treeEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitTreeEntryRef\r\n }\r\n};\r\nexports.TypeInfo.GitUserDate.fields = {\r\n date: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitVersionDescriptor.fields = {\r\n versionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n }\r\n};\r\nexports.TypeInfo.HistoryEntry.fields = {\r\n itemChangeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n }\r\n};\r\nexports.TypeInfo.IncludedGitCommit.fields = {\r\n commitTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ItemContent.fields = {\r\n contentType: {\r\n enumType: exports.TypeInfo.ItemContentType\r\n }\r\n};\r\nexports.TypeInfo.ItemDetailsOptions.fields = {\r\n recursionLevel: {\r\n enumType: exports.TypeInfo.VersionControlRecursionType\r\n }\r\n};\r\nexports.TypeInfo.LineDiffBlock.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.LineDiffBlockChangeType\r\n }\r\n};\r\nexports.TypeInfo.SupportedIde.fields = {\r\n ideType: {\r\n enumType: exports.TypeInfo.SupportedIdeType\r\n }\r\n};\r\nexports.TypeInfo.TfvcBranch.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcBranch\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcBranchRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcChange.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.TfvcChangeset.fields = {\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcChange\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcChangesetRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcCheckinEventData.fields = {\r\n changeset: {\r\n typeInfo: exports.TypeInfo.TfvcChangeset\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.TfvcHistoryEntry.fields = {\r\n itemChangeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n }\r\n};\r\nexports.TypeInfo.TfvcItem.fields = {\r\n changeDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcItemDescriptor.fields = {\r\n recursionLevel: {\r\n enumType: exports.TypeInfo.VersionControlRecursionType\r\n },\r\n versionOption: {\r\n enumType: exports.TypeInfo.TfvcVersionOption\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.TfvcVersionType\r\n }\r\n};\r\nexports.TypeInfo.TfvcItemPreviousHash.fields = {\r\n changeDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcItemRequestData.fields = {\r\n itemDescriptors: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcItemDescriptor\r\n }\r\n};\r\nexports.TypeInfo.TfvcLabel.fields = {\r\n items: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcItem\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcLabelRef.fields = {\r\n modifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcShelveset.fields = {\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcChange\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcShelvesetRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcVersionDescriptor.fields = {\r\n versionOption: {\r\n enumType: exports.TypeInfo.TfvcVersionOption\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.TfvcVersionType\r\n }\r\n};\r\nexports.TypeInfo.UpdateRefsRequest.fields = {\r\n updateMode: {\r\n enumType: exports.TypeInfo.GitRefUpdateMode\r\n }\r\n};\r\nexports.TypeInfo.VersionControlProjectInfo.fields = {\r\n defaultSourceControlType: {\r\n enumType: TfsCoreInterfaces.TypeInfo.SourceControlTypes\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst VSSInterfaces = require(\"../interfaces/common/VSSInterfaces\");\r\nvar InheritLevel;\r\n(function (InheritLevel) {\r\n InheritLevel[InheritLevel[\"None\"] = 0] = \"None\";\r\n InheritLevel[InheritLevel[\"Deployment\"] = 1] = \"Deployment\";\r\n InheritLevel[InheritLevel[\"Account\"] = 2] = \"Account\";\r\n InheritLevel[InheritLevel[\"Collection\"] = 4] = \"Collection\";\r\n InheritLevel[InheritLevel[\"All\"] = 7] = \"All\";\r\n})(InheritLevel = exports.InheritLevel || (exports.InheritLevel = {}));\r\nvar RelativeToSetting;\r\n(function (RelativeToSetting) {\r\n RelativeToSetting[RelativeToSetting[\"Context\"] = 0] = \"Context\";\r\n RelativeToSetting[RelativeToSetting[\"WebApplication\"] = 2] = \"WebApplication\";\r\n RelativeToSetting[RelativeToSetting[\"FullyQualified\"] = 3] = \"FullyQualified\";\r\n})(RelativeToSetting = exports.RelativeToSetting || (exports.RelativeToSetting = {}));\r\nvar ServiceStatus;\r\n(function (ServiceStatus) {\r\n ServiceStatus[ServiceStatus[\"Assigned\"] = 0] = \"Assigned\";\r\n ServiceStatus[ServiceStatus[\"Active\"] = 1] = \"Active\";\r\n ServiceStatus[ServiceStatus[\"Moving\"] = 2] = \"Moving\";\r\n})(ServiceStatus = exports.ServiceStatus || (exports.ServiceStatus = {}));\r\nexports.TypeInfo = {\r\n ConnectionData: {},\r\n InheritLevel: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"deployment\": 1,\r\n \"account\": 2,\r\n \"collection\": 4,\r\n \"all\": 7\r\n }\r\n },\r\n LocationServiceData: {},\r\n RelativeToSetting: {\r\n enumValues: {\r\n \"context\": 0,\r\n \"webApplication\": 2,\r\n \"fullyQualified\": 3\r\n }\r\n },\r\n ServiceDefinition: {},\r\n ServiceStatus: {\r\n enumValues: {\r\n \"assigned\": 0,\r\n \"active\": 1,\r\n \"moving\": 2\r\n }\r\n },\r\n};\r\nexports.TypeInfo.ConnectionData.fields = {\r\n deploymentType: {\r\n enumType: VSSInterfaces.TypeInfo.DeploymentFlags\r\n },\r\n lastUserAccess: {\r\n isDate: true,\r\n },\r\n locationServiceData: {\r\n typeInfo: exports.TypeInfo.LocationServiceData\r\n }\r\n};\r\nexports.TypeInfo.LocationServiceData.fields = {\r\n serviceDefinitions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ServiceDefinition\r\n }\r\n};\r\nexports.TypeInfo.ServiceDefinition.fields = {\r\n inheritLevel: {\r\n enumType: exports.TypeInfo.InheritLevel\r\n },\r\n relativeToSetting: {\r\n enumType: exports.TypeInfo.RelativeToSetting\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ServiceStatus\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Default delivery preference for group subscribers. Indicates how the subscriber should be notified.\r\n */\r\nvar DefaultGroupDeliveryPreference;\r\n(function (DefaultGroupDeliveryPreference) {\r\n DefaultGroupDeliveryPreference[DefaultGroupDeliveryPreference[\"NoDelivery\"] = -1] = \"NoDelivery\";\r\n DefaultGroupDeliveryPreference[DefaultGroupDeliveryPreference[\"EachMember\"] = 2] = \"EachMember\";\r\n})(DefaultGroupDeliveryPreference = exports.DefaultGroupDeliveryPreference || (exports.DefaultGroupDeliveryPreference = {}));\r\n/**\r\n * Describes the subscription evaluation operation status.\r\n */\r\nvar EvaluationOperationStatus;\r\n(function (EvaluationOperationStatus) {\r\n /**\r\n * The operation object does not have the status set.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * The operation has been queued.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"Queued\"] = 1] = \"Queued\";\r\n /**\r\n * The operation is in progress.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The operation was cancelled by the user.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"Cancelled\"] = 3] = \"Cancelled\";\r\n /**\r\n * The operation completed successfully.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"Succeeded\"] = 4] = \"Succeeded\";\r\n /**\r\n * The operation completed with a failure.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"Failed\"] = 5] = \"Failed\";\r\n /**\r\n * The operation timed out.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"TimedOut\"] = 6] = \"TimedOut\";\r\n /**\r\n * The operation could not be found.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"NotFound\"] = 7] = \"NotFound\";\r\n})(EvaluationOperationStatus = exports.EvaluationOperationStatus || (exports.EvaluationOperationStatus = {}));\r\n/**\r\n * Set of flags used to determine which set of information is retrieved when querying for event publishers\r\n */\r\nvar EventPublisherQueryFlags;\r\n(function (EventPublisherQueryFlags) {\r\n EventPublisherQueryFlags[EventPublisherQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include event types from the remote services too\r\n */\r\n EventPublisherQueryFlags[EventPublisherQueryFlags[\"IncludeRemoteServices\"] = 2] = \"IncludeRemoteServices\";\r\n})(EventPublisherQueryFlags = exports.EventPublisherQueryFlags || (exports.EventPublisherQueryFlags = {}));\r\n/**\r\n * Set of flags used to determine which set of information is retrieved when querying for eventtypes\r\n */\r\nvar EventTypeQueryFlags;\r\n(function (EventTypeQueryFlags) {\r\n EventTypeQueryFlags[EventTypeQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * IncludeFields will include all fields and their types\r\n */\r\n EventTypeQueryFlags[EventTypeQueryFlags[\"IncludeFields\"] = 1] = \"IncludeFields\";\r\n})(EventTypeQueryFlags = exports.EventTypeQueryFlags || (exports.EventTypeQueryFlags = {}));\r\nvar NotificationOperation;\r\n(function (NotificationOperation) {\r\n NotificationOperation[NotificationOperation[\"None\"] = 0] = \"None\";\r\n NotificationOperation[NotificationOperation[\"SuspendUnprocessed\"] = 1] = \"SuspendUnprocessed\";\r\n})(NotificationOperation = exports.NotificationOperation || (exports.NotificationOperation = {}));\r\nvar NotificationReasonType;\r\n(function (NotificationReasonType) {\r\n NotificationReasonType[NotificationReasonType[\"Unknown\"] = 0] = \"Unknown\";\r\n NotificationReasonType[NotificationReasonType[\"Follows\"] = 1] = \"Follows\";\r\n NotificationReasonType[NotificationReasonType[\"Personal\"] = 2] = \"Personal\";\r\n NotificationReasonType[NotificationReasonType[\"PersonalAlias\"] = 3] = \"PersonalAlias\";\r\n NotificationReasonType[NotificationReasonType[\"DirectMember\"] = 4] = \"DirectMember\";\r\n NotificationReasonType[NotificationReasonType[\"IndirectMember\"] = 5] = \"IndirectMember\";\r\n NotificationReasonType[NotificationReasonType[\"GroupAlias\"] = 6] = \"GroupAlias\";\r\n NotificationReasonType[NotificationReasonType[\"SubscriptionAlias\"] = 7] = \"SubscriptionAlias\";\r\n NotificationReasonType[NotificationReasonType[\"SingleRole\"] = 8] = \"SingleRole\";\r\n NotificationReasonType[NotificationReasonType[\"DirectMemberGroupRole\"] = 9] = \"DirectMemberGroupRole\";\r\n NotificationReasonType[NotificationReasonType[\"InDirectMemberGroupRole\"] = 10] = \"InDirectMemberGroupRole\";\r\n NotificationReasonType[NotificationReasonType[\"AliasMemberGroupRole\"] = 11] = \"AliasMemberGroupRole\";\r\n})(NotificationReasonType = exports.NotificationReasonType || (exports.NotificationReasonType = {}));\r\nvar NotificationStatisticType;\r\n(function (NotificationStatisticType) {\r\n NotificationStatisticType[NotificationStatisticType[\"NotificationBySubscription\"] = 0] = \"NotificationBySubscription\";\r\n NotificationStatisticType[NotificationStatisticType[\"EventsByEventType\"] = 1] = \"EventsByEventType\";\r\n NotificationStatisticType[NotificationStatisticType[\"NotificationByEventType\"] = 2] = \"NotificationByEventType\";\r\n NotificationStatisticType[NotificationStatisticType[\"EventsByEventTypePerUser\"] = 3] = \"EventsByEventTypePerUser\";\r\n NotificationStatisticType[NotificationStatisticType[\"NotificationByEventTypePerUser\"] = 4] = \"NotificationByEventTypePerUser\";\r\n NotificationStatisticType[NotificationStatisticType[\"Events\"] = 5] = \"Events\";\r\n NotificationStatisticType[NotificationStatisticType[\"Notifications\"] = 6] = \"Notifications\";\r\n NotificationStatisticType[NotificationStatisticType[\"NotificationFailureBySubscription\"] = 7] = \"NotificationFailureBySubscription\";\r\n NotificationStatisticType[NotificationStatisticType[\"UnprocessedRangeStart\"] = 100] = \"UnprocessedRangeStart\";\r\n NotificationStatisticType[NotificationStatisticType[\"UnprocessedEventsByPublisher\"] = 101] = \"UnprocessedEventsByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"UnprocessedEventDelayByPublisher\"] = 102] = \"UnprocessedEventDelayByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"UnprocessedNotificationsByChannelByPublisher\"] = 103] = \"UnprocessedNotificationsByChannelByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"UnprocessedNotificationDelayByChannelByPublisher\"] = 104] = \"UnprocessedNotificationDelayByChannelByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"DelayRangeStart\"] = 200] = \"DelayRangeStart\";\r\n NotificationStatisticType[NotificationStatisticType[\"TotalPipelineTime\"] = 201] = \"TotalPipelineTime\";\r\n NotificationStatisticType[NotificationStatisticType[\"NotificationPipelineTime\"] = 202] = \"NotificationPipelineTime\";\r\n NotificationStatisticType[NotificationStatisticType[\"EventPipelineTime\"] = 203] = \"EventPipelineTime\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyRangeStart\"] = 1000] = \"HourlyRangeStart\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyNotificationBySubscription\"] = 1001] = \"HourlyNotificationBySubscription\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyEventsByEventTypePerUser\"] = 1002] = \"HourlyEventsByEventTypePerUser\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyEvents\"] = 1003] = \"HourlyEvents\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyNotifications\"] = 1004] = \"HourlyNotifications\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyUnprocessedEventsByPublisher\"] = 1101] = \"HourlyUnprocessedEventsByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyUnprocessedEventDelayByPublisher\"] = 1102] = \"HourlyUnprocessedEventDelayByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyUnprocessedNotificationsByChannelByPublisher\"] = 1103] = \"HourlyUnprocessedNotificationsByChannelByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyUnprocessedNotificationDelayByChannelByPublisher\"] = 1104] = \"HourlyUnprocessedNotificationDelayByChannelByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyTotalPipelineTime\"] = 1201] = \"HourlyTotalPipelineTime\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyNotificationPipelineTime\"] = 1202] = \"HourlyNotificationPipelineTime\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyEventPipelineTime\"] = 1203] = \"HourlyEventPipelineTime\";\r\n})(NotificationStatisticType = exports.NotificationStatisticType || (exports.NotificationStatisticType = {}));\r\n/**\r\n * Delivery preference for a subscriber. Indicates how the subscriber should be notified.\r\n */\r\nvar NotificationSubscriberDeliveryPreference;\r\n(function (NotificationSubscriberDeliveryPreference) {\r\n /**\r\n * Do not send notifications by default. Note: notifications can still be delivered to this subscriber, for example via a custom subscription.\r\n */\r\n NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference[\"NoDelivery\"] = -1] = \"NoDelivery\";\r\n /**\r\n * Deliver notifications to the subscriber's preferred email address.\r\n */\r\n NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference[\"PreferredEmailAddress\"] = 1] = \"PreferredEmailAddress\";\r\n /**\r\n * Deliver notifications to each member of the group representing the subscriber. Only applicable when the subscriber is a group.\r\n */\r\n NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference[\"EachMember\"] = 2] = \"EachMember\";\r\n /**\r\n * Use default\r\n */\r\n NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference[\"UseDefault\"] = 3] = \"UseDefault\";\r\n})(NotificationSubscriberDeliveryPreference = exports.NotificationSubscriberDeliveryPreference || (exports.NotificationSubscriberDeliveryPreference = {}));\r\nvar SubscriberFlags;\r\n(function (SubscriberFlags) {\r\n SubscriberFlags[SubscriberFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Subscriber's delivery preferences could be updated\r\n */\r\n SubscriberFlags[SubscriberFlags[\"DeliveryPreferencesEditable\"] = 2] = \"DeliveryPreferencesEditable\";\r\n /**\r\n * Subscriber's delivery preferences supports email delivery\r\n */\r\n SubscriberFlags[SubscriberFlags[\"SupportsPreferredEmailAddressDelivery\"] = 4] = \"SupportsPreferredEmailAddressDelivery\";\r\n /**\r\n * Subscriber's delivery preferences supports individual members delivery(group expansion)\r\n */\r\n SubscriberFlags[SubscriberFlags[\"SupportsEachMemberDelivery\"] = 8] = \"SupportsEachMemberDelivery\";\r\n /**\r\n * Subscriber's delivery preferences supports no delivery\r\n */\r\n SubscriberFlags[SubscriberFlags[\"SupportsNoDelivery\"] = 16] = \"SupportsNoDelivery\";\r\n /**\r\n * Subscriber is a user\r\n */\r\n SubscriberFlags[SubscriberFlags[\"IsUser\"] = 32] = \"IsUser\";\r\n /**\r\n * Subscriber is a group\r\n */\r\n SubscriberFlags[SubscriberFlags[\"IsGroup\"] = 64] = \"IsGroup\";\r\n /**\r\n * Subscriber is a team\r\n */\r\n SubscriberFlags[SubscriberFlags[\"IsTeam\"] = 128] = \"IsTeam\";\r\n})(SubscriberFlags = exports.SubscriberFlags || (exports.SubscriberFlags = {}));\r\nvar SubscriptionFieldType;\r\n(function (SubscriptionFieldType) {\r\n SubscriptionFieldType[SubscriptionFieldType[\"String\"] = 1] = \"String\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Integer\"] = 2] = \"Integer\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"DateTime\"] = 3] = \"DateTime\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"PlainText\"] = 5] = \"PlainText\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Html\"] = 7] = \"Html\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"TreePath\"] = 8] = \"TreePath\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"History\"] = 9] = \"History\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Double\"] = 10] = \"Double\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Guid\"] = 11] = \"Guid\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Boolean\"] = 12] = \"Boolean\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Identity\"] = 13] = \"Identity\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"PicklistInteger\"] = 14] = \"PicklistInteger\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"PicklistString\"] = 15] = \"PicklistString\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"PicklistDouble\"] = 16] = \"PicklistDouble\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"TeamProject\"] = 17] = \"TeamProject\";\r\n})(SubscriptionFieldType = exports.SubscriptionFieldType || (exports.SubscriptionFieldType = {}));\r\n/**\r\n * Read-only indicators that further describe the subscription.\r\n */\r\nvar SubscriptionFlags;\r\n(function (SubscriptionFlags) {\r\n /**\r\n * None\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Subscription's subscriber is a group, not a user\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"GroupSubscription\"] = 1] = \"GroupSubscription\";\r\n /**\r\n * Subscription is contributed and not persisted. This means certain fields of the subscription, like Filter, are read-only.\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"ContributedSubscription\"] = 2] = \"ContributedSubscription\";\r\n /**\r\n * A user that is member of the subscription's subscriber group can opt in/out of the subscription.\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"CanOptOut\"] = 4] = \"CanOptOut\";\r\n /**\r\n * If the subscriber is a group, is it a team.\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"TeamSubscription\"] = 8] = \"TeamSubscription\";\r\n /**\r\n * For role based subscriptions, there is an expectation that there will always be at least one actor that matches\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"OneActorMatches\"] = 16] = \"OneActorMatches\";\r\n})(SubscriptionFlags = exports.SubscriptionFlags || (exports.SubscriptionFlags = {}));\r\n/**\r\n * The permissions that a user has to a certain subscription\r\n */\r\nvar SubscriptionPermissions;\r\n(function (SubscriptionPermissions) {\r\n /**\r\n * None\r\n */\r\n SubscriptionPermissions[SubscriptionPermissions[\"None\"] = 0] = \"None\";\r\n /**\r\n * full view of description, filters, etc. Not limited.\r\n */\r\n SubscriptionPermissions[SubscriptionPermissions[\"View\"] = 1] = \"View\";\r\n /**\r\n * update subscription\r\n */\r\n SubscriptionPermissions[SubscriptionPermissions[\"Edit\"] = 2] = \"Edit\";\r\n /**\r\n * delete subscription\r\n */\r\n SubscriptionPermissions[SubscriptionPermissions[\"Delete\"] = 4] = \"Delete\";\r\n})(SubscriptionPermissions = exports.SubscriptionPermissions || (exports.SubscriptionPermissions = {}));\r\n/**\r\n * Flags that influence the result set of a subscription query.\r\n */\r\nvar SubscriptionQueryFlags;\r\n(function (SubscriptionQueryFlags) {\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include subscriptions with invalid subscribers.\r\n */\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"IncludeInvalidSubscriptions\"] = 2] = \"IncludeInvalidSubscriptions\";\r\n /**\r\n * Include subscriptions marked for deletion.\r\n */\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"IncludeDeletedSubscriptions\"] = 4] = \"IncludeDeletedSubscriptions\";\r\n /**\r\n * Include the full filter details with each subscription.\r\n */\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"IncludeFilterDetails\"] = 8] = \"IncludeFilterDetails\";\r\n /**\r\n * For a subscription the caller does not have permission to view, return basic (non-confidential) information.\r\n */\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"AlwaysReturnBasicInformation\"] = 16] = \"AlwaysReturnBasicInformation\";\r\n /**\r\n * Include system subscriptions.\r\n */\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"IncludeSystemSubscriptions\"] = 32] = \"IncludeSystemSubscriptions\";\r\n})(SubscriptionQueryFlags = exports.SubscriptionQueryFlags || (exports.SubscriptionQueryFlags = {}));\r\n/**\r\n * Subscription status values. A value greater than or equal to zero indicates the subscription is enabled. A negative value indicates the subscription is disabled.\r\n */\r\nvar SubscriptionStatus;\r\n(function (SubscriptionStatus) {\r\n /**\r\n * Subscription is disabled because it generated a high volume of notifications.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"JailedByNotificationsVolume\"] = -200] = \"JailedByNotificationsVolume\";\r\n /**\r\n * Subscription is disabled and will be deleted.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"PendingDeletion\"] = -100] = \"PendingDeletion\";\r\n /**\r\n * Subscription is disabled because of an Argument Exception while processing the subscription\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledArgumentException\"] = -12] = \"DisabledArgumentException\";\r\n /**\r\n * Subscription is disabled because the project is invalid\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledProjectInvalid\"] = -11] = \"DisabledProjectInvalid\";\r\n /**\r\n * Subscription is disabled because the identity does not have the appropriate permissions\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledMissingPermissions\"] = -10] = \"DisabledMissingPermissions\";\r\n /**\r\n * Subscription is disabled service due to failures.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledFromProbation\"] = -9] = \"DisabledFromProbation\";\r\n /**\r\n * Subscription is disabled because the identity is no longer active\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledInactiveIdentity\"] = -8] = \"DisabledInactiveIdentity\";\r\n /**\r\n * Subscription is disabled because message queue is not supported.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledMessageQueueNotSupported\"] = -7] = \"DisabledMessageQueueNotSupported\";\r\n /**\r\n * Subscription is disabled because its subscriber is unknown.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledMissingIdentity\"] = -6] = \"DisabledMissingIdentity\";\r\n /**\r\n * Subscription is disabled because it has an invalid role expression.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledInvalidRoleExpression\"] = -5] = \"DisabledInvalidRoleExpression\";\r\n /**\r\n * Subscription is disabled because it has an invalid filter expression.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledInvalidPathClause\"] = -4] = \"DisabledInvalidPathClause\";\r\n /**\r\n * Subscription is disabled because it is a duplicate of a default subscription.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledAsDuplicateOfDefault\"] = -3] = \"DisabledAsDuplicateOfDefault\";\r\n /**\r\n * Subscription is disabled by an administrator, not the subscription's subscriber.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledByAdmin\"] = -2] = \"DisabledByAdmin\";\r\n /**\r\n * Subscription is disabled, typically by the owner of the subscription, and will not produce any notifications.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"Disabled\"] = -1] = \"Disabled\";\r\n /**\r\n * Subscription is active.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"Enabled\"] = 0] = \"Enabled\";\r\n /**\r\n * Subscription is active, but is on probation due to failed deliveries or other issues with the subscription.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"EnabledOnProbation\"] = 1] = \"EnabledOnProbation\";\r\n})(SubscriptionStatus = exports.SubscriptionStatus || (exports.SubscriptionStatus = {}));\r\n/**\r\n * Set of flags used to determine which set of templates is retrieved when querying for subscription templates\r\n */\r\nvar SubscriptionTemplateQueryFlags;\r\n(function (SubscriptionTemplateQueryFlags) {\r\n SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include user templates\r\n */\r\n SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags[\"IncludeUser\"] = 1] = \"IncludeUser\";\r\n /**\r\n * Include group templates\r\n */\r\n SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags[\"IncludeGroup\"] = 2] = \"IncludeGroup\";\r\n /**\r\n * Include user and group templates\r\n */\r\n SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags[\"IncludeUserAndGroup\"] = 4] = \"IncludeUserAndGroup\";\r\n /**\r\n * Include the event type details like the fields and operators\r\n */\r\n SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags[\"IncludeEventTypeInformation\"] = 22] = \"IncludeEventTypeInformation\";\r\n})(SubscriptionTemplateQueryFlags = exports.SubscriptionTemplateQueryFlags || (exports.SubscriptionTemplateQueryFlags = {}));\r\nvar SubscriptionTemplateType;\r\n(function (SubscriptionTemplateType) {\r\n SubscriptionTemplateType[SubscriptionTemplateType[\"User\"] = 0] = \"User\";\r\n SubscriptionTemplateType[SubscriptionTemplateType[\"Team\"] = 1] = \"Team\";\r\n SubscriptionTemplateType[SubscriptionTemplateType[\"Both\"] = 2] = \"Both\";\r\n SubscriptionTemplateType[SubscriptionTemplateType[\"None\"] = 3] = \"None\";\r\n})(SubscriptionTemplateType = exports.SubscriptionTemplateType || (exports.SubscriptionTemplateType = {}));\r\nexports.TypeInfo = {\r\n ActorNotificationReason: {},\r\n BatchNotificationOperation: {},\r\n DefaultGroupDeliveryPreference: {\r\n enumValues: {\r\n \"noDelivery\": -1,\r\n \"eachMember\": 2\r\n }\r\n },\r\n EvaluationOperationStatus: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"queued\": 1,\r\n \"inProgress\": 2,\r\n \"cancelled\": 3,\r\n \"succeeded\": 4,\r\n \"failed\": 5,\r\n \"timedOut\": 6,\r\n \"notFound\": 7\r\n }\r\n },\r\n EventBacklogStatus: {},\r\n EventProcessingLog: {},\r\n EventPublisherQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeRemoteServices\": 2\r\n }\r\n },\r\n EventTypeQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeFields\": 1\r\n }\r\n },\r\n INotificationDiagnosticLog: {},\r\n NotificationAdminSettings: {},\r\n NotificationAdminSettingsUpdateParameters: {},\r\n NotificationBacklogStatus: {},\r\n NotificationDeliveryLog: {},\r\n NotificationDiagnosticLog: {},\r\n NotificationEventBacklogStatus: {},\r\n NotificationEventField: {},\r\n NotificationEventFieldType: {},\r\n NotificationEventType: {},\r\n NotificationJobDiagnosticLog: {},\r\n NotificationOperation: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"suspendUnprocessed\": 1\r\n }\r\n },\r\n NotificationReason: {},\r\n NotificationReasonType: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"follows\": 1,\r\n \"personal\": 2,\r\n \"personalAlias\": 3,\r\n \"directMember\": 4,\r\n \"indirectMember\": 5,\r\n \"groupAlias\": 6,\r\n \"subscriptionAlias\": 7,\r\n \"singleRole\": 8,\r\n \"directMemberGroupRole\": 9,\r\n \"inDirectMemberGroupRole\": 10,\r\n \"aliasMemberGroupRole\": 11\r\n }\r\n },\r\n NotificationStatistic: {},\r\n NotificationStatisticsQuery: {},\r\n NotificationStatisticsQueryConditions: {},\r\n NotificationStatisticType: {\r\n enumValues: {\r\n \"notificationBySubscription\": 0,\r\n \"eventsByEventType\": 1,\r\n \"notificationByEventType\": 2,\r\n \"eventsByEventTypePerUser\": 3,\r\n \"notificationByEventTypePerUser\": 4,\r\n \"events\": 5,\r\n \"notifications\": 6,\r\n \"notificationFailureBySubscription\": 7,\r\n \"unprocessedRangeStart\": 100,\r\n \"unprocessedEventsByPublisher\": 101,\r\n \"unprocessedEventDelayByPublisher\": 102,\r\n \"unprocessedNotificationsByChannelByPublisher\": 103,\r\n \"unprocessedNotificationDelayByChannelByPublisher\": 104,\r\n \"delayRangeStart\": 200,\r\n \"totalPipelineTime\": 201,\r\n \"notificationPipelineTime\": 202,\r\n \"eventPipelineTime\": 203,\r\n \"hourlyRangeStart\": 1000,\r\n \"hourlyNotificationBySubscription\": 1001,\r\n \"hourlyEventsByEventTypePerUser\": 1002,\r\n \"hourlyEvents\": 1003,\r\n \"hourlyNotifications\": 1004,\r\n \"hourlyUnprocessedEventsByPublisher\": 1101,\r\n \"hourlyUnprocessedEventDelayByPublisher\": 1102,\r\n \"hourlyUnprocessedNotificationsByChannelByPublisher\": 1103,\r\n \"hourlyUnprocessedNotificationDelayByChannelByPublisher\": 1104,\r\n \"hourlyTotalPipelineTime\": 1201,\r\n \"hourlyNotificationPipelineTime\": 1202,\r\n \"hourlyEventPipelineTime\": 1203\r\n }\r\n },\r\n NotificationSubscriber: {},\r\n NotificationSubscriberDeliveryPreference: {\r\n enumValues: {\r\n \"noDelivery\": -1,\r\n \"preferredEmailAddress\": 1,\r\n \"eachMember\": 2,\r\n \"useDefault\": 3\r\n }\r\n },\r\n NotificationSubscriberUpdateParameters: {},\r\n NotificationSubscription: {},\r\n NotificationSubscriptionTemplate: {},\r\n NotificationSubscriptionUpdateParameters: {},\r\n SubscriberFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"deliveryPreferencesEditable\": 2,\r\n \"supportsPreferredEmailAddressDelivery\": 4,\r\n \"supportsEachMemberDelivery\": 8,\r\n \"supportsNoDelivery\": 16,\r\n \"isUser\": 32,\r\n \"isGroup\": 64,\r\n \"isTeam\": 128\r\n }\r\n },\r\n SubscriptionDiagnostics: {},\r\n SubscriptionEvaluationRequest: {},\r\n SubscriptionEvaluationResult: {},\r\n SubscriptionFieldType: {\r\n enumValues: {\r\n \"string\": 1,\r\n \"integer\": 2,\r\n \"dateTime\": 3,\r\n \"plainText\": 5,\r\n \"html\": 7,\r\n \"treePath\": 8,\r\n \"history\": 9,\r\n \"double\": 10,\r\n \"guid\": 11,\r\n \"boolean\": 12,\r\n \"identity\": 13,\r\n \"picklistInteger\": 14,\r\n \"picklistString\": 15,\r\n \"picklistDouble\": 16,\r\n \"teamProject\": 17\r\n }\r\n },\r\n SubscriptionFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"groupSubscription\": 1,\r\n \"contributedSubscription\": 2,\r\n \"canOptOut\": 4,\r\n \"teamSubscription\": 8,\r\n \"oneActorMatches\": 16\r\n }\r\n },\r\n SubscriptionPermissions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"view\": 1,\r\n \"edit\": 2,\r\n \"delete\": 4\r\n }\r\n },\r\n SubscriptionQuery: {},\r\n SubscriptionQueryCondition: {},\r\n SubscriptionQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeInvalidSubscriptions\": 2,\r\n \"includeDeletedSubscriptions\": 4,\r\n \"includeFilterDetails\": 8,\r\n \"alwaysReturnBasicInformation\": 16,\r\n \"includeSystemSubscriptions\": 32\r\n }\r\n },\r\n SubscriptionStatus: {\r\n enumValues: {\r\n \"jailedByNotificationsVolume\": -200,\r\n \"pendingDeletion\": -100,\r\n \"disabledArgumentException\": -12,\r\n \"disabledProjectInvalid\": -11,\r\n \"disabledMissingPermissions\": -10,\r\n \"disabledFromProbation\": -9,\r\n \"disabledInactiveIdentity\": -8,\r\n \"disabledMessageQueueNotSupported\": -7,\r\n \"disabledMissingIdentity\": -6,\r\n \"disabledInvalidRoleExpression\": -5,\r\n \"disabledInvalidPathClause\": -4,\r\n \"disabledAsDuplicateOfDefault\": -3,\r\n \"disabledByAdmin\": -2,\r\n \"disabled\": -1,\r\n \"enabled\": 0,\r\n \"enabledOnProbation\": 1\r\n }\r\n },\r\n SubscriptionTemplateQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeUser\": 1,\r\n \"includeGroup\": 2,\r\n \"includeUserAndGroup\": 4,\r\n \"includeEventTypeInformation\": 22\r\n }\r\n },\r\n SubscriptionTemplateType: {\r\n enumValues: {\r\n \"user\": 0,\r\n \"team\": 1,\r\n \"both\": 2,\r\n \"none\": 3\r\n }\r\n },\r\n SubscriptionTraceDiagnosticLog: {},\r\n SubscriptionTraceEventProcessingLog: {},\r\n SubscriptionTraceNotificationDeliveryLog: {},\r\n SubscriptionTracing: {},\r\n};\r\nexports.TypeInfo.ActorNotificationReason.fields = {\r\n notificationReasonType: {\r\n enumType: exports.TypeInfo.NotificationReasonType\r\n }\r\n};\r\nexports.TypeInfo.BatchNotificationOperation.fields = {\r\n notificationOperation: {\r\n enumType: exports.TypeInfo.NotificationOperation\r\n }\r\n};\r\nexports.TypeInfo.EventBacklogStatus.fields = {\r\n captureTime: {\r\n isDate: true,\r\n },\r\n lastEventBatchStartTime: {\r\n isDate: true,\r\n },\r\n lastEventProcessedTime: {\r\n isDate: true,\r\n },\r\n lastJobBatchStartTime: {\r\n isDate: true,\r\n },\r\n lastJobProcessedTime: {\r\n isDate: true,\r\n },\r\n oldestPendingEventTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.EventProcessingLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.INotificationDiagnosticLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationAdminSettings.fields = {\r\n defaultGroupDeliveryPreference: {\r\n enumType: exports.TypeInfo.DefaultGroupDeliveryPreference\r\n }\r\n};\r\nexports.TypeInfo.NotificationAdminSettingsUpdateParameters.fields = {\r\n defaultGroupDeliveryPreference: {\r\n enumType: exports.TypeInfo.DefaultGroupDeliveryPreference\r\n }\r\n};\r\nexports.TypeInfo.NotificationBacklogStatus.fields = {\r\n captureTime: {\r\n isDate: true,\r\n },\r\n lastJobBatchStartTime: {\r\n isDate: true,\r\n },\r\n lastJobProcessedTime: {\r\n isDate: true,\r\n },\r\n lastNotificationBatchStartTime: {\r\n isDate: true,\r\n },\r\n lastNotificationProcessedTime: {\r\n isDate: true,\r\n },\r\n oldestPendingNotificationTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationDeliveryLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationDiagnosticLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationEventBacklogStatus.fields = {\r\n eventBacklogStatus: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.EventBacklogStatus\r\n },\r\n notificationBacklogStatus: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.NotificationBacklogStatus\r\n }\r\n};\r\nexports.TypeInfo.NotificationEventField.fields = {\r\n fieldType: {\r\n typeInfo: exports.TypeInfo.NotificationEventFieldType\r\n }\r\n};\r\nexports.TypeInfo.NotificationEventFieldType.fields = {\r\n subscriptionFieldType: {\r\n enumType: exports.TypeInfo.SubscriptionFieldType\r\n }\r\n};\r\nexports.TypeInfo.NotificationEventType.fields = {\r\n fields: {\r\n isDictionary: true,\r\n dictionaryValueTypeInfo: exports.TypeInfo.NotificationEventField\r\n }\r\n};\r\nexports.TypeInfo.NotificationJobDiagnosticLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationReason.fields = {\r\n notificationReasonType: {\r\n enumType: exports.TypeInfo.NotificationReasonType\r\n }\r\n};\r\nexports.TypeInfo.NotificationStatistic.fields = {\r\n date: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.NotificationStatisticType\r\n }\r\n};\r\nexports.TypeInfo.NotificationStatisticsQuery.fields = {\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.NotificationStatisticsQueryConditions\r\n }\r\n};\r\nexports.TypeInfo.NotificationStatisticsQueryConditions.fields = {\r\n endDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.NotificationStatisticType\r\n }\r\n};\r\nexports.TypeInfo.NotificationSubscriber.fields = {\r\n deliveryPreference: {\r\n enumType: exports.TypeInfo.NotificationSubscriberDeliveryPreference\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.SubscriberFlags\r\n }\r\n};\r\nexports.TypeInfo.NotificationSubscriberUpdateParameters.fields = {\r\n deliveryPreference: {\r\n enumType: exports.TypeInfo.NotificationSubscriberDeliveryPreference\r\n }\r\n};\r\nexports.TypeInfo.NotificationSubscription.fields = {\r\n diagnostics: {\r\n typeInfo: exports.TypeInfo.SubscriptionDiagnostics\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.SubscriptionFlags\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n permissions: {\r\n enumType: exports.TypeInfo.SubscriptionPermissions\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.SubscriptionStatus\r\n }\r\n};\r\nexports.TypeInfo.NotificationSubscriptionTemplate.fields = {\r\n notificationEventInformation: {\r\n typeInfo: exports.TypeInfo.NotificationEventType\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.SubscriptionTemplateType\r\n }\r\n};\r\nexports.TypeInfo.NotificationSubscriptionUpdateParameters.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.SubscriptionStatus\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionDiagnostics.fields = {\r\n deliveryResults: {\r\n typeInfo: exports.TypeInfo.SubscriptionTracing\r\n },\r\n deliveryTracing: {\r\n typeInfo: exports.TypeInfo.SubscriptionTracing\r\n },\r\n evaluationTracing: {\r\n typeInfo: exports.TypeInfo.SubscriptionTracing\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionEvaluationRequest.fields = {\r\n minEventsCreatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionEvaluationResult.fields = {\r\n evaluationJobStatus: {\r\n enumType: exports.TypeInfo.EvaluationOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionQuery.fields = {\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.SubscriptionQueryCondition\r\n },\r\n queryFlags: {\r\n enumType: exports.TypeInfo.SubscriptionQueryFlags\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionQueryCondition.fields = {\r\n flags: {\r\n enumType: exports.TypeInfo.SubscriptionFlags\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionTraceDiagnosticLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionTraceEventProcessingLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionTraceNotificationDeliveryLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionTracing.fields = {\r\n endDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Status of a policy which is running against a specific pull request.\r\n */\r\nvar PolicyEvaluationStatus;\r\n(function (PolicyEvaluationStatus) {\r\n /**\r\n * The policy is either queued to run, or is waiting for some event before progressing.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"Queued\"] = 0] = \"Queued\";\r\n /**\r\n * The policy is currently running.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"Running\"] = 1] = \"Running\";\r\n /**\r\n * The policy has been fulfilled for this pull request.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"Approved\"] = 2] = \"Approved\";\r\n /**\r\n * The policy has rejected this pull request.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"Rejected\"] = 3] = \"Rejected\";\r\n /**\r\n * The policy does not apply to this pull request.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"NotApplicable\"] = 4] = \"NotApplicable\";\r\n /**\r\n * The policy has encountered an unexpected error.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"Broken\"] = 5] = \"Broken\";\r\n})(PolicyEvaluationStatus = exports.PolicyEvaluationStatus || (exports.PolicyEvaluationStatus = {}));\r\nexports.TypeInfo = {\r\n PolicyConfiguration: {},\r\n PolicyEvaluationRecord: {},\r\n PolicyEvaluationStatus: {\r\n enumValues: {\r\n \"queued\": 0,\r\n \"running\": 1,\r\n \"approved\": 2,\r\n \"rejected\": 3,\r\n \"notApplicable\": 4,\r\n \"broken\": 5\r\n }\r\n },\r\n};\r\nexports.TypeInfo.PolicyConfiguration.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.PolicyEvaluationRecord.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n configuration: {\r\n typeInfo: exports.TypeInfo.PolicyConfiguration\r\n },\r\n startedDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.PolicyEvaluationStatus\r\n }\r\n};\r\n","/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*/\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AvatarSize;\r\n(function (AvatarSize) {\r\n AvatarSize[AvatarSize[\"Small\"] = 0] = \"Small\";\r\n AvatarSize[AvatarSize[\"Medium\"] = 1] = \"Medium\";\r\n AvatarSize[AvatarSize[\"Large\"] = 2] = \"Large\";\r\n})(AvatarSize = exports.AvatarSize || (exports.AvatarSize = {}));\r\nexports.TypeInfo = {\r\n AttributeDescriptor: {\r\n fields: null\r\n },\r\n AttributesContainer: {\r\n fields: null\r\n },\r\n Avatar: {\r\n fields: null\r\n },\r\n AvatarSize: {\r\n enumValues: {\r\n \"small\": 0,\r\n \"medium\": 1,\r\n \"large\": 2,\r\n }\r\n },\r\n CoreProfileAttribute: {\r\n fields: null\r\n },\r\n Country: {\r\n fields: null\r\n },\r\n CreateProfileContext: {\r\n fields: null\r\n },\r\n GeoRegion: {\r\n fields: null\r\n },\r\n Profile: {\r\n fields: null\r\n },\r\n ProfileAttribute: {\r\n fields: null\r\n },\r\n ProfileAttributeBase: {\r\n fields: null\r\n },\r\n ProfileRegion: {\r\n fields: null\r\n },\r\n ProfileRegions: {\r\n fields: null\r\n },\r\n};\r\nexports.TypeInfo.AttributeDescriptor.fields = {};\r\nexports.TypeInfo.AttributesContainer.fields = {\r\n attributes: {},\r\n};\r\nexports.TypeInfo.Avatar.fields = {\r\n size: {\r\n enumType: exports.TypeInfo.AvatarSize\r\n },\r\n timeStamp: {\r\n isDate: true,\r\n },\r\n};\r\nexports.TypeInfo.CoreProfileAttribute.fields = {\r\n descriptor: {\r\n typeInfo: exports.TypeInfo.AttributeDescriptor\r\n },\r\n timeStamp: {\r\n isDate: true,\r\n },\r\n};\r\nexports.TypeInfo.Country.fields = {};\r\nexports.TypeInfo.CreateProfileContext.fields = {};\r\nexports.TypeInfo.GeoRegion.fields = {};\r\nexports.TypeInfo.Profile.fields = {\r\n applicationContainer: {\r\n typeInfo: exports.TypeInfo.AttributesContainer\r\n },\r\n coreAttributes: {},\r\n timeStamp: {\r\n isDate: true,\r\n },\r\n};\r\nexports.TypeInfo.ProfileAttribute.fields = {\r\n descriptor: {\r\n typeInfo: exports.TypeInfo.AttributeDescriptor\r\n },\r\n timeStamp: {\r\n isDate: true,\r\n },\r\n};\r\nexports.TypeInfo.ProfileAttributeBase.fields = {\r\n descriptor: {\r\n typeInfo: exports.TypeInfo.AttributeDescriptor\r\n },\r\n timeStamp: {\r\n isDate: true,\r\n },\r\n};\r\nexports.TypeInfo.ProfileRegion.fields = {};\r\nexports.TypeInfo.ProfileRegions.fields = {\r\n regions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ProfileRegion\r\n },\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AggregationType;\r\n(function (AggregationType) {\r\n AggregationType[AggregationType[\"Hourly\"] = 0] = \"Hourly\";\r\n AggregationType[AggregationType[\"Daily\"] = 1] = \"Daily\";\r\n})(AggregationType = exports.AggregationType || (exports.AggregationType = {}));\r\nvar ResultPhase;\r\n(function (ResultPhase) {\r\n ResultPhase[ResultPhase[\"Preliminary\"] = 0] = \"Preliminary\";\r\n ResultPhase[ResultPhase[\"Full\"] = 1] = \"Full\";\r\n})(ResultPhase = exports.ResultPhase || (exports.ResultPhase = {}));\r\nexports.TypeInfo = {\r\n AggregationType: {\r\n enumValues: {\r\n \"hourly\": 0,\r\n \"daily\": 1\r\n }\r\n },\r\n CodeChangeTrendItem: {},\r\n ProjectActivityMetrics: {},\r\n ProjectLanguageAnalytics: {},\r\n RepositoryActivityMetrics: {},\r\n RepositoryLanguageAnalytics: {},\r\n ResultPhase: {\r\n enumValues: {\r\n \"preliminary\": 0,\r\n \"full\": 1\r\n }\r\n },\r\n};\r\nexports.TypeInfo.CodeChangeTrendItem.fields = {\r\n time: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ProjectActivityMetrics.fields = {\r\n codeChangesTrend: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.CodeChangeTrendItem\r\n }\r\n};\r\nexports.TypeInfo.ProjectLanguageAnalytics.fields = {\r\n repositoryLanguageAnalytics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RepositoryLanguageAnalytics\r\n },\r\n resultPhase: {\r\n enumType: exports.TypeInfo.ResultPhase\r\n }\r\n};\r\nexports.TypeInfo.RepositoryActivityMetrics.fields = {\r\n codeChangesTrend: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.CodeChangeTrendItem\r\n }\r\n};\r\nexports.TypeInfo.RepositoryLanguageAnalytics.fields = {\r\n resultPhase: {\r\n enumType: exports.TypeInfo.ResultPhase\r\n },\r\n updatedTime: {\r\n isDate: true,\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst FormInputInterfaces = require(\"../interfaces/common/FormInputInterfaces\");\r\nvar AgentArtifactType;\r\n(function (AgentArtifactType) {\r\n /**\r\n * Indicates XamlBuild artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"XamlBuild\"] = 0] = \"XamlBuild\";\r\n /**\r\n * Indicates Build artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"Build\"] = 1] = \"Build\";\r\n /**\r\n * Indicates Jenkins artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"Jenkins\"] = 2] = \"Jenkins\";\r\n /**\r\n * Indicates FileShare artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"FileShare\"] = 3] = \"FileShare\";\r\n /**\r\n * Indicates Nuget artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"Nuget\"] = 4] = \"Nuget\";\r\n /**\r\n * Indicates TfsOnPrem artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"TfsOnPrem\"] = 5] = \"TfsOnPrem\";\r\n /**\r\n * Indicates GitHub artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"GitHub\"] = 6] = \"GitHub\";\r\n /**\r\n * Indicates TFGit artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"TFGit\"] = 7] = \"TFGit\";\r\n /**\r\n * Indicates ExternalTfsBuild artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"ExternalTfsBuild\"] = 8] = \"ExternalTfsBuild\";\r\n /**\r\n * Indicates Custom artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"Custom\"] = 9] = \"Custom\";\r\n /**\r\n * Indicates Tfvc artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"Tfvc\"] = 10] = \"Tfvc\";\r\n})(AgentArtifactType = exports.AgentArtifactType || (exports.AgentArtifactType = {}));\r\nvar ApprovalExecutionOrder;\r\n(function (ApprovalExecutionOrder) {\r\n /**\r\n * Approvals shown before gates.\r\n */\r\n ApprovalExecutionOrder[ApprovalExecutionOrder[\"BeforeGates\"] = 1] = \"BeforeGates\";\r\n /**\r\n * Approvals shown after successful execution of gates.\r\n */\r\n ApprovalExecutionOrder[ApprovalExecutionOrder[\"AfterSuccessfulGates\"] = 2] = \"AfterSuccessfulGates\";\r\n /**\r\n * Approvals shown always after execution of gates.\r\n */\r\n ApprovalExecutionOrder[ApprovalExecutionOrder[\"AfterGatesAlways\"] = 4] = \"AfterGatesAlways\";\r\n})(ApprovalExecutionOrder = exports.ApprovalExecutionOrder || (exports.ApprovalExecutionOrder = {}));\r\nvar ApprovalFilters;\r\n(function (ApprovalFilters) {\r\n /**\r\n * No approvals or approval snapshots.\r\n */\r\n ApprovalFilters[ApprovalFilters[\"None\"] = 0] = \"None\";\r\n /**\r\n * Manual approval steps but no approval snapshots (Use with ApprovalSnapshots for snapshots).\r\n */\r\n ApprovalFilters[ApprovalFilters[\"ManualApprovals\"] = 1] = \"ManualApprovals\";\r\n /**\r\n * Automated approval steps but no approval snapshots (Use with ApprovalSnapshots for snapshots).\r\n */\r\n ApprovalFilters[ApprovalFilters[\"AutomatedApprovals\"] = 2] = \"AutomatedApprovals\";\r\n /**\r\n * No approval steps, but approval snapshots (Use with either ManualApprovals or AutomatedApprovals for approval steps).\r\n */\r\n ApprovalFilters[ApprovalFilters[\"ApprovalSnapshots\"] = 4] = \"ApprovalSnapshots\";\r\n /**\r\n * All approval steps and approval snapshots.\r\n */\r\n ApprovalFilters[ApprovalFilters[\"All\"] = 7] = \"All\";\r\n})(ApprovalFilters = exports.ApprovalFilters || (exports.ApprovalFilters = {}));\r\nvar ApprovalStatus;\r\n(function (ApprovalStatus) {\r\n /**\r\n * Indicates the approval does not have the status set.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Indicates the approval is pending.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Pending\"] = 1] = \"Pending\";\r\n /**\r\n * Indicates the approval is approved.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Approved\"] = 2] = \"Approved\";\r\n /**\r\n * Indicates the approval is rejected.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Rejected\"] = 4] = \"Rejected\";\r\n /**\r\n * Indicates the approval is reassigned.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Reassigned\"] = 6] = \"Reassigned\";\r\n /**\r\n * Indicates the approval is canceled.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Canceled\"] = 7] = \"Canceled\";\r\n /**\r\n * Indicates the approval is skipped.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Skipped\"] = 8] = \"Skipped\";\r\n})(ApprovalStatus = exports.ApprovalStatus || (exports.ApprovalStatus = {}));\r\nvar ApprovalType;\r\n(function (ApprovalType) {\r\n /**\r\n * Indicates the approval type does not set.\r\n */\r\n ApprovalType[ApprovalType[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Indicates the approvals which executed before deployment.\r\n */\r\n ApprovalType[ApprovalType[\"PreDeploy\"] = 1] = \"PreDeploy\";\r\n /**\r\n * Indicates the approvals which executed after deployment.\r\n */\r\n ApprovalType[ApprovalType[\"PostDeploy\"] = 2] = \"PostDeploy\";\r\n /**\r\n * Indicates all approvals.\r\n */\r\n ApprovalType[ApprovalType[\"All\"] = 3] = \"All\";\r\n})(ApprovalType = exports.ApprovalType || (exports.ApprovalType = {}));\r\nvar AuditAction;\r\n(function (AuditAction) {\r\n /**\r\n * Indicates the audit add.\r\n */\r\n AuditAction[AuditAction[\"Add\"] = 1] = \"Add\";\r\n /**\r\n * Indicates the audit update.\r\n */\r\n AuditAction[AuditAction[\"Update\"] = 2] = \"Update\";\r\n /**\r\n * Indicates the audit delete.\r\n */\r\n AuditAction[AuditAction[\"Delete\"] = 3] = \"Delete\";\r\n /**\r\n * Indicates the audit undelete.\r\n */\r\n AuditAction[AuditAction[\"Undelete\"] = 4] = \"Undelete\";\r\n})(AuditAction = exports.AuditAction || (exports.AuditAction = {}));\r\nvar AuthorizationHeaderFor;\r\n(function (AuthorizationHeaderFor) {\r\n AuthorizationHeaderFor[AuthorizationHeaderFor[\"RevalidateApproverIdentity\"] = 0] = \"RevalidateApproverIdentity\";\r\n AuthorizationHeaderFor[AuthorizationHeaderFor[\"OnBehalfOf\"] = 1] = \"OnBehalfOf\";\r\n})(AuthorizationHeaderFor = exports.AuthorizationHeaderFor || (exports.AuthorizationHeaderFor = {}));\r\nvar ConditionType;\r\n(function (ConditionType) {\r\n /**\r\n * The condition type is undefined.\r\n */\r\n ConditionType[ConditionType[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * The condition type is event.\r\n */\r\n ConditionType[ConditionType[\"Event\"] = 1] = \"Event\";\r\n /**\r\n * The condition type is environment state.\r\n */\r\n ConditionType[ConditionType[\"EnvironmentState\"] = 2] = \"EnvironmentState\";\r\n /**\r\n * The condition type is artifact.\r\n */\r\n ConditionType[ConditionType[\"Artifact\"] = 4] = \"Artifact\";\r\n})(ConditionType = exports.ConditionType || (exports.ConditionType = {}));\r\nvar DeploymentAuthorizationOwner;\r\n(function (DeploymentAuthorizationOwner) {\r\n DeploymentAuthorizationOwner[DeploymentAuthorizationOwner[\"Automatic\"] = 0] = \"Automatic\";\r\n DeploymentAuthorizationOwner[DeploymentAuthorizationOwner[\"DeploymentSubmitter\"] = 1] = \"DeploymentSubmitter\";\r\n DeploymentAuthorizationOwner[DeploymentAuthorizationOwner[\"FirstPreDeploymentApprover\"] = 2] = \"FirstPreDeploymentApprover\";\r\n})(DeploymentAuthorizationOwner = exports.DeploymentAuthorizationOwner || (exports.DeploymentAuthorizationOwner = {}));\r\nvar DeploymentExpands;\r\n(function (DeploymentExpands) {\r\n DeploymentExpands[DeploymentExpands[\"All\"] = 0] = \"All\";\r\n DeploymentExpands[DeploymentExpands[\"DeploymentOnly\"] = 1] = \"DeploymentOnly\";\r\n DeploymentExpands[DeploymentExpands[\"Approvals\"] = 2] = \"Approvals\";\r\n DeploymentExpands[DeploymentExpands[\"Artifacts\"] = 4] = \"Artifacts\";\r\n})(DeploymentExpands = exports.DeploymentExpands || (exports.DeploymentExpands = {}));\r\nvar DeploymentOperationStatus;\r\n(function (DeploymentOperationStatus) {\r\n /**\r\n * The deployment operation status is undefined.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * The deployment operation status is queued.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Queued\"] = 1] = \"Queued\";\r\n /**\r\n * The deployment operation status is scheduled.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Scheduled\"] = 2] = \"Scheduled\";\r\n /**\r\n * The deployment operation status is pending.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Pending\"] = 4] = \"Pending\";\r\n /**\r\n * The deployment operation status is approved.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Approved\"] = 8] = \"Approved\";\r\n /**\r\n * The deployment operation status is rejected.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Rejected\"] = 16] = \"Rejected\";\r\n /**\r\n * The deployment operation status is deferred.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Deferred\"] = 32] = \"Deferred\";\r\n /**\r\n * The deployment operation status is queued for agent.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"QueuedForAgent\"] = 64] = \"QueuedForAgent\";\r\n /**\r\n * The deployment operation status is phase in progress.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"PhaseInProgress\"] = 128] = \"PhaseInProgress\";\r\n /**\r\n * The deployment operation status is phase succeeded.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"PhaseSucceeded\"] = 256] = \"PhaseSucceeded\";\r\n /**\r\n * The deployment operation status is phase partially succeeded.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"PhasePartiallySucceeded\"] = 512] = \"PhasePartiallySucceeded\";\r\n /**\r\n * The deployment operation status is phase failed.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"PhaseFailed\"] = 1024] = \"PhaseFailed\";\r\n /**\r\n * The deployment operation status is canceled.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Canceled\"] = 2048] = \"Canceled\";\r\n /**\r\n * The deployment operation status is phase canceled.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"PhaseCanceled\"] = 4096] = \"PhaseCanceled\";\r\n /**\r\n * The deployment operation status is manualintervention pending.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"ManualInterventionPending\"] = 8192] = \"ManualInterventionPending\";\r\n /**\r\n * The deployment operation status is queued for pipeline.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"QueuedForPipeline\"] = 16384] = \"QueuedForPipeline\";\r\n /**\r\n * The deployment operation status is cancelling.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Cancelling\"] = 32768] = \"Cancelling\";\r\n /**\r\n * The deployment operation status is EvaluatingGates.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"EvaluatingGates\"] = 65536] = \"EvaluatingGates\";\r\n /**\r\n * The deployment operation status is GateFailed.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"GateFailed\"] = 131072] = \"GateFailed\";\r\n /**\r\n * The deployment operation status is all.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"All\"] = 258047] = \"All\";\r\n})(DeploymentOperationStatus = exports.DeploymentOperationStatus || (exports.DeploymentOperationStatus = {}));\r\nvar DeploymentReason;\r\n(function (DeploymentReason) {\r\n /**\r\n * The deployment reason is none.\r\n */\r\n DeploymentReason[DeploymentReason[\"None\"] = 0] = \"None\";\r\n /**\r\n * The deployment reason is manual.\r\n */\r\n DeploymentReason[DeploymentReason[\"Manual\"] = 1] = \"Manual\";\r\n /**\r\n * The deployment reason is automated.\r\n */\r\n DeploymentReason[DeploymentReason[\"Automated\"] = 2] = \"Automated\";\r\n /**\r\n * The deployment reason is scheduled.\r\n */\r\n DeploymentReason[DeploymentReason[\"Scheduled\"] = 4] = \"Scheduled\";\r\n /**\r\n * The deployment reason is RedeployTrigger.\r\n */\r\n DeploymentReason[DeploymentReason[\"RedeployTrigger\"] = 8] = \"RedeployTrigger\";\r\n})(DeploymentReason = exports.DeploymentReason || (exports.DeploymentReason = {}));\r\nvar DeploymentsQueryType;\r\n(function (DeploymentsQueryType) {\r\n DeploymentsQueryType[DeploymentsQueryType[\"Regular\"] = 1] = \"Regular\";\r\n DeploymentsQueryType[DeploymentsQueryType[\"FailingSince\"] = 2] = \"FailingSince\";\r\n})(DeploymentsQueryType = exports.DeploymentsQueryType || (exports.DeploymentsQueryType = {}));\r\nvar DeploymentStatus;\r\n(function (DeploymentStatus) {\r\n /**\r\n * The deployment status is undefined.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * The deployment status is not deployed.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"NotDeployed\"] = 1] = \"NotDeployed\";\r\n /**\r\n * The deployment status is in progress.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The deployment status is succeeded.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"Succeeded\"] = 4] = \"Succeeded\";\r\n /**\r\n * The deployment status is partiallysucceeded.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"PartiallySucceeded\"] = 8] = \"PartiallySucceeded\";\r\n /**\r\n * The deployment status is failed.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"Failed\"] = 16] = \"Failed\";\r\n /**\r\n * The deployment status is all.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"All\"] = 31] = \"All\";\r\n})(DeploymentStatus = exports.DeploymentStatus || (exports.DeploymentStatus = {}));\r\nvar DeployPhaseStatus;\r\n(function (DeployPhaseStatus) {\r\n /**\r\n * Phase status not set.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Phase execution not started.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"NotStarted\"] = 1] = \"NotStarted\";\r\n /**\r\n * Phase execution in progress.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * Phase execution partially succeeded.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"PartiallySucceeded\"] = 4] = \"PartiallySucceeded\";\r\n /**\r\n * Phase execution succeeded.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Succeeded\"] = 8] = \"Succeeded\";\r\n /**\r\n * Phase execution failed.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Failed\"] = 16] = \"Failed\";\r\n /**\r\n * Phase execution canceled.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Canceled\"] = 32] = \"Canceled\";\r\n /**\r\n * Phase execution skipped.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Skipped\"] = 64] = \"Skipped\";\r\n /**\r\n * Phase is in cancelling state.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Cancelling\"] = 128] = \"Cancelling\";\r\n})(DeployPhaseStatus = exports.DeployPhaseStatus || (exports.DeployPhaseStatus = {}));\r\nvar DeployPhaseTypes;\r\n(function (DeployPhaseTypes) {\r\n /**\r\n * Phase type not defined. Don't use this.\r\n */\r\n DeployPhaseTypes[DeployPhaseTypes[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Phase type which contains tasks executed on agent.\r\n */\r\n DeployPhaseTypes[DeployPhaseTypes[\"AgentBasedDeployment\"] = 1] = \"AgentBasedDeployment\";\r\n /**\r\n * Phase type which contains tasks executed by server.\r\n */\r\n DeployPhaseTypes[DeployPhaseTypes[\"RunOnServer\"] = 2] = \"RunOnServer\";\r\n /**\r\n * Phase type which contains tasks executed on deployment group machines.\r\n */\r\n DeployPhaseTypes[DeployPhaseTypes[\"MachineGroupBasedDeployment\"] = 4] = \"MachineGroupBasedDeployment\";\r\n /**\r\n * Phase type which contains tasks which acts as Gates for the deployment to go forward.\r\n */\r\n DeployPhaseTypes[DeployPhaseTypes[\"DeploymentGates\"] = 8] = \"DeploymentGates\";\r\n})(DeployPhaseTypes = exports.DeployPhaseTypes || (exports.DeployPhaseTypes = {}));\r\nvar EnvironmentStatus;\r\n(function (EnvironmentStatus) {\r\n /**\r\n * Environment status not set.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Environment is in not started state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"NotStarted\"] = 1] = \"NotStarted\";\r\n /**\r\n * Environment is in progress state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * Environment is in succeeded state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Succeeded\"] = 4] = \"Succeeded\";\r\n /**\r\n * Environment is in canceled state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Canceled\"] = 8] = \"Canceled\";\r\n /**\r\n * Environment is in rejected state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Rejected\"] = 16] = \"Rejected\";\r\n /**\r\n * Environment is in queued state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Queued\"] = 32] = \"Queued\";\r\n /**\r\n * Environment is in scheduled state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Scheduled\"] = 64] = \"Scheduled\";\r\n /**\r\n * Environment is in partially succeeded state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"PartiallySucceeded\"] = 128] = \"PartiallySucceeded\";\r\n})(EnvironmentStatus = exports.EnvironmentStatus || (exports.EnvironmentStatus = {}));\r\nvar EnvironmentTriggerType;\r\n(function (EnvironmentTriggerType) {\r\n /**\r\n * Environment trigger type undefined.\r\n */\r\n EnvironmentTriggerType[EnvironmentTriggerType[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Environment trigger type is deployment group redeploy.\r\n */\r\n EnvironmentTriggerType[EnvironmentTriggerType[\"DeploymentGroupRedeploy\"] = 1] = \"DeploymentGroupRedeploy\";\r\n /**\r\n * Environment trigger type is Rollback.\r\n */\r\n EnvironmentTriggerType[EnvironmentTriggerType[\"RollbackRedeploy\"] = 2] = \"RollbackRedeploy\";\r\n})(EnvironmentTriggerType = exports.EnvironmentTriggerType || (exports.EnvironmentTriggerType = {}));\r\nvar FolderPathQueryOrder;\r\n(function (FolderPathQueryOrder) {\r\n /**\r\n * No order.\r\n */\r\n FolderPathQueryOrder[FolderPathQueryOrder[\"None\"] = 0] = \"None\";\r\n /**\r\n * Order by folder name and path ascending.\r\n */\r\n FolderPathQueryOrder[FolderPathQueryOrder[\"Ascending\"] = 1] = \"Ascending\";\r\n /**\r\n * Order by folder name and path descending.\r\n */\r\n FolderPathQueryOrder[FolderPathQueryOrder[\"Descending\"] = 2] = \"Descending\";\r\n})(FolderPathQueryOrder = exports.FolderPathQueryOrder || (exports.FolderPathQueryOrder = {}));\r\nvar GateStatus;\r\n(function (GateStatus) {\r\n /**\r\n * The gate does not have the status set.\r\n */\r\n GateStatus[GateStatus[\"None\"] = 0] = \"None\";\r\n /**\r\n * The gate is in pending state.\r\n */\r\n GateStatus[GateStatus[\"Pending\"] = 1] = \"Pending\";\r\n /**\r\n * The gate is currently in progress.\r\n */\r\n GateStatus[GateStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The gate completed successfully.\r\n */\r\n GateStatus[GateStatus[\"Succeeded\"] = 4] = \"Succeeded\";\r\n /**\r\n * The gate execution failed.\r\n */\r\n GateStatus[GateStatus[\"Failed\"] = 8] = \"Failed\";\r\n /**\r\n * The gate execution cancelled.\r\n */\r\n GateStatus[GateStatus[\"Canceled\"] = 16] = \"Canceled\";\r\n})(GateStatus = exports.GateStatus || (exports.GateStatus = {}));\r\nvar IssueSource;\r\n(function (IssueSource) {\r\n IssueSource[IssueSource[\"None\"] = 0] = \"None\";\r\n IssueSource[IssueSource[\"User\"] = 1] = \"User\";\r\n IssueSource[IssueSource[\"System\"] = 2] = \"System\";\r\n})(IssueSource = exports.IssueSource || (exports.IssueSource = {}));\r\nvar MailSectionType;\r\n(function (MailSectionType) {\r\n MailSectionType[MailSectionType[\"Details\"] = 0] = \"Details\";\r\n MailSectionType[MailSectionType[\"Environments\"] = 1] = \"Environments\";\r\n MailSectionType[MailSectionType[\"Issues\"] = 2] = \"Issues\";\r\n MailSectionType[MailSectionType[\"TestResults\"] = 3] = \"TestResults\";\r\n MailSectionType[MailSectionType[\"WorkItems\"] = 4] = \"WorkItems\";\r\n MailSectionType[MailSectionType[\"ReleaseInfo\"] = 5] = \"ReleaseInfo\";\r\n})(MailSectionType = exports.MailSectionType || (exports.MailSectionType = {}));\r\n/**\r\n * Describes manual intervention status\r\n */\r\nvar ManualInterventionStatus;\r\n(function (ManualInterventionStatus) {\r\n /**\r\n * The manual intervention does not have the status set.\r\n */\r\n ManualInterventionStatus[ManualInterventionStatus[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * The manual intervention is pending.\r\n */\r\n ManualInterventionStatus[ManualInterventionStatus[\"Pending\"] = 1] = \"Pending\";\r\n /**\r\n * The manual intervention is rejected.\r\n */\r\n ManualInterventionStatus[ManualInterventionStatus[\"Rejected\"] = 2] = \"Rejected\";\r\n /**\r\n * The manual intervention is approved.\r\n */\r\n ManualInterventionStatus[ManualInterventionStatus[\"Approved\"] = 4] = \"Approved\";\r\n /**\r\n * The manual intervention is canceled.\r\n */\r\n ManualInterventionStatus[ManualInterventionStatus[\"Canceled\"] = 8] = \"Canceled\";\r\n})(ManualInterventionStatus = exports.ManualInterventionStatus || (exports.ManualInterventionStatus = {}));\r\nvar ParallelExecutionTypes;\r\n(function (ParallelExecutionTypes) {\r\n ParallelExecutionTypes[ParallelExecutionTypes[\"None\"] = 0] = \"None\";\r\n ParallelExecutionTypes[ParallelExecutionTypes[\"MultiConfiguration\"] = 1] = \"MultiConfiguration\";\r\n ParallelExecutionTypes[ParallelExecutionTypes[\"MultiMachine\"] = 2] = \"MultiMachine\";\r\n})(ParallelExecutionTypes = exports.ParallelExecutionTypes || (exports.ParallelExecutionTypes = {}));\r\nvar PipelineProcessTypes;\r\n(function (PipelineProcessTypes) {\r\n PipelineProcessTypes[PipelineProcessTypes[\"Designer\"] = 1] = \"Designer\";\r\n PipelineProcessTypes[PipelineProcessTypes[\"Yaml\"] = 2] = \"Yaml\";\r\n})(PipelineProcessTypes = exports.PipelineProcessTypes || (exports.PipelineProcessTypes = {}));\r\nvar PropertySelectorType;\r\n(function (PropertySelectorType) {\r\n /**\r\n * Include in property selector.\r\n */\r\n PropertySelectorType[PropertySelectorType[\"Inclusion\"] = 0] = \"Inclusion\";\r\n /**\r\n * Exclude in property selector.\r\n */\r\n PropertySelectorType[PropertySelectorType[\"Exclusion\"] = 1] = \"Exclusion\";\r\n})(PropertySelectorType = exports.PropertySelectorType || (exports.PropertySelectorType = {}));\r\nvar PullRequestSystemType;\r\n(function (PullRequestSystemType) {\r\n PullRequestSystemType[PullRequestSystemType[\"None\"] = 0] = \"None\";\r\n PullRequestSystemType[PullRequestSystemType[\"TfsGit\"] = 1] = \"TfsGit\";\r\n PullRequestSystemType[PullRequestSystemType[\"GitHub\"] = 2] = \"GitHub\";\r\n})(PullRequestSystemType = exports.PullRequestSystemType || (exports.PullRequestSystemType = {}));\r\nvar ReleaseDefinitionExpands;\r\n(function (ReleaseDefinitionExpands) {\r\n /**\r\n * Returns top level properties of object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include environments in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"Environments\"] = 2] = \"Environments\";\r\n /**\r\n * Include artifacts in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"Artifacts\"] = 4] = \"Artifacts\";\r\n /**\r\n * Include triggers in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"Triggers\"] = 8] = \"Triggers\";\r\n /**\r\n * Include variables in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"Variables\"] = 16] = \"Variables\";\r\n /**\r\n * Include tags in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"Tags\"] = 32] = \"Tags\";\r\n /**\r\n * Include last release in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"LastRelease\"] = 64] = \"LastRelease\";\r\n})(ReleaseDefinitionExpands = exports.ReleaseDefinitionExpands || (exports.ReleaseDefinitionExpands = {}));\r\nvar ReleaseDefinitionQueryOrder;\r\n(function (ReleaseDefinitionQueryOrder) {\r\n /**\r\n * Return results based on release definition Id ascending order.\r\n */\r\n ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder[\"IdAscending\"] = 0] = \"IdAscending\";\r\n /**\r\n * Return results based on release definition Id descending order.\r\n */\r\n ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder[\"IdDescending\"] = 1] = \"IdDescending\";\r\n /**\r\n * Return results based on release definition name ascending order.\r\n */\r\n ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder[\"NameAscending\"] = 2] = \"NameAscending\";\r\n /**\r\n * Return results based on release definition name descending order.\r\n */\r\n ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder[\"NameDescending\"] = 3] = \"NameDescending\";\r\n})(ReleaseDefinitionQueryOrder = exports.ReleaseDefinitionQueryOrder || (exports.ReleaseDefinitionQueryOrder = {}));\r\nvar ReleaseDefinitionSource;\r\n(function (ReleaseDefinitionSource) {\r\n /**\r\n * Indicates ReleaseDefinition source not defined.\r\n */\r\n ReleaseDefinitionSource[ReleaseDefinitionSource[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Indicates ReleaseDefinition created using REST API.\r\n */\r\n ReleaseDefinitionSource[ReleaseDefinitionSource[\"RestApi\"] = 1] = \"RestApi\";\r\n /**\r\n * Indicates ReleaseDefinition created using UI.\r\n */\r\n ReleaseDefinitionSource[ReleaseDefinitionSource[\"UserInterface\"] = 2] = \"UserInterface\";\r\n /**\r\n * Indicates ReleaseDefinition created from Ibiza.\r\n */\r\n ReleaseDefinitionSource[ReleaseDefinitionSource[\"Ibiza\"] = 4] = \"Ibiza\";\r\n /**\r\n * Indicates ReleaseDefinition created from PortalExtension API.\r\n */\r\n ReleaseDefinitionSource[ReleaseDefinitionSource[\"PortalExtensionApi\"] = 8] = \"PortalExtensionApi\";\r\n})(ReleaseDefinitionSource = exports.ReleaseDefinitionSource || (exports.ReleaseDefinitionSource = {}));\r\nvar ReleaseEnvironmentExpands;\r\n(function (ReleaseEnvironmentExpands) {\r\n /**\r\n * Return top level properties of object.\r\n */\r\n ReleaseEnvironmentExpands[ReleaseEnvironmentExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Expand environment with tasks.\r\n */\r\n ReleaseEnvironmentExpands[ReleaseEnvironmentExpands[\"Tasks\"] = 1] = \"Tasks\";\r\n})(ReleaseEnvironmentExpands = exports.ReleaseEnvironmentExpands || (exports.ReleaseEnvironmentExpands = {}));\r\nvar ReleaseExpands;\r\n(function (ReleaseExpands) {\r\n ReleaseExpands[ReleaseExpands[\"None\"] = 0] = \"None\";\r\n ReleaseExpands[ReleaseExpands[\"Environments\"] = 2] = \"Environments\";\r\n ReleaseExpands[ReleaseExpands[\"Artifacts\"] = 4] = \"Artifacts\";\r\n ReleaseExpands[ReleaseExpands[\"Approvals\"] = 8] = \"Approvals\";\r\n ReleaseExpands[ReleaseExpands[\"ManualInterventions\"] = 16] = \"ManualInterventions\";\r\n ReleaseExpands[ReleaseExpands[\"Variables\"] = 32] = \"Variables\";\r\n ReleaseExpands[ReleaseExpands[\"Tags\"] = 64] = \"Tags\";\r\n})(ReleaseExpands = exports.ReleaseExpands || (exports.ReleaseExpands = {}));\r\nvar ReleaseQueryOrder;\r\n(function (ReleaseQueryOrder) {\r\n /**\r\n * Return results in descending order.\r\n */\r\n ReleaseQueryOrder[ReleaseQueryOrder[\"Descending\"] = 0] = \"Descending\";\r\n /**\r\n * Return results in ascending order.\r\n */\r\n ReleaseQueryOrder[ReleaseQueryOrder[\"Ascending\"] = 1] = \"Ascending\";\r\n})(ReleaseQueryOrder = exports.ReleaseQueryOrder || (exports.ReleaseQueryOrder = {}));\r\nvar ReleaseReason;\r\n(function (ReleaseReason) {\r\n /**\r\n * Indicates the release triggered reason not set.\r\n */\r\n ReleaseReason[ReleaseReason[\"None\"] = 0] = \"None\";\r\n /**\r\n * Indicates the release triggered manually.\r\n */\r\n ReleaseReason[ReleaseReason[\"Manual\"] = 1] = \"Manual\";\r\n /**\r\n * Indicates the release triggered by continuous integration.\r\n */\r\n ReleaseReason[ReleaseReason[\"ContinuousIntegration\"] = 2] = \"ContinuousIntegration\";\r\n /**\r\n * Indicates the release triggered by schedule.\r\n */\r\n ReleaseReason[ReleaseReason[\"Schedule\"] = 3] = \"Schedule\";\r\n /**\r\n * Indicates the release triggered by PullRequest.\r\n */\r\n ReleaseReason[ReleaseReason[\"PullRequest\"] = 4] = \"PullRequest\";\r\n})(ReleaseReason = exports.ReleaseReason || (exports.ReleaseReason = {}));\r\nvar ReleaseStatus;\r\n(function (ReleaseStatus) {\r\n /**\r\n * Release status not set.\r\n */\r\n ReleaseStatus[ReleaseStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Release is in draft state.\r\n */\r\n ReleaseStatus[ReleaseStatus[\"Draft\"] = 1] = \"Draft\";\r\n /**\r\n * Release status is in active.\r\n */\r\n ReleaseStatus[ReleaseStatus[\"Active\"] = 2] = \"Active\";\r\n /**\r\n * Release status is in abandoned.\r\n */\r\n ReleaseStatus[ReleaseStatus[\"Abandoned\"] = 4] = \"Abandoned\";\r\n})(ReleaseStatus = exports.ReleaseStatus || (exports.ReleaseStatus = {}));\r\nvar ReleaseTriggerType;\r\n(function (ReleaseTriggerType) {\r\n /**\r\n * Release trigger type not set.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Artifact based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"ArtifactSource\"] = 1] = \"ArtifactSource\";\r\n /**\r\n * Schedule based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"Schedule\"] = 2] = \"Schedule\";\r\n /**\r\n * Source repository based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"SourceRepo\"] = 3] = \"SourceRepo\";\r\n /**\r\n * Container image based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"ContainerImage\"] = 4] = \"ContainerImage\";\r\n /**\r\n * Package based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"Package\"] = 5] = \"Package\";\r\n /**\r\n * Pull request based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"PullRequest\"] = 6] = \"PullRequest\";\r\n})(ReleaseTriggerType = exports.ReleaseTriggerType || (exports.ReleaseTriggerType = {}));\r\nvar ScheduleDays;\r\n(function (ScheduleDays) {\r\n /**\r\n * Scheduled day not set.\r\n */\r\n ScheduleDays[ScheduleDays[\"None\"] = 0] = \"None\";\r\n /**\r\n * Scheduled on Monday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Monday\"] = 1] = \"Monday\";\r\n /**\r\n * Scheduled on Tuesday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Tuesday\"] = 2] = \"Tuesday\";\r\n /**\r\n * Scheduled on Wednesday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Wednesday\"] = 4] = \"Wednesday\";\r\n /**\r\n * Scheduled on Thursday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Thursday\"] = 8] = \"Thursday\";\r\n /**\r\n * Scheduled on Friday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Friday\"] = 16] = \"Friday\";\r\n /**\r\n * Scheduled on Saturday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Saturday\"] = 32] = \"Saturday\";\r\n /**\r\n * Scheduled on Sunday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Sunday\"] = 64] = \"Sunday\";\r\n /**\r\n * Scheduled on all the days in week.\r\n */\r\n ScheduleDays[ScheduleDays[\"All\"] = 127] = \"All\";\r\n})(ScheduleDays = exports.ScheduleDays || (exports.ScheduleDays = {}));\r\nvar SenderType;\r\n(function (SenderType) {\r\n SenderType[SenderType[\"ServiceAccount\"] = 1] = \"ServiceAccount\";\r\n SenderType[SenderType[\"RequestingUser\"] = 2] = \"RequestingUser\";\r\n})(SenderType = exports.SenderType || (exports.SenderType = {}));\r\nvar SingleReleaseExpands;\r\n(function (SingleReleaseExpands) {\r\n /**\r\n * Return top level properties of object.\r\n */\r\n SingleReleaseExpands[SingleReleaseExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Expand release with tasks.\r\n */\r\n SingleReleaseExpands[SingleReleaseExpands[\"Tasks\"] = 1] = \"Tasks\";\r\n})(SingleReleaseExpands = exports.SingleReleaseExpands || (exports.SingleReleaseExpands = {}));\r\nvar TaskStatus;\r\n(function (TaskStatus) {\r\n /**\r\n * The task does not have the status set.\r\n */\r\n TaskStatus[TaskStatus[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * The task is in pending status.\r\n */\r\n TaskStatus[TaskStatus[\"Pending\"] = 1] = \"Pending\";\r\n /**\r\n * The task is currently in progress.\r\n */\r\n TaskStatus[TaskStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The task completed successfully.\r\n */\r\n TaskStatus[TaskStatus[\"Success\"] = 3] = \"Success\";\r\n /**\r\n * The task execution failed.\r\n */\r\n TaskStatus[TaskStatus[\"Failure\"] = 4] = \"Failure\";\r\n /**\r\n * The task execution canceled.\r\n */\r\n TaskStatus[TaskStatus[\"Canceled\"] = 5] = \"Canceled\";\r\n /**\r\n * The task execution skipped.\r\n */\r\n TaskStatus[TaskStatus[\"Skipped\"] = 6] = \"Skipped\";\r\n /**\r\n * The task completed successfully.\r\n */\r\n TaskStatus[TaskStatus[\"Succeeded\"] = 7] = \"Succeeded\";\r\n /**\r\n * The task execution failed.\r\n */\r\n TaskStatus[TaskStatus[\"Failed\"] = 8] = \"Failed\";\r\n /**\r\n * The task execution partially succeeded.\r\n */\r\n TaskStatus[TaskStatus[\"PartiallySucceeded\"] = 9] = \"PartiallySucceeded\";\r\n})(TaskStatus = exports.TaskStatus || (exports.TaskStatus = {}));\r\nvar VariableGroupActionFilter;\r\n(function (VariableGroupActionFilter) {\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"None\"] = 0] = \"None\";\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(VariableGroupActionFilter = exports.VariableGroupActionFilter || (exports.VariableGroupActionFilter = {}));\r\nvar YamlFileSourceTypes;\r\n(function (YamlFileSourceTypes) {\r\n YamlFileSourceTypes[YamlFileSourceTypes[\"None\"] = 0] = \"None\";\r\n YamlFileSourceTypes[YamlFileSourceTypes[\"TFSGit\"] = 1] = \"TFSGit\";\r\n})(YamlFileSourceTypes = exports.YamlFileSourceTypes || (exports.YamlFileSourceTypes = {}));\r\nexports.TypeInfo = {\r\n AgentArtifactDefinition: {},\r\n AgentArtifactType: {\r\n enumValues: {\r\n \"xamlBuild\": 0,\r\n \"build\": 1,\r\n \"jenkins\": 2,\r\n \"fileShare\": 3,\r\n \"nuget\": 4,\r\n \"tfsOnPrem\": 5,\r\n \"gitHub\": 6,\r\n \"tfGit\": 7,\r\n \"externalTfsBuild\": 8,\r\n \"custom\": 9,\r\n \"tfvc\": 10\r\n }\r\n },\r\n AgentBasedDeployPhase: {},\r\n AgentDeploymentInput: {},\r\n ApprovalExecutionOrder: {\r\n enumValues: {\r\n \"beforeGates\": 1,\r\n \"afterSuccessfulGates\": 2,\r\n \"afterGatesAlways\": 4\r\n }\r\n },\r\n ApprovalFilters: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manualApprovals\": 1,\r\n \"automatedApprovals\": 2,\r\n \"approvalSnapshots\": 4,\r\n \"all\": 7\r\n }\r\n },\r\n ApprovalOptions: {},\r\n ApprovalStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"pending\": 1,\r\n \"approved\": 2,\r\n \"rejected\": 4,\r\n \"reassigned\": 6,\r\n \"canceled\": 7,\r\n \"skipped\": 8\r\n }\r\n },\r\n ApprovalType: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"preDeploy\": 1,\r\n \"postDeploy\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n ArtifactContributionDefinition: {},\r\n ArtifactMetadata: {},\r\n ArtifactSourceTrigger: {},\r\n ArtifactTypeDefinition: {},\r\n ArtifactVersion: {},\r\n ArtifactVersionQueryResult: {},\r\n AuditAction: {\r\n enumValues: {\r\n \"add\": 1,\r\n \"update\": 2,\r\n \"delete\": 3,\r\n \"undelete\": 4\r\n }\r\n },\r\n AuthorizationHeaderFor: {\r\n enumValues: {\r\n \"revalidateApproverIdentity\": 0,\r\n \"onBehalfOf\": 1\r\n }\r\n },\r\n AutoTriggerIssue: {},\r\n AzureKeyVaultVariableGroupProviderData: {},\r\n AzureKeyVaultVariableValue: {},\r\n BuildVersion: {},\r\n Change: {},\r\n CodeRepositoryReference: {},\r\n Condition: {},\r\n ConditionType: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"event\": 1,\r\n \"environmentState\": 2,\r\n \"artifact\": 4\r\n }\r\n },\r\n ContainerImageTrigger: {},\r\n ContinuousDeploymentTriggerIssue: {},\r\n Deployment: {},\r\n DeploymentApprovalCompletedEvent: {},\r\n DeploymentApprovalPendingEvent: {},\r\n DeploymentAttempt: {},\r\n DeploymentAuthorizationInfo: {},\r\n DeploymentAuthorizationOwner: {\r\n enumValues: {\r\n \"automatic\": 0,\r\n \"deploymentSubmitter\": 1,\r\n \"firstPreDeploymentApprover\": 2\r\n }\r\n },\r\n DeploymentCompletedEvent: {},\r\n DeploymentExpands: {\r\n enumValues: {\r\n \"all\": 0,\r\n \"deploymentOnly\": 1,\r\n \"approvals\": 2,\r\n \"artifacts\": 4\r\n }\r\n },\r\n DeploymentJob: {},\r\n DeploymentManualInterventionPendingEvent: {},\r\n DeploymentOperationStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"queued\": 1,\r\n \"scheduled\": 2,\r\n \"pending\": 4,\r\n \"approved\": 8,\r\n \"rejected\": 16,\r\n \"deferred\": 32,\r\n \"queuedForAgent\": 64,\r\n \"phaseInProgress\": 128,\r\n \"phaseSucceeded\": 256,\r\n \"phasePartiallySucceeded\": 512,\r\n \"phaseFailed\": 1024,\r\n \"canceled\": 2048,\r\n \"phaseCanceled\": 4096,\r\n \"manualInterventionPending\": 8192,\r\n \"queuedForPipeline\": 16384,\r\n \"cancelling\": 32768,\r\n \"evaluatingGates\": 65536,\r\n \"gateFailed\": 131072,\r\n \"all\": 258047\r\n }\r\n },\r\n DeploymentQueryParameters: {},\r\n DeploymentReason: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manual\": 1,\r\n \"automated\": 2,\r\n \"scheduled\": 4,\r\n \"redeployTrigger\": 8\r\n }\r\n },\r\n DeploymentsQueryType: {\r\n enumValues: {\r\n \"regular\": 1,\r\n \"failingSince\": 2\r\n }\r\n },\r\n DeploymentStartedEvent: {},\r\n DeploymentStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"notDeployed\": 1,\r\n \"inProgress\": 2,\r\n \"succeeded\": 4,\r\n \"partiallySucceeded\": 8,\r\n \"failed\": 16,\r\n \"all\": 31\r\n }\r\n },\r\n DeployPhase: {},\r\n DeployPhaseStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"notStarted\": 1,\r\n \"inProgress\": 2,\r\n \"partiallySucceeded\": 4,\r\n \"succeeded\": 8,\r\n \"failed\": 16,\r\n \"canceled\": 32,\r\n \"skipped\": 64,\r\n \"cancelling\": 128\r\n }\r\n },\r\n DeployPhaseTypes: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"agentBasedDeployment\": 1,\r\n \"runOnServer\": 2,\r\n \"machineGroupBasedDeployment\": 4,\r\n \"deploymentGates\": 8\r\n }\r\n },\r\n EnvironmentStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"notStarted\": 1,\r\n \"inProgress\": 2,\r\n \"succeeded\": 4,\r\n \"canceled\": 8,\r\n \"rejected\": 16,\r\n \"queued\": 32,\r\n \"scheduled\": 64,\r\n \"partiallySucceeded\": 128\r\n }\r\n },\r\n EnvironmentTrigger: {},\r\n EnvironmentTriggerType: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"deploymentGroupRedeploy\": 1,\r\n \"rollbackRedeploy\": 2\r\n }\r\n },\r\n ExecutionInput: {},\r\n Folder: {},\r\n FolderPathQueryOrder: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"ascending\": 1,\r\n \"descending\": 2\r\n }\r\n },\r\n GatesDeployPhase: {},\r\n GateStatus: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"pending\": 1,\r\n \"inProgress\": 2,\r\n \"succeeded\": 4,\r\n \"failed\": 8,\r\n \"canceled\": 16\r\n }\r\n },\r\n IgnoredGate: {},\r\n IssueSource: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"user\": 1,\r\n \"system\": 2\r\n }\r\n },\r\n MachineGroupBasedDeployPhase: {},\r\n MailMessage: {},\r\n MailSectionType: {\r\n enumValues: {\r\n \"details\": 0,\r\n \"environments\": 1,\r\n \"issues\": 2,\r\n \"testResults\": 3,\r\n \"workItems\": 4,\r\n \"releaseInfo\": 5\r\n }\r\n },\r\n ManualIntervention: {},\r\n ManualInterventionStatus: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"pending\": 1,\r\n \"rejected\": 2,\r\n \"approved\": 4,\r\n \"canceled\": 8\r\n }\r\n },\r\n ManualInterventionUpdateMetadata: {},\r\n MultiConfigInput: {},\r\n MultiMachineInput: {},\r\n PackageTrigger: {},\r\n ParallelExecutionInputBase: {},\r\n ParallelExecutionTypes: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"multiConfiguration\": 1,\r\n \"multiMachine\": 2\r\n }\r\n },\r\n PipelineProcess: {},\r\n PipelineProcessTypes: {\r\n enumValues: {\r\n \"designer\": 1,\r\n \"yaml\": 2\r\n }\r\n },\r\n PropertySelector: {},\r\n PropertySelectorType: {\r\n enumValues: {\r\n \"inclusion\": 0,\r\n \"exclusion\": 1\r\n }\r\n },\r\n PullRequestConfiguration: {},\r\n PullRequestSystemType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"tfsGit\": 1,\r\n \"gitHub\": 2\r\n }\r\n },\r\n PullRequestTrigger: {},\r\n Release: {},\r\n ReleaseAbandonedEvent: {},\r\n ReleaseApproval: {},\r\n ReleaseApprovalHistory: {},\r\n ReleaseApprovalPendingEvent: {},\r\n ReleaseCondition: {},\r\n ReleaseCreatedEvent: {},\r\n ReleaseDefinition: {},\r\n ReleaseDefinitionApprovals: {},\r\n ReleaseDefinitionEnvironment: {},\r\n ReleaseDefinitionEnvironmentTemplate: {},\r\n ReleaseDefinitionExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"environments\": 2,\r\n \"artifacts\": 4,\r\n \"triggers\": 8,\r\n \"variables\": 16,\r\n \"tags\": 32,\r\n \"lastRelease\": 64\r\n }\r\n },\r\n ReleaseDefinitionQueryOrder: {\r\n enumValues: {\r\n \"idAscending\": 0,\r\n \"idDescending\": 1,\r\n \"nameAscending\": 2,\r\n \"nameDescending\": 3\r\n }\r\n },\r\n ReleaseDefinitionRevision: {},\r\n ReleaseDefinitionSource: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"restApi\": 1,\r\n \"userInterface\": 2,\r\n \"ibiza\": 4,\r\n \"portalExtensionApi\": 8\r\n }\r\n },\r\n ReleaseDefinitionSummary: {},\r\n ReleaseDeployPhase: {},\r\n ReleaseEnvironment: {},\r\n ReleaseEnvironmentCompletedEvent: {},\r\n ReleaseEnvironmentExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"tasks\": 1\r\n }\r\n },\r\n ReleaseEnvironmentStatusUpdatedEvent: {},\r\n ReleaseEnvironmentUpdateMetadata: {},\r\n ReleaseExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"environments\": 2,\r\n \"artifacts\": 4,\r\n \"approvals\": 8,\r\n \"manualInterventions\": 16,\r\n \"variables\": 32,\r\n \"tags\": 64\r\n }\r\n },\r\n ReleaseGates: {},\r\n ReleaseGatesPhase: {},\r\n ReleaseNotCreatedEvent: {},\r\n ReleaseQueryOrder: {\r\n enumValues: {\r\n \"descending\": 0,\r\n \"ascending\": 1\r\n }\r\n },\r\n ReleaseReason: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manual\": 1,\r\n \"continuousIntegration\": 2,\r\n \"schedule\": 3,\r\n \"pullRequest\": 4\r\n }\r\n },\r\n ReleaseReference: {},\r\n ReleaseRevision: {},\r\n ReleaseSchedule: {},\r\n ReleaseStartMetadata: {},\r\n ReleaseStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"draft\": 1,\r\n \"active\": 2,\r\n \"abandoned\": 4\r\n }\r\n },\r\n ReleaseTask: {},\r\n ReleaseTaskAttachment: {},\r\n ReleaseTasksUpdatedEvent: {},\r\n ReleaseTriggerBase: {},\r\n ReleaseTriggerType: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"artifactSource\": 1,\r\n \"schedule\": 2,\r\n \"sourceRepo\": 3,\r\n \"containerImage\": 4,\r\n \"package\": 5,\r\n \"pullRequest\": 6\r\n }\r\n },\r\n ReleaseUpdatedEvent: {},\r\n ReleaseUpdateMetadata: {},\r\n RunOnServerDeployPhase: {},\r\n ScheduleDays: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"monday\": 1,\r\n \"tuesday\": 2,\r\n \"wednesday\": 4,\r\n \"thursday\": 8,\r\n \"friday\": 16,\r\n \"saturday\": 32,\r\n \"sunday\": 64,\r\n \"all\": 127\r\n }\r\n },\r\n ScheduledReleaseTrigger: {},\r\n SenderType: {\r\n enumValues: {\r\n \"serviceAccount\": 1,\r\n \"requestingUser\": 2\r\n }\r\n },\r\n ServerDeploymentInput: {},\r\n SingleReleaseExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"tasks\": 1\r\n }\r\n },\r\n SourcePullRequestVersion: {},\r\n SourceRepoTrigger: {},\r\n SummaryMailSection: {},\r\n TaskStatus: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"pending\": 1,\r\n \"inProgress\": 2,\r\n \"success\": 3,\r\n \"failure\": 4,\r\n \"canceled\": 5,\r\n \"skipped\": 6,\r\n \"succeeded\": 7,\r\n \"failed\": 8,\r\n \"partiallySucceeded\": 9\r\n }\r\n },\r\n VariableGroup: {},\r\n VariableGroupActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n YamlFileSource: {},\r\n YamlFileSourceTypes: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"tfsGit\": 1\r\n }\r\n },\r\n YamlPipelineProcess: {},\r\n};\r\nexports.TypeInfo.AgentArtifactDefinition.fields = {\r\n artifactType: {\r\n enumType: exports.TypeInfo.AgentArtifactType\r\n }\r\n};\r\nexports.TypeInfo.AgentBasedDeployPhase.fields = {\r\n deploymentInput: {\r\n typeInfo: exports.TypeInfo.AgentDeploymentInput\r\n },\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n }\r\n};\r\nexports.TypeInfo.AgentDeploymentInput.fields = {\r\n parallelExecution: {\r\n typeInfo: exports.TypeInfo.ExecutionInput\r\n }\r\n};\r\nexports.TypeInfo.ApprovalOptions.fields = {\r\n executionOrder: {\r\n enumType: exports.TypeInfo.ApprovalExecutionOrder\r\n }\r\n};\r\nexports.TypeInfo.ArtifactContributionDefinition.fields = {\r\n inputDescriptors: {\r\n isArray: true,\r\n typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor\r\n }\r\n};\r\nexports.TypeInfo.ArtifactMetadata.fields = {\r\n instanceReference: {\r\n typeInfo: exports.TypeInfo.BuildVersion\r\n }\r\n};\r\nexports.TypeInfo.ArtifactSourceTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ArtifactTypeDefinition.fields = {\r\n inputDescriptors: {\r\n isArray: true,\r\n typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor\r\n }\r\n};\r\nexports.TypeInfo.ArtifactVersion.fields = {\r\n defaultVersion: {\r\n typeInfo: exports.TypeInfo.BuildVersion\r\n },\r\n versions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildVersion\r\n }\r\n};\r\nexports.TypeInfo.ArtifactVersionQueryResult.fields = {\r\n artifactVersions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ArtifactVersion\r\n }\r\n};\r\nexports.TypeInfo.AutoTriggerIssue.fields = {\r\n issueSource: {\r\n enumType: exports.TypeInfo.IssueSource\r\n },\r\n releaseTriggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.AzureKeyVaultVariableGroupProviderData.fields = {\r\n lastRefreshedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AzureKeyVaultVariableValue.fields = {\r\n expires: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildVersion.fields = {\r\n sourcePullRequestVersion: {\r\n typeInfo: exports.TypeInfo.SourcePullRequestVersion\r\n }\r\n};\r\nexports.TypeInfo.Change.fields = {\r\n timestamp: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CodeRepositoryReference.fields = {\r\n systemType: {\r\n enumType: exports.TypeInfo.PullRequestSystemType\r\n }\r\n};\r\nexports.TypeInfo.Condition.fields = {\r\n conditionType: {\r\n enumType: exports.TypeInfo.ConditionType\r\n }\r\n};\r\nexports.TypeInfo.ContainerImageTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ContinuousDeploymentTriggerIssue.fields = {\r\n issueSource: {\r\n enumType: exports.TypeInfo.IssueSource\r\n },\r\n releaseTriggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.Deployment.fields = {\r\n completedOn: {\r\n isDate: true,\r\n },\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Condition\r\n },\r\n deploymentStatus: {\r\n enumType: exports.TypeInfo.DeploymentStatus\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n operationStatus: {\r\n enumType: exports.TypeInfo.DeploymentOperationStatus\r\n },\r\n postDeployApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n preDeployApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n queuedOn: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.DeploymentReason\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n },\r\n scheduledDeploymentTime: {\r\n isDate: true,\r\n },\r\n startedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.DeploymentApprovalCompletedEvent.fields = {\r\n approval: {\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.DeploymentApprovalPendingEvent.fields = {\r\n approval: {\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n approvalOptions: {\r\n typeInfo: exports.TypeInfo.ApprovalOptions\r\n },\r\n completedApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n deployment: {\r\n typeInfo: exports.TypeInfo.Deployment\r\n },\r\n pendingApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.DeploymentAttempt.fields = {\r\n job: {\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n operationStatus: {\r\n enumType: exports.TypeInfo.DeploymentOperationStatus\r\n },\r\n postDeploymentGates: {\r\n typeInfo: exports.TypeInfo.ReleaseGates\r\n },\r\n preDeploymentGates: {\r\n typeInfo: exports.TypeInfo.ReleaseGates\r\n },\r\n queuedOn: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.DeploymentReason\r\n },\r\n releaseDeployPhases: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseDeployPhase\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.DeploymentStatus\r\n },\r\n tasks: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n }\r\n};\r\nexports.TypeInfo.DeploymentAuthorizationInfo.fields = {\r\n authorizationHeaderFor: {\r\n enumType: exports.TypeInfo.AuthorizationHeaderFor\r\n }\r\n};\r\nexports.TypeInfo.DeploymentCompletedEvent.fields = {\r\n deployment: {\r\n typeInfo: exports.TypeInfo.Deployment\r\n },\r\n environment: {\r\n typeInfo: exports.TypeInfo.ReleaseEnvironment\r\n }\r\n};\r\nexports.TypeInfo.DeploymentJob.fields = {\r\n job: {\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n },\r\n tasks: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n }\r\n};\r\nexports.TypeInfo.DeploymentManualInterventionPendingEvent.fields = {\r\n deployment: {\r\n typeInfo: exports.TypeInfo.Deployment\r\n },\r\n manualIntervention: {\r\n typeInfo: exports.TypeInfo.ManualIntervention\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.DeploymentQueryParameters.fields = {\r\n deploymentStatus: {\r\n enumType: exports.TypeInfo.DeploymentStatus\r\n },\r\n expands: {\r\n enumType: exports.TypeInfo.DeploymentExpands\r\n },\r\n maxModifiedTime: {\r\n isDate: true,\r\n },\r\n minModifiedTime: {\r\n isDate: true,\r\n },\r\n operationStatus: {\r\n enumType: exports.TypeInfo.DeploymentOperationStatus\r\n },\r\n queryOrder: {\r\n enumType: exports.TypeInfo.ReleaseQueryOrder\r\n },\r\n queryType: {\r\n enumType: exports.TypeInfo.DeploymentsQueryType\r\n }\r\n};\r\nexports.TypeInfo.DeploymentStartedEvent.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.ReleaseEnvironment\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.DeployPhase.fields = {\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.EnvironmentTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ExecutionInput.fields = {\r\n parallelExecutionType: {\r\n enumType: exports.TypeInfo.ParallelExecutionTypes\r\n }\r\n};\r\nexports.TypeInfo.Folder.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastChangedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GatesDeployPhase.fields = {\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n }\r\n};\r\nexports.TypeInfo.IgnoredGate.fields = {\r\n lastModifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.MachineGroupBasedDeployPhase.fields = {\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n }\r\n};\r\nexports.TypeInfo.MailMessage.fields = {\r\n replyBy: {\r\n isDate: true,\r\n },\r\n sections: {\r\n isArray: true,\r\n enumType: exports.TypeInfo.MailSectionType\r\n },\r\n senderType: {\r\n enumType: exports.TypeInfo.SenderType\r\n }\r\n};\r\nexports.TypeInfo.ManualIntervention.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ManualInterventionStatus\r\n }\r\n};\r\nexports.TypeInfo.ManualInterventionUpdateMetadata.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.ManualInterventionStatus\r\n }\r\n};\r\nexports.TypeInfo.MultiConfigInput.fields = {\r\n parallelExecutionType: {\r\n enumType: exports.TypeInfo.ParallelExecutionTypes\r\n }\r\n};\r\nexports.TypeInfo.MultiMachineInput.fields = {\r\n parallelExecutionType: {\r\n enumType: exports.TypeInfo.ParallelExecutionTypes\r\n }\r\n};\r\nexports.TypeInfo.PackageTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ParallelExecutionInputBase.fields = {\r\n parallelExecutionType: {\r\n enumType: exports.TypeInfo.ParallelExecutionTypes\r\n }\r\n};\r\nexports.TypeInfo.PipelineProcess.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.PipelineProcessTypes\r\n }\r\n};\r\nexports.TypeInfo.PropertySelector.fields = {\r\n selectorType: {\r\n enumType: exports.TypeInfo.PropertySelectorType\r\n }\r\n};\r\nexports.TypeInfo.PullRequestConfiguration.fields = {\r\n codeRepositoryReference: {\r\n typeInfo: exports.TypeInfo.CodeRepositoryReference\r\n }\r\n};\r\nexports.TypeInfo.PullRequestTrigger.fields = {\r\n pullRequestConfiguration: {\r\n typeInfo: exports.TypeInfo.PullRequestConfiguration\r\n },\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.Release.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n environments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseEnvironment\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.ReleaseReason\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ReleaseStatus\r\n },\r\n variableGroups: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.VariableGroup\r\n }\r\n};\r\nexports.TypeInfo.ReleaseAbandonedEvent.fields = {\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.ReleaseApproval.fields = {\r\n approvalType: {\r\n enumType: exports.TypeInfo.ApprovalType\r\n },\r\n createdOn: {\r\n isDate: true,\r\n },\r\n history: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApprovalHistory\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ApprovalStatus\r\n }\r\n};\r\nexports.TypeInfo.ReleaseApprovalHistory.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseApprovalPendingEvent.fields = {\r\n approval: {\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n approvalOptions: {\r\n typeInfo: exports.TypeInfo.ApprovalOptions\r\n },\r\n completedApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n deployment: {\r\n typeInfo: exports.TypeInfo.Deployment\r\n },\r\n environments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseEnvironment\r\n },\r\n pendingApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n }\r\n};\r\nexports.TypeInfo.ReleaseCondition.fields = {\r\n conditionType: {\r\n enumType: exports.TypeInfo.ConditionType\r\n }\r\n};\r\nexports.TypeInfo.ReleaseCreatedEvent.fields = {\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinition.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n environments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionEnvironment\r\n },\r\n lastRelease: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n pipelineProcess: {\r\n typeInfo: exports.TypeInfo.PipelineProcess\r\n },\r\n source: {\r\n enumType: exports.TypeInfo.ReleaseDefinitionSource\r\n },\r\n triggers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseTriggerBase\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinitionApprovals.fields = {\r\n approvalOptions: {\r\n typeInfo: exports.TypeInfo.ApprovalOptions\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinitionEnvironment.fields = {\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Condition\r\n },\r\n deployPhases: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeployPhase\r\n },\r\n environmentTriggers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.EnvironmentTrigger\r\n },\r\n postDeployApprovals: {\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals\r\n },\r\n preDeployApprovals: {\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals\r\n },\r\n schedules: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseSchedule\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinitionEnvironmentTemplate.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionEnvironment\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinitionRevision.fields = {\r\n changedDate: {\r\n isDate: true,\r\n },\r\n changeType: {\r\n enumType: exports.TypeInfo.AuditAction\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinitionSummary.fields = {\r\n releases: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDeployPhase.fields = {\r\n deploymentJobs: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentJob\r\n },\r\n manualInterventions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ManualIntervention\r\n },\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n },\r\n startedOn: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.DeployPhaseStatus\r\n }\r\n};\r\nexports.TypeInfo.ReleaseEnvironment.fields = {\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseCondition\r\n },\r\n createdOn: {\r\n isDate: true,\r\n },\r\n deployPhasesSnapshot: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeployPhase\r\n },\r\n deploySteps: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentAttempt\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n nextScheduledUtcTime: {\r\n isDate: true,\r\n },\r\n postApprovalsSnapshot: {\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals\r\n },\r\n postDeployApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n preApprovalsSnapshot: {\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals\r\n },\r\n preDeployApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n scheduledDeploymentTime: {\r\n isDate: true,\r\n },\r\n schedules: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseSchedule\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.EnvironmentStatus\r\n },\r\n variableGroups: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.VariableGroup\r\n }\r\n};\r\nexports.TypeInfo.ReleaseEnvironmentCompletedEvent.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.ReleaseEnvironment\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.DeploymentReason\r\n }\r\n};\r\nexports.TypeInfo.ReleaseEnvironmentStatusUpdatedEvent.fields = {\r\n environmentStatus: {\r\n enumType: exports.TypeInfo.EnvironmentStatus\r\n },\r\n latestDeploymentOperationStatus: {\r\n enumType: exports.TypeInfo.DeploymentOperationStatus\r\n },\r\n latestDeploymentStatus: {\r\n enumType: exports.TypeInfo.DeploymentStatus\r\n }\r\n};\r\nexports.TypeInfo.ReleaseEnvironmentUpdateMetadata.fields = {\r\n scheduledDeploymentTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.EnvironmentStatus\r\n }\r\n};\r\nexports.TypeInfo.ReleaseGates.fields = {\r\n deploymentJobs: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentJob\r\n },\r\n ignoredGates: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.IgnoredGate\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n stabilizationCompletedOn: {\r\n isDate: true,\r\n },\r\n startedOn: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.GateStatus\r\n },\r\n succeedingSince: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseGatesPhase.fields = {\r\n deploymentJobs: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentJob\r\n },\r\n ignoredGates: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.IgnoredGate\r\n },\r\n manualInterventions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ManualIntervention\r\n },\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n },\r\n stabilizationCompletedOn: {\r\n isDate: true,\r\n },\r\n startedOn: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.DeployPhaseStatus\r\n },\r\n succeedingSince: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseNotCreatedEvent.fields = {\r\n releaseReason: {\r\n enumType: exports.TypeInfo.ReleaseReason\r\n }\r\n};\r\nexports.TypeInfo.ReleaseReference.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.ReleaseReason\r\n }\r\n};\r\nexports.TypeInfo.ReleaseRevision.fields = {\r\n changedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseSchedule.fields = {\r\n daysToRelease: {\r\n enumType: exports.TypeInfo.ScheduleDays\r\n }\r\n};\r\nexports.TypeInfo.ReleaseStartMetadata.fields = {\r\n artifacts: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ArtifactMetadata\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.ReleaseReason\r\n }\r\n};\r\nexports.TypeInfo.ReleaseTask.fields = {\r\n dateEnded: {\r\n isDate: true,\r\n },\r\n dateStarted: {\r\n isDate: true,\r\n },\r\n finishTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.TaskStatus\r\n }\r\n};\r\nexports.TypeInfo.ReleaseTaskAttachment.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseTasksUpdatedEvent.fields = {\r\n job: {\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n },\r\n tasks: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n }\r\n};\r\nexports.TypeInfo.ReleaseTriggerBase.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ReleaseUpdatedEvent.fields = {\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.ReleaseUpdateMetadata.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.ReleaseStatus\r\n }\r\n};\r\nexports.TypeInfo.RunOnServerDeployPhase.fields = {\r\n deploymentInput: {\r\n typeInfo: exports.TypeInfo.ServerDeploymentInput\r\n },\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n }\r\n};\r\nexports.TypeInfo.ScheduledReleaseTrigger.fields = {\r\n schedule: {\r\n typeInfo: exports.TypeInfo.ReleaseSchedule\r\n },\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ServerDeploymentInput.fields = {\r\n parallelExecution: {\r\n typeInfo: exports.TypeInfo.ExecutionInput\r\n }\r\n};\r\nexports.TypeInfo.SourcePullRequestVersion.fields = {\r\n pullRequestMergedAt: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SourceRepoTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.SummaryMailSection.fields = {\r\n sectionType: {\r\n enumType: exports.TypeInfo.MailSectionType\r\n }\r\n};\r\nexports.TypeInfo.VariableGroup.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.YamlFileSource.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.YamlFileSourceTypes\r\n }\r\n};\r\nexports.TypeInfo.YamlPipelineProcess.fields = {\r\n fileSource: {\r\n typeInfo: exports.TypeInfo.YamlFileSource\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.PipelineProcessTypes\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar RoleAccess;\r\n(function (RoleAccess) {\r\n /**\r\n * Access has been explicitly set.\r\n */\r\n RoleAccess[RoleAccess[\"Assigned\"] = 1] = \"Assigned\";\r\n /**\r\n * Access has been inherited from a higher scope.\r\n */\r\n RoleAccess[RoleAccess[\"Inherited\"] = 2] = \"Inherited\";\r\n})(RoleAccess = exports.RoleAccess || (exports.RoleAccess = {}));\r\nexports.TypeInfo = {\r\n RoleAccess: {\r\n enumValues: {\r\n \"assigned\": 1,\r\n \"inherited\": 2\r\n }\r\n },\r\n RoleAssignment: {},\r\n};\r\nexports.TypeInfo.RoleAssignment.fields = {\r\n access: {\r\n enumType: exports.TypeInfo.RoleAccess\r\n },\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst FormInputInterfaces = require(\"../interfaces/common/FormInputInterfaces\");\r\nvar AadLoginPromptOption;\r\n(function (AadLoginPromptOption) {\r\n /**\r\n * Do not provide a prompt option\r\n */\r\n AadLoginPromptOption[AadLoginPromptOption[\"NoOption\"] = 0] = \"NoOption\";\r\n /**\r\n * Force the user to login again.\r\n */\r\n AadLoginPromptOption[AadLoginPromptOption[\"Login\"] = 1] = \"Login\";\r\n /**\r\n * Force the user to select which account they are logging in with instead of automatically picking the user up from the session state. NOTE: This does not work for switching between the variants of a dual-homed user.\r\n */\r\n AadLoginPromptOption[AadLoginPromptOption[\"SelectAccount\"] = 2] = \"SelectAccount\";\r\n /**\r\n * Force the user to login again. Ignore current authentication state and force the user to authenticate again. This option should be used instead of Login. \r\n */\r\n AadLoginPromptOption[AadLoginPromptOption[\"FreshLogin\"] = 3] = \"FreshLogin\";\r\n /**\r\n * Force the user to login again with mfa. Ignore current authentication state and force the user to authenticate again. This option should be used instead of Login, if MFA is required. \r\n */\r\n AadLoginPromptOption[AadLoginPromptOption[\"FreshLoginWithMfa\"] = 4] = \"FreshLoginWithMfa\";\r\n})(AadLoginPromptOption = exports.AadLoginPromptOption || (exports.AadLoginPromptOption = {}));\r\nvar AuditAction;\r\n(function (AuditAction) {\r\n AuditAction[AuditAction[\"Add\"] = 1] = \"Add\";\r\n AuditAction[AuditAction[\"Update\"] = 2] = \"Update\";\r\n AuditAction[AuditAction[\"Delete\"] = 3] = \"Delete\";\r\n AuditAction[AuditAction[\"Undelete\"] = 4] = \"Undelete\";\r\n})(AuditAction = exports.AuditAction || (exports.AuditAction = {}));\r\nvar DemandSourceType;\r\n(function (DemandSourceType) {\r\n DemandSourceType[DemandSourceType[\"Task\"] = 0] = \"Task\";\r\n DemandSourceType[DemandSourceType[\"Feature\"] = 1] = \"Feature\";\r\n})(DemandSourceType = exports.DemandSourceType || (exports.DemandSourceType = {}));\r\n/**\r\n * This is useful in getting a list of deployment groups, filtered for which caller has permissions to take a particular action.\r\n */\r\nvar DeploymentGroupActionFilter;\r\n(function (DeploymentGroupActionFilter) {\r\n /**\r\n * All deployment groups.\r\n */\r\n DeploymentGroupActionFilter[DeploymentGroupActionFilter[\"None\"] = 0] = \"None\";\r\n /**\r\n * Only deployment groups for which caller has **manage** permission.\r\n */\r\n DeploymentGroupActionFilter[DeploymentGroupActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n /**\r\n * Only deployment groups for which caller has **use** permission.\r\n */\r\n DeploymentGroupActionFilter[DeploymentGroupActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(DeploymentGroupActionFilter = exports.DeploymentGroupActionFilter || (exports.DeploymentGroupActionFilter = {}));\r\n/**\r\n * Properties to be included or expanded in deployment group objects. This is useful when getting a single or list of deployment grouops.\r\n */\r\nvar DeploymentGroupExpands;\r\n(function (DeploymentGroupExpands) {\r\n /**\r\n * No additional properties.\r\n */\r\n DeploymentGroupExpands[DeploymentGroupExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Deprecated: Include all the deployment targets.\r\n */\r\n DeploymentGroupExpands[DeploymentGroupExpands[\"Machines\"] = 2] = \"Machines\";\r\n /**\r\n * Include unique list of tags across all deployment targets.\r\n */\r\n DeploymentGroupExpands[DeploymentGroupExpands[\"Tags\"] = 4] = \"Tags\";\r\n})(DeploymentGroupExpands = exports.DeploymentGroupExpands || (exports.DeploymentGroupExpands = {}));\r\nvar DeploymentMachineExpands;\r\n(function (DeploymentMachineExpands) {\r\n DeploymentMachineExpands[DeploymentMachineExpands[\"None\"] = 0] = \"None\";\r\n DeploymentMachineExpands[DeploymentMachineExpands[\"Capabilities\"] = 2] = \"Capabilities\";\r\n DeploymentMachineExpands[DeploymentMachineExpands[\"AssignedRequest\"] = 4] = \"AssignedRequest\";\r\n})(DeploymentMachineExpands = exports.DeploymentMachineExpands || (exports.DeploymentMachineExpands = {}));\r\n/**\r\n * Properties to be included or expanded in deployment pool summary objects. This is useful when getting a single or list of deployment pool summaries.\r\n */\r\nvar DeploymentPoolSummaryExpands;\r\n(function (DeploymentPoolSummaryExpands) {\r\n /**\r\n * No additional properties\r\n */\r\n DeploymentPoolSummaryExpands[DeploymentPoolSummaryExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include deployment groups referring to the deployment pool.\r\n */\r\n DeploymentPoolSummaryExpands[DeploymentPoolSummaryExpands[\"DeploymentGroups\"] = 2] = \"DeploymentGroups\";\r\n /**\r\n * Include Resource referring to the deployment pool.\r\n */\r\n DeploymentPoolSummaryExpands[DeploymentPoolSummaryExpands[\"Resource\"] = 4] = \"Resource\";\r\n})(DeploymentPoolSummaryExpands = exports.DeploymentPoolSummaryExpands || (exports.DeploymentPoolSummaryExpands = {}));\r\n/**\r\n * Properties to be included or expanded in deployment target objects. This is useful when getting a single or list of deployment targets.\r\n */\r\nvar DeploymentTargetExpands;\r\n(function (DeploymentTargetExpands) {\r\n /**\r\n * No additional properties.\r\n */\r\n DeploymentTargetExpands[DeploymentTargetExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include capabilities of the deployment agent.\r\n */\r\n DeploymentTargetExpands[DeploymentTargetExpands[\"Capabilities\"] = 2] = \"Capabilities\";\r\n /**\r\n * Include the job request assigned to the deployment agent.\r\n */\r\n DeploymentTargetExpands[DeploymentTargetExpands[\"AssignedRequest\"] = 4] = \"AssignedRequest\";\r\n /**\r\n * Include the last completed job request of the deployment agent.\r\n */\r\n DeploymentTargetExpands[DeploymentTargetExpands[\"LastCompletedRequest\"] = 8] = \"LastCompletedRequest\";\r\n})(DeploymentTargetExpands = exports.DeploymentTargetExpands || (exports.DeploymentTargetExpands = {}));\r\nvar ElasticAgentState;\r\n(function (ElasticAgentState) {\r\n ElasticAgentState[ElasticAgentState[\"None\"] = 0] = \"None\";\r\n ElasticAgentState[ElasticAgentState[\"Enabled\"] = 1] = \"Enabled\";\r\n ElasticAgentState[ElasticAgentState[\"Online\"] = 2] = \"Online\";\r\n ElasticAgentState[ElasticAgentState[\"Assigned\"] = 4] = \"Assigned\";\r\n})(ElasticAgentState = exports.ElasticAgentState || (exports.ElasticAgentState = {}));\r\nvar ElasticComputeState;\r\n(function (ElasticComputeState) {\r\n ElasticComputeState[ElasticComputeState[\"None\"] = 0] = \"None\";\r\n ElasticComputeState[ElasticComputeState[\"Healthy\"] = 1] = \"Healthy\";\r\n ElasticComputeState[ElasticComputeState[\"Creating\"] = 2] = \"Creating\";\r\n ElasticComputeState[ElasticComputeState[\"Deleting\"] = 3] = \"Deleting\";\r\n ElasticComputeState[ElasticComputeState[\"Failed\"] = 4] = \"Failed\";\r\n ElasticComputeState[ElasticComputeState[\"Stopped\"] = 5] = \"Stopped\";\r\n})(ElasticComputeState = exports.ElasticComputeState || (exports.ElasticComputeState = {}));\r\nvar ElasticNodeState;\r\n(function (ElasticNodeState) {\r\n ElasticNodeState[ElasticNodeState[\"None\"] = 0] = \"None\";\r\n ElasticNodeState[ElasticNodeState[\"New\"] = 1] = \"New\";\r\n ElasticNodeState[ElasticNodeState[\"CreatingCompute\"] = 2] = \"CreatingCompute\";\r\n ElasticNodeState[ElasticNodeState[\"StartingAgent\"] = 3] = \"StartingAgent\";\r\n ElasticNodeState[ElasticNodeState[\"Idle\"] = 4] = \"Idle\";\r\n ElasticNodeState[ElasticNodeState[\"Assigned\"] = 5] = \"Assigned\";\r\n ElasticNodeState[ElasticNodeState[\"Offline\"] = 6] = \"Offline\";\r\n ElasticNodeState[ElasticNodeState[\"PendingReimage\"] = 7] = \"PendingReimage\";\r\n ElasticNodeState[ElasticNodeState[\"PendingDelete\"] = 8] = \"PendingDelete\";\r\n ElasticNodeState[ElasticNodeState[\"Saved\"] = 9] = \"Saved\";\r\n ElasticNodeState[ElasticNodeState[\"DeletingCompute\"] = 10] = \"DeletingCompute\";\r\n ElasticNodeState[ElasticNodeState[\"Deleted\"] = 11] = \"Deleted\";\r\n ElasticNodeState[ElasticNodeState[\"Lost\"] = 12] = \"Lost\";\r\n})(ElasticNodeState = exports.ElasticNodeState || (exports.ElasticNodeState = {}));\r\nvar ElasticPoolState;\r\n(function (ElasticPoolState) {\r\n /**\r\n * Online and healthy\r\n */\r\n ElasticPoolState[ElasticPoolState[\"Online\"] = 0] = \"Online\";\r\n ElasticPoolState[ElasticPoolState[\"Offline\"] = 1] = \"Offline\";\r\n ElasticPoolState[ElasticPoolState[\"Unhealthy\"] = 2] = \"Unhealthy\";\r\n ElasticPoolState[ElasticPoolState[\"New\"] = 3] = \"New\";\r\n})(ElasticPoolState = exports.ElasticPoolState || (exports.ElasticPoolState = {}));\r\n/**\r\n * This is useful in getting a list of Environments, filtered for which caller has permissions to take a particular action.\r\n */\r\nvar EnvironmentActionFilter;\r\n(function (EnvironmentActionFilter) {\r\n /**\r\n * All environments for which user has **view** permission.\r\n */\r\n EnvironmentActionFilter[EnvironmentActionFilter[\"None\"] = 0] = \"None\";\r\n /**\r\n * Only environments for which caller has **manage** permission.\r\n */\r\n EnvironmentActionFilter[EnvironmentActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n /**\r\n * Only environments for which caller has **use** permission.\r\n */\r\n EnvironmentActionFilter[EnvironmentActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(EnvironmentActionFilter = exports.EnvironmentActionFilter || (exports.EnvironmentActionFilter = {}));\r\n/**\r\n * Properties to be included or expanded in environment objects. This is useful when getting a single environment.\r\n */\r\nvar EnvironmentExpands;\r\n(function (EnvironmentExpands) {\r\n /**\r\n * No additional properties\r\n */\r\n EnvironmentExpands[EnvironmentExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include resource references referring to the environment.\r\n */\r\n EnvironmentExpands[EnvironmentExpands[\"ResourceReferences\"] = 1] = \"ResourceReferences\";\r\n})(EnvironmentExpands = exports.EnvironmentExpands || (exports.EnvironmentExpands = {}));\r\n/**\r\n * EnvironmentResourceType.\r\n */\r\nvar EnvironmentResourceType;\r\n(function (EnvironmentResourceType) {\r\n EnvironmentResourceType[EnvironmentResourceType[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Unknown resource type\r\n */\r\n EnvironmentResourceType[EnvironmentResourceType[\"Generic\"] = 1] = \"Generic\";\r\n /**\r\n * Virtual machine resource type\r\n */\r\n EnvironmentResourceType[EnvironmentResourceType[\"VirtualMachine\"] = 2] = \"VirtualMachine\";\r\n /**\r\n * Kubernetes resource type\r\n */\r\n EnvironmentResourceType[EnvironmentResourceType[\"Kubernetes\"] = 4] = \"Kubernetes\";\r\n})(EnvironmentResourceType = exports.EnvironmentResourceType || (exports.EnvironmentResourceType = {}));\r\nvar IssueType;\r\n(function (IssueType) {\r\n IssueType[IssueType[\"Error\"] = 1] = \"Error\";\r\n IssueType[IssueType[\"Warning\"] = 2] = \"Warning\";\r\n})(IssueType = exports.IssueType || (exports.IssueType = {}));\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\r\n LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\r\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\r\n})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));\r\nvar MachineGroupActionFilter;\r\n(function (MachineGroupActionFilter) {\r\n MachineGroupActionFilter[MachineGroupActionFilter[\"None\"] = 0] = \"None\";\r\n MachineGroupActionFilter[MachineGroupActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n MachineGroupActionFilter[MachineGroupActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(MachineGroupActionFilter = exports.MachineGroupActionFilter || (exports.MachineGroupActionFilter = {}));\r\nvar MaskType;\r\n(function (MaskType) {\r\n MaskType[MaskType[\"Variable\"] = 1] = \"Variable\";\r\n MaskType[MaskType[\"Regex\"] = 2] = \"Regex\";\r\n})(MaskType = exports.MaskType || (exports.MaskType = {}));\r\nvar OperatingSystemType;\r\n(function (OperatingSystemType) {\r\n OperatingSystemType[OperatingSystemType[\"Windows\"] = 0] = \"Windows\";\r\n OperatingSystemType[OperatingSystemType[\"Linux\"] = 1] = \"Linux\";\r\n})(OperatingSystemType = exports.OperatingSystemType || (exports.OperatingSystemType = {}));\r\nvar OperationType;\r\n(function (OperationType) {\r\n OperationType[OperationType[\"ConfigurationJob\"] = 0] = \"ConfigurationJob\";\r\n OperationType[OperationType[\"SizingJob\"] = 1] = \"SizingJob\";\r\n OperationType[OperationType[\"IncreaseCapacity\"] = 2] = \"IncreaseCapacity\";\r\n OperationType[OperationType[\"Reimage\"] = 3] = \"Reimage\";\r\n OperationType[OperationType[\"DeleteVMs\"] = 4] = \"DeleteVMs\";\r\n})(OperationType = exports.OperationType || (exports.OperationType = {}));\r\nvar PlanGroupStatus;\r\n(function (PlanGroupStatus) {\r\n PlanGroupStatus[PlanGroupStatus[\"Running\"] = 1] = \"Running\";\r\n PlanGroupStatus[PlanGroupStatus[\"Queued\"] = 2] = \"Queued\";\r\n PlanGroupStatus[PlanGroupStatus[\"All\"] = 3] = \"All\";\r\n})(PlanGroupStatus = exports.PlanGroupStatus || (exports.PlanGroupStatus = {}));\r\nvar PlanGroupStatusFilter;\r\n(function (PlanGroupStatusFilter) {\r\n PlanGroupStatusFilter[PlanGroupStatusFilter[\"Running\"] = 1] = \"Running\";\r\n PlanGroupStatusFilter[PlanGroupStatusFilter[\"Queued\"] = 2] = \"Queued\";\r\n PlanGroupStatusFilter[PlanGroupStatusFilter[\"All\"] = 3] = \"All\";\r\n})(PlanGroupStatusFilter = exports.PlanGroupStatusFilter || (exports.PlanGroupStatusFilter = {}));\r\nvar ResourceLockStatus;\r\n(function (ResourceLockStatus) {\r\n ResourceLockStatus[ResourceLockStatus[\"Queued\"] = 0] = \"Queued\";\r\n ResourceLockStatus[ResourceLockStatus[\"InUse\"] = 1] = \"InUse\";\r\n ResourceLockStatus[ResourceLockStatus[\"Finished\"] = 2] = \"Finished\";\r\n ResourceLockStatus[ResourceLockStatus[\"TimedOut\"] = 3] = \"TimedOut\";\r\n ResourceLockStatus[ResourceLockStatus[\"Canceled\"] = 4] = \"Canceled\";\r\n ResourceLockStatus[ResourceLockStatus[\"Abandoned\"] = 5] = \"Abandoned\";\r\n})(ResourceLockStatus = exports.ResourceLockStatus || (exports.ResourceLockStatus = {}));\r\nvar SecureFileActionFilter;\r\n(function (SecureFileActionFilter) {\r\n SecureFileActionFilter[SecureFileActionFilter[\"None\"] = 0] = \"None\";\r\n SecureFileActionFilter[SecureFileActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n SecureFileActionFilter[SecureFileActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(SecureFileActionFilter = exports.SecureFileActionFilter || (exports.SecureFileActionFilter = {}));\r\n/**\r\n * This is useful in getting a list of deployment targets, filtered by the result of their last job.\r\n */\r\nvar TaskAgentJobResultFilter;\r\n(function (TaskAgentJobResultFilter) {\r\n /**\r\n * Only those deployment targets on which last job failed (**Abandoned**, **Canceled**, **Failed**, **Skipped**).\r\n */\r\n TaskAgentJobResultFilter[TaskAgentJobResultFilter[\"Failed\"] = 1] = \"Failed\";\r\n /**\r\n * Only those deployment targets on which last job Passed (**Succeeded**, **Succeeded with issues**).\r\n */\r\n TaskAgentJobResultFilter[TaskAgentJobResultFilter[\"Passed\"] = 2] = \"Passed\";\r\n /**\r\n * Only those deployment targets that never executed a job.\r\n */\r\n TaskAgentJobResultFilter[TaskAgentJobResultFilter[\"NeverDeployed\"] = 4] = \"NeverDeployed\";\r\n /**\r\n * All deployment targets.\r\n */\r\n TaskAgentJobResultFilter[TaskAgentJobResultFilter[\"All\"] = 7] = \"All\";\r\n})(TaskAgentJobResultFilter = exports.TaskAgentJobResultFilter || (exports.TaskAgentJobResultFilter = {}));\r\nvar TaskAgentJobStepType;\r\n(function (TaskAgentJobStepType) {\r\n TaskAgentJobStepType[TaskAgentJobStepType[\"Task\"] = 1] = \"Task\";\r\n TaskAgentJobStepType[TaskAgentJobStepType[\"Action\"] = 2] = \"Action\";\r\n})(TaskAgentJobStepType = exports.TaskAgentJobStepType || (exports.TaskAgentJobStepType = {}));\r\n/**\r\n * Filters pools based on whether the calling user has permission to use or manage the pool.\r\n */\r\nvar TaskAgentPoolActionFilter;\r\n(function (TaskAgentPoolActionFilter) {\r\n TaskAgentPoolActionFilter[TaskAgentPoolActionFilter[\"None\"] = 0] = \"None\";\r\n TaskAgentPoolActionFilter[TaskAgentPoolActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n TaskAgentPoolActionFilter[TaskAgentPoolActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(TaskAgentPoolActionFilter = exports.TaskAgentPoolActionFilter || (exports.TaskAgentPoolActionFilter = {}));\r\nvar TaskAgentPoolMaintenanceJobResult;\r\n(function (TaskAgentPoolMaintenanceJobResult) {\r\n TaskAgentPoolMaintenanceJobResult[TaskAgentPoolMaintenanceJobResult[\"Succeeded\"] = 1] = \"Succeeded\";\r\n TaskAgentPoolMaintenanceJobResult[TaskAgentPoolMaintenanceJobResult[\"Failed\"] = 2] = \"Failed\";\r\n TaskAgentPoolMaintenanceJobResult[TaskAgentPoolMaintenanceJobResult[\"Canceled\"] = 4] = \"Canceled\";\r\n})(TaskAgentPoolMaintenanceJobResult = exports.TaskAgentPoolMaintenanceJobResult || (exports.TaskAgentPoolMaintenanceJobResult = {}));\r\nvar TaskAgentPoolMaintenanceJobStatus;\r\n(function (TaskAgentPoolMaintenanceJobStatus) {\r\n TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus[\"Completed\"] = 2] = \"Completed\";\r\n TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus[\"Cancelling\"] = 4] = \"Cancelling\";\r\n TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus[\"Queued\"] = 8] = \"Queued\";\r\n})(TaskAgentPoolMaintenanceJobStatus = exports.TaskAgentPoolMaintenanceJobStatus || (exports.TaskAgentPoolMaintenanceJobStatus = {}));\r\nvar TaskAgentPoolMaintenanceScheduleDays;\r\n(function (TaskAgentPoolMaintenanceScheduleDays) {\r\n /**\r\n * Do not run.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"None\"] = 0] = \"None\";\r\n /**\r\n * Run on Monday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Monday\"] = 1] = \"Monday\";\r\n /**\r\n * Run on Tuesday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Tuesday\"] = 2] = \"Tuesday\";\r\n /**\r\n * Run on Wednesday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Wednesday\"] = 4] = \"Wednesday\";\r\n /**\r\n * Run on Thursday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Thursday\"] = 8] = \"Thursday\";\r\n /**\r\n * Run on Friday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Friday\"] = 16] = \"Friday\";\r\n /**\r\n * Run on Saturday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Saturday\"] = 32] = \"Saturday\";\r\n /**\r\n * Run on Sunday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Sunday\"] = 64] = \"Sunday\";\r\n /**\r\n * Run on all days of the week.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"All\"] = 127] = \"All\";\r\n})(TaskAgentPoolMaintenanceScheduleDays = exports.TaskAgentPoolMaintenanceScheduleDays || (exports.TaskAgentPoolMaintenanceScheduleDays = {}));\r\n/**\r\n * Additional settings and descriptors for a TaskAgentPool\r\n */\r\nvar TaskAgentPoolOptions;\r\n(function (TaskAgentPoolOptions) {\r\n TaskAgentPoolOptions[TaskAgentPoolOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * TaskAgentPool backed by the Elastic pool service\r\n */\r\n TaskAgentPoolOptions[TaskAgentPoolOptions[\"ElasticPool\"] = 1] = \"ElasticPool\";\r\n /**\r\n * Set to true if agents are re-imaged after each TaskAgentJobRequest\r\n */\r\n TaskAgentPoolOptions[TaskAgentPoolOptions[\"SingleUseAgents\"] = 2] = \"SingleUseAgents\";\r\n /**\r\n * Set to true if agents are held for investigation after a TaskAgentJobRequest failure\r\n */\r\n TaskAgentPoolOptions[TaskAgentPoolOptions[\"PreserveAgentOnJobFailure\"] = 4] = \"PreserveAgentOnJobFailure\";\r\n})(TaskAgentPoolOptions = exports.TaskAgentPoolOptions || (exports.TaskAgentPoolOptions = {}));\r\n/**\r\n * The type of agent pool.\r\n */\r\nvar TaskAgentPoolType;\r\n(function (TaskAgentPoolType) {\r\n /**\r\n * A typical pool of task agents\r\n */\r\n TaskAgentPoolType[TaskAgentPoolType[\"Automation\"] = 1] = \"Automation\";\r\n /**\r\n * A deployment pool\r\n */\r\n TaskAgentPoolType[TaskAgentPoolType[\"Deployment\"] = 2] = \"Deployment\";\r\n})(TaskAgentPoolType = exports.TaskAgentPoolType || (exports.TaskAgentPoolType = {}));\r\n/**\r\n * Filters queues based on whether the calling user has permission to use or manage the queue.\r\n */\r\nvar TaskAgentQueueActionFilter;\r\n(function (TaskAgentQueueActionFilter) {\r\n TaskAgentQueueActionFilter[TaskAgentQueueActionFilter[\"None\"] = 0] = \"None\";\r\n TaskAgentQueueActionFilter[TaskAgentQueueActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n TaskAgentQueueActionFilter[TaskAgentQueueActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(TaskAgentQueueActionFilter = exports.TaskAgentQueueActionFilter || (exports.TaskAgentQueueActionFilter = {}));\r\nvar TaskAgentRequestUpdateOptions;\r\n(function (TaskAgentRequestUpdateOptions) {\r\n TaskAgentRequestUpdateOptions[TaskAgentRequestUpdateOptions[\"None\"] = 0] = \"None\";\r\n TaskAgentRequestUpdateOptions[TaskAgentRequestUpdateOptions[\"BumpRequestToTop\"] = 1] = \"BumpRequestToTop\";\r\n})(TaskAgentRequestUpdateOptions = exports.TaskAgentRequestUpdateOptions || (exports.TaskAgentRequestUpdateOptions = {}));\r\nvar TaskAgentStatus;\r\n(function (TaskAgentStatus) {\r\n TaskAgentStatus[TaskAgentStatus[\"Offline\"] = 1] = \"Offline\";\r\n TaskAgentStatus[TaskAgentStatus[\"Online\"] = 2] = \"Online\";\r\n})(TaskAgentStatus = exports.TaskAgentStatus || (exports.TaskAgentStatus = {}));\r\n/**\r\n * This is useful in getting a list of deployment targets, filtered by the deployment agent status.\r\n */\r\nvar TaskAgentStatusFilter;\r\n(function (TaskAgentStatusFilter) {\r\n /**\r\n * Only deployment targets that are offline.\r\n */\r\n TaskAgentStatusFilter[TaskAgentStatusFilter[\"Offline\"] = 1] = \"Offline\";\r\n /**\r\n * Only deployment targets that are online.\r\n */\r\n TaskAgentStatusFilter[TaskAgentStatusFilter[\"Online\"] = 2] = \"Online\";\r\n /**\r\n * All deployment targets.\r\n */\r\n TaskAgentStatusFilter[TaskAgentStatusFilter[\"All\"] = 3] = \"All\";\r\n})(TaskAgentStatusFilter = exports.TaskAgentStatusFilter || (exports.TaskAgentStatusFilter = {}));\r\nvar TaskAgentUpdateReasonType;\r\n(function (TaskAgentUpdateReasonType) {\r\n TaskAgentUpdateReasonType[TaskAgentUpdateReasonType[\"Manual\"] = 1] = \"Manual\";\r\n TaskAgentUpdateReasonType[TaskAgentUpdateReasonType[\"MinAgentVersionRequired\"] = 2] = \"MinAgentVersionRequired\";\r\n TaskAgentUpdateReasonType[TaskAgentUpdateReasonType[\"Downgrade\"] = 3] = \"Downgrade\";\r\n})(TaskAgentUpdateReasonType = exports.TaskAgentUpdateReasonType || (exports.TaskAgentUpdateReasonType = {}));\r\nvar TaskCommandMode;\r\n(function (TaskCommandMode) {\r\n TaskCommandMode[TaskCommandMode[\"Any\"] = 0] = \"Any\";\r\n TaskCommandMode[TaskCommandMode[\"Restricted\"] = 1] = \"Restricted\";\r\n})(TaskCommandMode = exports.TaskCommandMode || (exports.TaskCommandMode = {}));\r\nvar TaskDefinitionStatus;\r\n(function (TaskDefinitionStatus) {\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"Preinstalled\"] = 1] = \"Preinstalled\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"ReceivedInstallOrUpdate\"] = 2] = \"ReceivedInstallOrUpdate\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"Installed\"] = 3] = \"Installed\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"ReceivedUninstall\"] = 4] = \"ReceivedUninstall\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"Uninstalled\"] = 5] = \"Uninstalled\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"RequestedUpdate\"] = 6] = \"RequestedUpdate\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"Updated\"] = 7] = \"Updated\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"AlreadyUpToDate\"] = 8] = \"AlreadyUpToDate\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"InlineUpdateReceived\"] = 9] = \"InlineUpdateReceived\";\r\n})(TaskDefinitionStatus = exports.TaskDefinitionStatus || (exports.TaskDefinitionStatus = {}));\r\nvar TaskGroupExpands;\r\n(function (TaskGroupExpands) {\r\n TaskGroupExpands[TaskGroupExpands[\"None\"] = 0] = \"None\";\r\n TaskGroupExpands[TaskGroupExpands[\"Tasks\"] = 2] = \"Tasks\";\r\n})(TaskGroupExpands = exports.TaskGroupExpands || (exports.TaskGroupExpands = {}));\r\n/**\r\n * Specifies the desired ordering of taskGroups.\r\n */\r\nvar TaskGroupQueryOrder;\r\n(function (TaskGroupQueryOrder) {\r\n /**\r\n * Order by createdon ascending.\r\n */\r\n TaskGroupQueryOrder[TaskGroupQueryOrder[\"CreatedOnAscending\"] = 0] = \"CreatedOnAscending\";\r\n /**\r\n * Order by createdon descending.\r\n */\r\n TaskGroupQueryOrder[TaskGroupQueryOrder[\"CreatedOnDescending\"] = 1] = \"CreatedOnDescending\";\r\n})(TaskGroupQueryOrder = exports.TaskGroupQueryOrder || (exports.TaskGroupQueryOrder = {}));\r\nvar TaskOrchestrationItemType;\r\n(function (TaskOrchestrationItemType) {\r\n TaskOrchestrationItemType[TaskOrchestrationItemType[\"Container\"] = 0] = \"Container\";\r\n TaskOrchestrationItemType[TaskOrchestrationItemType[\"Job\"] = 1] = \"Job\";\r\n})(TaskOrchestrationItemType = exports.TaskOrchestrationItemType || (exports.TaskOrchestrationItemType = {}));\r\nvar TaskOrchestrationPlanState;\r\n(function (TaskOrchestrationPlanState) {\r\n TaskOrchestrationPlanState[TaskOrchestrationPlanState[\"InProgress\"] = 1] = \"InProgress\";\r\n TaskOrchestrationPlanState[TaskOrchestrationPlanState[\"Queued\"] = 2] = \"Queued\";\r\n TaskOrchestrationPlanState[TaskOrchestrationPlanState[\"Completed\"] = 4] = \"Completed\";\r\n TaskOrchestrationPlanState[TaskOrchestrationPlanState[\"Throttled\"] = 8] = \"Throttled\";\r\n})(TaskOrchestrationPlanState = exports.TaskOrchestrationPlanState || (exports.TaskOrchestrationPlanState = {}));\r\nvar TaskResult;\r\n(function (TaskResult) {\r\n TaskResult[TaskResult[\"Succeeded\"] = 0] = \"Succeeded\";\r\n TaskResult[TaskResult[\"SucceededWithIssues\"] = 1] = \"SucceededWithIssues\";\r\n TaskResult[TaskResult[\"Failed\"] = 2] = \"Failed\";\r\n TaskResult[TaskResult[\"Canceled\"] = 3] = \"Canceled\";\r\n TaskResult[TaskResult[\"Skipped\"] = 4] = \"Skipped\";\r\n TaskResult[TaskResult[\"Abandoned\"] = 5] = \"Abandoned\";\r\n})(TaskResult = exports.TaskResult || (exports.TaskResult = {}));\r\nvar TimelineRecordState;\r\n(function (TimelineRecordState) {\r\n TimelineRecordState[TimelineRecordState[\"Pending\"] = 0] = \"Pending\";\r\n TimelineRecordState[TimelineRecordState[\"InProgress\"] = 1] = \"InProgress\";\r\n TimelineRecordState[TimelineRecordState[\"Completed\"] = 2] = \"Completed\";\r\n})(TimelineRecordState = exports.TimelineRecordState || (exports.TimelineRecordState = {}));\r\nvar VariableGroupActionFilter;\r\n(function (VariableGroupActionFilter) {\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"None\"] = 0] = \"None\";\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(VariableGroupActionFilter = exports.VariableGroupActionFilter || (exports.VariableGroupActionFilter = {}));\r\n/**\r\n * Specifies the desired ordering of variableGroups.\r\n */\r\nvar VariableGroupQueryOrder;\r\n(function (VariableGroupQueryOrder) {\r\n /**\r\n * Order by id ascending.\r\n */\r\n VariableGroupQueryOrder[VariableGroupQueryOrder[\"IdAscending\"] = 0] = \"IdAscending\";\r\n /**\r\n * Order by id descending.\r\n */\r\n VariableGroupQueryOrder[VariableGroupQueryOrder[\"IdDescending\"] = 1] = \"IdDescending\";\r\n})(VariableGroupQueryOrder = exports.VariableGroupQueryOrder || (exports.VariableGroupQueryOrder = {}));\r\nexports.TypeInfo = {\r\n AadLoginPromptOption: {\r\n enumValues: {\r\n \"noOption\": 0,\r\n \"login\": 1,\r\n \"selectAccount\": 2,\r\n \"freshLogin\": 3,\r\n \"freshLoginWithMfa\": 4\r\n }\r\n },\r\n AgentChangeEvent: {},\r\n AgentJobRequestMessage: {},\r\n AgentPoolEvent: {},\r\n AgentQueueEvent: {},\r\n AgentQueuesEvent: {},\r\n AuditAction: {\r\n enumValues: {\r\n \"add\": 1,\r\n \"update\": 2,\r\n \"delete\": 3,\r\n \"undelete\": 4\r\n }\r\n },\r\n AzureKeyVaultVariableGroupProviderData: {},\r\n AzureKeyVaultVariableValue: {},\r\n DemandMinimumVersion: {},\r\n DemandSource: {},\r\n DemandSourceType: {\r\n enumValues: {\r\n \"task\": 0,\r\n \"feature\": 1\r\n }\r\n },\r\n DeploymentGroup: {},\r\n DeploymentGroupActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n DeploymentGroupExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"machines\": 2,\r\n \"tags\": 4\r\n }\r\n },\r\n DeploymentGroupMetrics: {},\r\n DeploymentGroupReference: {},\r\n DeploymentMachine: {},\r\n DeploymentMachineChangedData: {},\r\n DeploymentMachineExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"capabilities\": 2,\r\n \"assignedRequest\": 4\r\n }\r\n },\r\n DeploymentMachineGroup: {},\r\n DeploymentMachineGroupReference: {},\r\n DeploymentMachinesChangeEvent: {},\r\n DeploymentPoolSummary: {},\r\n DeploymentPoolSummaryExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"deploymentGroups\": 2,\r\n \"resource\": 4\r\n }\r\n },\r\n DeploymentTargetExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"capabilities\": 2,\r\n \"assignedRequest\": 4,\r\n \"lastCompletedRequest\": 8\r\n }\r\n },\r\n ElasticAgentState: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"enabled\": 1,\r\n \"online\": 2,\r\n \"assigned\": 4\r\n }\r\n },\r\n ElasticComputeState: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"healthy\": 1,\r\n \"creating\": 2,\r\n \"deleting\": 3,\r\n \"failed\": 4,\r\n \"stopped\": 5\r\n }\r\n },\r\n ElasticNode: {},\r\n ElasticNodeSettings: {},\r\n ElasticNodeState: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"new\": 1,\r\n \"creatingCompute\": 2,\r\n \"startingAgent\": 3,\r\n \"idle\": 4,\r\n \"assigned\": 5,\r\n \"offline\": 6,\r\n \"pendingReimage\": 7,\r\n \"pendingDelete\": 8,\r\n \"saved\": 9,\r\n \"deletingCompute\": 10,\r\n \"deleted\": 11,\r\n \"lost\": 12\r\n }\r\n },\r\n ElasticPool: {},\r\n ElasticPoolCreationResult: {},\r\n ElasticPoolLog: {},\r\n ElasticPoolSettings: {},\r\n ElasticPoolState: {\r\n enumValues: {\r\n \"online\": 0,\r\n \"offline\": 1,\r\n \"unhealthy\": 2,\r\n \"new\": 3\r\n }\r\n },\r\n EnvironmentActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n EnvironmentDeploymentExecutionRecord: {},\r\n EnvironmentExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"resourceReferences\": 1\r\n }\r\n },\r\n EnvironmentInstance: {},\r\n EnvironmentResource: {},\r\n EnvironmentResourceDeploymentExecutionRecord: {},\r\n EnvironmentResourceReference: {},\r\n EnvironmentResourceType: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"generic\": 1,\r\n \"virtualMachine\": 2,\r\n \"kubernetes\": 4\r\n }\r\n },\r\n Issue: {},\r\n IssueType: {\r\n enumValues: {\r\n \"error\": 1,\r\n \"warning\": 2\r\n }\r\n },\r\n JobAssignedEvent: {},\r\n JobCompletedEvent: {},\r\n JobEnvironment: {},\r\n JobRequestMessage: {},\r\n KubernetesResource: {},\r\n LogLevel: {\r\n enumValues: {\r\n \"error\": 0,\r\n \"warning\": 1,\r\n \"info\": 2\r\n }\r\n },\r\n MachineGroupActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n MaskHint: {},\r\n MaskType: {\r\n enumValues: {\r\n \"variable\": 1,\r\n \"regex\": 2\r\n }\r\n },\r\n OperatingSystemType: {\r\n enumValues: {\r\n \"windows\": 0,\r\n \"linux\": 1\r\n }\r\n },\r\n OperationType: {\r\n enumValues: {\r\n \"configurationJob\": 0,\r\n \"sizingJob\": 1,\r\n \"increaseCapacity\": 2,\r\n \"reimage\": 3,\r\n \"deleteVMs\": 4\r\n }\r\n },\r\n PackageMetadata: {},\r\n PlanEnvironment: {},\r\n PlanGroupStatus: {\r\n enumValues: {\r\n \"running\": 1,\r\n \"queued\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n PlanGroupStatusFilter: {\r\n enumValues: {\r\n \"running\": 1,\r\n \"queued\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n ResourceLockRequest: {},\r\n ResourceLockStatus: {\r\n enumValues: {\r\n \"queued\": 0,\r\n \"inUse\": 1,\r\n \"finished\": 2,\r\n \"timedOut\": 3,\r\n \"canceled\": 4,\r\n \"abandoned\": 5\r\n }\r\n },\r\n ResourceUsage: {},\r\n SecureFile: {},\r\n SecureFileActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n SecureFileEvent: {},\r\n ServerTaskRequestMessage: {},\r\n ServiceEndpointAuthenticationScheme: {},\r\n ServiceEndpointExecutionData: {},\r\n ServiceEndpointExecutionRecord: {},\r\n ServiceEndpointExecutionRecordsInput: {},\r\n ServiceEndpointRequestResult: {},\r\n ServiceEndpointType: {},\r\n TaskAgent: {},\r\n TaskAgentCloudRequest: {},\r\n TaskAgentCloudType: {},\r\n TaskAgentDowngrade: {},\r\n TaskAgentJob: {},\r\n TaskAgentJobRequest: {},\r\n TaskAgentJobResultFilter: {\r\n enumValues: {\r\n \"failed\": 1,\r\n \"passed\": 2,\r\n \"neverDeployed\": 4,\r\n \"all\": 7\r\n }\r\n },\r\n TaskAgentJobStep: {},\r\n TaskAgentJobStepType: {\r\n enumValues: {\r\n \"task\": 1,\r\n \"action\": 2\r\n }\r\n },\r\n TaskAgentManualUpdate: {},\r\n TaskAgentMinAgentVersionRequiredUpdate: {},\r\n TaskAgentPool: {},\r\n TaskAgentPoolActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n TaskAgentPoolMaintenanceDefinition: {},\r\n TaskAgentPoolMaintenanceJob: {},\r\n TaskAgentPoolMaintenanceJobResult: {\r\n enumValues: {\r\n \"succeeded\": 1,\r\n \"failed\": 2,\r\n \"canceled\": 4\r\n }\r\n },\r\n TaskAgentPoolMaintenanceJobStatus: {\r\n enumValues: {\r\n \"inProgress\": 1,\r\n \"completed\": 2,\r\n \"cancelling\": 4,\r\n \"queued\": 8\r\n }\r\n },\r\n TaskAgentPoolMaintenanceJobTargetAgent: {},\r\n TaskAgentPoolMaintenanceSchedule: {},\r\n TaskAgentPoolMaintenanceScheduleDays: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"monday\": 1,\r\n \"tuesday\": 2,\r\n \"wednesday\": 4,\r\n \"thursday\": 8,\r\n \"friday\": 16,\r\n \"saturday\": 32,\r\n \"sunday\": 64,\r\n \"all\": 127\r\n }\r\n },\r\n TaskAgentPoolOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"elasticPool\": 1,\r\n \"singleUseAgents\": 2,\r\n \"preserveAgentOnJobFailure\": 4\r\n }\r\n },\r\n TaskAgentPoolReference: {},\r\n TaskAgentPoolStatus: {},\r\n TaskAgentPoolSummary: {},\r\n TaskAgentPoolType: {\r\n enumValues: {\r\n \"automation\": 1,\r\n \"deployment\": 2\r\n }\r\n },\r\n TaskAgentQueue: {},\r\n TaskAgentQueueActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n TaskAgentReference: {},\r\n TaskAgentRequestUpdateOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"bumpRequestToTop\": 1\r\n }\r\n },\r\n TaskAgentSession: {},\r\n TaskAgentStatus: {\r\n enumValues: {\r\n \"offline\": 1,\r\n \"online\": 2\r\n }\r\n },\r\n TaskAgentStatusFilter: {\r\n enumValues: {\r\n \"offline\": 1,\r\n \"online\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n TaskAgentUpdate: {},\r\n TaskAgentUpdateReason: {},\r\n TaskAgentUpdateReasonType: {\r\n enumValues: {\r\n \"manual\": 1,\r\n \"minAgentVersionRequired\": 2,\r\n \"downgrade\": 3\r\n }\r\n },\r\n TaskAttachment: {},\r\n TaskCommandMode: {\r\n enumValues: {\r\n \"any\": 0,\r\n \"restricted\": 1\r\n }\r\n },\r\n TaskCommandRestrictions: {},\r\n TaskCompletedEvent: {},\r\n TaskDefinition: {},\r\n TaskDefinitionStatus: {\r\n enumValues: {\r\n \"preinstalled\": 1,\r\n \"receivedInstallOrUpdate\": 2,\r\n \"installed\": 3,\r\n \"receivedUninstall\": 4,\r\n \"uninstalled\": 5,\r\n \"requestedUpdate\": 6,\r\n \"updated\": 7,\r\n \"alreadyUpToDate\": 8,\r\n \"inlineUpdateReceived\": 9\r\n }\r\n },\r\n TaskGroup: {},\r\n TaskGroupExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"tasks\": 2\r\n }\r\n },\r\n TaskGroupQueryOrder: {\r\n enumValues: {\r\n \"createdOnAscending\": 0,\r\n \"createdOnDescending\": 1\r\n }\r\n },\r\n TaskGroupRevision: {},\r\n TaskLog: {},\r\n TaskOrchestrationContainer: {},\r\n TaskOrchestrationItem: {},\r\n TaskOrchestrationItemType: {\r\n enumValues: {\r\n \"container\": 0,\r\n \"job\": 1\r\n }\r\n },\r\n TaskOrchestrationJob: {},\r\n TaskOrchestrationPlan: {},\r\n TaskOrchestrationPlanGroup: {},\r\n TaskOrchestrationPlanGroupsQueueMetrics: {},\r\n TaskOrchestrationPlanState: {\r\n enumValues: {\r\n \"inProgress\": 1,\r\n \"queued\": 2,\r\n \"completed\": 4,\r\n \"throttled\": 8\r\n }\r\n },\r\n TaskOrchestrationQueuedPlan: {},\r\n TaskOrchestrationQueuedPlanGroup: {},\r\n TaskRestrictions: {},\r\n TaskResult: {\r\n enumValues: {\r\n \"succeeded\": 0,\r\n \"succeededWithIssues\": 1,\r\n \"failed\": 2,\r\n \"canceled\": 3,\r\n \"skipped\": 4,\r\n \"abandoned\": 5\r\n }\r\n },\r\n Timeline: {},\r\n TimelineRecord: {},\r\n TimelineRecordState: {\r\n enumValues: {\r\n \"pending\": 0,\r\n \"inProgress\": 1,\r\n \"completed\": 2\r\n }\r\n },\r\n VariableGroup: {},\r\n VariableGroupActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n VariableGroupQueryOrder: {\r\n enumValues: {\r\n \"idAscending\": 0,\r\n \"idDescending\": 1\r\n }\r\n },\r\n VirtualMachine: {},\r\n VirtualMachineGroup: {},\r\n VirtualMachineResource: {},\r\n VirtualMachineResourceCreateParameters: {},\r\n};\r\nexports.TypeInfo.AgentChangeEvent.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgent\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n timeStamp: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AgentJobRequestMessage.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.JobEnvironment\r\n },\r\n lockedUntil: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AgentPoolEvent.fields = {\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPool\r\n }\r\n};\r\nexports.TypeInfo.AgentQueueEvent.fields = {\r\n queue: {\r\n typeInfo: exports.TypeInfo.TaskAgentQueue\r\n }\r\n};\r\nexports.TypeInfo.AgentQueuesEvent.fields = {\r\n queues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentQueue\r\n }\r\n};\r\nexports.TypeInfo.AzureKeyVaultVariableGroupProviderData.fields = {\r\n lastRefreshedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AzureKeyVaultVariableValue.fields = {\r\n expires: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.DemandMinimumVersion.fields = {\r\n source: {\r\n typeInfo: exports.TypeInfo.DemandSource\r\n }\r\n};\r\nexports.TypeInfo.DemandSource.fields = {\r\n sourceType: {\r\n enumType: exports.TypeInfo.DemandSourceType\r\n }\r\n};\r\nexports.TypeInfo.DeploymentGroup.fields = {\r\n machines: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentMachine\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n }\r\n};\r\nexports.TypeInfo.DeploymentGroupMetrics.fields = {\r\n deploymentGroup: {\r\n typeInfo: exports.TypeInfo.DeploymentGroupReference\r\n }\r\n};\r\nexports.TypeInfo.DeploymentGroupReference.fields = {\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n }\r\n};\r\nexports.TypeInfo.DeploymentMachine.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgent\r\n }\r\n};\r\nexports.TypeInfo.DeploymentMachineChangedData.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgent\r\n }\r\n};\r\nexports.TypeInfo.DeploymentMachineGroup.fields = {\r\n machines: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentMachine\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n }\r\n};\r\nexports.TypeInfo.DeploymentMachineGroupReference.fields = {\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n }\r\n};\r\nexports.TypeInfo.DeploymentMachinesChangeEvent.fields = {\r\n machineGroupReference: {\r\n typeInfo: exports.TypeInfo.DeploymentGroupReference\r\n },\r\n machines: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentMachineChangedData\r\n }\r\n};\r\nexports.TypeInfo.DeploymentPoolSummary.fields = {\r\n deploymentGroups: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentGroupReference\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n resource: {\r\n typeInfo: exports.TypeInfo.EnvironmentResourceReference\r\n }\r\n};\r\nexports.TypeInfo.ElasticNode.fields = {\r\n agentState: {\r\n enumType: exports.TypeInfo.ElasticAgentState\r\n },\r\n computeState: {\r\n enumType: exports.TypeInfo.ElasticComputeState\r\n },\r\n desiredState: {\r\n enumType: exports.TypeInfo.ElasticNodeState\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.ElasticNodeState\r\n },\r\n stateChangedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ElasticNodeSettings.fields = {\r\n state: {\r\n enumType: exports.TypeInfo.ElasticNodeState\r\n }\r\n};\r\nexports.TypeInfo.ElasticPool.fields = {\r\n offlineSince: {\r\n isDate: true,\r\n },\r\n osType: {\r\n enumType: exports.TypeInfo.OperatingSystemType\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.ElasticPoolState\r\n }\r\n};\r\nexports.TypeInfo.ElasticPoolCreationResult.fields = {\r\n agentPool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPool\r\n },\r\n agentQueue: {\r\n typeInfo: exports.TypeInfo.TaskAgentQueue\r\n },\r\n elasticPool: {\r\n typeInfo: exports.TypeInfo.ElasticPool\r\n }\r\n};\r\nexports.TypeInfo.ElasticPoolLog.fields = {\r\n level: {\r\n enumType: exports.TypeInfo.LogLevel\r\n },\r\n operation: {\r\n enumType: exports.TypeInfo.OperationType\r\n },\r\n timestamp: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ElasticPoolSettings.fields = {\r\n osType: {\r\n enumType: exports.TypeInfo.OperatingSystemType\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentDeploymentExecutionRecord.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentInstance.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n resources: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.EnvironmentResourceReference\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentResource.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.EnvironmentResourceType\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentResourceDeploymentExecutionRecord.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentResourceReference.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.EnvironmentResourceType\r\n }\r\n};\r\nexports.TypeInfo.Issue.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.IssueType\r\n }\r\n};\r\nexports.TypeInfo.JobAssignedEvent.fields = {\r\n request: {\r\n typeInfo: exports.TypeInfo.TaskAgentJobRequest\r\n }\r\n};\r\nexports.TypeInfo.JobCompletedEvent.fields = {\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n }\r\n};\r\nexports.TypeInfo.JobEnvironment.fields = {\r\n mask: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.MaskHint\r\n },\r\n secureFiles: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.SecureFile\r\n }\r\n};\r\nexports.TypeInfo.JobRequestMessage.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.JobEnvironment\r\n }\r\n};\r\nexports.TypeInfo.KubernetesResource.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.EnvironmentResourceType\r\n }\r\n};\r\nexports.TypeInfo.MaskHint.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.MaskType\r\n }\r\n};\r\nexports.TypeInfo.PackageMetadata.fields = {\r\n createdOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.PlanEnvironment.fields = {\r\n mask: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.MaskHint\r\n }\r\n};\r\nexports.TypeInfo.ResourceLockRequest.fields = {\r\n assignTime: {\r\n isDate: true,\r\n },\r\n finishTime: {\r\n isDate: true,\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ResourceLockStatus\r\n }\r\n};\r\nexports.TypeInfo.ResourceUsage.fields = {\r\n runningRequests: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentJobRequest\r\n }\r\n};\r\nexports.TypeInfo.SecureFile.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SecureFileEvent.fields = {\r\n secureFiles: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.SecureFile\r\n }\r\n};\r\nexports.TypeInfo.ServerTaskRequestMessage.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.JobEnvironment\r\n },\r\n taskDefinition: {\r\n typeInfo: exports.TypeInfo.TaskDefinition\r\n }\r\n};\r\nexports.TypeInfo.ServiceEndpointAuthenticationScheme.fields = {\r\n inputDescriptors: {\r\n isArray: true,\r\n typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor\r\n }\r\n};\r\nexports.TypeInfo.ServiceEndpointExecutionData.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ServiceEndpointExecutionRecord.fields = {\r\n data: {\r\n typeInfo: exports.TypeInfo.ServiceEndpointExecutionData\r\n }\r\n};\r\nexports.TypeInfo.ServiceEndpointExecutionRecordsInput.fields = {\r\n data: {\r\n typeInfo: exports.TypeInfo.ServiceEndpointExecutionData\r\n }\r\n};\r\nexports.TypeInfo.ServiceEndpointRequestResult.fields = {};\r\nexports.TypeInfo.ServiceEndpointType.fields = {\r\n authenticationSchemes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ServiceEndpointAuthenticationScheme\r\n },\r\n inputDescriptors: {\r\n isArray: true,\r\n typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor\r\n }\r\n};\r\nexports.TypeInfo.TaskAgent.fields = {\r\n assignedAgentCloudRequest: {\r\n typeInfo: exports.TypeInfo.TaskAgentCloudRequest\r\n },\r\n assignedRequest: {\r\n typeInfo: exports.TypeInfo.TaskAgentJobRequest\r\n },\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastCompletedRequest: {\r\n typeInfo: exports.TypeInfo.TaskAgentJobRequest\r\n },\r\n pendingUpdate: {\r\n typeInfo: exports.TypeInfo.TaskAgentUpdate\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.TaskAgentStatus\r\n },\r\n statusChangedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentCloudRequest.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgentReference\r\n },\r\n agentConnectedTime: {\r\n isDate: true,\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n provisionedTime: {\r\n isDate: true,\r\n },\r\n provisionRequestTime: {\r\n isDate: true,\r\n },\r\n releaseRequestTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentCloudType.fields = {\r\n inputDescriptors: {\r\n isArray: true,\r\n typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentDowngrade.fields = {\r\n code: {\r\n enumType: exports.TypeInfo.TaskAgentUpdateReasonType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentJob.fields = {\r\n steps: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentJobStep\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentJobRequest.fields = {\r\n assignTime: {\r\n isDate: true,\r\n },\r\n finishTime: {\r\n isDate: true,\r\n },\r\n lockedUntil: {\r\n isDate: true,\r\n },\r\n matchedAgents: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentReference\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n receiveTime: {\r\n isDate: true,\r\n },\r\n reservedAgent: {\r\n typeInfo: exports.TypeInfo.TaskAgentReference\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentJobStep.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.TaskAgentJobStepType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentManualUpdate.fields = {\r\n code: {\r\n enumType: exports.TypeInfo.TaskAgentUpdateReasonType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentMinAgentVersionRequiredUpdate.fields = {\r\n code: {\r\n enumType: exports.TypeInfo.TaskAgentUpdateReasonType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPool.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n options: {\r\n enumType: exports.TypeInfo.TaskAgentPoolOptions\r\n },\r\n poolType: {\r\n enumType: exports.TypeInfo.TaskAgentPoolType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolMaintenanceDefinition.fields = {\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n scheduleSetting: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolMaintenanceSchedule\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolMaintenanceJob.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobStatus\r\n },\r\n targetAgents: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentPoolMaintenanceJobTargetAgent\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolMaintenanceJobTargetAgent.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgentReference\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobResult\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobStatus\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolMaintenanceSchedule.fields = {\r\n daysToBuild: {\r\n enumType: exports.TypeInfo.TaskAgentPoolMaintenanceScheduleDays\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolReference.fields = {\r\n options: {\r\n enumType: exports.TypeInfo.TaskAgentPoolOptions\r\n },\r\n poolType: {\r\n enumType: exports.TypeInfo.TaskAgentPoolType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolStatus.fields = {\r\n options: {\r\n enumType: exports.TypeInfo.TaskAgentPoolOptions\r\n },\r\n poolType: {\r\n enumType: exports.TypeInfo.TaskAgentPoolType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolSummary.fields = {\r\n deploymentGroups: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentGroupReference\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n queues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentQueue\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentQueue.fields = {\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentReference.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.TaskAgentStatus\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentSession.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgentReference\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentUpdate.fields = {\r\n reason: {\r\n typeInfo: exports.TypeInfo.TaskAgentUpdateReason\r\n },\r\n requestTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentUpdateReason.fields = {\r\n code: {\r\n enumType: exports.TypeInfo.TaskAgentUpdateReasonType\r\n }\r\n};\r\nexports.TypeInfo.TaskAttachment.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastChangedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskCommandRestrictions.fields = {\r\n mode: {\r\n enumType: exports.TypeInfo.TaskCommandMode\r\n }\r\n};\r\nexports.TypeInfo.TaskCompletedEvent.fields = {\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n }\r\n};\r\nexports.TypeInfo.TaskDefinition.fields = {\r\n restrictions: {\r\n typeInfo: exports.TypeInfo.TaskRestrictions\r\n }\r\n};\r\nexports.TypeInfo.TaskGroup.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n restrictions: {\r\n typeInfo: exports.TypeInfo.TaskRestrictions\r\n }\r\n};\r\nexports.TypeInfo.TaskGroupRevision.fields = {\r\n changedDate: {\r\n isDate: true,\r\n },\r\n changeType: {\r\n enumType: exports.TypeInfo.AuditAction\r\n }\r\n};\r\nexports.TypeInfo.TaskLog.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastChangedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationContainer.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskOrchestrationItem\r\n },\r\n itemType: {\r\n enumType: exports.TypeInfo.TaskOrchestrationItemType\r\n },\r\n rollback: {\r\n typeInfo: exports.TypeInfo.TaskOrchestrationContainer\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationItem.fields = {\r\n itemType: {\r\n enumType: exports.TypeInfo.TaskOrchestrationItemType\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationJob.fields = {\r\n itemType: {\r\n enumType: exports.TypeInfo.TaskOrchestrationItemType\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationPlan.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.PlanEnvironment\r\n },\r\n finishTime: {\r\n isDate: true,\r\n },\r\n implementation: {\r\n typeInfo: exports.TypeInfo.TaskOrchestrationContainer\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TaskOrchestrationPlanState\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationPlanGroup.fields = {\r\n runningRequests: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentJobRequest\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationPlanGroupsQueueMetrics.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.PlanGroupStatus\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationQueuedPlan.fields = {\r\n assignTime: {\r\n isDate: true,\r\n },\r\n queueTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationQueuedPlanGroup.fields = {\r\n plans: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskOrchestrationQueuedPlan\r\n }\r\n};\r\nexports.TypeInfo.TaskRestrictions.fields = {\r\n commands: {\r\n typeInfo: exports.TypeInfo.TaskCommandRestrictions\r\n }\r\n};\r\nexports.TypeInfo.Timeline.fields = {\r\n lastChangedOn: {\r\n isDate: true,\r\n },\r\n records: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineRecord\r\n }\r\n};\r\nexports.TypeInfo.TimelineRecord.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n issues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Issue\r\n },\r\n lastModified: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TimelineRecordState\r\n }\r\n};\r\nexports.TypeInfo.VariableGroup.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.VirtualMachine.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgent\r\n }\r\n};\r\nexports.TypeInfo.VirtualMachineGroup.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.EnvironmentResourceType\r\n }\r\n};\r\nexports.TypeInfo.VirtualMachineResource.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgent\r\n },\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.EnvironmentResourceType\r\n }\r\n};\r\nexports.TypeInfo.VirtualMachineResourceCreateParameters.fields = {\r\n virtualMachineResource: {\r\n typeInfo: exports.TypeInfo.VirtualMachineResource\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst SystemData = require(\"../interfaces/common/SystemDataInterfaces\");\r\nconst TfsCoreInterfaces = require(\"../interfaces/CoreInterfaces\");\r\n/**\r\n * The types of test attachments.\r\n */\r\nvar AttachmentType;\r\n(function (AttachmentType) {\r\n /**\r\n * Attachment type GeneralAttachment , use this as default type unless you have other type.\r\n */\r\n AttachmentType[AttachmentType[\"GeneralAttachment\"] = 0] = \"GeneralAttachment\";\r\n AttachmentType[AttachmentType[\"AfnStrip\"] = 1] = \"AfnStrip\";\r\n AttachmentType[AttachmentType[\"BugFilingData\"] = 2] = \"BugFilingData\";\r\n /**\r\n * Attachment type CodeCoverage.\r\n */\r\n AttachmentType[AttachmentType[\"CodeCoverage\"] = 3] = \"CodeCoverage\";\r\n AttachmentType[AttachmentType[\"IntermediateCollectorData\"] = 4] = \"IntermediateCollectorData\";\r\n AttachmentType[AttachmentType[\"RunConfig\"] = 5] = \"RunConfig\";\r\n AttachmentType[AttachmentType[\"TestImpactDetails\"] = 6] = \"TestImpactDetails\";\r\n AttachmentType[AttachmentType[\"TmiTestRunDeploymentFiles\"] = 7] = \"TmiTestRunDeploymentFiles\";\r\n AttachmentType[AttachmentType[\"TmiTestRunReverseDeploymentFiles\"] = 8] = \"TmiTestRunReverseDeploymentFiles\";\r\n AttachmentType[AttachmentType[\"TmiTestResultDetail\"] = 9] = \"TmiTestResultDetail\";\r\n AttachmentType[AttachmentType[\"TmiTestRunSummary\"] = 10] = \"TmiTestRunSummary\";\r\n /**\r\n * Attachment type ConsoleLog.\r\n */\r\n AttachmentType[AttachmentType[\"ConsoleLog\"] = 11] = \"ConsoleLog\";\r\n})(AttachmentType = exports.AttachmentType || (exports.AttachmentType = {}));\r\n/**\r\n * Enum of type Clone Operation Type.\r\n */\r\nvar CloneOperationState;\r\n(function (CloneOperationState) {\r\n /**\r\n * value for Failed State\r\n */\r\n CloneOperationState[CloneOperationState[\"Failed\"] = 2] = \"Failed\";\r\n /**\r\n * value for Inprogress state\r\n */\r\n CloneOperationState[CloneOperationState[\"InProgress\"] = 1] = \"InProgress\";\r\n /**\r\n * Value for Queued State\r\n */\r\n CloneOperationState[CloneOperationState[\"Queued\"] = 0] = \"Queued\";\r\n /**\r\n * value for Success state\r\n */\r\n CloneOperationState[CloneOperationState[\"Succeeded\"] = 3] = \"Succeeded\";\r\n})(CloneOperationState = exports.CloneOperationState || (exports.CloneOperationState = {}));\r\n/**\r\n * Used to choose which coverage data is returned by a QueryXXXCoverage() call.\r\n */\r\nvar CoverageQueryFlags;\r\n(function (CoverageQueryFlags) {\r\n /**\r\n * If set, the Coverage.Modules property will be populated.\r\n */\r\n CoverageQueryFlags[CoverageQueryFlags[\"Modules\"] = 1] = \"Modules\";\r\n /**\r\n * If set, the ModuleCoverage.Functions properties will be populated.\r\n */\r\n CoverageQueryFlags[CoverageQueryFlags[\"Functions\"] = 2] = \"Functions\";\r\n /**\r\n * If set, the ModuleCoverage.CoverageData field will be populated.\r\n */\r\n CoverageQueryFlags[CoverageQueryFlags[\"BlockData\"] = 4] = \"BlockData\";\r\n})(CoverageQueryFlags = exports.CoverageQueryFlags || (exports.CoverageQueryFlags = {}));\r\nvar CoverageStatus;\r\n(function (CoverageStatus) {\r\n CoverageStatus[CoverageStatus[\"Covered\"] = 0] = \"Covered\";\r\n CoverageStatus[CoverageStatus[\"NotCovered\"] = 1] = \"NotCovered\";\r\n CoverageStatus[CoverageStatus[\"PartiallyCovered\"] = 2] = \"PartiallyCovered\";\r\n})(CoverageStatus = exports.CoverageStatus || (exports.CoverageStatus = {}));\r\n/**\r\n * Represents status of code coverage summary for a build\r\n */\r\nvar CoverageSummaryStatus;\r\n(function (CoverageSummaryStatus) {\r\n /**\r\n * No coverage status\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"None\"] = 0] = \"None\";\r\n /**\r\n * The summary evaluation is in progress\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n /**\r\n * The summary evaluation for the previous request is completed. Summary can change in future\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"Completed\"] = 2] = \"Completed\";\r\n /**\r\n * The summary evaluation is finalized and won't change\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"Finalized\"] = 3] = \"Finalized\";\r\n /**\r\n * The summary evaluation is pending\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"Pending\"] = 4] = \"Pending\";\r\n /**\r\n * Summary evaluation may be ongoing but another merge has been requested.\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"UpdateRequestQueued\"] = 5] = \"UpdateRequestQueued\";\r\n})(CoverageSummaryStatus = exports.CoverageSummaryStatus || (exports.CoverageSummaryStatus = {}));\r\nvar CustomTestFieldScope;\r\n(function (CustomTestFieldScope) {\r\n CustomTestFieldScope[CustomTestFieldScope[\"None\"] = 0] = \"None\";\r\n CustomTestFieldScope[CustomTestFieldScope[\"TestRun\"] = 1] = \"TestRun\";\r\n CustomTestFieldScope[CustomTestFieldScope[\"TestResult\"] = 2] = \"TestResult\";\r\n CustomTestFieldScope[CustomTestFieldScope[\"System\"] = 4] = \"System\";\r\n CustomTestFieldScope[CustomTestFieldScope[\"All\"] = 7] = \"All\";\r\n})(CustomTestFieldScope = exports.CustomTestFieldScope || (exports.CustomTestFieldScope = {}));\r\nvar CustomTestFieldType;\r\n(function (CustomTestFieldType) {\r\n CustomTestFieldType[CustomTestFieldType[\"Bit\"] = 2] = \"Bit\";\r\n CustomTestFieldType[CustomTestFieldType[\"DateTime\"] = 4] = \"DateTime\";\r\n CustomTestFieldType[CustomTestFieldType[\"Int\"] = 8] = \"Int\";\r\n CustomTestFieldType[CustomTestFieldType[\"Float\"] = 6] = \"Float\";\r\n CustomTestFieldType[CustomTestFieldType[\"String\"] = 12] = \"String\";\r\n CustomTestFieldType[CustomTestFieldType[\"Guid\"] = 14] = \"Guid\";\r\n})(CustomTestFieldType = exports.CustomTestFieldType || (exports.CustomTestFieldType = {}));\r\nvar FlakyDetectionType;\r\n(function (FlakyDetectionType) {\r\n /**\r\n * Custom defines manual detection type.\r\n */\r\n FlakyDetectionType[FlakyDetectionType[\"Custom\"] = 1] = \"Custom\";\r\n /**\r\n * Defines System detection type.\r\n */\r\n FlakyDetectionType[FlakyDetectionType[\"System\"] = 2] = \"System\";\r\n})(FlakyDetectionType = exports.FlakyDetectionType || (exports.FlakyDetectionType = {}));\r\n/**\r\n * Test summary metrics.\r\n */\r\nvar Metrics;\r\n(function (Metrics) {\r\n /**\r\n * To get results of all matrix.\r\n */\r\n Metrics[Metrics[\"All\"] = 1] = \"All\";\r\n /**\r\n * Get results summary by results outcome\r\n */\r\n Metrics[Metrics[\"ResultSummary\"] = 2] = \"ResultSummary\";\r\n /**\r\n * Get results analysis which include failure analysis, increase/decrease in results count analysis.\r\n */\r\n Metrics[Metrics[\"ResultsAnalysis\"] = 3] = \"ResultsAnalysis\";\r\n /**\r\n * Get runs summary\r\n */\r\n Metrics[Metrics[\"RunSummary\"] = 4] = \"RunSummary\";\r\n})(Metrics = exports.Metrics || (exports.Metrics = {}));\r\nvar OperationType;\r\n(function (OperationType) {\r\n OperationType[OperationType[\"Add\"] = 1] = \"Add\";\r\n OperationType[OperationType[\"Delete\"] = 2] = \"Delete\";\r\n})(OperationType = exports.OperationType || (exports.OperationType = {}));\r\n/**\r\n * Additional details with test result\r\n */\r\nvar ResultDetails;\r\n(function (ResultDetails) {\r\n /**\r\n * Core fields of test result. Core fields includes State, Outcome, Priority, AutomatedTestName, AutomatedTestStorage, Comments, ErrorMessage etc.\r\n */\r\n ResultDetails[ResultDetails[\"None\"] = 0] = \"None\";\r\n /**\r\n * Test iteration details in a test result.\r\n */\r\n ResultDetails[ResultDetails[\"Iterations\"] = 1] = \"Iterations\";\r\n /**\r\n * Workitems associated with a test result.\r\n */\r\n ResultDetails[ResultDetails[\"WorkItems\"] = 2] = \"WorkItems\";\r\n /**\r\n * Subresults in a test result.\r\n */\r\n ResultDetails[ResultDetails[\"SubResults\"] = 4] = \"SubResults\";\r\n /**\r\n * Point and plan detail in a test result.\r\n */\r\n ResultDetails[ResultDetails[\"Point\"] = 8] = \"Point\";\r\n})(ResultDetails = exports.ResultDetails || (exports.ResultDetails = {}));\r\n/**\r\n * Hierarchy type of the result/subresults.\r\n */\r\nvar ResultGroupType;\r\n(function (ResultGroupType) {\r\n /**\r\n * Leaf node of test result.\r\n */\r\n ResultGroupType[ResultGroupType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Hierarchy type of test result.\r\n */\r\n ResultGroupType[ResultGroupType[\"Rerun\"] = 1] = \"Rerun\";\r\n /**\r\n * Hierarchy type of test result.\r\n */\r\n ResultGroupType[ResultGroupType[\"DataDriven\"] = 2] = \"DataDriven\";\r\n /**\r\n * Hierarchy type of test result.\r\n */\r\n ResultGroupType[ResultGroupType[\"OrderedTest\"] = 3] = \"OrderedTest\";\r\n /**\r\n * Unknown hierarchy type.\r\n */\r\n ResultGroupType[ResultGroupType[\"Generic\"] = 4] = \"Generic\";\r\n})(ResultGroupType = exports.ResultGroupType || (exports.ResultGroupType = {}));\r\nvar ResultMetadata;\r\n(function (ResultMetadata) {\r\n /**\r\n * Rerun metadata\r\n */\r\n ResultMetadata[ResultMetadata[\"Rerun\"] = 1] = \"Rerun\";\r\n /**\r\n * Flaky metadata\r\n */\r\n ResultMetadata[ResultMetadata[\"Flaky\"] = 2] = \"Flaky\";\r\n})(ResultMetadata = exports.ResultMetadata || (exports.ResultMetadata = {}));\r\n/**\r\n * Additional details with test result metadata\r\n */\r\nvar ResultMetaDataDetails;\r\n(function (ResultMetaDataDetails) {\r\n /**\r\n * Core fields of test result metadata.\r\n */\r\n ResultMetaDataDetails[ResultMetaDataDetails[\"None\"] = 0] = \"None\";\r\n /**\r\n * Test FlakyIdentifiers details in test result metadata.\r\n */\r\n ResultMetaDataDetails[ResultMetaDataDetails[\"FlakyIdentifiers\"] = 1] = \"FlakyIdentifiers\";\r\n})(ResultMetaDataDetails = exports.ResultMetaDataDetails || (exports.ResultMetaDataDetails = {}));\r\n/**\r\n * The top level entity that is being cloned as part of a Clone operation\r\n */\r\nvar ResultObjectType;\r\n(function (ResultObjectType) {\r\n /**\r\n * Suite Clone\r\n */\r\n ResultObjectType[ResultObjectType[\"TestSuite\"] = 0] = \"TestSuite\";\r\n /**\r\n * Plan Clone\r\n */\r\n ResultObjectType[ResultObjectType[\"TestPlan\"] = 1] = \"TestPlan\";\r\n})(ResultObjectType = exports.ResultObjectType || (exports.ResultObjectType = {}));\r\nvar RunType;\r\n(function (RunType) {\r\n /**\r\n * Only used during an update to preserve the existing value.\r\n */\r\n RunType[RunType[\"Unspecified\"] = 0] = \"Unspecified\";\r\n /**\r\n * Normal test run.\r\n */\r\n RunType[RunType[\"Normal\"] = 1] = \"Normal\";\r\n /**\r\n * Test run created for the blocked result when a test point is blocked.\r\n */\r\n RunType[RunType[\"Blocking\"] = 2] = \"Blocking\";\r\n /**\r\n * Test run created from Web.\r\n */\r\n RunType[RunType[\"Web\"] = 4] = \"Web\";\r\n /**\r\n * Run initiated from web through MTR\r\n */\r\n RunType[RunType[\"MtrRunInitiatedFromWeb\"] = 8] = \"MtrRunInitiatedFromWeb\";\r\n /**\r\n * These test run would require DTL environment. These could be either of automated or manual test run.\r\n */\r\n RunType[RunType[\"RunWithDtlEnv\"] = 16] = \"RunWithDtlEnv\";\r\n /**\r\n * These test run may or may not have published test results but it will have summary like total test, passed test, failed test etc. These are automated tests.\r\n */\r\n RunType[RunType[\"NoConfigRun\"] = 32] = \"NoConfigRun\";\r\n})(RunType = exports.RunType || (exports.RunType = {}));\r\nvar Service;\r\n(function (Service) {\r\n Service[Service[\"Any\"] = 0] = \"Any\";\r\n Service[Service[\"Tcm\"] = 1] = \"Tcm\";\r\n Service[Service[\"Tfs\"] = 2] = \"Tfs\";\r\n})(Service = exports.Service || (exports.Service = {}));\r\n/**\r\n * Option to get details in response\r\n */\r\nvar SuiteExpand;\r\n(function (SuiteExpand) {\r\n /**\r\n * Include children in response.\r\n */\r\n SuiteExpand[SuiteExpand[\"Children\"] = 1] = \"Children\";\r\n /**\r\n * Include default testers in response.\r\n */\r\n SuiteExpand[SuiteExpand[\"DefaultTesters\"] = 2] = \"DefaultTesters\";\r\n})(SuiteExpand = exports.SuiteExpand || (exports.SuiteExpand = {}));\r\nvar TCMServiceDataMigrationStatus;\r\n(function (TCMServiceDataMigrationStatus) {\r\n /**\r\n * Migration Not Started\r\n */\r\n TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus[\"NotStarted\"] = 0] = \"NotStarted\";\r\n /**\r\n * Migration InProgress\r\n */\r\n TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n /**\r\n * Migration Completed\r\n */\r\n TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus[\"Completed\"] = 2] = \"Completed\";\r\n /**\r\n * Migration Failed\r\n */\r\n TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus[\"Failed\"] = 3] = \"Failed\";\r\n})(TCMServiceDataMigrationStatus = exports.TCMServiceDataMigrationStatus || (exports.TCMServiceDataMigrationStatus = {}));\r\n/**\r\n * Represents the state of an ITestConfiguration object.\r\n */\r\nvar TestConfigurationState;\r\n(function (TestConfigurationState) {\r\n /**\r\n * The configuration can be used for new test runs.\r\n */\r\n TestConfigurationState[TestConfigurationState[\"Active\"] = 1] = \"Active\";\r\n /**\r\n * The configuration has been retired and should not be used for new test runs.\r\n */\r\n TestConfigurationState[TestConfigurationState[\"Inactive\"] = 2] = \"Inactive\";\r\n})(TestConfigurationState = exports.TestConfigurationState || (exports.TestConfigurationState = {}));\r\n/**\r\n * Test Log Context\r\n */\r\nvar TestLogScope;\r\n(function (TestLogScope) {\r\n /**\r\n * Log file is associated with Run, result, subresult\r\n */\r\n TestLogScope[TestLogScope[\"Run\"] = 0] = \"Run\";\r\n /**\r\n * Log File associated with Build\r\n */\r\n TestLogScope[TestLogScope[\"Build\"] = 1] = \"Build\";\r\n /**\r\n * Log File associated with Release\r\n */\r\n TestLogScope[TestLogScope[\"Release\"] = 2] = \"Release\";\r\n})(TestLogScope = exports.TestLogScope || (exports.TestLogScope = {}));\r\n/**\r\n * Test Log Status codes.\r\n */\r\nvar TestLogStatusCode;\r\n(function (TestLogStatusCode) {\r\n /**\r\n * Operation is successful\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"Success\"] = 0] = \"Success\";\r\n /**\r\n * Operation failed\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"Failed\"] = 1] = \"Failed\";\r\n /**\r\n * Operation failed due to file already exist\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"FileAlreadyExists\"] = 2] = \"FileAlreadyExists\";\r\n /**\r\n * Invalid input provided by user\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"InvalidInput\"] = 3] = \"InvalidInput\";\r\n /**\r\n * Invalid file name provided by user\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"InvalidFileName\"] = 4] = \"InvalidFileName\";\r\n /**\r\n * Error occurred while operating on container\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"InvalidContainer\"] = 5] = \"InvalidContainer\";\r\n /**\r\n * Blob Transfer Error\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"TransferFailed\"] = 6] = \"TransferFailed\";\r\n /**\r\n * TestLogStore feature is not enabled\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"FeatureDisabled\"] = 7] = \"FeatureDisabled\";\r\n /**\r\n * Build for which operation is requested does not exist\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"BuildDoesNotExist\"] = 8] = \"BuildDoesNotExist\";\r\n /**\r\n * Run for which operation is requested does not exist\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"RunDoesNotExist\"] = 9] = \"RunDoesNotExist\";\r\n /**\r\n * Container cannot be created\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"ContainerNotCreated\"] = 10] = \"ContainerNotCreated\";\r\n /**\r\n * Api is not supported\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"APINotSupported\"] = 11] = \"APINotSupported\";\r\n /**\r\n * File size is greater than the limitation\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"FileSizeExceeds\"] = 12] = \"FileSizeExceeds\";\r\n /**\r\n * Container is not found for which operation is requested\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"ContainerNotFound\"] = 13] = \"ContainerNotFound\";\r\n /**\r\n * File cannot be found\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"FileNotFound\"] = 14] = \"FileNotFound\";\r\n /**\r\n * Directory cannot be found\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"DirectoryNotFound\"] = 15] = \"DirectoryNotFound\";\r\n /**\r\n * Storage capacity exceeded\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"StorageCapacityExceeded\"] = 16] = \"StorageCapacityExceeded\";\r\n})(TestLogStatusCode = exports.TestLogStatusCode || (exports.TestLogStatusCode = {}));\r\n/**\r\n * Specifies set of possible log store endpoint type.\r\n */\r\nvar TestLogStoreEndpointType;\r\n(function (TestLogStoreEndpointType) {\r\n /**\r\n * Endpoint type is scoped to root\r\n */\r\n TestLogStoreEndpointType[TestLogStoreEndpointType[\"Root\"] = 1] = \"Root\";\r\n /**\r\n * Endpoint type is scoped to file\r\n */\r\n TestLogStoreEndpointType[TestLogStoreEndpointType[\"File\"] = 2] = \"File\";\r\n})(TestLogStoreEndpointType = exports.TestLogStoreEndpointType || (exports.TestLogStoreEndpointType = {}));\r\n/**\r\n * Specifies set of possible operation type on log store.\r\n */\r\nvar TestLogStoreOperationType;\r\n(function (TestLogStoreOperationType) {\r\n /**\r\n * Operation is scoped to read data only.\r\n */\r\n TestLogStoreOperationType[TestLogStoreOperationType[\"Read\"] = 1] = \"Read\";\r\n /**\r\n * Operation is scoped to create data only.\r\n */\r\n TestLogStoreOperationType[TestLogStoreOperationType[\"Create\"] = 2] = \"Create\";\r\n /**\r\n * Operation is scoped to read and create data.\r\n */\r\n TestLogStoreOperationType[TestLogStoreOperationType[\"ReadAndCreate\"] = 3] = \"ReadAndCreate\";\r\n})(TestLogStoreOperationType = exports.TestLogStoreOperationType || (exports.TestLogStoreOperationType = {}));\r\n/**\r\n * Test Log Types\r\n */\r\nvar TestLogType;\r\n(function (TestLogType) {\r\n /**\r\n * Any gereric attachment.\r\n */\r\n TestLogType[TestLogType[\"GeneralAttachment\"] = 1] = \"GeneralAttachment\";\r\n /**\r\n * Code Coverage files\r\n */\r\n TestLogType[TestLogType[\"CodeCoverage\"] = 2] = \"CodeCoverage\";\r\n /**\r\n * Test Impact details.\r\n */\r\n TestLogType[TestLogType[\"TestImpact\"] = 3] = \"TestImpact\";\r\n /**\r\n * Temporary files\r\n */\r\n TestLogType[TestLogType[\"Intermediate\"] = 4] = \"Intermediate\";\r\n /**\r\n * Subresult Attachment\r\n */\r\n TestLogType[TestLogType[\"System\"] = 5] = \"System\";\r\n})(TestLogType = exports.TestLogType || (exports.TestLogType = {}));\r\n/**\r\n * Valid TestOutcome values.\r\n */\r\nvar TestOutcome;\r\n(function (TestOutcome) {\r\n /**\r\n * Only used during an update to preserve the existing value.\r\n */\r\n TestOutcome[TestOutcome[\"Unspecified\"] = 0] = \"Unspecified\";\r\n /**\r\n * Test has not been completed, or the test type does not report pass/failure.\r\n */\r\n TestOutcome[TestOutcome[\"None\"] = 1] = \"None\";\r\n /**\r\n * Test was executed w/o any issues.\r\n */\r\n TestOutcome[TestOutcome[\"Passed\"] = 2] = \"Passed\";\r\n /**\r\n * Test was executed, but there were issues. Issues may involve exceptions or failed assertions.\r\n */\r\n TestOutcome[TestOutcome[\"Failed\"] = 3] = \"Failed\";\r\n /**\r\n * Test has completed, but we can't say if it passed or failed. May be used for aborted tests...\r\n */\r\n TestOutcome[TestOutcome[\"Inconclusive\"] = 4] = \"Inconclusive\";\r\n /**\r\n * The test timed out\r\n */\r\n TestOutcome[TestOutcome[\"Timeout\"] = 5] = \"Timeout\";\r\n /**\r\n * Test was aborted. This was not caused by a user gesture, but rather by a framework decision.\r\n */\r\n TestOutcome[TestOutcome[\"Aborted\"] = 6] = \"Aborted\";\r\n /**\r\n * Test had it chance for been executed but was not, as ITestElement.IsRunnable == false.\r\n */\r\n TestOutcome[TestOutcome[\"Blocked\"] = 7] = \"Blocked\";\r\n /**\r\n * Test was not executed. This was caused by a user gesture - e.g. user hit stop button.\r\n */\r\n TestOutcome[TestOutcome[\"NotExecuted\"] = 8] = \"NotExecuted\";\r\n /**\r\n * To be used by Run level results. This is not a failure.\r\n */\r\n TestOutcome[TestOutcome[\"Warning\"] = 9] = \"Warning\";\r\n /**\r\n * There was a system error while we were trying to execute a test.\r\n */\r\n TestOutcome[TestOutcome[\"Error\"] = 10] = \"Error\";\r\n /**\r\n * Test is Not Applicable for execution.\r\n */\r\n TestOutcome[TestOutcome[\"NotApplicable\"] = 11] = \"NotApplicable\";\r\n /**\r\n * Test is paused.\r\n */\r\n TestOutcome[TestOutcome[\"Paused\"] = 12] = \"Paused\";\r\n /**\r\n * Test is currently executing. Added this for TCM charts\r\n */\r\n TestOutcome[TestOutcome[\"InProgress\"] = 13] = \"InProgress\";\r\n /**\r\n * Test is not impacted. Added fot TIA.\r\n */\r\n TestOutcome[TestOutcome[\"NotImpacted\"] = 14] = \"NotImpacted\";\r\n TestOutcome[TestOutcome[\"MaxValue\"] = 14] = \"MaxValue\";\r\n})(TestOutcome = exports.TestOutcome || (exports.TestOutcome = {}));\r\nvar TestPointState;\r\n(function (TestPointState) {\r\n /**\r\n * Default\r\n */\r\n TestPointState[TestPointState[\"None\"] = 0] = \"None\";\r\n /**\r\n * The test point needs to be executed in order for the test pass to be considered complete. Either the test has not been run before or the previous run failed.\r\n */\r\n TestPointState[TestPointState[\"Ready\"] = 1] = \"Ready\";\r\n /**\r\n * The test has passed successfully and does not need to be re-run for the test pass to be considered complete.\r\n */\r\n TestPointState[TestPointState[\"Completed\"] = 2] = \"Completed\";\r\n /**\r\n * The test point needs to be executed but is not able to.\r\n */\r\n TestPointState[TestPointState[\"NotReady\"] = 3] = \"NotReady\";\r\n /**\r\n * The test is being executed.\r\n */\r\n TestPointState[TestPointState[\"InProgress\"] = 4] = \"InProgress\";\r\n TestPointState[TestPointState[\"MaxValue\"] = 4] = \"MaxValue\";\r\n})(TestPointState = exports.TestPointState || (exports.TestPointState = {}));\r\n/**\r\n * Group by for results\r\n */\r\nvar TestResultGroupBy;\r\n(function (TestResultGroupBy) {\r\n /**\r\n * Group the results by branches\r\n */\r\n TestResultGroupBy[TestResultGroupBy[\"Branch\"] = 1] = \"Branch\";\r\n /**\r\n * Group the results by environment\r\n */\r\n TestResultGroupBy[TestResultGroupBy[\"Environment\"] = 2] = \"Environment\";\r\n})(TestResultGroupBy = exports.TestResultGroupBy || (exports.TestResultGroupBy = {}));\r\nvar TestResultsContextType;\r\n(function (TestResultsContextType) {\r\n TestResultsContextType[TestResultsContextType[\"Build\"] = 1] = \"Build\";\r\n TestResultsContextType[TestResultsContextType[\"Release\"] = 2] = \"Release\";\r\n TestResultsContextType[TestResultsContextType[\"Pipeline\"] = 3] = \"Pipeline\";\r\n})(TestResultsContextType = exports.TestResultsContextType || (exports.TestResultsContextType = {}));\r\nvar TestResultsSettingsType;\r\n(function (TestResultsSettingsType) {\r\n /**\r\n * Returns All Test Settings.\r\n */\r\n TestResultsSettingsType[TestResultsSettingsType[\"All\"] = 1] = \"All\";\r\n /**\r\n * Returns Flaky Test Settings.\r\n */\r\n TestResultsSettingsType[TestResultsSettingsType[\"Flaky\"] = 2] = \"Flaky\";\r\n /**\r\n * Returns whether to log new tests or not\r\n */\r\n TestResultsSettingsType[TestResultsSettingsType[\"NewTestLogging\"] = 3] = \"NewTestLogging\";\r\n})(TestResultsSettingsType = exports.TestResultsSettingsType || (exports.TestResultsSettingsType = {}));\r\n/**\r\n * The types of outcomes for test run.\r\n */\r\nvar TestRunOutcome;\r\n(function (TestRunOutcome) {\r\n /**\r\n * Run with zero failed tests and has at least one impacted test\r\n */\r\n TestRunOutcome[TestRunOutcome[\"Passed\"] = 0] = \"Passed\";\r\n /**\r\n * Run with at-least one failed test.\r\n */\r\n TestRunOutcome[TestRunOutcome[\"Failed\"] = 1] = \"Failed\";\r\n /**\r\n * Run with no impacted tests.\r\n */\r\n TestRunOutcome[TestRunOutcome[\"NotImpacted\"] = 2] = \"NotImpacted\";\r\n /**\r\n * Runs with All tests in other category.\r\n */\r\n TestRunOutcome[TestRunOutcome[\"Others\"] = 3] = \"Others\";\r\n})(TestRunOutcome = exports.TestRunOutcome || (exports.TestRunOutcome = {}));\r\n/**\r\n * The types of publish context for run.\r\n */\r\nvar TestRunPublishContext;\r\n(function (TestRunPublishContext) {\r\n /**\r\n * Run is published for Build Context.\r\n */\r\n TestRunPublishContext[TestRunPublishContext[\"Build\"] = 1] = \"Build\";\r\n /**\r\n * Run is published for Release Context.\r\n */\r\n TestRunPublishContext[TestRunPublishContext[\"Release\"] = 2] = \"Release\";\r\n /**\r\n * Run is published for any Context.\r\n */\r\n TestRunPublishContext[TestRunPublishContext[\"All\"] = 3] = \"All\";\r\n})(TestRunPublishContext = exports.TestRunPublishContext || (exports.TestRunPublishContext = {}));\r\n/**\r\n * The types of states for test run.\r\n */\r\nvar TestRunState;\r\n(function (TestRunState) {\r\n /**\r\n * Only used during an update to preserve the existing value.\r\n */\r\n TestRunState[TestRunState[\"Unspecified\"] = 0] = \"Unspecified\";\r\n /**\r\n * The run is still being created. No tests have started yet.\r\n */\r\n TestRunState[TestRunState[\"NotStarted\"] = 1] = \"NotStarted\";\r\n /**\r\n * Tests are running.\r\n */\r\n TestRunState[TestRunState[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * All tests have completed or been skipped.\r\n */\r\n TestRunState[TestRunState[\"Completed\"] = 3] = \"Completed\";\r\n /**\r\n * Run is stopped and remaining tests have been aborted\r\n */\r\n TestRunState[TestRunState[\"Aborted\"] = 4] = \"Aborted\";\r\n /**\r\n * Run is currently initializing This is a legacy state and should not be used any more\r\n */\r\n TestRunState[TestRunState[\"Waiting\"] = 5] = \"Waiting\";\r\n /**\r\n * Run requires investigation because of a test point failure This is a legacy state and should not be used any more\r\n */\r\n TestRunState[TestRunState[\"NeedsInvestigation\"] = 6] = \"NeedsInvestigation\";\r\n})(TestRunState = exports.TestRunState || (exports.TestRunState = {}));\r\n/**\r\n * The types of sub states for test run. It gives the user more info about the test run beyond the high level test run state\r\n */\r\nvar TestRunSubstate;\r\n(function (TestRunSubstate) {\r\n /**\r\n * Run with noState.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"None\"] = 0] = \"None\";\r\n /**\r\n * Run state while Creating Environment.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"CreatingEnvironment\"] = 1] = \"CreatingEnvironment\";\r\n /**\r\n * Run state while Running Tests.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"RunningTests\"] = 2] = \"RunningTests\";\r\n /**\r\n * Run state while Creating Environment.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"CanceledByUser\"] = 3] = \"CanceledByUser\";\r\n /**\r\n * Run state when it is Aborted By the System.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"AbortedBySystem\"] = 4] = \"AbortedBySystem\";\r\n /**\r\n * Run state when run has timedOut.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"TimedOut\"] = 5] = \"TimedOut\";\r\n /**\r\n * Run state while Pending Analysis.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"PendingAnalysis\"] = 6] = \"PendingAnalysis\";\r\n /**\r\n * Run state after being Analysed.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"Analyzed\"] = 7] = \"Analyzed\";\r\n /**\r\n * Run state when cancellation is in Progress.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"CancellationInProgress\"] = 8] = \"CancellationInProgress\";\r\n})(TestRunSubstate = exports.TestRunSubstate || (exports.TestRunSubstate = {}));\r\n/**\r\n * Represents the source from which the test session was created\r\n */\r\nvar TestSessionSource;\r\n(function (TestSessionSource) {\r\n /**\r\n * Source of test session uncertain as it is stale\r\n */\r\n TestSessionSource[TestSessionSource[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * The session was created from Microsoft Test Manager exploratory desktop tool.\r\n */\r\n TestSessionSource[TestSessionSource[\"XTDesktop\"] = 1] = \"XTDesktop\";\r\n /**\r\n * The session was created from feedback client.\r\n */\r\n TestSessionSource[TestSessionSource[\"FeedbackDesktop\"] = 2] = \"FeedbackDesktop\";\r\n /**\r\n * The session was created from browser extension.\r\n */\r\n TestSessionSource[TestSessionSource[\"XTWeb\"] = 3] = \"XTWeb\";\r\n /**\r\n * The session was created from browser extension.\r\n */\r\n TestSessionSource[TestSessionSource[\"FeedbackWeb\"] = 4] = \"FeedbackWeb\";\r\n /**\r\n * The session was created from web access using Microsoft Test Manager exploratory desktop tool.\r\n */\r\n TestSessionSource[TestSessionSource[\"XTDesktop2\"] = 5] = \"XTDesktop2\";\r\n /**\r\n * To show sessions from all supported sources.\r\n */\r\n TestSessionSource[TestSessionSource[\"SessionInsightsForAll\"] = 6] = \"SessionInsightsForAll\";\r\n})(TestSessionSource = exports.TestSessionSource || (exports.TestSessionSource = {}));\r\n/**\r\n * Represents the state of the test session.\r\n */\r\nvar TestSessionState;\r\n(function (TestSessionState) {\r\n /**\r\n * Only used during an update to preserve the existing value.\r\n */\r\n TestSessionState[TestSessionState[\"Unspecified\"] = 0] = \"Unspecified\";\r\n /**\r\n * The session is still being created.\r\n */\r\n TestSessionState[TestSessionState[\"NotStarted\"] = 1] = \"NotStarted\";\r\n /**\r\n * The session is running.\r\n */\r\n TestSessionState[TestSessionState[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The session has paused.\r\n */\r\n TestSessionState[TestSessionState[\"Paused\"] = 3] = \"Paused\";\r\n /**\r\n * The session has completed.\r\n */\r\n TestSessionState[TestSessionState[\"Completed\"] = 4] = \"Completed\";\r\n /**\r\n * This is required for Feedback session which are declined\r\n */\r\n TestSessionState[TestSessionState[\"Declined\"] = 5] = \"Declined\";\r\n})(TestSessionState = exports.TestSessionState || (exports.TestSessionState = {}));\r\nexports.TypeInfo = {\r\n AfnStrip: {},\r\n AggregatedDataForResultTrend: {},\r\n AggregatedResultDetailsByOutcome: {},\r\n AggregatedResultsAnalysis: {},\r\n AggregatedResultsByOutcome: {},\r\n AggregatedRunsByOutcome: {},\r\n AggregatedRunsByState: {},\r\n AttachmentType: {\r\n enumValues: {\r\n \"generalAttachment\": 0,\r\n \"afnStrip\": 1,\r\n \"bugFilingData\": 2,\r\n \"codeCoverage\": 3,\r\n \"intermediateCollectorData\": 4,\r\n \"runConfig\": 5,\r\n \"testImpactDetails\": 6,\r\n \"tmiTestRunDeploymentFiles\": 7,\r\n \"tmiTestRunReverseDeploymentFiles\": 8,\r\n \"tmiTestResultDetail\": 9,\r\n \"tmiTestRunSummary\": 10,\r\n \"consoleLog\": 11\r\n }\r\n },\r\n BatchResponse: {},\r\n BuildConfiguration: {},\r\n BuildCoverage: {},\r\n BuildReference2: {},\r\n BulkResultUpdateRequest: {},\r\n CloneOperationInformation: {},\r\n CloneOperationState: {\r\n enumValues: {\r\n \"failed\": 2,\r\n \"inProgress\": 1,\r\n \"queued\": 0,\r\n \"succeeded\": 3\r\n }\r\n },\r\n CodeCoverageSummary: {},\r\n Coverage2: {},\r\n CoverageQueryFlags: {\r\n enumValues: {\r\n \"modules\": 1,\r\n \"functions\": 2,\r\n \"blockData\": 4\r\n }\r\n },\r\n CoverageStatus: {\r\n enumValues: {\r\n \"covered\": 0,\r\n \"notCovered\": 1,\r\n \"partiallyCovered\": 2\r\n }\r\n },\r\n CoverageSummaryStatus: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"inProgress\": 1,\r\n \"completed\": 2,\r\n \"finalized\": 3,\r\n \"pending\": 4,\r\n \"updateRequestQueued\": 5\r\n }\r\n },\r\n CreateTestMessageLogEntryRequest: {},\r\n CreateTestResultsRequest: {},\r\n CreateTestRunRequest: {},\r\n CustomTestFieldDefinition: {},\r\n CustomTestFieldScope: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"testRun\": 1,\r\n \"testResult\": 2,\r\n \"system\": 4,\r\n \"all\": 7\r\n }\r\n },\r\n CustomTestFieldType: {\r\n enumValues: {\r\n \"bit\": 2,\r\n \"dateTime\": 4,\r\n \"int\": 8,\r\n \"float\": 6,\r\n \"string\": 12,\r\n \"guid\": 14\r\n }\r\n },\r\n DatedTestFieldData: {},\r\n FailingSince: {},\r\n FetchTestResultsResponse: {},\r\n FlakyDetection: {},\r\n FlakyDetectionType: {\r\n enumValues: {\r\n \"custom\": 1,\r\n \"system\": 2\r\n }\r\n },\r\n FlakySettings: {},\r\n LastResultDetails: {},\r\n LegacyBuildConfiguration: {},\r\n LegacyReleaseReference: {},\r\n LegacyTestCaseResult: {},\r\n LegacyTestRun: {},\r\n LegacyTestSettings: {},\r\n Metrics: {\r\n enumValues: {\r\n \"all\": 1,\r\n \"resultSummary\": 2,\r\n \"resultsAnalysis\": 3,\r\n \"runSummary\": 4\r\n }\r\n },\r\n OperationType: {\r\n enumValues: {\r\n \"add\": 1,\r\n \"delete\": 2\r\n }\r\n },\r\n PipelineTestMetrics: {},\r\n PointLastResult: {},\r\n PointsResults2: {},\r\n QueryTestActionResultResponse: {},\r\n ReleaseReference: {},\r\n ReleaseReference2: {},\r\n RequirementsToTestsMapping2: {},\r\n Response: {},\r\n ResultDetails: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"iterations\": 1,\r\n \"workItems\": 2,\r\n \"subResults\": 4,\r\n \"point\": 8\r\n }\r\n },\r\n ResultGroupType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"rerun\": 1,\r\n \"dataDriven\": 2,\r\n \"orderedTest\": 3,\r\n \"generic\": 4\r\n }\r\n },\r\n ResultMetadata: {\r\n enumValues: {\r\n \"rerun\": 1,\r\n \"flaky\": 2\r\n }\r\n },\r\n ResultMetaDataDetails: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"flakyIdentifiers\": 1\r\n }\r\n },\r\n ResultObjectType: {\r\n enumValues: {\r\n \"testSuite\": 0,\r\n \"testPlan\": 1\r\n }\r\n },\r\n ResultRetentionSettings: {},\r\n ResultsByQueryResponse: {},\r\n ResultsFilter: {},\r\n ResultsSummaryByOutcome: {},\r\n ResultSummary: {},\r\n ResultUpdateRequest: {},\r\n ResultUpdateRequestModel: {},\r\n ResultUpdateResponse: {},\r\n RunCreateModel: {},\r\n RunStatistic: {},\r\n RunSummary: {},\r\n RunSummaryModel: {},\r\n RunType: {\r\n enumValues: {\r\n \"unspecified\": 0,\r\n \"normal\": 1,\r\n \"blocking\": 2,\r\n \"web\": 4,\r\n \"mtrRunInitiatedFromWeb\": 8,\r\n \"runWithDtlEnv\": 16,\r\n \"noConfigRun\": 32\r\n }\r\n },\r\n RunUpdateModel: {},\r\n Service: {\r\n enumValues: {\r\n \"any\": 0,\r\n \"tcm\": 1,\r\n \"tfs\": 2\r\n }\r\n },\r\n SuiteExpand: {\r\n enumValues: {\r\n \"children\": 1,\r\n \"defaultTesters\": 2\r\n }\r\n },\r\n TCMServiceDataMigrationStatus: {\r\n enumValues: {\r\n \"notStarted\": 0,\r\n \"inProgress\": 1,\r\n \"completed\": 2,\r\n \"failed\": 3\r\n }\r\n },\r\n TestActionResult: {},\r\n TestActionResult2: {},\r\n TestActionResultModel: {},\r\n TestAttachment: {},\r\n TestAuthoringDetails: {},\r\n TestCaseReference2: {},\r\n TestCaseResult: {},\r\n TestConfiguration: {},\r\n TestConfigurationState: {\r\n enumValues: {\r\n \"active\": 1,\r\n \"inactive\": 2\r\n }\r\n },\r\n TestExecutionReportData: {},\r\n TestExtensionField: {},\r\n TestExtensionFieldDetails: {},\r\n TestFailuresAnalysis: {},\r\n TestHistoryQuery: {},\r\n TestIterationDetailsModel: {},\r\n TestLog: {},\r\n TestLogReference: {},\r\n TestLogScope: {\r\n enumValues: {\r\n \"run\": 0,\r\n \"build\": 1,\r\n \"release\": 2\r\n }\r\n },\r\n TestLogStatus: {},\r\n TestLogStatusCode: {\r\n enumValues: {\r\n \"success\": 0,\r\n \"failed\": 1,\r\n \"fileAlreadyExists\": 2,\r\n \"invalidInput\": 3,\r\n \"invalidFileName\": 4,\r\n \"invalidContainer\": 5,\r\n \"transferFailed\": 6,\r\n \"featureDisabled\": 7,\r\n \"buildDoesNotExist\": 8,\r\n \"runDoesNotExist\": 9,\r\n \"containerNotCreated\": 10,\r\n \"apiNotSupported\": 11,\r\n \"fileSizeExceeds\": 12,\r\n \"containerNotFound\": 13,\r\n \"fileNotFound\": 14,\r\n \"directoryNotFound\": 15,\r\n \"storageCapacityExceeded\": 16\r\n }\r\n },\r\n TestLogStoreEndpointDetails: {},\r\n TestLogStoreEndpointType: {\r\n enumValues: {\r\n \"root\": 1,\r\n \"file\": 2\r\n }\r\n },\r\n TestLogStoreOperationType: {\r\n enumValues: {\r\n \"read\": 1,\r\n \"create\": 2,\r\n \"readAndCreate\": 3\r\n }\r\n },\r\n TestLogType: {\r\n enumValues: {\r\n \"generalAttachment\": 1,\r\n \"codeCoverage\": 2,\r\n \"testImpact\": 3,\r\n \"intermediate\": 4,\r\n \"system\": 5\r\n }\r\n },\r\n TestMessageLogDetails: {},\r\n TestMessageLogEntry: {},\r\n TestMessageLogEntry2: {},\r\n TestOutcome: {\r\n enumValues: {\r\n \"unspecified\": 0,\r\n \"none\": 1,\r\n \"passed\": 2,\r\n \"failed\": 3,\r\n \"inconclusive\": 4,\r\n \"timeout\": 5,\r\n \"aborted\": 6,\r\n \"blocked\": 7,\r\n \"notExecuted\": 8,\r\n \"warning\": 9,\r\n \"error\": 10,\r\n \"notApplicable\": 11,\r\n \"paused\": 12,\r\n \"inProgress\": 13,\r\n \"notImpacted\": 14,\r\n \"maxValue\": 14\r\n }\r\n },\r\n TestParameter2: {},\r\n TestPlan: {},\r\n TestPlanCloneRequest: {},\r\n TestPlanHubData: {},\r\n TestPlansWithSelection: {},\r\n TestPoint: {},\r\n TestPointReference: {},\r\n TestPointsEvent: {},\r\n TestPointsQuery: {},\r\n TestPointState: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"ready\": 1,\r\n \"completed\": 2,\r\n \"notReady\": 3,\r\n \"inProgress\": 4,\r\n \"maxValue\": 4\r\n }\r\n },\r\n TestPointsUpdatedEvent: {},\r\n TestResult2: {},\r\n TestResultAcrossProjectResponse: {},\r\n TestResultAttachment: {},\r\n TestResultGroupBy: {\r\n enumValues: {\r\n \"branch\": 1,\r\n \"environment\": 2\r\n }\r\n },\r\n TestResultHistory: {},\r\n TestResultHistoryDetailsForGroup: {},\r\n TestResultHistoryForGroup: {},\r\n TestResultModelBase: {},\r\n TestResultReset2: {},\r\n TestResultsContext: {},\r\n TestResultsContextType: {\r\n enumValues: {\r\n \"build\": 1,\r\n \"release\": 2,\r\n \"pipeline\": 3\r\n }\r\n },\r\n TestResultsDetails: {},\r\n TestResultsDetailsForGroup: {},\r\n TestResultsEx2: {},\r\n TestResultsQuery: {},\r\n TestResultsSettings: {},\r\n TestResultsSettingsType: {\r\n enumValues: {\r\n \"all\": 1,\r\n \"flaky\": 2,\r\n \"newTestLogging\": 3\r\n }\r\n },\r\n TestResultSummary: {},\r\n TestResultsUpdateSettings: {},\r\n TestResultsWithWatermark: {},\r\n TestResultTrendFilter: {},\r\n TestRun: {},\r\n TestRun2: {},\r\n TestRunCanceledEvent: {},\r\n TestRunCreatedEvent: {},\r\n TestRunEvent: {},\r\n TestRunEx2: {},\r\n TestRunOutcome: {\r\n enumValues: {\r\n \"passed\": 0,\r\n \"failed\": 1,\r\n \"notImpacted\": 2,\r\n \"others\": 3\r\n }\r\n },\r\n TestRunPublishContext: {\r\n enumValues: {\r\n \"build\": 1,\r\n \"release\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n TestRunStartedEvent: {},\r\n TestRunState: {\r\n enumValues: {\r\n \"unspecified\": 0,\r\n \"notStarted\": 1,\r\n \"inProgress\": 2,\r\n \"completed\": 3,\r\n \"aborted\": 4,\r\n \"waiting\": 5,\r\n \"needsInvestigation\": 6\r\n }\r\n },\r\n TestRunStatistic: {},\r\n TestRunSubstate: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"creatingEnvironment\": 1,\r\n \"runningTests\": 2,\r\n \"canceledByUser\": 3,\r\n \"abortedBySystem\": 4,\r\n \"timedOut\": 5,\r\n \"pendingAnalysis\": 6,\r\n \"analyzed\": 7,\r\n \"cancellationInProgress\": 8\r\n }\r\n },\r\n TestRunSummary2: {},\r\n TestRunWithDtlEnvEvent: {},\r\n TestSession: {},\r\n TestSessionExploredWorkItemReference: {},\r\n TestSessionSource: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"xtDesktop\": 1,\r\n \"feedbackDesktop\": 2,\r\n \"xtWeb\": 3,\r\n \"feedbackWeb\": 4,\r\n \"xtDesktop2\": 5,\r\n \"sessionInsightsForAll\": 6\r\n }\r\n },\r\n TestSessionState: {\r\n enumValues: {\r\n \"unspecified\": 0,\r\n \"notStarted\": 1,\r\n \"inProgress\": 2,\r\n \"paused\": 3,\r\n \"completed\": 4,\r\n \"declined\": 5\r\n }\r\n },\r\n TestSettings2: {},\r\n TestSubResult: {},\r\n TestSuite: {},\r\n TestSummaryForWorkItem: {},\r\n UpdatedProperties: {},\r\n UpdateTestRunRequest: {},\r\n UpdateTestRunResponse: {},\r\n WorkItemToTestLinks: {},\r\n};\r\nexports.TypeInfo.AfnStrip.fields = {\r\n creationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AggregatedDataForResultTrend.fields = {\r\n resultsByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome\r\n },\r\n runSummaryByState: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunState,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedRunsByState\r\n },\r\n testResultsContext: {\r\n typeInfo: exports.TypeInfo.TestResultsContext\r\n }\r\n};\r\nexports.TypeInfo.AggregatedResultDetailsByOutcome.fields = {\r\n outcome: {\r\n enumType: exports.TypeInfo.TestOutcome\r\n }\r\n};\r\nexports.TypeInfo.AggregatedResultsAnalysis.fields = {\r\n notReportedResultsByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome\r\n },\r\n previousContext: {\r\n typeInfo: exports.TypeInfo.TestResultsContext\r\n },\r\n resultsByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome\r\n },\r\n runSummaryByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedRunsByOutcome\r\n },\r\n runSummaryByState: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunState,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedRunsByState\r\n }\r\n};\r\nexports.TypeInfo.AggregatedResultsByOutcome.fields = {\r\n outcome: {\r\n enumType: exports.TypeInfo.TestOutcome\r\n }\r\n};\r\nexports.TypeInfo.AggregatedRunsByOutcome.fields = {\r\n outcome: {\r\n enumType: exports.TypeInfo.TestRunOutcome\r\n }\r\n};\r\nexports.TypeInfo.AggregatedRunsByState.fields = {\r\n resultsByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TestRunState\r\n }\r\n};\r\nexports.TypeInfo.BatchResponse.fields = {\r\n responses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Response\r\n },\r\n};\r\nexports.TypeInfo.BuildConfiguration.fields = {\r\n creationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildCoverage.fields = {\r\n configuration: {\r\n typeInfo: exports.TypeInfo.BuildConfiguration\r\n }\r\n};\r\nexports.TypeInfo.BuildReference2.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BulkResultUpdateRequest.fields = {\r\n requests: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ResultUpdateRequest\r\n }\r\n};\r\nexports.TypeInfo.CloneOperationInformation.fields = {\r\n completionDate: {\r\n isDate: true,\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n resultObjectType: {\r\n enumType: exports.TypeInfo.ResultObjectType\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.CloneOperationState\r\n }\r\n};\r\nexports.TypeInfo.CodeCoverageSummary.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.CoverageSummaryStatus\r\n }\r\n};\r\nexports.TypeInfo.Coverage2.fields = {\r\n dateCreated: {\r\n isDate: true,\r\n },\r\n dateModified: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CreateTestMessageLogEntryRequest.fields = {\r\n testMessageLogEntry: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestMessageLogEntry\r\n }\r\n};\r\nexports.TypeInfo.CreateTestResultsRequest.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.CreateTestRunRequest.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n },\r\n testRun: {\r\n typeInfo: exports.TypeInfo.LegacyTestRun\r\n },\r\n testSettings: {\r\n typeInfo: exports.TypeInfo.LegacyTestSettings\r\n }\r\n};\r\nexports.TypeInfo.CustomTestFieldDefinition.fields = {\r\n fieldType: {\r\n enumType: exports.TypeInfo.CustomTestFieldType\r\n },\r\n scope: {\r\n enumType: exports.TypeInfo.CustomTestFieldScope\r\n }\r\n};\r\nexports.TypeInfo.DatedTestFieldData.fields = {\r\n date: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.FailingSince.fields = {\r\n date: {\r\n isDate: true,\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n }\r\n};\r\nexports.TypeInfo.FetchTestResultsResponse.fields = {\r\n actionResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResult\r\n },\r\n attachments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultAttachment\r\n },\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.FlakyDetection.fields = {\r\n flakyDetectionType: {\r\n enumType: exports.TypeInfo.FlakyDetectionType\r\n }\r\n};\r\nexports.TypeInfo.FlakySettings.fields = {\r\n flakyDetection: {\r\n typeInfo: exports.TypeInfo.FlakyDetection\r\n }\r\n};\r\nexports.TypeInfo.LastResultDetails.fields = {\r\n dateCompleted: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.LegacyBuildConfiguration.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.LegacyReleaseReference.fields = {\r\n environmentCreationDate: {\r\n isDate: true,\r\n },\r\n releaseCreationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.LegacyTestCaseResult.fields = {\r\n buildReference: {\r\n typeInfo: exports.TypeInfo.LegacyBuildConfiguration\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n customFields: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestExtensionField\r\n },\r\n dateCompleted: {\r\n isDate: true,\r\n },\r\n dateStarted: {\r\n isDate: true,\r\n },\r\n failingSince: {\r\n typeInfo: exports.TypeInfo.FailingSince\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n releaseReference: {\r\n typeInfo: exports.TypeInfo.LegacyReleaseReference\r\n },\r\n resultGroupType: {\r\n enumType: exports.TypeInfo.ResultGroupType\r\n },\r\n stackTrace: {\r\n typeInfo: exports.TypeInfo.TestExtensionField\r\n }\r\n};\r\nexports.TypeInfo.LegacyTestRun.fields = {\r\n buildReference: {\r\n typeInfo: exports.TypeInfo.LegacyBuildConfiguration\r\n },\r\n completeDate: {\r\n isDate: true,\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n customFields: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestExtensionField\r\n },\r\n dueDate: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n releaseReference: {\r\n typeInfo: exports.TypeInfo.LegacyReleaseReference\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n testMessageLogEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestMessageLogDetails\r\n }\r\n};\r\nexports.TypeInfo.LegacyTestSettings.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.PipelineTestMetrics.fields = {\r\n resultSummary: {\r\n typeInfo: exports.TypeInfo.ResultSummary\r\n },\r\n runSummary: {\r\n typeInfo: exports.TypeInfo.RunSummary\r\n },\r\n summaryAtChild: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PipelineTestMetrics\r\n }\r\n};\r\nexports.TypeInfo.PointLastResult.fields = {\r\n lastUpdatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.PointsResults2.fields = {\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.QueryTestActionResultResponse.fields = {\r\n testActionResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResult\r\n },\r\n testAttachments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultAttachment\r\n }\r\n};\r\nexports.TypeInfo.ReleaseReference.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n environmentCreationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseReference2.fields = {\r\n environmentCreationDate: {\r\n isDate: true,\r\n },\r\n releaseCreationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.RequirementsToTestsMapping2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n deletionDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Response.fields = {};\r\nexports.TypeInfo.ResultRetentionSettings.fields = {\r\n lastUpdatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ResultsByQueryResponse.fields = {\r\n testResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.ResultsFilter.fields = {\r\n executedIn: {\r\n enumType: exports.TypeInfo.Service\r\n },\r\n maxCompleteDate: {\r\n isDate: true,\r\n },\r\n testResultsContext: {\r\n typeInfo: exports.TypeInfo.TestResultsContext\r\n }\r\n};\r\nexports.TypeInfo.ResultsSummaryByOutcome.fields = {\r\n aggregatedResultDetailsByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultDetailsByOutcome\r\n }\r\n};\r\nexports.TypeInfo.ResultSummary.fields = {\r\n resultSummaryByRunState: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunState,\r\n dictionaryValueTypeInfo: exports.TypeInfo.ResultsSummaryByOutcome\r\n }\r\n};\r\nexports.TypeInfo.ResultUpdateRequest.fields = {\r\n actionResultDeletes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResult\r\n },\r\n actionResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResult\r\n },\r\n attachments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultAttachment\r\n },\r\n testCaseResult: {\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.ResultUpdateRequestModel.fields = {\r\n actionResultDeletes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResultModel\r\n },\r\n actionResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResultModel\r\n }\r\n};\r\nexports.TypeInfo.ResultUpdateResponse.fields = {\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.RunCreateModel.fields = {\r\n buildReference: {\r\n typeInfo: exports.TypeInfo.BuildConfiguration\r\n },\r\n releaseReference: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n },\r\n runSummary: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RunSummaryModel\r\n }\r\n};\r\nexports.TypeInfo.RunStatistic.fields = {\r\n resultMetadata: {\r\n enumType: exports.TypeInfo.ResultMetadata\r\n }\r\n};\r\nexports.TypeInfo.RunSummary.fields = {\r\n runSummaryByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunOutcome,\r\n },\r\n runSummaryByState: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunState,\r\n }\r\n};\r\nexports.TypeInfo.RunSummaryModel.fields = {\r\n testOutcome: {\r\n enumType: exports.TypeInfo.TestOutcome\r\n }\r\n};\r\nexports.TypeInfo.RunUpdateModel.fields = {\r\n logEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestMessageLogDetails\r\n },\r\n runSummary: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RunSummaryModel\r\n },\r\n substate: {\r\n enumType: exports.TypeInfo.TestRunSubstate\r\n }\r\n};\r\nexports.TypeInfo.TestActionResult.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n dateCompleted: {\r\n isDate: true,\r\n },\r\n dateStarted: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestActionResult2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n dateCompleted: {\r\n isDate: true,\r\n },\r\n dateStarted: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestActionResultModel.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n startedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestAttachment.fields = {\r\n attachmentType: {\r\n enumType: exports.TypeInfo.AttachmentType\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestAuthoringDetails.fields = {\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TestPointState\r\n }\r\n};\r\nexports.TypeInfo.TestCaseReference2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n lastRefTestRunDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestCaseResult.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n failingSince: {\r\n typeInfo: exports.TypeInfo.FailingSince\r\n },\r\n iterationDetails: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestIterationDetailsModel\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n releaseReference: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n },\r\n resultGroupType: {\r\n enumType: exports.TypeInfo.ResultGroupType\r\n },\r\n startedDate: {\r\n isDate: true,\r\n },\r\n subResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestSubResult\r\n }\r\n};\r\nexports.TypeInfo.TestConfiguration.fields = {\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TestConfigurationState\r\n }\r\n};\r\nexports.TypeInfo.TestExecutionReportData.fields = {\r\n reportData: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DatedTestFieldData\r\n }\r\n};\r\nexports.TypeInfo.TestExtensionField.fields = {\r\n field: {\r\n typeInfo: exports.TypeInfo.TestExtensionFieldDetails\r\n }\r\n};\r\nexports.TypeInfo.TestExtensionFieldDetails.fields = {\r\n type: {\r\n enumType: SystemData.TypeInfo.SqlDbType\r\n }\r\n};\r\nexports.TypeInfo.TestFailuresAnalysis.fields = {\r\n previousContext: {\r\n typeInfo: exports.TypeInfo.TestResultsContext\r\n }\r\n};\r\nexports.TypeInfo.TestHistoryQuery.fields = {\r\n groupBy: {\r\n enumType: exports.TypeInfo.TestResultGroupBy\r\n },\r\n maxCompleteDate: {\r\n isDate: true,\r\n },\r\n resultsForGroup: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultHistoryForGroup\r\n }\r\n};\r\nexports.TypeInfo.TestIterationDetailsModel.fields = {\r\n actionResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResultModel\r\n },\r\n completedDate: {\r\n isDate: true,\r\n },\r\n startedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestLog.fields = {\r\n logReference: {\r\n typeInfo: exports.TypeInfo.TestLogReference\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestLogReference.fields = {\r\n scope: {\r\n enumType: exports.TypeInfo.TestLogScope\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.TestLogType\r\n }\r\n};\r\nexports.TypeInfo.TestLogStatus.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.TestLogStatusCode\r\n }\r\n};\r\nexports.TypeInfo.TestLogStoreEndpointDetails.fields = {\r\n endpointType: {\r\n enumType: exports.TypeInfo.TestLogStoreEndpointType\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.TestLogStatusCode\r\n }\r\n};\r\nexports.TypeInfo.TestMessageLogDetails.fields = {\r\n dateCreated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestMessageLogEntry.fields = {\r\n dateCreated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestMessageLogEntry2.fields = {\r\n dateCreated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestParameter2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n dateModified: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestPlan.fields = {\r\n endDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestPlanCloneRequest.fields = {\r\n destinationTestPlan: {\r\n typeInfo: exports.TypeInfo.TestPlan\r\n }\r\n};\r\nexports.TypeInfo.TestPlanHubData.fields = {\r\n testPlan: {\r\n typeInfo: exports.TypeInfo.TestPlan\r\n },\r\n testPoints: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestPoint\r\n },\r\n testSuites: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestSuite\r\n }\r\n};\r\nexports.TypeInfo.TestPlansWithSelection.fields = {\r\n plans: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestPlan\r\n }\r\n};\r\nexports.TypeInfo.TestPoint.fields = {\r\n lastResetToActive: {\r\n isDate: true,\r\n },\r\n lastResultDetails: {\r\n typeInfo: exports.TypeInfo.LastResultDetails\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestPointReference.fields = {\r\n state: {\r\n enumType: exports.TypeInfo.TestPointState\r\n }\r\n};\r\nexports.TypeInfo.TestPointsEvent.fields = {\r\n testPoints: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestPointReference\r\n }\r\n};\r\nexports.TypeInfo.TestPointsQuery.fields = {\r\n points: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestPoint\r\n }\r\n};\r\nexports.TypeInfo.TestPointsUpdatedEvent.fields = {\r\n testPoints: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestPointReference\r\n }\r\n};\r\nexports.TypeInfo.TestResult2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n dateCompleted: {\r\n isDate: true,\r\n },\r\n dateStarted: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestResultAcrossProjectResponse.fields = {\r\n testResult: {\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.TestResultAttachment.fields = {\r\n attachmentType: {\r\n enumType: exports.TypeInfo.AttachmentType\r\n },\r\n creationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestResultHistory.fields = {\r\n resultsForGroup: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultHistoryDetailsForGroup\r\n }\r\n};\r\nexports.TypeInfo.TestResultHistoryDetailsForGroup.fields = {\r\n latestResult: {\r\n typeInfo: exports.TypeInfo.TestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.TestResultHistoryForGroup.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.TestResultModelBase.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n startedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestResultReset2.fields = {\r\n dateModified: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestResultsContext.fields = {\r\n contextType: {\r\n enumType: exports.TypeInfo.TestResultsContextType\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n }\r\n};\r\nexports.TypeInfo.TestResultsDetails.fields = {\r\n resultsForGroup: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultsDetailsForGroup\r\n }\r\n};\r\nexports.TypeInfo.TestResultsDetailsForGroup.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestCaseResult\r\n },\r\n resultsCountByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome\r\n }\r\n};\r\nexports.TypeInfo.TestResultsEx2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n dateTimeValue: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestResultsQuery.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestCaseResult\r\n },\r\n resultsFilter: {\r\n typeInfo: exports.TypeInfo.ResultsFilter\r\n }\r\n};\r\nexports.TypeInfo.TestResultsSettings.fields = {\r\n flakySettings: {\r\n typeInfo: exports.TypeInfo.FlakySettings\r\n }\r\n};\r\nexports.TypeInfo.TestResultSummary.fields = {\r\n aggregatedResultsAnalysis: {\r\n typeInfo: exports.TypeInfo.AggregatedResultsAnalysis\r\n },\r\n teamProject: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n testFailures: {\r\n typeInfo: exports.TypeInfo.TestFailuresAnalysis\r\n },\r\n testResultsContext: {\r\n typeInfo: exports.TypeInfo.TestResultsContext\r\n }\r\n};\r\nexports.TypeInfo.TestResultsUpdateSettings.fields = {\r\n flakySettings: {\r\n typeInfo: exports.TypeInfo.FlakySettings\r\n }\r\n};\r\nexports.TypeInfo.TestResultsWithWatermark.fields = {\r\n changedDate: {\r\n isDate: true,\r\n },\r\n pointsResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PointsResults2\r\n }\r\n};\r\nexports.TypeInfo.TestResultTrendFilter.fields = {\r\n maxCompleteDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestRun.fields = {\r\n buildConfiguration: {\r\n typeInfo: exports.TypeInfo.BuildConfiguration\r\n },\r\n completedDate: {\r\n isDate: true,\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n dueDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n },\r\n runStatistics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RunStatistic\r\n },\r\n startedDate: {\r\n isDate: true,\r\n },\r\n substate: {\r\n enumType: exports.TypeInfo.TestRunSubstate\r\n }\r\n};\r\nexports.TypeInfo.TestRun2.fields = {\r\n completeDate: {\r\n isDate: true,\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n deletedOn: {\r\n isDate: true,\r\n },\r\n dueDate: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestRunCanceledEvent.fields = {\r\n testRun: {\r\n typeInfo: exports.TypeInfo.TestRun\r\n }\r\n};\r\nexports.TypeInfo.TestRunCreatedEvent.fields = {\r\n testRun: {\r\n typeInfo: exports.TypeInfo.TestRun\r\n }\r\n};\r\nexports.TypeInfo.TestRunEvent.fields = {\r\n testRun: {\r\n typeInfo: exports.TypeInfo.TestRun\r\n }\r\n};\r\nexports.TypeInfo.TestRunEx2.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n dateTimeValue: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestRunStartedEvent.fields = {\r\n testRun: {\r\n typeInfo: exports.TypeInfo.TestRun\r\n }\r\n};\r\nexports.TypeInfo.TestRunStatistic.fields = {\r\n runStatistics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RunStatistic\r\n }\r\n};\r\nexports.TypeInfo.TestRunSummary2.fields = {\r\n testRunCompletedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestRunWithDtlEnvEvent.fields = {\r\n testRun: {\r\n typeInfo: exports.TypeInfo.TestRun\r\n }\r\n};\r\nexports.TypeInfo.TestSession.fields = {\r\n endDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n source: {\r\n enumType: exports.TypeInfo.TestSessionSource\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TestSessionState\r\n }\r\n};\r\nexports.TypeInfo.TestSessionExploredWorkItemReference.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestSettings2.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestSubResult.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n resultGroupType: {\r\n enumType: exports.TypeInfo.ResultGroupType\r\n },\r\n startedDate: {\r\n isDate: true,\r\n },\r\n subResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestSubResult\r\n }\r\n};\r\nexports.TypeInfo.TestSuite.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestSuite\r\n },\r\n lastPopulatedDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestSummaryForWorkItem.fields = {\r\n summary: {\r\n typeInfo: exports.TypeInfo.AggregatedDataForResultTrend\r\n }\r\n};\r\nexports.TypeInfo.UpdatedProperties.fields = {\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.UpdateTestRunRequest.fields = {\r\n attachmentsToAdd: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultAttachment\r\n },\r\n testRun: {\r\n typeInfo: exports.TypeInfo.LegacyTestRun\r\n }\r\n};\r\nexports.TypeInfo.UpdateTestRunResponse.fields = {\r\n updatedProperties: {\r\n typeInfo: exports.TypeInfo.UpdatedProperties\r\n }\r\n};\r\nexports.TypeInfo.WorkItemToTestLinks.fields = {\r\n executedIn: {\r\n enumType: exports.TypeInfo.Service\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst TfsCoreInterfaces = require(\"../interfaces/CoreInterfaces\");\r\nvar ItemContentType;\r\n(function (ItemContentType) {\r\n ItemContentType[ItemContentType[\"RawText\"] = 0] = \"RawText\";\r\n ItemContentType[ItemContentType[\"Base64Encoded\"] = 1] = \"Base64Encoded\";\r\n})(ItemContentType = exports.ItemContentType || (exports.ItemContentType = {}));\r\n/**\r\n * Options for Version handling.\r\n */\r\nvar TfvcVersionOption;\r\n(function (TfvcVersionOption) {\r\n /**\r\n * None.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"None\"] = 0] = \"None\";\r\n /**\r\n * Return the previous version.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"Previous\"] = 1] = \"Previous\";\r\n /**\r\n * Only usuable with versiontype MergeSource and integer versions, uses RenameSource identifier instead of Merge identifier.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"UseRename\"] = 2] = \"UseRename\";\r\n})(TfvcVersionOption = exports.TfvcVersionOption || (exports.TfvcVersionOption = {}));\r\n/**\r\n * Type of Version object\r\n */\r\nvar TfvcVersionType;\r\n(function (TfvcVersionType) {\r\n /**\r\n * Version is treated as a ChangesetId.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Version is treated as a ChangesetId.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Changeset\"] = 1] = \"Changeset\";\r\n /**\r\n * Version is treated as a Shelveset name and owner.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Shelveset\"] = 2] = \"Shelveset\";\r\n /**\r\n * Version is treated as a Change.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Change\"] = 3] = \"Change\";\r\n /**\r\n * Version is treated as a Date.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Date\"] = 4] = \"Date\";\r\n /**\r\n * If Version is defined the Latest of that Version will be used, if no version is defined the latest ChangesetId will be used.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Latest\"] = 5] = \"Latest\";\r\n /**\r\n * Version will be treated as a Tip, if no version is defined latest will be used.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Tip\"] = 6] = \"Tip\";\r\n /**\r\n * Version will be treated as a MergeSource.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"MergeSource\"] = 7] = \"MergeSource\";\r\n})(TfvcVersionType = exports.TfvcVersionType || (exports.TfvcVersionType = {}));\r\nvar VersionControlChangeType;\r\n(function (VersionControlChangeType) {\r\n VersionControlChangeType[VersionControlChangeType[\"None\"] = 0] = \"None\";\r\n VersionControlChangeType[VersionControlChangeType[\"Add\"] = 1] = \"Add\";\r\n VersionControlChangeType[VersionControlChangeType[\"Edit\"] = 2] = \"Edit\";\r\n VersionControlChangeType[VersionControlChangeType[\"Encoding\"] = 4] = \"Encoding\";\r\n VersionControlChangeType[VersionControlChangeType[\"Rename\"] = 8] = \"Rename\";\r\n VersionControlChangeType[VersionControlChangeType[\"Delete\"] = 16] = \"Delete\";\r\n VersionControlChangeType[VersionControlChangeType[\"Undelete\"] = 32] = \"Undelete\";\r\n VersionControlChangeType[VersionControlChangeType[\"Branch\"] = 64] = \"Branch\";\r\n VersionControlChangeType[VersionControlChangeType[\"Merge\"] = 128] = \"Merge\";\r\n VersionControlChangeType[VersionControlChangeType[\"Lock\"] = 256] = \"Lock\";\r\n VersionControlChangeType[VersionControlChangeType[\"Rollback\"] = 512] = \"Rollback\";\r\n VersionControlChangeType[VersionControlChangeType[\"SourceRename\"] = 1024] = \"SourceRename\";\r\n VersionControlChangeType[VersionControlChangeType[\"TargetRename\"] = 2048] = \"TargetRename\";\r\n VersionControlChangeType[VersionControlChangeType[\"Property\"] = 4096] = \"Property\";\r\n VersionControlChangeType[VersionControlChangeType[\"All\"] = 8191] = \"All\";\r\n})(VersionControlChangeType = exports.VersionControlChangeType || (exports.VersionControlChangeType = {}));\r\nvar VersionControlRecursionType;\r\n(function (VersionControlRecursionType) {\r\n /**\r\n * Only return the specified item.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Return the specified item and its direct children.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"OneLevel\"] = 1] = \"OneLevel\";\r\n /**\r\n * Return the specified item and its direct children, as well as recursive chains of nested child folders that only contain a single folder.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"OneLevelPlusNestedEmptyFolders\"] = 4] = \"OneLevelPlusNestedEmptyFolders\";\r\n /**\r\n * Return specified item and all descendants\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"Full\"] = 120] = \"Full\";\r\n})(VersionControlRecursionType = exports.VersionControlRecursionType || (exports.VersionControlRecursionType = {}));\r\nexports.TypeInfo = {\r\n Change: {},\r\n GitRepository: {},\r\n GitRepositoryRef: {},\r\n ItemContent: {},\r\n ItemContentType: {\r\n enumValues: {\r\n \"rawText\": 0,\r\n \"base64Encoded\": 1\r\n }\r\n },\r\n TfvcBranch: {},\r\n TfvcBranchRef: {},\r\n TfvcChange: {},\r\n TfvcChangeset: {},\r\n TfvcChangesetRef: {},\r\n TfvcItem: {},\r\n TfvcItemDescriptor: {},\r\n TfvcItemRequestData: {},\r\n TfvcLabel: {},\r\n TfvcLabelRef: {},\r\n TfvcShelveset: {},\r\n TfvcShelvesetRef: {},\r\n TfvcVersionDescriptor: {},\r\n TfvcVersionOption: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"previous\": 1,\r\n \"useRename\": 2\r\n }\r\n },\r\n TfvcVersionType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"changeset\": 1,\r\n \"shelveset\": 2,\r\n \"change\": 3,\r\n \"date\": 4,\r\n \"latest\": 5,\r\n \"tip\": 6,\r\n \"mergeSource\": 7\r\n }\r\n },\r\n VersionControlChangeType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"add\": 1,\r\n \"edit\": 2,\r\n \"encoding\": 4,\r\n \"rename\": 8,\r\n \"delete\": 16,\r\n \"undelete\": 32,\r\n \"branch\": 64,\r\n \"merge\": 128,\r\n \"lock\": 256,\r\n \"rollback\": 512,\r\n \"sourceRename\": 1024,\r\n \"targetRename\": 2048,\r\n \"property\": 4096,\r\n \"all\": 8191\r\n }\r\n },\r\n VersionControlProjectInfo: {},\r\n VersionControlRecursionType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"oneLevel\": 1,\r\n \"oneLevelPlusNestedEmptyFolders\": 4,\r\n \"full\": 120\r\n }\r\n },\r\n};\r\nexports.TypeInfo.Change.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.GitRepository.fields = {\r\n parentRepository: {\r\n typeInfo: exports.TypeInfo.GitRepositoryRef\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GitRepositoryRef.fields = {\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.ItemContent.fields = {\r\n contentType: {\r\n enumType: exports.TypeInfo.ItemContentType\r\n }\r\n};\r\nexports.TypeInfo.TfvcBranch.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcBranch\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcBranchRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcChange.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.TfvcChangeset.fields = {\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcChange\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcChangesetRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcItem.fields = {\r\n changeDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcItemDescriptor.fields = {\r\n recursionLevel: {\r\n enumType: exports.TypeInfo.VersionControlRecursionType\r\n },\r\n versionOption: {\r\n enumType: exports.TypeInfo.TfvcVersionOption\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.TfvcVersionType\r\n }\r\n};\r\nexports.TypeInfo.TfvcItemRequestData.fields = {\r\n itemDescriptors: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcItemDescriptor\r\n }\r\n};\r\nexports.TypeInfo.TfvcLabel.fields = {\r\n items: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcItem\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcLabelRef.fields = {\r\n modifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcShelveset.fields = {\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcChange\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcShelvesetRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcVersionDescriptor.fields = {\r\n versionOption: {\r\n enumType: exports.TypeInfo.TfvcVersionOption\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.TfvcVersionType\r\n }\r\n};\r\nexports.TypeInfo.VersionControlProjectInfo.fields = {\r\n defaultSourceControlType: {\r\n enumType: TfsCoreInterfaces.TypeInfo.SourceControlTypes\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst GitInterfaces = require(\"../interfaces/GitInterfaces\");\r\n/**\r\n * Wiki types.\r\n */\r\nvar WikiType;\r\n(function (WikiType) {\r\n /**\r\n * Indicates that the wiki is provisioned for the team project\r\n */\r\n WikiType[WikiType[\"ProjectWiki\"] = 0] = \"ProjectWiki\";\r\n /**\r\n * Indicates that the wiki is published from a git repository\r\n */\r\n WikiType[WikiType[\"CodeWiki\"] = 1] = \"CodeWiki\";\r\n})(WikiType = exports.WikiType || (exports.WikiType = {}));\r\nexports.TypeInfo = {\r\n Wiki: {},\r\n WikiCreateBaseParameters: {},\r\n WikiCreateParametersV2: {},\r\n WikiPageDetail: {},\r\n WikiPageStat: {},\r\n WikiPageViewStats: {},\r\n WikiType: {\r\n enumValues: {\r\n \"projectWiki\": 0,\r\n \"codeWiki\": 1\r\n }\r\n },\r\n WikiUpdateParameters: {},\r\n WikiV2: {},\r\n};\r\nexports.TypeInfo.Wiki.fields = {\r\n repository: {\r\n typeInfo: GitInterfaces.TypeInfo.GitRepository\r\n }\r\n};\r\nexports.TypeInfo.WikiCreateBaseParameters.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.WikiType\r\n }\r\n};\r\nexports.TypeInfo.WikiCreateParametersV2.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.WikiType\r\n },\r\n version: {\r\n typeInfo: GitInterfaces.TypeInfo.GitVersionDescriptor\r\n }\r\n};\r\nexports.TypeInfo.WikiPageDetail.fields = {\r\n viewStats: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WikiPageStat\r\n }\r\n};\r\nexports.TypeInfo.WikiPageStat.fields = {\r\n day: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.WikiPageViewStats.fields = {\r\n lastViewedTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.WikiUpdateParameters.fields = {\r\n versions: {\r\n isArray: true,\r\n typeInfo: GitInterfaces.TypeInfo.GitVersionDescriptor\r\n }\r\n};\r\nexports.TypeInfo.WikiV2.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.WikiType\r\n },\r\n versions: {\r\n isArray: true,\r\n typeInfo: GitInterfaces.TypeInfo.GitVersionDescriptor\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst SystemInterfaces = require(\"../interfaces/common/System\");\r\n/**\r\n * Definition of the type of backlog level\r\n */\r\nvar BacklogType;\r\n(function (BacklogType) {\r\n /**\r\n * Portfolio backlog level\r\n */\r\n BacklogType[BacklogType[\"Portfolio\"] = 0] = \"Portfolio\";\r\n /**\r\n * Requirement backlog level\r\n */\r\n BacklogType[BacklogType[\"Requirement\"] = 1] = \"Requirement\";\r\n /**\r\n * Task backlog level\r\n */\r\n BacklogType[BacklogType[\"Task\"] = 2] = \"Task\";\r\n})(BacklogType = exports.BacklogType || (exports.BacklogType = {}));\r\n/**\r\n * Determines what columns to include on the board badge\r\n */\r\nvar BoardBadgeColumnOptions;\r\n(function (BoardBadgeColumnOptions) {\r\n /**\r\n * Only include In Progress columns\r\n */\r\n BoardBadgeColumnOptions[BoardBadgeColumnOptions[\"InProgressColumns\"] = 0] = \"InProgressColumns\";\r\n /**\r\n * Include all columns\r\n */\r\n BoardBadgeColumnOptions[BoardBadgeColumnOptions[\"AllColumns\"] = 1] = \"AllColumns\";\r\n /**\r\n * Include a custom set of columns\r\n */\r\n BoardBadgeColumnOptions[BoardBadgeColumnOptions[\"CustomColumns\"] = 2] = \"CustomColumns\";\r\n})(BoardBadgeColumnOptions = exports.BoardBadgeColumnOptions || (exports.BoardBadgeColumnOptions = {}));\r\nvar BoardColumnType;\r\n(function (BoardColumnType) {\r\n BoardColumnType[BoardColumnType[\"Incoming\"] = 0] = \"Incoming\";\r\n BoardColumnType[BoardColumnType[\"InProgress\"] = 1] = \"InProgress\";\r\n BoardColumnType[BoardColumnType[\"Outgoing\"] = 2] = \"Outgoing\";\r\n})(BoardColumnType = exports.BoardColumnType || (exports.BoardColumnType = {}));\r\n/**\r\n * The behavior of the work item types that are in the work item category specified in the BugWorkItems section in the Process Configuration\r\n */\r\nvar BugsBehavior;\r\n(function (BugsBehavior) {\r\n BugsBehavior[BugsBehavior[\"Off\"] = 0] = \"Off\";\r\n BugsBehavior[BugsBehavior[\"AsRequirements\"] = 1] = \"AsRequirements\";\r\n BugsBehavior[BugsBehavior[\"AsTasks\"] = 2] = \"AsTasks\";\r\n})(BugsBehavior = exports.BugsBehavior || (exports.BugsBehavior = {}));\r\nvar FieldType;\r\n(function (FieldType) {\r\n FieldType[FieldType[\"String\"] = 0] = \"String\";\r\n FieldType[FieldType[\"PlainText\"] = 1] = \"PlainText\";\r\n FieldType[FieldType[\"Integer\"] = 2] = \"Integer\";\r\n FieldType[FieldType[\"DateTime\"] = 3] = \"DateTime\";\r\n FieldType[FieldType[\"TreePath\"] = 4] = \"TreePath\";\r\n FieldType[FieldType[\"Boolean\"] = 5] = \"Boolean\";\r\n FieldType[FieldType[\"Double\"] = 6] = \"Double\";\r\n})(FieldType = exports.FieldType || (exports.FieldType = {}));\r\n/**\r\n * Enum for the various modes of identity picker\r\n */\r\nvar IdentityDisplayFormat;\r\n(function (IdentityDisplayFormat) {\r\n /**\r\n * Display avatar only\r\n */\r\n IdentityDisplayFormat[IdentityDisplayFormat[\"AvatarOnly\"] = 0] = \"AvatarOnly\";\r\n /**\r\n * Display Full name only\r\n */\r\n IdentityDisplayFormat[IdentityDisplayFormat[\"FullName\"] = 1] = \"FullName\";\r\n /**\r\n * Display Avatar and Full name\r\n */\r\n IdentityDisplayFormat[IdentityDisplayFormat[\"AvatarAndFullName\"] = 2] = \"AvatarAndFullName\";\r\n})(IdentityDisplayFormat = exports.IdentityDisplayFormat || (exports.IdentityDisplayFormat = {}));\r\n/**\r\n * Enum for the various types of plans\r\n */\r\nvar PlanType;\r\n(function (PlanType) {\r\n PlanType[PlanType[\"DeliveryTimelineView\"] = 0] = \"DeliveryTimelineView\";\r\n})(PlanType = exports.PlanType || (exports.PlanType = {}));\r\n/**\r\n * Flag for permissions a user can have for this plan.\r\n */\r\nvar PlanUserPermissions;\r\n(function (PlanUserPermissions) {\r\n /**\r\n * None\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Permission to view this plan.\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"View\"] = 1] = \"View\";\r\n /**\r\n * Permission to update this plan.\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"Edit\"] = 2] = \"Edit\";\r\n /**\r\n * Permission to delete this plan.\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"Delete\"] = 4] = \"Delete\";\r\n /**\r\n * Permission to manage this plan.\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"Manage\"] = 8] = \"Manage\";\r\n /**\r\n * Full control permission for this plan.\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"AllPermissions\"] = 15] = \"AllPermissions\";\r\n})(PlanUserPermissions = exports.PlanUserPermissions || (exports.PlanUserPermissions = {}));\r\nvar TimeFrame;\r\n(function (TimeFrame) {\r\n TimeFrame[TimeFrame[\"Past\"] = 0] = \"Past\";\r\n TimeFrame[TimeFrame[\"Current\"] = 1] = \"Current\";\r\n TimeFrame[TimeFrame[\"Future\"] = 2] = \"Future\";\r\n})(TimeFrame = exports.TimeFrame || (exports.TimeFrame = {}));\r\nvar TimelineCriteriaStatusCode;\r\n(function (TimelineCriteriaStatusCode) {\r\n /**\r\n * No error - filter is good.\r\n */\r\n TimelineCriteriaStatusCode[TimelineCriteriaStatusCode[\"OK\"] = 0] = \"OK\";\r\n /**\r\n * One of the filter clause is invalid.\r\n */\r\n TimelineCriteriaStatusCode[TimelineCriteriaStatusCode[\"InvalidFilterClause\"] = 1] = \"InvalidFilterClause\";\r\n /**\r\n * Unknown error.\r\n */\r\n TimelineCriteriaStatusCode[TimelineCriteriaStatusCode[\"Unknown\"] = 2] = \"Unknown\";\r\n})(TimelineCriteriaStatusCode = exports.TimelineCriteriaStatusCode || (exports.TimelineCriteriaStatusCode = {}));\r\nvar TimelineIterationStatusCode;\r\n(function (TimelineIterationStatusCode) {\r\n /**\r\n * No error - iteration data is good.\r\n */\r\n TimelineIterationStatusCode[TimelineIterationStatusCode[\"OK\"] = 0] = \"OK\";\r\n /**\r\n * This iteration overlaps with another iteration, no data is returned for this iteration.\r\n */\r\n TimelineIterationStatusCode[TimelineIterationStatusCode[\"IsOverlapping\"] = 1] = \"IsOverlapping\";\r\n})(TimelineIterationStatusCode = exports.TimelineIterationStatusCode || (exports.TimelineIterationStatusCode = {}));\r\nvar TimelineTeamStatusCode;\r\n(function (TimelineTeamStatusCode) {\r\n /**\r\n * No error - all data for team is good.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"OK\"] = 0] = \"OK\";\r\n /**\r\n * Team does not exist or access is denied.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"DoesntExistOrAccessDenied\"] = 1] = \"DoesntExistOrAccessDenied\";\r\n /**\r\n * Maximum number of teams was exceeded. No team data will be returned for this team.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"MaxTeamsExceeded\"] = 2] = \"MaxTeamsExceeded\";\r\n /**\r\n * Maximum number of team fields (ie Area paths) have been exceeded. No team data will be returned for this team.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"MaxTeamFieldsExceeded\"] = 3] = \"MaxTeamFieldsExceeded\";\r\n /**\r\n * Backlog does not exist or is missing crucial information.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"BacklogInError\"] = 4] = \"BacklogInError\";\r\n /**\r\n * Team field value is not set for this team. No team data will be returned for this team\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"MissingTeamFieldValue\"] = 5] = \"MissingTeamFieldValue\";\r\n /**\r\n * Team does not have a single iteration with date range.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"NoIterationsExist\"] = 6] = \"NoIterationsExist\";\r\n})(TimelineTeamStatusCode = exports.TimelineTeamStatusCode || (exports.TimelineTeamStatusCode = {}));\r\nexports.TypeInfo = {\r\n BacklogConfiguration: {},\r\n BacklogLevelConfiguration: {},\r\n BacklogType: {\r\n enumValues: {\r\n \"portfolio\": 0,\r\n \"requirement\": 1,\r\n \"task\": 2\r\n }\r\n },\r\n Board: {},\r\n BoardBadgeColumnOptions: {\r\n enumValues: {\r\n \"inProgressColumns\": 0,\r\n \"allColumns\": 1,\r\n \"customColumns\": 2\r\n }\r\n },\r\n BoardColumn: {},\r\n BoardColumnType: {\r\n enumValues: {\r\n \"incoming\": 0,\r\n \"inProgress\": 1,\r\n \"outgoing\": 2\r\n }\r\n },\r\n BugsBehavior: {\r\n enumValues: {\r\n \"off\": 0,\r\n \"asRequirements\": 1,\r\n \"asTasks\": 2\r\n }\r\n },\r\n CapacityContractBase: {},\r\n CapacityPatch: {},\r\n CardFieldSettings: {},\r\n CardSettings: {},\r\n CreatePlan: {},\r\n DateRange: {},\r\n DeliveryViewData: {},\r\n DeliveryViewPropertyCollection: {},\r\n FieldInfo: {},\r\n FieldType: {\r\n enumValues: {\r\n \"string\": 0,\r\n \"plainText\": 1,\r\n \"integer\": 2,\r\n \"dateTime\": 3,\r\n \"treePath\": 4,\r\n \"boolean\": 5,\r\n \"double\": 6\r\n }\r\n },\r\n IdentityDisplayFormat: {\r\n enumValues: {\r\n \"avatarOnly\": 0,\r\n \"fullName\": 1,\r\n \"avatarAndFullName\": 2\r\n }\r\n },\r\n Marker: {},\r\n Plan: {},\r\n PlanMetadata: {},\r\n PlanType: {\r\n enumValues: {\r\n \"deliveryTimelineView\": 0\r\n }\r\n },\r\n PlanUserPermissions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"view\": 1,\r\n \"edit\": 2,\r\n \"delete\": 4,\r\n \"manage\": 8,\r\n \"allPermissions\": 15\r\n }\r\n },\r\n TeamCapacity: {},\r\n TeamIterationAttributes: {},\r\n TeamMemberCapacity: {},\r\n TeamMemberCapacityIdentityRef: {},\r\n TeamSetting: {},\r\n TeamSettingsDaysOff: {},\r\n TeamSettingsDaysOffPatch: {},\r\n TeamSettingsIteration: {},\r\n TeamSettingsPatch: {},\r\n TimeFrame: {\r\n enumValues: {\r\n \"past\": 0,\r\n \"current\": 1,\r\n \"future\": 2\r\n }\r\n },\r\n TimelineCriteriaStatus: {},\r\n TimelineCriteriaStatusCode: {\r\n enumValues: {\r\n \"ok\": 0,\r\n \"invalidFilterClause\": 1,\r\n \"unknown\": 2\r\n }\r\n },\r\n TimelineIterationStatus: {},\r\n TimelineIterationStatusCode: {\r\n enumValues: {\r\n \"ok\": 0,\r\n \"isOverlapping\": 1\r\n }\r\n },\r\n TimelineTeamData: {},\r\n TimelineTeamIteration: {},\r\n TimelineTeamStatus: {},\r\n TimelineTeamStatusCode: {\r\n enumValues: {\r\n \"ok\": 0,\r\n \"doesntExistOrAccessDenied\": 1,\r\n \"maxTeamsExceeded\": 2,\r\n \"maxTeamFieldsExceeded\": 3,\r\n \"backlogInError\": 4,\r\n \"missingTeamFieldValue\": 5,\r\n \"noIterationsExist\": 6\r\n }\r\n },\r\n UpdatePlan: {},\r\n};\r\nexports.TypeInfo.BacklogConfiguration.fields = {\r\n bugsBehavior: {\r\n enumType: exports.TypeInfo.BugsBehavior\r\n },\r\n portfolioBacklogs: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BacklogLevelConfiguration\r\n },\r\n requirementBacklog: {\r\n typeInfo: exports.TypeInfo.BacklogLevelConfiguration\r\n },\r\n taskBacklog: {\r\n typeInfo: exports.TypeInfo.BacklogLevelConfiguration\r\n }\r\n};\r\nexports.TypeInfo.BacklogLevelConfiguration.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.BacklogType\r\n }\r\n};\r\nexports.TypeInfo.Board.fields = {\r\n columns: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BoardColumn\r\n }\r\n};\r\nexports.TypeInfo.BoardColumn.fields = {\r\n columnType: {\r\n enumType: exports.TypeInfo.BoardColumnType\r\n }\r\n};\r\nexports.TypeInfo.CapacityContractBase.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.CapacityPatch.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.CardFieldSettings.fields = {\r\n additionalFields: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.FieldInfo\r\n },\r\n assignedToDisplayFormat: {\r\n enumType: exports.TypeInfo.IdentityDisplayFormat\r\n },\r\n coreFields: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.FieldInfo\r\n }\r\n};\r\nexports.TypeInfo.CardSettings.fields = {\r\n fields: {\r\n typeInfo: exports.TypeInfo.CardFieldSettings\r\n }\r\n};\r\nexports.TypeInfo.CreatePlan.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.PlanType\r\n }\r\n};\r\nexports.TypeInfo.DateRange.fields = {\r\n end: {\r\n isDate: true,\r\n },\r\n start: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.DeliveryViewData.fields = {\r\n criteriaStatus: {\r\n typeInfo: exports.TypeInfo.TimelineCriteriaStatus\r\n },\r\n endDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n teams: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineTeamData\r\n }\r\n};\r\nexports.TypeInfo.DeliveryViewPropertyCollection.fields = {\r\n cardSettings: {\r\n typeInfo: exports.TypeInfo.CardSettings\r\n },\r\n markers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Marker\r\n }\r\n};\r\nexports.TypeInfo.FieldInfo.fields = {\r\n fieldType: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.Marker.fields = {\r\n date: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Plan.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.PlanType\r\n },\r\n userPermissions: {\r\n enumType: exports.TypeInfo.PlanUserPermissions\r\n }\r\n};\r\nexports.TypeInfo.PlanMetadata.fields = {\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n userPermissions: {\r\n enumType: exports.TypeInfo.PlanUserPermissions\r\n }\r\n};\r\nexports.TypeInfo.TeamCapacity.fields = {\r\n teamMembers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TeamMemberCapacityIdentityRef\r\n }\r\n};\r\nexports.TypeInfo.TeamIterationAttributes.fields = {\r\n finishDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n timeFrame: {\r\n enumType: exports.TypeInfo.TimeFrame\r\n }\r\n};\r\nexports.TypeInfo.TeamMemberCapacity.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.TeamMemberCapacityIdentityRef.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.TeamSetting.fields = {\r\n backlogIteration: {\r\n typeInfo: exports.TypeInfo.TeamSettingsIteration\r\n },\r\n bugsBehavior: {\r\n enumType: exports.TypeInfo.BugsBehavior\r\n },\r\n defaultIteration: {\r\n typeInfo: exports.TypeInfo.TeamSettingsIteration\r\n },\r\n workingDays: {\r\n isArray: true,\r\n enumType: SystemInterfaces.TypeInfo.DayOfWeek\r\n }\r\n};\r\nexports.TypeInfo.TeamSettingsDaysOff.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.TeamSettingsDaysOffPatch.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.TeamSettingsIteration.fields = {\r\n attributes: {\r\n typeInfo: exports.TypeInfo.TeamIterationAttributes\r\n }\r\n};\r\nexports.TypeInfo.TeamSettingsPatch.fields = {\r\n bugsBehavior: {\r\n enumType: exports.TypeInfo.BugsBehavior\r\n },\r\n workingDays: {\r\n isArray: true,\r\n enumType: SystemInterfaces.TypeInfo.DayOfWeek\r\n }\r\n};\r\nexports.TypeInfo.TimelineCriteriaStatus.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.TimelineCriteriaStatusCode\r\n }\r\n};\r\nexports.TypeInfo.TimelineIterationStatus.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.TimelineIterationStatusCode\r\n }\r\n};\r\nexports.TypeInfo.TimelineTeamData.fields = {\r\n iterations: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineTeamIteration\r\n },\r\n status: {\r\n typeInfo: exports.TypeInfo.TimelineTeamStatus\r\n }\r\n};\r\nexports.TypeInfo.TimelineTeamIteration.fields = {\r\n finishDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n typeInfo: exports.TypeInfo.TimelineIterationStatus\r\n }\r\n};\r\nexports.TypeInfo.TimelineTeamStatus.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.TimelineTeamStatusCode\r\n }\r\n};\r\nexports.TypeInfo.UpdatePlan.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.PlanType\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Flag to control error policy in a batch classification nodes get request.\r\n */\r\nvar ClassificationNodesErrorPolicy;\r\n(function (ClassificationNodesErrorPolicy) {\r\n ClassificationNodesErrorPolicy[ClassificationNodesErrorPolicy[\"Fail\"] = 1] = \"Fail\";\r\n ClassificationNodesErrorPolicy[ClassificationNodesErrorPolicy[\"Omit\"] = 2] = \"Omit\";\r\n})(ClassificationNodesErrorPolicy = exports.ClassificationNodesErrorPolicy || (exports.ClassificationNodesErrorPolicy = {}));\r\n/**\r\n * Specifies the additional data retrieval options for work item comments.\r\n */\r\nvar CommentExpandOptions;\r\n(function (CommentExpandOptions) {\r\n CommentExpandOptions[CommentExpandOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include comment reactions.\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"Reactions\"] = 1] = \"Reactions\";\r\n /**\r\n * Include the rendered text (html) in addition to MD text.\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"RenderedText\"] = 8] = \"RenderedText\";\r\n /**\r\n * If specified, then ONLY rendered text (html) will be returned, w/o markdown. Supposed to be used internally from data provides for optimization purposes.\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"RenderedTextOnly\"] = 16] = \"RenderedTextOnly\";\r\n CommentExpandOptions[CommentExpandOptions[\"All\"] = -17] = \"All\";\r\n})(CommentExpandOptions = exports.CommentExpandOptions || (exports.CommentExpandOptions = {}));\r\n/**\r\n * Represents different reaction types for a work item comment.\r\n */\r\nvar CommentReactionType;\r\n(function (CommentReactionType) {\r\n CommentReactionType[CommentReactionType[\"Like\"] = 0] = \"Like\";\r\n CommentReactionType[CommentReactionType[\"Dislike\"] = 1] = \"Dislike\";\r\n CommentReactionType[CommentReactionType[\"Heart\"] = 2] = \"Heart\";\r\n CommentReactionType[CommentReactionType[\"Hooray\"] = 3] = \"Hooray\";\r\n CommentReactionType[CommentReactionType[\"Smile\"] = 4] = \"Smile\";\r\n CommentReactionType[CommentReactionType[\"Confused\"] = 5] = \"Confused\";\r\n})(CommentReactionType = exports.CommentReactionType || (exports.CommentReactionType = {}));\r\nvar CommentSortOrder;\r\n(function (CommentSortOrder) {\r\n /**\r\n * The results will be sorted in Ascending order.\r\n */\r\n CommentSortOrder[CommentSortOrder[\"Asc\"] = 1] = \"Asc\";\r\n /**\r\n * The results will be sorted in Descending order.\r\n */\r\n CommentSortOrder[CommentSortOrder[\"Desc\"] = 2] = \"Desc\";\r\n})(CommentSortOrder = exports.CommentSortOrder || (exports.CommentSortOrder = {}));\r\n/**\r\n * Enum for field types.\r\n */\r\nvar FieldType;\r\n(function (FieldType) {\r\n /**\r\n * String field type.\r\n */\r\n FieldType[FieldType[\"String\"] = 0] = \"String\";\r\n /**\r\n * Integer field type.\r\n */\r\n FieldType[FieldType[\"Integer\"] = 1] = \"Integer\";\r\n /**\r\n * Datetime field type.\r\n */\r\n FieldType[FieldType[\"DateTime\"] = 2] = \"DateTime\";\r\n /**\r\n * Plain text field type.\r\n */\r\n FieldType[FieldType[\"PlainText\"] = 3] = \"PlainText\";\r\n /**\r\n * HTML (Multiline) field type.\r\n */\r\n FieldType[FieldType[\"Html\"] = 4] = \"Html\";\r\n /**\r\n * Treepath field type.\r\n */\r\n FieldType[FieldType[\"TreePath\"] = 5] = \"TreePath\";\r\n /**\r\n * History field type.\r\n */\r\n FieldType[FieldType[\"History\"] = 6] = \"History\";\r\n /**\r\n * Double field type.\r\n */\r\n FieldType[FieldType[\"Double\"] = 7] = \"Double\";\r\n /**\r\n * Guid field type.\r\n */\r\n FieldType[FieldType[\"Guid\"] = 8] = \"Guid\";\r\n /**\r\n * Boolean field type.\r\n */\r\n FieldType[FieldType[\"Boolean\"] = 9] = \"Boolean\";\r\n /**\r\n * Identity field type.\r\n */\r\n FieldType[FieldType[\"Identity\"] = 10] = \"Identity\";\r\n /**\r\n * String picklist field type. When creating a string picklist field from REST API, use \"String\" FieldType.\r\n */\r\n FieldType[FieldType[\"PicklistString\"] = 11] = \"PicklistString\";\r\n /**\r\n * Integer picklist field type. When creating a integer picklist field from REST API, use \"Integer\" FieldType.\r\n */\r\n FieldType[FieldType[\"PicklistInteger\"] = 12] = \"PicklistInteger\";\r\n /**\r\n * Double picklist field type. When creating a double picklist field from REST API, use \"Double\" FieldType.\r\n */\r\n FieldType[FieldType[\"PicklistDouble\"] = 13] = \"PicklistDouble\";\r\n})(FieldType = exports.FieldType || (exports.FieldType = {}));\r\n/**\r\n * Enum for field usages.\r\n */\r\nvar FieldUsage;\r\n(function (FieldUsage) {\r\n /**\r\n * Empty usage.\r\n */\r\n FieldUsage[FieldUsage[\"None\"] = 0] = \"None\";\r\n /**\r\n * Work item field usage.\r\n */\r\n FieldUsage[FieldUsage[\"WorkItem\"] = 1] = \"WorkItem\";\r\n /**\r\n * Work item link field usage.\r\n */\r\n FieldUsage[FieldUsage[\"WorkItemLink\"] = 2] = \"WorkItemLink\";\r\n /**\r\n * Treenode field usage.\r\n */\r\n FieldUsage[FieldUsage[\"Tree\"] = 3] = \"Tree\";\r\n /**\r\n * Work Item Type Extension usage.\r\n */\r\n FieldUsage[FieldUsage[\"WorkItemTypeExtension\"] = 4] = \"WorkItemTypeExtension\";\r\n})(FieldUsage = exports.FieldUsage || (exports.FieldUsage = {}));\r\n/**\r\n * Flag to expand types of fields.\r\n */\r\nvar GetFieldsExpand;\r\n(function (GetFieldsExpand) {\r\n /**\r\n * Default behavior.\r\n */\r\n GetFieldsExpand[GetFieldsExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * Adds extension fields to the response.\r\n */\r\n GetFieldsExpand[GetFieldsExpand[\"ExtensionFields\"] = 1] = \"ExtensionFields\";\r\n /**\r\n * Includes fields that have been deleted.\r\n */\r\n GetFieldsExpand[GetFieldsExpand[\"IncludeDeleted\"] = 2] = \"IncludeDeleted\";\r\n})(GetFieldsExpand = exports.GetFieldsExpand || (exports.GetFieldsExpand = {}));\r\n/**\r\n * The link query mode which determines the behavior of the query.\r\n */\r\nvar LinkQueryMode;\r\n(function (LinkQueryMode) {\r\n /**\r\n * Returns flat list of work items.\r\n */\r\n LinkQueryMode[LinkQueryMode[\"WorkItems\"] = 0] = \"WorkItems\";\r\n /**\r\n * Returns work items where the source, target, and link criteria are all satisfied.\r\n */\r\n LinkQueryMode[LinkQueryMode[\"LinksOneHopMustContain\"] = 1] = \"LinksOneHopMustContain\";\r\n /**\r\n * Returns work items that satisfy the source and link criteria, even if no linked work item satisfies the target criteria.\r\n */\r\n LinkQueryMode[LinkQueryMode[\"LinksOneHopMayContain\"] = 2] = \"LinksOneHopMayContain\";\r\n /**\r\n * Returns work items that satisfy the source, only if no linked work item satisfies the link and target criteria.\r\n */\r\n LinkQueryMode[LinkQueryMode[\"LinksOneHopDoesNotContain\"] = 3] = \"LinksOneHopDoesNotContain\";\r\n LinkQueryMode[LinkQueryMode[\"LinksRecursiveMustContain\"] = 4] = \"LinksRecursiveMustContain\";\r\n /**\r\n * Returns work items a hierarchy of work items that by default satisfy the source\r\n */\r\n LinkQueryMode[LinkQueryMode[\"LinksRecursiveMayContain\"] = 5] = \"LinksRecursiveMayContain\";\r\n LinkQueryMode[LinkQueryMode[\"LinksRecursiveDoesNotContain\"] = 6] = \"LinksRecursiveDoesNotContain\";\r\n})(LinkQueryMode = exports.LinkQueryMode || (exports.LinkQueryMode = {}));\r\nvar LogicalOperation;\r\n(function (LogicalOperation) {\r\n LogicalOperation[LogicalOperation[\"NONE\"] = 0] = \"NONE\";\r\n LogicalOperation[LogicalOperation[\"AND\"] = 1] = \"AND\";\r\n LogicalOperation[LogicalOperation[\"OR\"] = 2] = \"OR\";\r\n})(LogicalOperation = exports.LogicalOperation || (exports.LogicalOperation = {}));\r\n/**\r\n * Enumerates the possible provisioning actions that can be triggered on process template update.\r\n */\r\nvar ProvisioningActionType;\r\n(function (ProvisioningActionType) {\r\n ProvisioningActionType[ProvisioningActionType[\"Import\"] = 0] = \"Import\";\r\n ProvisioningActionType[ProvisioningActionType[\"Validate\"] = 1] = \"Validate\";\r\n})(ProvisioningActionType = exports.ProvisioningActionType || (exports.ProvisioningActionType = {}));\r\n/**\r\n * Enum to control error policy in a query batch request.\r\n */\r\nvar QueryErrorPolicy;\r\n(function (QueryErrorPolicy) {\r\n QueryErrorPolicy[QueryErrorPolicy[\"Fail\"] = 1] = \"Fail\";\r\n QueryErrorPolicy[QueryErrorPolicy[\"Omit\"] = 2] = \"Omit\";\r\n})(QueryErrorPolicy = exports.QueryErrorPolicy || (exports.QueryErrorPolicy = {}));\r\n/**\r\n * Determines which set of additional query properties to display\r\n */\r\nvar QueryExpand;\r\n(function (QueryExpand) {\r\n /**\r\n * Expands Columns, Links and ChangeInfo\r\n */\r\n QueryExpand[QueryExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * Expands Columns, Links, ChangeInfo and WIQL text\r\n */\r\n QueryExpand[QueryExpand[\"Wiql\"] = 1] = \"Wiql\";\r\n /**\r\n * Expands Columns, Links, ChangeInfo, WIQL text and clauses\r\n */\r\n QueryExpand[QueryExpand[\"Clauses\"] = 2] = \"Clauses\";\r\n /**\r\n * Expands all properties\r\n */\r\n QueryExpand[QueryExpand[\"All\"] = 3] = \"All\";\r\n /**\r\n * Displays minimal properties and the WIQL text\r\n */\r\n QueryExpand[QueryExpand[\"Minimal\"] = 4] = \"Minimal\";\r\n})(QueryExpand = exports.QueryExpand || (exports.QueryExpand = {}));\r\nvar QueryOption;\r\n(function (QueryOption) {\r\n QueryOption[QueryOption[\"Doing\"] = 1] = \"Doing\";\r\n QueryOption[QueryOption[\"Done\"] = 2] = \"Done\";\r\n QueryOption[QueryOption[\"Followed\"] = 3] = \"Followed\";\r\n})(QueryOption = exports.QueryOption || (exports.QueryOption = {}));\r\n/**\r\n * Determines whether a tree query matches parents or children first.\r\n */\r\nvar QueryRecursionOption;\r\n(function (QueryRecursionOption) {\r\n /**\r\n * Returns work items that satisfy the source, even if no linked work item satisfies the target and link criteria.\r\n */\r\n QueryRecursionOption[QueryRecursionOption[\"ParentFirst\"] = 0] = \"ParentFirst\";\r\n /**\r\n * Returns work items that satisfy the target criteria, even if no work item satisfies the source and link criteria.\r\n */\r\n QueryRecursionOption[QueryRecursionOption[\"ChildFirst\"] = 1] = \"ChildFirst\";\r\n})(QueryRecursionOption = exports.QueryRecursionOption || (exports.QueryRecursionOption = {}));\r\n/**\r\n * The query result type\r\n */\r\nvar QueryResultType;\r\n(function (QueryResultType) {\r\n /**\r\n * A list of work items (for flat queries).\r\n */\r\n QueryResultType[QueryResultType[\"WorkItem\"] = 1] = \"WorkItem\";\r\n /**\r\n * A list of work item links (for OneHop and Tree queries).\r\n */\r\n QueryResultType[QueryResultType[\"WorkItemLink\"] = 2] = \"WorkItemLink\";\r\n})(QueryResultType = exports.QueryResultType || (exports.QueryResultType = {}));\r\n/**\r\n * The type of query.\r\n */\r\nvar QueryType;\r\n(function (QueryType) {\r\n /**\r\n * Gets a flat list of work items.\r\n */\r\n QueryType[QueryType[\"Flat\"] = 1] = \"Flat\";\r\n /**\r\n * Gets a tree of work items showing their link hierarchy.\r\n */\r\n QueryType[QueryType[\"Tree\"] = 2] = \"Tree\";\r\n /**\r\n * Gets a list of work items and their direct links.\r\n */\r\n QueryType[QueryType[\"OneHop\"] = 3] = \"OneHop\";\r\n})(QueryType = exports.QueryType || (exports.QueryType = {}));\r\n/**\r\n * The reporting revision expand level.\r\n */\r\nvar ReportingRevisionsExpand;\r\n(function (ReportingRevisionsExpand) {\r\n /**\r\n * Default behavior.\r\n */\r\n ReportingRevisionsExpand[ReportingRevisionsExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * Add fields to the response.\r\n */\r\n ReportingRevisionsExpand[ReportingRevisionsExpand[\"Fields\"] = 1] = \"Fields\";\r\n})(ReportingRevisionsExpand = exports.ReportingRevisionsExpand || (exports.ReportingRevisionsExpand = {}));\r\n/**\r\n * Enumerates types of supported xml templates used for customization.\r\n */\r\nvar TemplateType;\r\n(function (TemplateType) {\r\n TemplateType[TemplateType[\"WorkItemType\"] = 0] = \"WorkItemType\";\r\n TemplateType[TemplateType[\"GlobalWorkflow\"] = 1] = \"GlobalWorkflow\";\r\n})(TemplateType = exports.TemplateType || (exports.TemplateType = {}));\r\n/**\r\n * Types of tree node structures.\r\n */\r\nvar TreeNodeStructureType;\r\n(function (TreeNodeStructureType) {\r\n /**\r\n * Area type.\r\n */\r\n TreeNodeStructureType[TreeNodeStructureType[\"Area\"] = 0] = \"Area\";\r\n /**\r\n * Iteration type.\r\n */\r\n TreeNodeStructureType[TreeNodeStructureType[\"Iteration\"] = 1] = \"Iteration\";\r\n})(TreeNodeStructureType = exports.TreeNodeStructureType || (exports.TreeNodeStructureType = {}));\r\n/**\r\n * Types of tree structures groups.\r\n */\r\nvar TreeStructureGroup;\r\n(function (TreeStructureGroup) {\r\n TreeStructureGroup[TreeStructureGroup[\"Areas\"] = 0] = \"Areas\";\r\n TreeStructureGroup[TreeStructureGroup[\"Iterations\"] = 1] = \"Iterations\";\r\n})(TreeStructureGroup = exports.TreeStructureGroup || (exports.TreeStructureGroup = {}));\r\n/**\r\n * Enum to control error policy in a bulk get work items request.\r\n */\r\nvar WorkItemErrorPolicy;\r\n(function (WorkItemErrorPolicy) {\r\n /**\r\n * Fail work error policy.\r\n */\r\n WorkItemErrorPolicy[WorkItemErrorPolicy[\"Fail\"] = 1] = \"Fail\";\r\n /**\r\n * Omit work error policy.\r\n */\r\n WorkItemErrorPolicy[WorkItemErrorPolicy[\"Omit\"] = 2] = \"Omit\";\r\n})(WorkItemErrorPolicy = exports.WorkItemErrorPolicy || (exports.WorkItemErrorPolicy = {}));\r\n/**\r\n * Flag to control payload properties from get work item command.\r\n */\r\nvar WorkItemExpand;\r\n(function (WorkItemExpand) {\r\n /**\r\n * Default behavior.\r\n */\r\n WorkItemExpand[WorkItemExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * Relations work item expand.\r\n */\r\n WorkItemExpand[WorkItemExpand[\"Relations\"] = 1] = \"Relations\";\r\n /**\r\n * Fields work item expand.\r\n */\r\n WorkItemExpand[WorkItemExpand[\"Fields\"] = 2] = \"Fields\";\r\n /**\r\n * Links work item expand.\r\n */\r\n WorkItemExpand[WorkItemExpand[\"Links\"] = 3] = \"Links\";\r\n /**\r\n * Expands all.\r\n */\r\n WorkItemExpand[WorkItemExpand[\"All\"] = 4] = \"All\";\r\n})(WorkItemExpand = exports.WorkItemExpand || (exports.WorkItemExpand = {}));\r\n/**\r\n * Type of the activity\r\n */\r\nvar WorkItemRecentActivityType;\r\n(function (WorkItemRecentActivityType) {\r\n WorkItemRecentActivityType[WorkItemRecentActivityType[\"Visited\"] = 0] = \"Visited\";\r\n WorkItemRecentActivityType[WorkItemRecentActivityType[\"Edited\"] = 1] = \"Edited\";\r\n WorkItemRecentActivityType[WorkItemRecentActivityType[\"Deleted\"] = 2] = \"Deleted\";\r\n WorkItemRecentActivityType[WorkItemRecentActivityType[\"Restored\"] = 3] = \"Restored\";\r\n})(WorkItemRecentActivityType = exports.WorkItemRecentActivityType || (exports.WorkItemRecentActivityType = {}));\r\n/**\r\n * Expand options for the work item field(s) request.\r\n */\r\nvar WorkItemTypeFieldsExpandLevel;\r\n(function (WorkItemTypeFieldsExpandLevel) {\r\n /**\r\n * Includes only basic properties of the field.\r\n */\r\n WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel[\"None\"] = 0] = \"None\";\r\n /**\r\n * Includes allowed values for the field.\r\n */\r\n WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel[\"AllowedValues\"] = 1] = \"AllowedValues\";\r\n /**\r\n * Includes dependent fields of the field.\r\n */\r\n WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel[\"DependentFields\"] = 2] = \"DependentFields\";\r\n /**\r\n * Includes allowed values and dependent fields of the field.\r\n */\r\n WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel[\"All\"] = 3] = \"All\";\r\n})(WorkItemTypeFieldsExpandLevel = exports.WorkItemTypeFieldsExpandLevel || (exports.WorkItemTypeFieldsExpandLevel = {}));\r\nexports.TypeInfo = {\r\n AccountMyWorkResult: {},\r\n AccountRecentActivityWorkItemModel: {},\r\n AccountRecentActivityWorkItemModel2: {},\r\n AccountRecentActivityWorkItemModelBase: {},\r\n AccountRecentMentionWorkItemModel: {},\r\n AccountWorkWorkItemModel: {},\r\n ClassificationNodesErrorPolicy: {\r\n enumValues: {\r\n \"fail\": 1,\r\n \"omit\": 2\r\n }\r\n },\r\n Comment: {},\r\n CommentExpandOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"reactions\": 1,\r\n \"renderedText\": 8,\r\n \"renderedTextOnly\": 16,\r\n \"all\": -17\r\n }\r\n },\r\n CommentList: {},\r\n CommentReaction: {},\r\n CommentReactionType: {\r\n enumValues: {\r\n \"like\": 0,\r\n \"dislike\": 1,\r\n \"heart\": 2,\r\n \"hooray\": 3,\r\n \"smile\": 4,\r\n \"confused\": 5\r\n }\r\n },\r\n CommentSortOrder: {\r\n enumValues: {\r\n \"asc\": 1,\r\n \"desc\": 2\r\n }\r\n },\r\n CommentVersion: {},\r\n ExternalDeployment: {},\r\n FieldType: {\r\n enumValues: {\r\n \"string\": 0,\r\n \"integer\": 1,\r\n \"dateTime\": 2,\r\n \"plainText\": 3,\r\n \"html\": 4,\r\n \"treePath\": 5,\r\n \"history\": 6,\r\n \"double\": 7,\r\n \"guid\": 8,\r\n \"boolean\": 9,\r\n \"identity\": 10,\r\n \"picklistString\": 11,\r\n \"picklistInteger\": 12,\r\n \"picklistDouble\": 13\r\n }\r\n },\r\n FieldUsage: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"workItem\": 1,\r\n \"workItemLink\": 2,\r\n \"tree\": 3,\r\n \"workItemTypeExtension\": 4\r\n }\r\n },\r\n GetFieldsExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"extensionFields\": 1,\r\n \"includeDeleted\": 2\r\n }\r\n },\r\n LinkQueryMode: {\r\n enumValues: {\r\n \"workItems\": 0,\r\n \"linksOneHopMustContain\": 1,\r\n \"linksOneHopMayContain\": 2,\r\n \"linksOneHopDoesNotContain\": 3,\r\n \"linksRecursiveMustContain\": 4,\r\n \"linksRecursiveMayContain\": 5,\r\n \"linksRecursiveDoesNotContain\": 6\r\n }\r\n },\r\n LogicalOperation: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"and\": 1,\r\n \"or\": 2\r\n }\r\n },\r\n ProvisioningActionType: {\r\n enumValues: {\r\n \"import\": 0,\r\n \"validate\": 1\r\n }\r\n },\r\n QueryBatchGetRequest: {},\r\n QueryErrorPolicy: {\r\n enumValues: {\r\n \"fail\": 1,\r\n \"omit\": 2\r\n }\r\n },\r\n QueryExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"wiql\": 1,\r\n \"clauses\": 2,\r\n \"all\": 3,\r\n \"minimal\": 4\r\n }\r\n },\r\n QueryHierarchyItem: {},\r\n QueryHierarchyItemsResult: {},\r\n QueryOption: {\r\n enumValues: {\r\n \"doing\": 1,\r\n \"done\": 2,\r\n \"followed\": 3\r\n }\r\n },\r\n QueryRecursionOption: {\r\n enumValues: {\r\n \"parentFirst\": 0,\r\n \"childFirst\": 1\r\n }\r\n },\r\n QueryResultType: {\r\n enumValues: {\r\n \"workItem\": 1,\r\n \"workItemLink\": 2\r\n }\r\n },\r\n QueryType: {\r\n enumValues: {\r\n \"flat\": 1,\r\n \"tree\": 2,\r\n \"oneHop\": 3\r\n }\r\n },\r\n ReportingRevisionsExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"fields\": 1\r\n }\r\n },\r\n TemplateType: {\r\n enumValues: {\r\n \"workItemType\": 0,\r\n \"globalWorkflow\": 1\r\n }\r\n },\r\n TreeNodeStructureType: {\r\n enumValues: {\r\n \"area\": 0,\r\n \"iteration\": 1\r\n }\r\n },\r\n TreeStructureGroup: {\r\n enumValues: {\r\n \"areas\": 0,\r\n \"iterations\": 1\r\n }\r\n },\r\n WorkItemBatchGetRequest: {},\r\n WorkItemClassificationNode: {},\r\n WorkItemComment: {},\r\n WorkItemComments: {},\r\n WorkItemErrorPolicy: {\r\n enumValues: {\r\n \"fail\": 1,\r\n \"omit\": 2\r\n }\r\n },\r\n WorkItemExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"relations\": 1,\r\n \"fields\": 2,\r\n \"links\": 3,\r\n \"all\": 4\r\n }\r\n },\r\n WorkItemField: {},\r\n WorkItemHistory: {},\r\n WorkItemQueryClause: {},\r\n WorkItemQueryResult: {},\r\n WorkItemRecentActivityType: {\r\n enumValues: {\r\n \"visited\": 0,\r\n \"edited\": 1,\r\n \"deleted\": 2,\r\n \"restored\": 3\r\n }\r\n },\r\n WorkItemTypeFieldsExpandLevel: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"allowedValues\": 1,\r\n \"dependentFields\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n WorkItemTypeTemplateUpdateModel: {},\r\n WorkItemUpdate: {},\r\n};\r\nexports.TypeInfo.AccountMyWorkResult.fields = {\r\n workItemDetails: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.AccountWorkWorkItemModel\r\n }\r\n};\r\nexports.TypeInfo.AccountRecentActivityWorkItemModel.fields = {\r\n activityDate: {\r\n isDate: true,\r\n },\r\n activityType: {\r\n enumType: exports.TypeInfo.WorkItemRecentActivityType\r\n },\r\n changedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AccountRecentActivityWorkItemModel2.fields = {\r\n activityDate: {\r\n isDate: true,\r\n },\r\n activityType: {\r\n enumType: exports.TypeInfo.WorkItemRecentActivityType\r\n },\r\n changedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AccountRecentActivityWorkItemModelBase.fields = {\r\n activityDate: {\r\n isDate: true,\r\n },\r\n activityType: {\r\n enumType: exports.TypeInfo.WorkItemRecentActivityType\r\n },\r\n changedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AccountRecentMentionWorkItemModel.fields = {\r\n mentionedDateField: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AccountWorkWorkItemModel.fields = {\r\n changedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Comment.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n createdOnBehalfDate: {\r\n isDate: true,\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n reactions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.CommentReaction\r\n }\r\n};\r\nexports.TypeInfo.CommentList.fields = {\r\n comments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Comment\r\n }\r\n};\r\nexports.TypeInfo.CommentReaction.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.CommentReactionType\r\n }\r\n};\r\nexports.TypeInfo.CommentVersion.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n createdOnBehalfDate: {\r\n isDate: true,\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ExternalDeployment.fields = {\r\n statusDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.QueryBatchGetRequest.fields = {\r\n $expand: {\r\n enumType: exports.TypeInfo.QueryExpand\r\n },\r\n errorPolicy: {\r\n enumType: exports.TypeInfo.QueryErrorPolicy\r\n }\r\n};\r\nexports.TypeInfo.QueryHierarchyItem.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.QueryHierarchyItem\r\n },\r\n clauses: {\r\n typeInfo: exports.TypeInfo.WorkItemQueryClause\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n filterOptions: {\r\n enumType: exports.TypeInfo.LinkQueryMode\r\n },\r\n lastExecutedDate: {\r\n isDate: true,\r\n },\r\n lastModifiedDate: {\r\n isDate: true,\r\n },\r\n linkClauses: {\r\n typeInfo: exports.TypeInfo.WorkItemQueryClause\r\n },\r\n queryRecursionOption: {\r\n enumType: exports.TypeInfo.QueryRecursionOption\r\n },\r\n queryType: {\r\n enumType: exports.TypeInfo.QueryType\r\n },\r\n sourceClauses: {\r\n typeInfo: exports.TypeInfo.WorkItemQueryClause\r\n },\r\n targetClauses: {\r\n typeInfo: exports.TypeInfo.WorkItemQueryClause\r\n }\r\n};\r\nexports.TypeInfo.QueryHierarchyItemsResult.fields = {\r\n value: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.QueryHierarchyItem\r\n }\r\n};\r\nexports.TypeInfo.WorkItemBatchGetRequest.fields = {\r\n $expand: {\r\n enumType: exports.TypeInfo.WorkItemExpand\r\n },\r\n asOf: {\r\n isDate: true,\r\n },\r\n errorPolicy: {\r\n enumType: exports.TypeInfo.WorkItemErrorPolicy\r\n }\r\n};\r\nexports.TypeInfo.WorkItemClassificationNode.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkItemClassificationNode\r\n },\r\n structureType: {\r\n enumType: exports.TypeInfo.TreeNodeStructureType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemComment.fields = {\r\n revisedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.WorkItemComments.fields = {\r\n comments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkItemComment\r\n }\r\n};\r\nexports.TypeInfo.WorkItemField.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n },\r\n usage: {\r\n enumType: exports.TypeInfo.FieldUsage\r\n }\r\n};\r\nexports.TypeInfo.WorkItemHistory.fields = {\r\n revisedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.WorkItemQueryClause.fields = {\r\n clauses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkItemQueryClause\r\n },\r\n logicalOperator: {\r\n enumType: exports.TypeInfo.LogicalOperation\r\n }\r\n};\r\nexports.TypeInfo.WorkItemQueryResult.fields = {\r\n asOf: {\r\n isDate: true,\r\n },\r\n queryResultType: {\r\n enumType: exports.TypeInfo.QueryResultType\r\n },\r\n queryType: {\r\n enumType: exports.TypeInfo.QueryType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemTypeTemplateUpdateModel.fields = {\r\n actionType: {\r\n enumType: exports.TypeInfo.ProvisioningActionType\r\n },\r\n templateType: {\r\n enumType: exports.TypeInfo.TemplateType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemUpdate.fields = {\r\n revisedDate: {\r\n isDate: true,\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Enum for the type of a field.\r\n */\r\nvar FieldType;\r\n(function (FieldType) {\r\n /**\r\n * String field type.\r\n */\r\n FieldType[FieldType[\"String\"] = 1] = \"String\";\r\n /**\r\n * Integer field type.\r\n */\r\n FieldType[FieldType[\"Integer\"] = 2] = \"Integer\";\r\n /**\r\n * Datetime field type.\r\n */\r\n FieldType[FieldType[\"DateTime\"] = 3] = \"DateTime\";\r\n /**\r\n * Plain Text field type.\r\n */\r\n FieldType[FieldType[\"PlainText\"] = 5] = \"PlainText\";\r\n /**\r\n * HTML (Multiline) field type.\r\n */\r\n FieldType[FieldType[\"Html\"] = 7] = \"Html\";\r\n /**\r\n * Treepath field type.\r\n */\r\n FieldType[FieldType[\"TreePath\"] = 8] = \"TreePath\";\r\n /**\r\n * History field type.\r\n */\r\n FieldType[FieldType[\"History\"] = 9] = \"History\";\r\n /**\r\n * Double field type.\r\n */\r\n FieldType[FieldType[\"Double\"] = 10] = \"Double\";\r\n /**\r\n * Guid field type.\r\n */\r\n FieldType[FieldType[\"Guid\"] = 11] = \"Guid\";\r\n /**\r\n * Boolean field type.\r\n */\r\n FieldType[FieldType[\"Boolean\"] = 12] = \"Boolean\";\r\n /**\r\n * Identity field type.\r\n */\r\n FieldType[FieldType[\"Identity\"] = 13] = \"Identity\";\r\n /**\r\n * Integer picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistInteger\"] = 14] = \"PicklistInteger\";\r\n /**\r\n * String picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistString\"] = 15] = \"PicklistString\";\r\n /**\r\n * Double picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistDouble\"] = 16] = \"PicklistDouble\";\r\n})(FieldType = exports.FieldType || (exports.FieldType = {}));\r\nvar GetWorkItemTypeExpand;\r\n(function (GetWorkItemTypeExpand) {\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"None\"] = 0] = \"None\";\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"States\"] = 1] = \"States\";\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"Behaviors\"] = 2] = \"Behaviors\";\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"Layout\"] = 4] = \"Layout\";\r\n})(GetWorkItemTypeExpand = exports.GetWorkItemTypeExpand || (exports.GetWorkItemTypeExpand = {}));\r\n/**\r\n * Type of page\r\n */\r\nvar PageType;\r\n(function (PageType) {\r\n PageType[PageType[\"Custom\"] = 1] = \"Custom\";\r\n PageType[PageType[\"History\"] = 2] = \"History\";\r\n PageType[PageType[\"Links\"] = 3] = \"Links\";\r\n PageType[PageType[\"Attachments\"] = 4] = \"Attachments\";\r\n})(PageType = exports.PageType || (exports.PageType = {}));\r\n/**\r\n * Work item type classes'\r\n */\r\nvar WorkItemTypeClass;\r\n(function (WorkItemTypeClass) {\r\n WorkItemTypeClass[WorkItemTypeClass[\"System\"] = 0] = \"System\";\r\n WorkItemTypeClass[WorkItemTypeClass[\"Derived\"] = 1] = \"Derived\";\r\n WorkItemTypeClass[WorkItemTypeClass[\"Custom\"] = 2] = \"Custom\";\r\n})(WorkItemTypeClass = exports.WorkItemTypeClass || (exports.WorkItemTypeClass = {}));\r\nexports.TypeInfo = {\r\n FieldModel: {},\r\n FieldType: {\r\n enumValues: {\r\n \"string\": 1,\r\n \"integer\": 2,\r\n \"dateTime\": 3,\r\n \"plainText\": 5,\r\n \"html\": 7,\r\n \"treePath\": 8,\r\n \"history\": 9,\r\n \"double\": 10,\r\n \"guid\": 11,\r\n \"boolean\": 12,\r\n \"identity\": 13,\r\n \"picklistInteger\": 14,\r\n \"picklistString\": 15,\r\n \"picklistDouble\": 16\r\n }\r\n },\r\n FormLayout: {},\r\n GetWorkItemTypeExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"states\": 1,\r\n \"behaviors\": 2,\r\n \"layout\": 4\r\n }\r\n },\r\n Page: {},\r\n PageType: {\r\n enumValues: {\r\n \"custom\": 1,\r\n \"history\": 2,\r\n \"links\": 3,\r\n \"attachments\": 4\r\n }\r\n },\r\n WorkItemTypeClass: {\r\n enumValues: {\r\n \"system\": 0,\r\n \"derived\": 1,\r\n \"custom\": 2\r\n }\r\n },\r\n WorkItemTypeFieldModel: {},\r\n WorkItemTypeFieldModel2: {},\r\n WorkItemTypeModel: {},\r\n};\r\nexports.TypeInfo.FieldModel.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.FormLayout.fields = {\r\n pages: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Page\r\n }\r\n};\r\nexports.TypeInfo.Page.fields = {\r\n pageType: {\r\n enumType: exports.TypeInfo.PageType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemTypeFieldModel.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemTypeFieldModel2.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemTypeModel.fields = {\r\n class: {\r\n enumType: exports.TypeInfo.WorkItemTypeClass\r\n },\r\n layout: {\r\n typeInfo: exports.TypeInfo.FormLayout\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Indicates the customization-type. Customization-type is System if is system generated or by default. Customization-type is Inherited if the existing workitemtype of inherited process is customized. Customization-type is Custom if the newly created workitemtype is customized.\r\n */\r\nvar CustomizationType;\r\n(function (CustomizationType) {\r\n /**\r\n * Customization-type is System if is system generated workitemtype.\r\n */\r\n CustomizationType[CustomizationType[\"System\"] = 1] = \"System\";\r\n /**\r\n * Customization-type is Inherited if the existing workitemtype of inherited process is customized.\r\n */\r\n CustomizationType[CustomizationType[\"Inherited\"] = 2] = \"Inherited\";\r\n /**\r\n * Customization-type is Custom if the newly created workitemtype is customized.\r\n */\r\n CustomizationType[CustomizationType[\"Custom\"] = 3] = \"Custom\";\r\n})(CustomizationType = exports.CustomizationType || (exports.CustomizationType = {}));\r\n/**\r\n * Enum for the type of a field.\r\n */\r\nvar FieldType;\r\n(function (FieldType) {\r\n /**\r\n * String field type.\r\n */\r\n FieldType[FieldType[\"String\"] = 1] = \"String\";\r\n /**\r\n * Integer field type.\r\n */\r\n FieldType[FieldType[\"Integer\"] = 2] = \"Integer\";\r\n /**\r\n * DateTime field type.\r\n */\r\n FieldType[FieldType[\"DateTime\"] = 3] = \"DateTime\";\r\n /**\r\n * Plain text field type.\r\n */\r\n FieldType[FieldType[\"PlainText\"] = 5] = \"PlainText\";\r\n /**\r\n * HTML (Multiline) field type.\r\n */\r\n FieldType[FieldType[\"Html\"] = 7] = \"Html\";\r\n /**\r\n * Treepath field type.\r\n */\r\n FieldType[FieldType[\"TreePath\"] = 8] = \"TreePath\";\r\n /**\r\n * History field type.\r\n */\r\n FieldType[FieldType[\"History\"] = 9] = \"History\";\r\n /**\r\n * Double field type.\r\n */\r\n FieldType[FieldType[\"Double\"] = 10] = \"Double\";\r\n /**\r\n * Guid field type.\r\n */\r\n FieldType[FieldType[\"Guid\"] = 11] = \"Guid\";\r\n /**\r\n * Boolean field type.\r\n */\r\n FieldType[FieldType[\"Boolean\"] = 12] = \"Boolean\";\r\n /**\r\n * Identity field type.\r\n */\r\n FieldType[FieldType[\"Identity\"] = 13] = \"Identity\";\r\n /**\r\n * Integer picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistInteger\"] = 14] = \"PicklistInteger\";\r\n /**\r\n * String picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistString\"] = 15] = \"PicklistString\";\r\n /**\r\n * Double picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistDouble\"] = 16] = \"PicklistDouble\";\r\n})(FieldType = exports.FieldType || (exports.FieldType = {}));\r\n/**\r\n * Expand options to fetch fields for behaviors API.\r\n */\r\nvar GetBehaviorsExpand;\r\n(function (GetBehaviorsExpand) {\r\n /**\r\n * Default none option.\r\n */\r\n GetBehaviorsExpand[GetBehaviorsExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * This option returns fields associated with a behavior.\r\n */\r\n GetBehaviorsExpand[GetBehaviorsExpand[\"Fields\"] = 1] = \"Fields\";\r\n /**\r\n * This option returns fields associated with this behavior and all behaviors from which it inherits.\r\n */\r\n GetBehaviorsExpand[GetBehaviorsExpand[\"CombinedFields\"] = 2] = \"CombinedFields\";\r\n})(GetBehaviorsExpand = exports.GetBehaviorsExpand || (exports.GetBehaviorsExpand = {}));\r\n/**\r\n * The expand level of returned processes.\r\n */\r\nvar GetProcessExpandLevel;\r\n(function (GetProcessExpandLevel) {\r\n /**\r\n * No expand level.\r\n */\r\n GetProcessExpandLevel[GetProcessExpandLevel[\"None\"] = 0] = \"None\";\r\n /**\r\n * Projects expand level.\r\n */\r\n GetProcessExpandLevel[GetProcessExpandLevel[\"Projects\"] = 1] = \"Projects\";\r\n})(GetProcessExpandLevel = exports.GetProcessExpandLevel || (exports.GetProcessExpandLevel = {}));\r\n/**\r\n * Flag to define what properties to return in get work item type response.\r\n */\r\nvar GetWorkItemTypeExpand;\r\n(function (GetWorkItemTypeExpand) {\r\n /**\r\n * Returns no properties in get work item type response.\r\n */\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * Returns states property in get work item type response.\r\n */\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"States\"] = 1] = \"States\";\r\n /**\r\n * Returns behaviors property in get work item type response.\r\n */\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"Behaviors\"] = 2] = \"Behaviors\";\r\n /**\r\n * Returns layout property in get work item type response.\r\n */\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"Layout\"] = 4] = \"Layout\";\r\n})(GetWorkItemTypeExpand = exports.GetWorkItemTypeExpand || (exports.GetWorkItemTypeExpand = {}));\r\n/**\r\n * Enum for the types of pages in the work item form layout\r\n */\r\nvar PageType;\r\n(function (PageType) {\r\n /**\r\n * Custom page type.\r\n */\r\n PageType[PageType[\"Custom\"] = 1] = \"Custom\";\r\n /**\r\n * History page type.\r\n */\r\n PageType[PageType[\"History\"] = 2] = \"History\";\r\n /**\r\n * Link page type.\r\n */\r\n PageType[PageType[\"Links\"] = 3] = \"Links\";\r\n /**\r\n * Attachment page type.\r\n */\r\n PageType[PageType[\"Attachments\"] = 4] = \"Attachments\";\r\n})(PageType = exports.PageType || (exports.PageType = {}));\r\nvar ProcessClass;\r\n(function (ProcessClass) {\r\n ProcessClass[ProcessClass[\"System\"] = 0] = \"System\";\r\n ProcessClass[ProcessClass[\"Derived\"] = 1] = \"Derived\";\r\n ProcessClass[ProcessClass[\"Custom\"] = 2] = \"Custom\";\r\n})(ProcessClass = exports.ProcessClass || (exports.ProcessClass = {}));\r\n/**\r\n * Expand options for the work item field(s) request.\r\n */\r\nvar ProcessWorkItemTypeFieldsExpandLevel;\r\n(function (ProcessWorkItemTypeFieldsExpandLevel) {\r\n /**\r\n * Includes only basic properties of the field.\r\n */\r\n ProcessWorkItemTypeFieldsExpandLevel[ProcessWorkItemTypeFieldsExpandLevel[\"None\"] = 0] = \"None\";\r\n /**\r\n * Includes allowed values for the field.\r\n */\r\n ProcessWorkItemTypeFieldsExpandLevel[ProcessWorkItemTypeFieldsExpandLevel[\"AllowedValues\"] = 1] = \"AllowedValues\";\r\n /**\r\n * Includes allowed values and dependent fields of the field.\r\n */\r\n ProcessWorkItemTypeFieldsExpandLevel[ProcessWorkItemTypeFieldsExpandLevel[\"All\"] = 2] = \"All\";\r\n})(ProcessWorkItemTypeFieldsExpandLevel = exports.ProcessWorkItemTypeFieldsExpandLevel || (exports.ProcessWorkItemTypeFieldsExpandLevel = {}));\r\n/**\r\n * Type of action to take when the rule is triggered.\r\n */\r\nvar RuleActionType;\r\n(function (RuleActionType) {\r\n /**\r\n * Make the target field required. Example : {\"actionType\":\"$makeRequired\",\"targetField\":\"Microsoft.VSTS.Common.Activity\",\"value\":\"\"}\r\n */\r\n RuleActionType[RuleActionType[\"MakeRequired\"] = 1] = \"MakeRequired\";\r\n /**\r\n * Make the target field read-only. Example : {\"actionType\":\"$makeReadOnly\",\"targetField\":\"Microsoft.VSTS.Common.Activity\",\"value\":\"\"}\r\n */\r\n RuleActionType[RuleActionType[\"MakeReadOnly\"] = 2] = \"MakeReadOnly\";\r\n /**\r\n * Set a default value on the target field. This is used if the user creates a integer/string field and sets a default value of this field.\r\n */\r\n RuleActionType[RuleActionType[\"SetDefaultValue\"] = 3] = \"SetDefaultValue\";\r\n /**\r\n * Set the default value on the target field from server clock. This is used if user creates the field like Date/Time and uses default value.\r\n */\r\n RuleActionType[RuleActionType[\"SetDefaultFromClock\"] = 4] = \"SetDefaultFromClock\";\r\n /**\r\n * Set the default current user value on the target field. This is used if the user creates the field of type identity and uses default value.\r\n */\r\n RuleActionType[RuleActionType[\"SetDefaultFromCurrentUser\"] = 5] = \"SetDefaultFromCurrentUser\";\r\n /**\r\n * Set the default value on from existing field to the target field. This used wants to set a existing field value to the current field.\r\n */\r\n RuleActionType[RuleActionType[\"SetDefaultFromField\"] = 6] = \"SetDefaultFromField\";\r\n /**\r\n * Set the value of target field to given value. Example : {actionType: \"$copyValue\", targetField: \"ScrumInherited.mypicklist\", value: \"samplevalue\"}\r\n */\r\n RuleActionType[RuleActionType[\"CopyValue\"] = 7] = \"CopyValue\";\r\n /**\r\n * Set the value from clock.\r\n */\r\n RuleActionType[RuleActionType[\"CopyFromClock\"] = 8] = \"CopyFromClock\";\r\n /**\r\n * Set the current user to the target field. Example : {\"actionType\":\"$copyFromCurrentUser\",\"targetField\":\"System.AssignedTo\",\"value\":\"\"}.\r\n */\r\n RuleActionType[RuleActionType[\"CopyFromCurrentUser\"] = 9] = \"CopyFromCurrentUser\";\r\n /**\r\n * Copy the value from a specified field and set to target field. Example : {actionType: \"$copyFromField\", targetField: \"System.AssignedTo\", value:\"System.ChangedBy\"}. Here, value is copied from \"System.ChangedBy\" and set to \"System.AssingedTo\" field.\r\n */\r\n RuleActionType[RuleActionType[\"CopyFromField\"] = 10] = \"CopyFromField\";\r\n /**\r\n * Set the value of the target field to empty.\r\n */\r\n RuleActionType[RuleActionType[\"SetValueToEmpty\"] = 11] = \"SetValueToEmpty\";\r\n /**\r\n * Use the current time to set the value of the target field. Example : {actionType: \"$copyFromServerClock\", targetField: \"System.CreatedDate\", value: \"\"}\r\n */\r\n RuleActionType[RuleActionType[\"CopyFromServerClock\"] = 12] = \"CopyFromServerClock\";\r\n /**\r\n * Use the current user to set the value of the target field.\r\n */\r\n RuleActionType[RuleActionType[\"CopyFromServerCurrentUser\"] = 13] = \"CopyFromServerCurrentUser\";\r\n /**\r\n * Hides target field from the form. This is a server side only action.\r\n */\r\n RuleActionType[RuleActionType[\"HideTargetField\"] = 14] = \"HideTargetField\";\r\n /**\r\n * Disallows a field from being set to a specific value.\r\n */\r\n RuleActionType[RuleActionType[\"DisallowValue\"] = 15] = \"DisallowValue\";\r\n})(RuleActionType = exports.RuleActionType || (exports.RuleActionType = {}));\r\n/**\r\n * Type of rule condition.\r\n */\r\nvar RuleConditionType;\r\n(function (RuleConditionType) {\r\n /**\r\n * $When. This condition limits the execution of its children to cases when another field has a particular value, i.e. when the Is value of the referenced field is equal to the given literal value.\r\n */\r\n RuleConditionType[RuleConditionType[\"When\"] = 1] = \"When\";\r\n /**\r\n * $WhenNot.This condition limits the execution of its children to cases when another field does not have a particular value, i.e.when the Is value of the referenced field is not equal to the given literal value.\r\n */\r\n RuleConditionType[RuleConditionType[\"WhenNot\"] = 2] = \"WhenNot\";\r\n /**\r\n * $WhenChanged.This condition limits the execution of its children to cases when another field has changed, i.e.when the Is value of the referenced field is not equal to the Was value of that field.\r\n */\r\n RuleConditionType[RuleConditionType[\"WhenChanged\"] = 3] = \"WhenChanged\";\r\n /**\r\n * $WhenNotChanged.This condition limits the execution of its children to cases when another field has not changed, i.e.when the Is value of the referenced field is equal to the Was value of that field.\r\n */\r\n RuleConditionType[RuleConditionType[\"WhenNotChanged\"] = 4] = \"WhenNotChanged\";\r\n RuleConditionType[RuleConditionType[\"WhenWas\"] = 5] = \"WhenWas\";\r\n RuleConditionType[RuleConditionType[\"WhenStateChangedTo\"] = 6] = \"WhenStateChangedTo\";\r\n RuleConditionType[RuleConditionType[\"WhenStateChangedFromAndTo\"] = 7] = \"WhenStateChangedFromAndTo\";\r\n RuleConditionType[RuleConditionType[\"WhenWorkItemIsCreated\"] = 8] = \"WhenWorkItemIsCreated\";\r\n RuleConditionType[RuleConditionType[\"WhenValueIsDefined\"] = 9] = \"WhenValueIsDefined\";\r\n RuleConditionType[RuleConditionType[\"WhenValueIsNotDefined\"] = 10] = \"WhenValueIsNotDefined\";\r\n RuleConditionType[RuleConditionType[\"WhenCurrentUserIsMemberOfGroup\"] = 11] = \"WhenCurrentUserIsMemberOfGroup\";\r\n RuleConditionType[RuleConditionType[\"WhenCurrentUserIsNotMemberOfGroup\"] = 12] = \"WhenCurrentUserIsNotMemberOfGroup\";\r\n})(RuleConditionType = exports.RuleConditionType || (exports.RuleConditionType = {}));\r\nvar WorkItemTypeClass;\r\n(function (WorkItemTypeClass) {\r\n WorkItemTypeClass[WorkItemTypeClass[\"System\"] = 0] = \"System\";\r\n WorkItemTypeClass[WorkItemTypeClass[\"Derived\"] = 1] = \"Derived\";\r\n WorkItemTypeClass[WorkItemTypeClass[\"Custom\"] = 2] = \"Custom\";\r\n})(WorkItemTypeClass = exports.WorkItemTypeClass || (exports.WorkItemTypeClass = {}));\r\nexports.TypeInfo = {\r\n CreateProcessRuleRequest: {},\r\n CustomizationType: {\r\n enumValues: {\r\n \"system\": 1,\r\n \"inherited\": 2,\r\n \"custom\": 3\r\n }\r\n },\r\n FieldModel: {},\r\n FieldType: {\r\n enumValues: {\r\n \"string\": 1,\r\n \"integer\": 2,\r\n \"dateTime\": 3,\r\n \"plainText\": 5,\r\n \"html\": 7,\r\n \"treePath\": 8,\r\n \"history\": 9,\r\n \"double\": 10,\r\n \"guid\": 11,\r\n \"boolean\": 12,\r\n \"identity\": 13,\r\n \"picklistInteger\": 14,\r\n \"picklistString\": 15,\r\n \"picklistDouble\": 16\r\n }\r\n },\r\n FormLayout: {},\r\n GetBehaviorsExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"fields\": 1,\r\n \"combinedFields\": 2\r\n }\r\n },\r\n GetProcessExpandLevel: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"projects\": 1\r\n }\r\n },\r\n GetWorkItemTypeExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"states\": 1,\r\n \"behaviors\": 2,\r\n \"layout\": 4\r\n }\r\n },\r\n Page: {},\r\n PageType: {\r\n enumValues: {\r\n \"custom\": 1,\r\n \"history\": 2,\r\n \"links\": 3,\r\n \"attachments\": 4\r\n }\r\n },\r\n ProcessBehavior: {},\r\n ProcessClass: {\r\n enumValues: {\r\n \"system\": 0,\r\n \"derived\": 1,\r\n \"custom\": 2\r\n }\r\n },\r\n ProcessInfo: {},\r\n ProcessModel: {},\r\n ProcessProperties: {},\r\n ProcessRule: {},\r\n ProcessWorkItemType: {},\r\n ProcessWorkItemTypeField: {},\r\n ProcessWorkItemTypeFieldsExpandLevel: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"allowedValues\": 1,\r\n \"all\": 2\r\n }\r\n },\r\n RuleAction: {},\r\n RuleActionType: {\r\n enumValues: {\r\n \"makeRequired\": 1,\r\n \"makeReadOnly\": 2,\r\n \"setDefaultValue\": 3,\r\n \"setDefaultFromClock\": 4,\r\n \"setDefaultFromCurrentUser\": 5,\r\n \"setDefaultFromField\": 6,\r\n \"copyValue\": 7,\r\n \"copyFromClock\": 8,\r\n \"copyFromCurrentUser\": 9,\r\n \"copyFromField\": 10,\r\n \"setValueToEmpty\": 11,\r\n \"copyFromServerClock\": 12,\r\n \"copyFromServerCurrentUser\": 13,\r\n \"hideTargetField\": 14,\r\n \"disallowValue\": 15\r\n }\r\n },\r\n RuleCondition: {},\r\n RuleConditionType: {\r\n enumValues: {\r\n \"when\": 1,\r\n \"whenNot\": 2,\r\n \"whenChanged\": 3,\r\n \"whenNotChanged\": 4,\r\n \"whenWas\": 5,\r\n \"whenStateChangedTo\": 6,\r\n \"whenStateChangedFromAndTo\": 7,\r\n \"whenWorkItemIsCreated\": 8,\r\n \"whenValueIsDefined\": 9,\r\n \"whenValueIsNotDefined\": 10,\r\n \"whenCurrentUserIsMemberOfGroup\": 11,\r\n \"whenCurrentUserIsNotMemberOfGroup\": 12\r\n }\r\n },\r\n UpdateProcessRuleRequest: {},\r\n WorkItemStateResultModel: {},\r\n WorkItemTypeClass: {\r\n enumValues: {\r\n \"system\": 0,\r\n \"derived\": 1,\r\n \"custom\": 2\r\n }\r\n },\r\n WorkItemTypeModel: {},\r\n};\r\nexports.TypeInfo.CreateProcessRuleRequest.fields = {\r\n actions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleAction\r\n },\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleCondition\r\n }\r\n};\r\nexports.TypeInfo.FieldModel.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.FormLayout.fields = {\r\n pages: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Page\r\n }\r\n};\r\nexports.TypeInfo.Page.fields = {\r\n pageType: {\r\n enumType: exports.TypeInfo.PageType\r\n }\r\n};\r\nexports.TypeInfo.ProcessBehavior.fields = {\r\n customization: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n }\r\n};\r\nexports.TypeInfo.ProcessInfo.fields = {\r\n customizationType: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n }\r\n};\r\nexports.TypeInfo.ProcessModel.fields = {\r\n properties: {\r\n typeInfo: exports.TypeInfo.ProcessProperties\r\n }\r\n};\r\nexports.TypeInfo.ProcessProperties.fields = {\r\n class: {\r\n enumType: exports.TypeInfo.ProcessClass\r\n }\r\n};\r\nexports.TypeInfo.ProcessRule.fields = {\r\n actions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleAction\r\n },\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleCondition\r\n },\r\n customizationType: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n }\r\n};\r\nexports.TypeInfo.ProcessWorkItemType.fields = {\r\n customization: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n },\r\n layout: {\r\n typeInfo: exports.TypeInfo.FormLayout\r\n },\r\n states: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkItemStateResultModel\r\n }\r\n};\r\nexports.TypeInfo.ProcessWorkItemTypeField.fields = {\r\n customization: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.RuleAction.fields = {\r\n actionType: {\r\n enumType: exports.TypeInfo.RuleActionType\r\n }\r\n};\r\nexports.TypeInfo.RuleCondition.fields = {\r\n conditionType: {\r\n enumType: exports.TypeInfo.RuleConditionType\r\n }\r\n};\r\nexports.TypeInfo.UpdateProcessRuleRequest.fields = {\r\n actions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleAction\r\n },\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleCondition\r\n }\r\n};\r\nexports.TypeInfo.WorkItemStateResultModel.fields = {\r\n customizationType: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemTypeModel.fields = {\r\n class: {\r\n enumType: exports.TypeInfo.WorkItemTypeClass\r\n },\r\n layout: {\r\n typeInfo: exports.TypeInfo.FormLayout\r\n },\r\n states: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkItemStateResultModel\r\n }\r\n};\r\n","/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*\r\n* See following wiki page for instructions on how to regenerate:\r\n* https://vsowiki.com/index.php?title=Rest_Client_Generation\r\n*/\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar InputDataType;\r\n(function (InputDataType) {\r\n /**\r\n * No data type is specified.\r\n */\r\n InputDataType[InputDataType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Represents a textual value.\r\n */\r\n InputDataType[InputDataType[\"String\"] = 10] = \"String\";\r\n /**\r\n * Represents a numberic value.\r\n */\r\n InputDataType[InputDataType[\"Number\"] = 20] = \"Number\";\r\n /**\r\n * Represents a value of true or false.\r\n */\r\n InputDataType[InputDataType[\"Boolean\"] = 30] = \"Boolean\";\r\n /**\r\n * Represents a Guid.\r\n */\r\n InputDataType[InputDataType[\"Guid\"] = 40] = \"Guid\";\r\n /**\r\n * Represents a URI.\r\n */\r\n InputDataType[InputDataType[\"Uri\"] = 50] = \"Uri\";\r\n})(InputDataType = exports.InputDataType || (exports.InputDataType = {}));\r\nvar InputFilterOperator;\r\n(function (InputFilterOperator) {\r\n InputFilterOperator[InputFilterOperator[\"Equals\"] = 0] = \"Equals\";\r\n InputFilterOperator[InputFilterOperator[\"NotEquals\"] = 1] = \"NotEquals\";\r\n})(InputFilterOperator = exports.InputFilterOperator || (exports.InputFilterOperator = {}));\r\nvar InputMode;\r\n(function (InputMode) {\r\n /**\r\n * This input should not be shown in the UI\r\n */\r\n InputMode[InputMode[\"None\"] = 0] = \"None\";\r\n /**\r\n * An input text box should be shown\r\n */\r\n InputMode[InputMode[\"TextBox\"] = 10] = \"TextBox\";\r\n /**\r\n * An password input box should be shown\r\n */\r\n InputMode[InputMode[\"PasswordBox\"] = 20] = \"PasswordBox\";\r\n /**\r\n * A select/combo control should be shown\r\n */\r\n InputMode[InputMode[\"Combo\"] = 30] = \"Combo\";\r\n /**\r\n * Radio buttons should be shown\r\n */\r\n InputMode[InputMode[\"RadioButtons\"] = 40] = \"RadioButtons\";\r\n /**\r\n * Checkbox should be shown(for true/false values)\r\n */\r\n InputMode[InputMode[\"CheckBox\"] = 50] = \"CheckBox\";\r\n /**\r\n * A multi-line text area should be shown\r\n */\r\n InputMode[InputMode[\"TextArea\"] = 60] = \"TextArea\";\r\n})(InputMode = exports.InputMode || (exports.InputMode = {}));\r\nexports.TypeInfo = {\r\n InputDataType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"string\": 10,\r\n \"number\": 20,\r\n \"boolean\": 30,\r\n \"guid\": 40,\r\n \"uri\": 50,\r\n }\r\n },\r\n InputDescriptor: {\r\n fields: null\r\n },\r\n InputFilter: {\r\n fields: null\r\n },\r\n InputFilterCondition: {\r\n fields: null\r\n },\r\n InputFilterOperator: {\r\n enumValues: {\r\n \"equals\": 0,\r\n \"notEquals\": 1,\r\n }\r\n },\r\n InputMode: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"textBox\": 10,\r\n \"passwordBox\": 20,\r\n \"combo\": 30,\r\n \"radioButtons\": 40,\r\n \"checkBox\": 50,\r\n \"textArea\": 60,\r\n }\r\n },\r\n InputValidation: {\r\n fields: null\r\n },\r\n InputValue: {\r\n fields: null\r\n },\r\n InputValues: {\r\n fields: null\r\n },\r\n InputValuesError: {\r\n fields: null\r\n },\r\n InputValuesQuery: {\r\n fields: null\r\n },\r\n};\r\nexports.TypeInfo.InputDescriptor.fields = {\r\n inputMode: {\r\n enumType: exports.TypeInfo.InputMode\r\n },\r\n validation: {\r\n typeInfo: exports.TypeInfo.InputValidation\r\n },\r\n values: {\r\n typeInfo: exports.TypeInfo.InputValues\r\n },\r\n};\r\nexports.TypeInfo.InputFilter.fields = {\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.InputFilterCondition\r\n },\r\n};\r\nexports.TypeInfo.InputFilterCondition.fields = {\r\n operator: {\r\n enumType: exports.TypeInfo.InputFilterOperator\r\n },\r\n};\r\nexports.TypeInfo.InputValidation.fields = {\r\n dataType: {\r\n enumType: exports.TypeInfo.InputDataType\r\n },\r\n};\r\nexports.TypeInfo.InputValue.fields = {};\r\nexports.TypeInfo.InputValues.fields = {\r\n error: {\r\n typeInfo: exports.TypeInfo.InputValuesError\r\n },\r\n possibleValues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.InputValue\r\n },\r\n};\r\nexports.TypeInfo.InputValuesError.fields = {};\r\nexports.TypeInfo.InputValuesQuery.fields = {\r\n inputValues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.InputValues\r\n },\r\n};\r\n","/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*/\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar OperationStatus;\r\n(function (OperationStatus) {\r\n /**\r\n * The operation object does not have the status set.\r\n */\r\n OperationStatus[OperationStatus[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * The operation has been queued.\r\n */\r\n OperationStatus[OperationStatus[\"Queued\"] = 1] = \"Queued\";\r\n /**\r\n * The operation is in progress.\r\n */\r\n OperationStatus[OperationStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The operation was cancelled by the user.\r\n */\r\n OperationStatus[OperationStatus[\"Cancelled\"] = 3] = \"Cancelled\";\r\n /**\r\n * The operation completed successfully.\r\n */\r\n OperationStatus[OperationStatus[\"Succeeded\"] = 4] = \"Succeeded\";\r\n /**\r\n * The operation completed with a failure.\r\n */\r\n OperationStatus[OperationStatus[\"Failed\"] = 5] = \"Failed\";\r\n})(OperationStatus = exports.OperationStatus || (exports.OperationStatus = {}));\r\nexports.TypeInfo = {\r\n OperationReference: {\r\n fields: null\r\n },\r\n OperationStatus: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"queued\": 1,\r\n \"inProgress\": 2,\r\n \"cancelled\": 3,\r\n \"succeeded\": 4,\r\n \"failed\": 5,\r\n }\r\n },\r\n};\r\nexports.TypeInfo.OperationReference.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.OperationStatus\r\n },\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DayOfWeek;\r\n(function (DayOfWeek) {\r\n /**\r\n * Indicates Sunday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Sunday\"] = 0] = \"Sunday\";\r\n /**\r\n * Indicates Monday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Monday\"] = 1] = \"Monday\";\r\n /**\r\n * Indicates Tuesday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Tuesday\"] = 2] = \"Tuesday\";\r\n /**\r\n * Indicates Wednesday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Wednesday\"] = 3] = \"Wednesday\";\r\n /**\r\n * Indicates Thursday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Thursday\"] = 4] = \"Thursday\";\r\n /**\r\n * Indicates Friday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Friday\"] = 5] = \"Friday\";\r\n /**\r\n * Indicates Saturday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Saturday\"] = 6] = \"Saturday\";\r\n})(DayOfWeek = exports.DayOfWeek || (exports.DayOfWeek = {}));\r\nexports.TypeInfo = {\r\n DayOfWeek: {\r\n enumValues: {\r\n \"sunday\": 0,\r\n \"monday\": 1,\r\n \"tuesday\": 2,\r\n \"wednesday\": 3,\r\n \"thursday\": 4,\r\n \"friday\": 5,\r\n \"saturday\": 6\r\n }\r\n }\r\n};\r\n","\"use strict\";\r\n//----------------------------------------------------------\r\n// Copyright (C) Microsoft Corporation. All rights reserved.\r\n//----------------------------------------------------------\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Specifies SQL Server-specific data type of a field, property, for use in a System.Data.SqlClient.SqlParameter.\r\n */\r\nvar SqlDbType;\r\n(function (SqlDbType) {\r\n /**\r\n * A 64-bit signed integer.\r\n */\r\n SqlDbType[SqlDbType[\"BigInt\"] = 0] = \"BigInt\";\r\n /**\r\n * Array of type Byte. A fixed-length stream of binary data ranging between 1 and 8,000 bytes.\r\n */\r\n SqlDbType[SqlDbType[\"Binary\"] = 1] = \"Binary\";\r\n /**\r\n * Boolean. An unsigned numeric value that can be 0, 1, or null.\r\n */\r\n SqlDbType[SqlDbType[\"Bit\"] = 2] = \"Bit\";\r\n /**\r\n * String. A fixed-length stream of non-Unicode characters ranging between 1 and 8,000 characters.\r\n */\r\n SqlDbType[SqlDbType[\"Char\"] = 3] = \"Char\";\r\n /**\r\n * DateTime. Date and time data ranging in value from January 1, 1753 to December 31, 9999 to an accuracy of 3.33 milliseconds.\r\n */\r\n SqlDbType[SqlDbType[\"DateTime\"] = 4] = \"DateTime\";\r\n /**\r\n * Decimal. A fixed precision and scale numeric value between -10 38 -1 and 10 38 -1.\r\n */\r\n SqlDbType[SqlDbType[\"Decimal\"] = 5] = \"Decimal\";\r\n /**\r\n * Double. A floating point number within the range of -1.79E +308 through 1.79E +308.\r\n */\r\n SqlDbType[SqlDbType[\"Float\"] = 6] = \"Float\";\r\n /**\r\n * Array of type Byte. A variable-length stream of binary data ranging from 0 to 2 31 -1 (or 2,147,483,647) bytes.\r\n */\r\n SqlDbType[SqlDbType[\"Image\"] = 7] = \"Image\";\r\n /**\r\n * Int32. A 32-bit signed integer.\r\n */\r\n SqlDbType[SqlDbType[\"Int\"] = 8] = \"Int\";\r\n /**\r\n * Decimal. A currency value ranging from -2 63 (or -9,223,372,036,854,775,808) to 2 63 -1 (or +9,223,372,036,854,775,807) with an accuracy to a ten-thousandth of a currency unit.\r\n */\r\n SqlDbType[SqlDbType[\"Money\"] = 9] = \"Money\";\r\n /**\r\n * String. A fixed-length stream of Unicode characters ranging between 1 and 4,000 characters.\r\n */\r\n SqlDbType[SqlDbType[\"NChar\"] = 10] = \"NChar\";\r\n /**\r\n * String. A variable-length stream of Unicode data with a maximum length of 2 30 - 1 (or 1,073,741,823) characters.\r\n */\r\n SqlDbType[SqlDbType[\"NText\"] = 11] = \"NText\";\r\n /**\r\n * String. A variable-length stream of Unicode characters ranging between 1 and 4,000 characters. Implicit conversion fails if the string is greater than 4,000 characters. Explicitly set the object when working with strings longer than 4,000 characters. Use System.Data.SqlDbType.NVarChar when the database column is nvarchar(max).\r\n */\r\n SqlDbType[SqlDbType[\"NVarChar\"] = 12] = \"NVarChar\";\r\n /**\r\n * Single. A floating point number within the range of -3.40E +38 through 3.40E +38.\r\n */\r\n SqlDbType[SqlDbType[\"Real\"] = 13] = \"Real\";\r\n /**\r\n * Guid. A globally unique identifier (or GUID).\r\n */\r\n SqlDbType[SqlDbType[\"UniqueIdentifier\"] = 14] = \"UniqueIdentifier\";\r\n /**\r\n * DateTime. Date and time data ranging in value from January 1, 1900 to June 6, 2079 to an accuracy of one minute.\r\n */\r\n SqlDbType[SqlDbType[\"SmallDateTime\"] = 15] = \"SmallDateTime\";\r\n /**\r\n * Int16. A 16-bit signed integer.\r\n */\r\n SqlDbType[SqlDbType[\"SmallInt\"] = 16] = \"SmallInt\";\r\n /**\r\n * Decimal. A currency value ranging from -214,748.3648 to +214,748.3647 with an accuracy to a ten-thousandth of a currency unit.\r\n */\r\n SqlDbType[SqlDbType[\"SmallMoney\"] = 17] = \"SmallMoney\";\r\n /**\r\n * String. A variable-length stream of non-Unicode data with a maximum length of 2 31 -1 (or 2,147,483,647) characters.\r\n */\r\n SqlDbType[SqlDbType[\"Text\"] = 18] = \"Text\";\r\n /**\r\n * Array of type System.Byte. Automatically generated binary numbers, which are guaranteed to be unique within a database. timestamp is used typically as a mechanism for version-stamping table rows. The storage size is 8 bytes.\r\n */\r\n SqlDbType[SqlDbType[\"Timestamp\"] = 19] = \"Timestamp\";\r\n /**\r\n * Byte. An 8-bit unsigned integer.\r\n */\r\n SqlDbType[SqlDbType[\"TinyInt\"] = 20] = \"TinyInt\";\r\n /**\r\n * Array of type Byte. A variable-length stream of binary data ranging between 1 and 8,000 bytes. Implicit conversion fails if the byte array is greater than 8,000 bytes. Explicitly set the object when working with byte arrays larger than 8,000 bytes.\r\n */\r\n SqlDbType[SqlDbType[\"VarBinary\"] = 21] = \"VarBinary\";\r\n /**\r\n * String. A variable-length stream of non-Unicode characters ranging between 1 and 8,000 characters. Use System.Data.SqlDbType.VarChar when the database column is varchar(max).\r\n */\r\n SqlDbType[SqlDbType[\"VarChar\"] = 22] = \"VarChar\";\r\n /**\r\n * Object. A special data type that can contain numeric, string, binary, or date data as well as the SQL Server values Empty and Null, which is assumed if no other type is declared.\r\n */\r\n SqlDbType[SqlDbType[\"Variant\"] = 23] = \"Variant\";\r\n /**\r\n * An XML value. Obtain the XML as a string using the System.Data.SqlClient.SqlDataReader.GetValue(System.Int32) method or System.Data.SqlTypes.SqlXml.Value property, or as an System.Xml.XmlReader by calling the System.Data.SqlTypes.SqlXml.CreateReader method.\r\n */\r\n SqlDbType[SqlDbType[\"Xml\"] = 25] = \"Xml\";\r\n /**\r\n * A SQL Server user-defined type (UDT).\r\n */\r\n SqlDbType[SqlDbType[\"Udt\"] = 29] = \"Udt\";\r\n /**\r\n * A special data type for specifying structured data contained in table-valued parameters.\r\n */\r\n SqlDbType[SqlDbType[\"Structured\"] = 30] = \"Structured\";\r\n /**\r\n * Date data ranging in value from January 1,1 AD through December 31, 9999 AD.\r\n */\r\n SqlDbType[SqlDbType[\"Date\"] = 31] = \"Date\";\r\n /**\r\n * Time data based on a 24-hour clock. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds. Corresponds to a SQL Server time value.\r\n */\r\n SqlDbType[SqlDbType[\"Time\"] = 32] = \"Time\";\r\n /**\r\n * Date and time data. Date value range is from January 1,1 AD through December 31, 9999 AD. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds.\r\n */\r\n SqlDbType[SqlDbType[\"DateTime2\"] = 33] = \"DateTime2\";\r\n /**\r\n * Date and time data with time zone awareness. Date value range is from January 1,1 AD through December 31, 9999 AD. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds. Time zone value range is -14:00 through +14:00.\r\n */\r\n SqlDbType[SqlDbType[\"DateTimeOffset\"] = 34] = \"DateTimeOffset\";\r\n})(SqlDbType = exports.SqlDbType || (exports.SqlDbType = {}));\r\nexports.TypeInfo = {\r\n SqlDbType: {\r\n enumValues: {\r\n \"BigInt\": 0,\r\n \"Binary\": 1,\r\n \"Bit\": 2,\r\n \"Char\": 3,\r\n \"DateTime\": 4,\r\n \"Decimal\": 5,\r\n \"Float\": 6,\r\n \"Image\": 7,\r\n \"Int\": 8,\r\n \"Money\": 9,\r\n \"NChar\": 10,\r\n \"NText\": 11,\r\n \"NVarChar\": 12,\r\n \"Real\": 13,\r\n \"UniqueIdentifier\": 14,\r\n \"SmallDateTime\": 15,\r\n \"SmallInt\": 16,\r\n \"SmallMoney\": 17,\r\n \"Text\": 18,\r\n \"Timestamp\": 19,\r\n \"TinyInt\": 20,\r\n \"VarBinary\": 21,\r\n \"VarChar\": 22,\r\n \"Variant\": 23,\r\n \"Xml\": 25,\r\n \"Udt\": 29,\r\n \"Structured\": 30,\r\n \"Date\": 31,\r\n \"Time\": 32,\r\n \"DateTime2\": 33,\r\n \"DateTimeOffset\": 34\r\n }\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Enumeration of the options that can be passed in on Connect.\r\n */\r\nvar ConnectOptions;\r\n(function (ConnectOptions) {\r\n /**\r\n * Retrieve no optional data.\r\n */\r\n ConnectOptions[ConnectOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Includes information about AccessMappings and ServiceDefinitions.\r\n */\r\n ConnectOptions[ConnectOptions[\"IncludeServices\"] = 1] = \"IncludeServices\";\r\n /**\r\n * Includes the last user access for this host.\r\n */\r\n ConnectOptions[ConnectOptions[\"IncludeLastUserAccess\"] = 2] = \"IncludeLastUserAccess\";\r\n /**\r\n * This is only valid on the deployment host and when true. Will only return inherited definitions.\r\n */\r\n ConnectOptions[ConnectOptions[\"IncludeInheritedDefinitionsOnly\"] = 4] = \"IncludeInheritedDefinitionsOnly\";\r\n /**\r\n * When true will only return non inherited definitions. Only valid at non-deployment host.\r\n */\r\n ConnectOptions[ConnectOptions[\"IncludeNonInheritedDefinitionsOnly\"] = 8] = \"IncludeNonInheritedDefinitionsOnly\";\r\n})(ConnectOptions = exports.ConnectOptions || (exports.ConnectOptions = {}));\r\nvar DeploymentFlags;\r\n(function (DeploymentFlags) {\r\n DeploymentFlags[DeploymentFlags[\"None\"] = 0] = \"None\";\r\n DeploymentFlags[DeploymentFlags[\"Hosted\"] = 1] = \"Hosted\";\r\n DeploymentFlags[DeploymentFlags[\"OnPremises\"] = 2] = \"OnPremises\";\r\n})(DeploymentFlags = exports.DeploymentFlags || (exports.DeploymentFlags = {}));\r\nvar JWTAlgorithm;\r\n(function (JWTAlgorithm) {\r\n JWTAlgorithm[JWTAlgorithm[\"None\"] = 0] = \"None\";\r\n JWTAlgorithm[JWTAlgorithm[\"HS256\"] = 1] = \"HS256\";\r\n JWTAlgorithm[JWTAlgorithm[\"RS256\"] = 2] = \"RS256\";\r\n})(JWTAlgorithm = exports.JWTAlgorithm || (exports.JWTAlgorithm = {}));\r\nvar Operation;\r\n(function (Operation) {\r\n Operation[Operation[\"Add\"] = 0] = \"Add\";\r\n Operation[Operation[\"Remove\"] = 1] = \"Remove\";\r\n Operation[Operation[\"Replace\"] = 2] = \"Replace\";\r\n Operation[Operation[\"Move\"] = 3] = \"Move\";\r\n Operation[Operation[\"Copy\"] = 4] = \"Copy\";\r\n Operation[Operation[\"Test\"] = 5] = \"Test\";\r\n})(Operation = exports.Operation || (exports.Operation = {}));\r\nexports.TypeInfo = {\r\n ConnectOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeServices\": 1,\r\n \"includeLastUserAccess\": 2,\r\n \"includeInheritedDefinitionsOnly\": 4,\r\n \"includeNonInheritedDefinitionsOnly\": 8\r\n }\r\n },\r\n DeploymentFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"hosted\": 1,\r\n \"onPremises\": 2\r\n }\r\n },\r\n JsonPatchOperation: {},\r\n JWTAlgorithm: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"hS256\": 1,\r\n \"rS256\": 2\r\n }\r\n },\r\n Operation: {\r\n enumValues: {\r\n \"add\": 0,\r\n \"remove\": 1,\r\n \"replace\": 2,\r\n \"move\": 3,\r\n \"copy\": 4,\r\n \"test\": 5\r\n }\r\n },\r\n SignedUrl: {},\r\n TraceFilter: {},\r\n VssNotificationEvent: {},\r\n};\r\nexports.TypeInfo.JsonPatchOperation.fields = {\r\n op: {\r\n enumType: exports.TypeInfo.Operation\r\n }\r\n};\r\nexports.TypeInfo.SignedUrl.fields = {\r\n signatureExpires: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TraceFilter.fields = {\r\n timeCreated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.VssNotificationEvent.fields = {\r\n sourceEventCreatedTime: {\r\n isDate: true,\r\n }\r\n};\r\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar origSymbol = global.Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parse_url(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parse_url(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parse_url(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\nconst resolve_url = Url.resolve;\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tconst locationURL = location === null ? null : resolve_url(request.url, location);\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n if (sideChannel.has(object)) {\n throw new RangeError('Cyclic object value');\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = typeof key === 'object' && key.value !== undefined ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, true);\n var valueSideChannel = getSideChannel();\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar match = String.prototype.match;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nvar inspectCustom = require('./util.inspect').custom;\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\nvar toStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag !== 'undefined' ? Symbol.toStringTag : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('options \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n return String(obj);\n }\n if (typeof obj === 'bigint') {\n return String(obj) + 'n';\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = seen.slice();\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function') {\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + String(obj.nodeName).toLowerCase();\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + xs.join(', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n return obj[inspectSymbol]();\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + ys.join(', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return String(s).replace(/\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = str.replace(/(['\\\\])/g, '\\\\$1').replace(/[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase();\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = Array(opts.indent + 1).join(' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: Array(depth + 1).join(baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + xs.join(',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ((/[^\\w$]/).test(key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","module.exports = require('util').inspect;\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar basiccreds_1 = require(\"./handlers/basiccreds\");\nexports.BasicCredentialHandler = basiccreds_1.BasicCredentialHandler;\nvar bearertoken_1 = require(\"./handlers/bearertoken\");\nexports.BearerCredentialHandler = bearertoken_1.BearerCredentialHandler;\nvar ntlm_1 = require(\"./handlers/ntlm\");\nexports.NtlmCredentialHandler = ntlm_1.NtlmCredentialHandler;\nvar personalaccesstoken_1 = require(\"./handlers/personalaccesstoken\");\nexports.PersonalAccessTokenCredentialHandler = personalaccesstoken_1.PersonalAccessTokenCredentialHandler;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst url = require(\"url\");\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst util = require(\"./Util\");\nlet fs;\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nconst HttpRedirectCodes = [HttpCodes.MovedPermanently, HttpCodes.ResourceMoved, HttpCodes.SeeOther, HttpCodes.TemporaryRedirect, HttpCodes.PermanentRedirect];\nconst HttpResponseRetryCodes = [HttpCodes.BadGateway, HttpCodes.ServiceUnavailable, HttpCodes.GatewayTimeout];\nconst NetworkRetryErrors = ['ECONNRESET', 'ENOTFOUND', 'ESOCKETTIMEDOUT', 'ETIMEDOUT', 'ECONNREFUSED'];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n let buffer = Buffer.alloc(0);\n const encodingCharset = util.obtainContentCharset(this);\n // Extract Encoding from header: 'content-encoding'\n // Match `gzip`, `gzip, deflate` variations of GZIP encoding\n const contentEncoding = this.message.headers['content-encoding'] || '';\n const isGzippedEncoded = new RegExp('(gzip$)|(gzip, *deflate)').test(contentEncoding);\n this.message.on('data', function (data) {\n const chunk = (typeof data === 'string') ? Buffer.from(data, encodingCharset) : data;\n buffer = Buffer.concat([buffer, chunk]);\n }).on('end', function () {\n return __awaiter(this, void 0, void 0, function* () {\n if (isGzippedEncoded) { // Process GZipped Response Body HERE\n const gunzippedBody = yield util.decompressGzippedContent(buffer, encodingCharset);\n resolve(gunzippedBody);\n }\n else {\n resolve(buffer.toString(encodingCharset));\n }\n });\n }).on('error', function (err) {\n reject(err);\n });\n }));\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = url.parse(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nvar EnvironmentVariables;\n(function (EnvironmentVariables) {\n EnvironmentVariables[\"HTTP_PROXY\"] = \"HTTP_PROXY\";\n EnvironmentVariables[\"HTTPS_PROXY\"] = \"HTTPS_PROXY\";\n EnvironmentVariables[\"NO_PROXY\"] = \"NO_PROXY\";\n})(EnvironmentVariables || (EnvironmentVariables = {}));\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n let no_proxy = process.env[EnvironmentVariables.NO_PROXY];\n if (no_proxy) {\n this._httpProxyBypassHosts = [];\n no_proxy.split(',').forEach(bypass => {\n this._httpProxyBypassHosts.push(util.buildProxyBypassRegexFromEnv(bypass));\n });\n }\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n this._httpProxy = requestOptions.proxy;\n if (requestOptions.proxy && requestOptions.proxy.proxyBypassHosts) {\n this._httpProxyBypassHosts = [];\n requestOptions.proxy.proxyBypassHosts.forEach(bypass => {\n this._httpProxyBypassHosts.push(new RegExp(bypass, 'i'));\n });\n }\n this._certConfig = requestOptions.cert;\n if (this._certConfig) {\n // If using cert, need fs\n fs = require('fs');\n // cache the cert content into memory, so we don't have to read it from disk every time\n if (this._certConfig.caFile && fs.existsSync(this._certConfig.caFile)) {\n this._ca = fs.readFileSync(this._certConfig.caFile, 'utf8');\n }\n if (this._certConfig.certFile && fs.existsSync(this._certConfig.certFile)) {\n this._cert = fs.readFileSync(this._certConfig.certFile, 'utf8');\n }\n if (this._certConfig.keyFile && fs.existsSync(this._certConfig.keyFile)) {\n this._key = fs.readFileSync(this._certConfig.keyFile, 'utf8');\n }\n }\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error(\"Client has already been disposed.\");\n }\n let parsedUrl = url.parse(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = (this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1) ? this._maxRetries + 1 : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n try {\n response = yield this.requestRaw(info, data);\n }\n catch (err) {\n numTries++;\n if (err && err.code && NetworkRetryErrors.indexOf(err.code) > -1 && numTries < maxTries) {\n yield this._performExponentialBackoff(numTries);\n continue;\n }\n throw err;\n }\n // Check if it's an authentication challenge\n if (response && response.message && response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1\n && this._allowRedirects\n && redirectsRemaining > 0) {\n const redirectUrl = response.message.headers[\"location\"];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = url.parse(redirectUrl);\n if (parsedUrl.protocol == 'https:' && parsedUrl.protocol != parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) {\n throw new Error(\"Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.\");\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n }\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof (data) === 'string') {\n info.options.headers[\"Content-Length\"] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', (sock) => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.destroy();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof (data) === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof (data) !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port ? parseInt(info.parsedUrl.port) : defaultPort;\n info.options.path = (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.timeout = (this.requestOptions && this.requestOptions.socketTimeout) || this._socketTimeout;\n this._socketTimeout = info.options.timeout;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers[\"user-agent\"] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers && !this._isPresigned(url.format(requestUrl))) {\n this.handlers.forEach((handler) => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _isPresigned(requestUrl) {\n if (this.requestOptions && this.requestOptions.presignedUrlPatterns) {\n const patterns = this.requestOptions.presignedUrlPatterns;\n for (let i = 0; i < patterns.length; i++) {\n if (requestUrl.match(patterns[i])) {\n return true;\n }\n }\n }\n return false;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => (c[k.toLowerCase()] = obj[k], c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxy = this._getProxy(parsedUrl);\n let useProxy = proxy.proxyUrl && proxy.proxyUrl.hostname && !this._isMatchInBypassProxyList(parsedUrl);\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n proxyAuth: proxy.proxyAuth,\n host: proxy.proxyUrl.hostname,\n port: proxy.proxyUrl.port\n },\n };\n let tunnelAgent;\n const overHttps = proxy.proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, { rejectUnauthorized: false });\n }\n if (usingSsl && this._certConfig) {\n agent.options = Object.assign(agent.options || {}, { ca: this._ca, cert: this._cert, key: this._key, passphrase: this._certConfig.passphrase });\n }\n return agent;\n }\n _getProxy(parsedUrl) {\n let usingSsl = parsedUrl.protocol === 'https:';\n let proxyConfig = this._httpProxy;\n // fallback to http_proxy and https_proxy env\n let https_proxy = process.env[EnvironmentVariables.HTTPS_PROXY];\n let http_proxy = process.env[EnvironmentVariables.HTTP_PROXY];\n if (!proxyConfig) {\n if (https_proxy && usingSsl) {\n proxyConfig = {\n proxyUrl: https_proxy\n };\n }\n else if (http_proxy) {\n proxyConfig = {\n proxyUrl: http_proxy\n };\n }\n }\n let proxyUrl;\n let proxyAuth;\n if (proxyConfig) {\n if (proxyConfig.proxyUrl.length > 0) {\n proxyUrl = url.parse(proxyConfig.proxyUrl);\n }\n if (proxyConfig.proxyUsername || proxyConfig.proxyPassword) {\n proxyAuth = proxyConfig.proxyUsername + \":\" + proxyConfig.proxyPassword;\n }\n }\n return { proxyUrl: proxyUrl, proxyAuth: proxyAuth };\n }\n _isMatchInBypassProxyList(parsedUrl) {\n if (!this._httpProxyBypassHosts) {\n return false;\n }\n let bypass = false;\n this._httpProxyBypassHosts.forEach(bypassHost => {\n if (bypassHost.test(parsedUrl.href)) {\n bypass = true;\n }\n });\n return bypass;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst httpm = require(\"./HttpClient\");\nconst util = require(\"./Util\");\nclass RestClient {\n /**\n * Creates an instance of the RestClient\n * @constructor\n * @param {string} userAgent - userAgent for requests\n * @param {string} baseUrl - (Optional) If not specified, use full urls per request. If supplied and a function passes a relative url, it will be appended to this\n * @param {ifm.IRequestHandler[]} handlers - handlers are typically auth handlers (basic, bearer, ntlm supplied)\n * @param {ifm.IRequestOptions} requestOptions - options for each http requests (http proxy setting, socket timeout)\n */\n constructor(userAgent, baseUrl, handlers, requestOptions) {\n this.client = new httpm.HttpClient(userAgent, handlers, requestOptions);\n if (baseUrl) {\n this._baseUrl = baseUrl;\n }\n }\n /**\n * Gets a resource from an endpoint\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} requestUrl - fully qualified or relative url\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n options(requestUrl, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(requestUrl, this._baseUrl);\n let res = yield this.client.options(url, this._headersFromOptions(options));\n return this.processResponse(res, options);\n });\n }\n /**\n * Gets a resource from an endpoint\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} resource - fully qualified url or relative path\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n get(resource, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(resource, this._baseUrl, (options || {}).queryParameters);\n let res = yield this.client.get(url, this._headersFromOptions(options));\n return this.processResponse(res, options);\n });\n }\n /**\n * Deletes a resource from an endpoint\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} resource - fully qualified or relative url\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n del(resource, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(resource, this._baseUrl, (options || {}).queryParameters);\n let res = yield this.client.del(url, this._headersFromOptions(options));\n return this.processResponse(res, options);\n });\n }\n /**\n * Creates resource(s) from an endpoint\n * T type of object returned.\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} resource - fully qualified or relative url\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n create(resource, resources, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(resource, this._baseUrl);\n let headers = this._headersFromOptions(options, true);\n let data = JSON.stringify(resources, null, 2);\n let res = yield this.client.post(url, data, headers);\n return this.processResponse(res, options);\n });\n }\n /**\n * Updates resource(s) from an endpoint\n * T type of object returned.\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} resource - fully qualified or relative url\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n update(resource, resources, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(resource, this._baseUrl);\n let headers = this._headersFromOptions(options, true);\n let data = JSON.stringify(resources, null, 2);\n let res = yield this.client.patch(url, data, headers);\n return this.processResponse(res, options);\n });\n }\n /**\n * Replaces resource(s) from an endpoint\n * T type of object returned.\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} resource - fully qualified or relative url\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n replace(resource, resources, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(resource, this._baseUrl);\n let headers = this._headersFromOptions(options, true);\n let data = JSON.stringify(resources, null, 2);\n let res = yield this.client.put(url, data, headers);\n return this.processResponse(res, options);\n });\n }\n uploadStream(verb, requestUrl, stream, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(requestUrl, this._baseUrl);\n let headers = this._headersFromOptions(options, true);\n let res = yield this.client.sendStream(verb, url, stream, headers);\n return this.processResponse(res, options);\n });\n }\n _headersFromOptions(options, contentType) {\n options = options || {};\n let headers = options.additionalHeaders || {};\n headers[\"Accept\"] = options.acceptHeader || \"application/json\";\n if (contentType) {\n let found = false;\n for (let header in headers) {\n if (header.toLowerCase() == \"content-type\") {\n found = true;\n }\n }\n if (!found) {\n headers[\"Content-Type\"] = 'application/json; charset=utf-8';\n }\n }\n return headers;\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == httpm.HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, RestClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n if (options && options.responseProcessor) {\n response.result = options.responseProcessor(obj);\n }\n else {\n response.result = obj;\n }\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = \"Failed request: (\" + statusCode + \")\";\n }\n let err = new Error(msg);\n // attach statusCode and body obj (if available) to the error object\n err['statusCode'] = statusCode;\n if (response.result) {\n err['result'] = response.result;\n }\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.RestClient = RestClient;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qs = require(\"qs\");\nconst url = require(\"url\");\nconst path = require(\"path\");\nconst zlib = require(\"zlib\");\n/**\n * creates an url from a request url and optional base url (http://server:8080)\n * @param {string} resource - a fully qualified url or relative path\n * @param {string} baseUrl - an optional baseUrl (http://server:8080)\n * @param {IRequestOptions} options - an optional options object, could include QueryParameters e.g.\n * @return {string} - resultant url\n */\nfunction getUrl(resource, baseUrl, queryParams) {\n const pathApi = path.posix || path;\n let requestUrl = '';\n if (!baseUrl) {\n requestUrl = resource;\n }\n else if (!resource) {\n requestUrl = baseUrl;\n }\n else {\n const base = url.parse(baseUrl);\n const resultantUrl = url.parse(resource);\n // resource (specific per request) elements take priority\n resultantUrl.protocol = resultantUrl.protocol || base.protocol;\n resultantUrl.auth = resultantUrl.auth || base.auth;\n resultantUrl.host = resultantUrl.host || base.host;\n resultantUrl.pathname = pathApi.resolve(base.pathname, resultantUrl.pathname);\n if (!resultantUrl.pathname.endsWith('/') && resource.endsWith('/')) {\n resultantUrl.pathname += '/';\n }\n requestUrl = url.format(resultantUrl);\n }\n return queryParams ?\n getUrlWithParsedQueryParams(requestUrl, queryParams) :\n requestUrl;\n}\nexports.getUrl = getUrl;\n/**\n *\n * @param {string} requestUrl\n * @param {IRequestQueryParams} queryParams\n * @return {string} - Request's URL with Query Parameters appended/parsed.\n */\nfunction getUrlWithParsedQueryParams(requestUrl, queryParams) {\n const url = requestUrl.replace(/\\?$/g, ''); // Clean any extra end-of-string \"?\" character\n const parsedQueryParams = qs.stringify(queryParams.params, buildParamsStringifyOptions(queryParams));\n return `${url}${parsedQueryParams}`;\n}\n/**\n * Build options for QueryParams Stringifying.\n *\n * @param {IRequestQueryParams} queryParams\n * @return {object}\n */\nfunction buildParamsStringifyOptions(queryParams) {\n let options = {\n addQueryPrefix: true,\n delimiter: (queryParams.options || {}).separator || '&',\n allowDots: (queryParams.options || {}).shouldAllowDots || false,\n arrayFormat: (queryParams.options || {}).arrayFormat || 'repeat',\n encodeValuesOnly: (queryParams.options || {}).shouldOnlyEncodeValues || true\n };\n return options;\n}\n/**\n * Decompress/Decode gzip encoded JSON\n * Using Node.js built-in zlib module\n *\n * @param {Buffer} buffer\n * @param {string} charset? - optional; defaults to 'utf-8'\n * @return {Promise}\n */\nfunction decompressGzippedContent(buffer, charset) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n zlib.gunzip(buffer, function (error, buffer) {\n if (error) {\n reject(error);\n }\n resolve(buffer.toString(charset || 'utf-8'));\n });\n }));\n });\n}\nexports.decompressGzippedContent = decompressGzippedContent;\n/**\n * Builds a RegExp to test urls against for deciding\n * wether to bypass proxy from an entry of the\n * environment variable setting NO_PROXY\n *\n * @param {string} bypass\n * @return {RegExp}\n */\nfunction buildProxyBypassRegexFromEnv(bypass) {\n try {\n // We need to keep this around for back-compat purposes\n return new RegExp(bypass, 'i');\n }\n catch (err) {\n if (err instanceof SyntaxError && (bypass || \"\").startsWith(\"*\")) {\n let wildcardEscaped = bypass.replace('*', '(.*)');\n return new RegExp(wildcardEscaped, 'i');\n }\n throw err;\n }\n}\nexports.buildProxyBypassRegexFromEnv = buildProxyBypassRegexFromEnv;\n/**\n * Obtain Response's Content Charset.\n * Through inspecting `content-type` response header.\n * It Returns 'utf-8' if NO charset specified/matched.\n *\n * @param {IHttpClientResponse} response\n * @return {string} - Content Encoding Charset; Default=utf-8\n */\nfunction obtainContentCharset(response) {\n // Find the charset, if specified.\n // Search for the `charset=CHARSET` string, not including `;,\\r\\n`\n // Example: content-type: 'application/json;charset=utf-8'\n // |__ matches would be ['charset=utf-8', 'utf-8', index: 18, input: 'application/json; charset=utf-8']\n // |_____ matches[1] would have the charset :tada: , in our example it's utf-8\n // However, if the matches Array was empty or no charset found, 'utf-8' would be returned by default.\n const nodeSupportedEncodings = ['ascii', 'utf8', 'utf16le', 'ucs2', 'base64', 'binary', 'hex'];\n const contentType = response.message.headers['content-type'] || '';\n const matches = contentType.match(/charset=([^;,\\r\\n]+)/i);\n return (matches && matches[1] && nodeSupportedEncodings.indexOf(matches[1]) != -1) ? matches[1] : 'utf-8';\n}\nexports.obtainContentCharset = obtainContentCharset;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass BasicCredentialHandler {\n constructor(username, password, allowCrossOriginAuthentication) {\n this.username = username;\n this.password = password;\n this.allowCrossOriginAuthentication = allowCrossOriginAuthentication;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!this.origin) {\n this.origin = options.host;\n }\n // If this is a redirection, don't set the Authorization header\n if (this.origin === options.host || this.allowCrossOriginAuthentication) {\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n options.headers['X-TFS-FedAuthRedirect'] = 'Suppress';\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass BearerCredentialHandler {\n constructor(token, allowCrossOriginAuthentication) {\n this.token = token;\n this.allowCrossOriginAuthentication = allowCrossOriginAuthentication;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!this.origin) {\n this.origin = options.host;\n }\n // If this is a redirection, don't set the Authorization header\n if (this.origin === options.host || this.allowCrossOriginAuthentication) {\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n options.headers['X-TFS-FedAuthRedirect'] = 'Suppress';\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst _ = require(\"underscore\");\nconst ntlm = require(\"../opensource/Node-SMB/lib/ntlm\");\nclass NtlmCredentialHandler {\n constructor(username, password, workstation, domain) {\n this._ntlmOptions = {};\n this._ntlmOptions.username = username;\n this._ntlmOptions.password = password;\n this._ntlmOptions.domain = domain || '';\n this._ntlmOptions.workstation = workstation || '';\n }\n prepareRequest(options) {\n // No headers or options need to be set. We keep the credentials on the handler itself.\n // If a (proxy) agent is set, remove it as we don't support proxy for NTLM at this time\n if (options.agent) {\n delete options.agent;\n }\n }\n canHandleAuthentication(response) {\n if (response && response.message && response.message.statusCode === 401) {\n // Ensure that we're talking NTLM here\n // Once we have the www-authenticate header, split it so we can ensure we can talk NTLM\n const wwwAuthenticate = response.message.headers['www-authenticate'];\n return wwwAuthenticate && (wwwAuthenticate.split(', ').indexOf(\"NTLM\") >= 0);\n }\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return new Promise((resolve, reject) => {\n const callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n // We have to readbody on the response before continuing otherwise there is a hang.\n res.readBody().then(() => {\n resolve(res);\n });\n };\n this.handleAuthenticationPrivate(httpClient, requestInfo, objs, callbackForResult);\n });\n }\n handleAuthenticationPrivate(httpClient, requestInfo, objs, finalCallback) {\n // Set up the headers for NTLM authentication\n requestInfo.options = _.extend(requestInfo.options, {\n username: this._ntlmOptions.username,\n password: this._ntlmOptions.password,\n domain: this._ntlmOptions.domain,\n workstation: this._ntlmOptions.workstation\n });\n requestInfo.options.agent = httpClient.isSsl ?\n new https.Agent({ keepAlive: true }) :\n new http.Agent({ keepAlive: true });\n let self = this;\n // The following pattern of sending the type1 message following immediately (in a setImmediate) is\n // critical for the NTLM exchange to happen. If we removed setImmediate (or call in a different manner)\n // the NTLM exchange will always fail with a 401.\n this.sendType1Message(httpClient, requestInfo, objs, function (err, res) {\n if (err) {\n return finalCallback(err, null, null);\n }\n /// We have to readbody on the response before continuing otherwise there is a hang.\n res.readBody().then(() => {\n // It is critical that we have setImmediate here due to how connection requests are queued.\n // If setImmediate is removed then the NTLM handshake will not work.\n // setImmediate allows us to queue a second request on the same connection. If this second\n // request is not queued on the connection when the first request finishes then node closes\n // the connection. NTLM requires both requests to be on the same connection so we need this.\n setImmediate(function () {\n self.sendType3Message(httpClient, requestInfo, objs, res, finalCallback);\n });\n });\n });\n }\n // The following method is an adaptation of code found at https://github.com/SamDecrock/node-http-ntlm/blob/master/httpntlm.js\n sendType1Message(httpClient, requestInfo, objs, finalCallback) {\n const type1HexBuffer = ntlm.encodeType1(this._ntlmOptions.workstation, this._ntlmOptions.domain);\n const type1msg = `NTLM ${type1HexBuffer.toString('base64')}`;\n const type1options = {\n headers: {\n 'Connection': 'keep-alive',\n 'Authorization': type1msg\n },\n timeout: requestInfo.options.timeout || 0,\n agent: requestInfo.httpModule,\n };\n const type1info = {};\n type1info.httpModule = requestInfo.httpModule;\n type1info.parsedUrl = requestInfo.parsedUrl;\n type1info.options = _.extend(type1options, _.omit(requestInfo.options, 'headers'));\n return httpClient.requestRawWithCallback(type1info, objs, finalCallback);\n }\n // The following method is an adaptation of code found at https://github.com/SamDecrock/node-http-ntlm/blob/master/httpntlm.js\n sendType3Message(httpClient, requestInfo, objs, res, callback) {\n if (!res.message.headers && !res.message.headers['www-authenticate']) {\n throw new Error('www-authenticate not found on response of second request');\n }\n /**\n * Server will respond with challenge/nonce\n * assigned to response's \"WWW-AUTHENTICATE\" header\n * and should adhere to RegExp /^NTLM\\s+(.+?)(,|\\s+|$)/\n */\n const serverNonceRegex = /^NTLM\\s+(.+?)(,|\\s+|$)/;\n const serverNonce = Buffer.from((res.message.headers['www-authenticate'].match(serverNonceRegex) || [])[1], 'base64');\n let type2msg;\n /**\n * Wrap decoding the Server's challenge/nonce in\n * try-catch block to throw more comprehensive\n * Error with clear message to consumer\n */\n try {\n type2msg = ntlm.decodeType2(serverNonce);\n }\n catch (error) {\n throw new Error(`Decoding Server's Challenge to Obtain Type2Message failed with error: ${error.message}`);\n }\n const type3msg = ntlm.encodeType3(this._ntlmOptions.username, this._ntlmOptions.workstation, this._ntlmOptions.domain, type2msg, this._ntlmOptions.password).toString('base64');\n const type3options = {\n headers: {\n 'Authorization': `NTLM ${type3msg}`,\n 'Connection': 'Close'\n },\n agent: requestInfo.httpModule,\n };\n const type3info = {};\n type3info.httpModule = requestInfo.httpModule;\n type3info.parsedUrl = requestInfo.parsedUrl;\n type3options.headers = _.extend(type3options.headers, requestInfo.options.headers);\n type3info.options = _.extend(type3options, _.omit(requestInfo.options, 'headers'));\n return httpClient.requestRawWithCallback(type3info, objs, callback);\n }\n}\nexports.NtlmCredentialHandler = NtlmCredentialHandler;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass PersonalAccessTokenCredentialHandler {\n constructor(token, allowCrossOriginAuthentication) {\n this.token = token;\n this.allowCrossOriginAuthentication = allowCrossOriginAuthentication;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!this.origin) {\n this.origin = options.host;\n }\n // If this is a redirection, don't set the Authorization header\n if (this.origin === options.host || this.allowCrossOriginAuthentication) {\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n options.headers['X-TFS-FedAuthRedirect'] = 'Suppress';\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n","var crypto = require('crypto');\n\nfunction zeroextend(str, len)\n{\n while (str.length < len)\n str = '0' + str;\n return (str);\n}\n\n/*\n * Fix (odd) parity bits in a 64-bit DES key.\n */\nfunction oddpar(buf)\n{\n for (var j = 0; j < buf.length; j++) {\n var par = 1;\n for (var i = 1; i < 8; i++) {\n par = (par + ((buf[j] >> i) & 1)) % 2;\n }\n buf[j] |= par & 1;\n }\n return buf;\n}\n\n/*\n * Expand a 56-bit key buffer to the full 64-bits for DES.\n *\n * Based on code sample in:\n * http://www.innovation.ch/personal/ronald/ntlm.html\n */\nfunction expandkey(key56)\n{\n var key64 = new Buffer(8);\n\n key64[0] = key56[0] & 0xFE;\n key64[1] = ((key56[0] << 7) & 0xFF) | (key56[1] >> 1);\n key64[2] = ((key56[1] << 6) & 0xFF) | (key56[2] >> 2);\n key64[3] = ((key56[2] << 5) & 0xFF) | (key56[3] >> 3);\n key64[4] = ((key56[3] << 4) & 0xFF) | (key56[4] >> 4);\n key64[5] = ((key56[4] << 3) & 0xFF) | (key56[5] >> 5);\n key64[6] = ((key56[5] << 2) & 0xFF) | (key56[6] >> 6);\n key64[7] = (key56[6] << 1) & 0xFF;\n\n return key64;\n}\n\n/*\n * Convert a binary string to a hex string\n */\nfunction bintohex(bin)\n{\n var buf = (Buffer.isBuffer(buf) ? buf : new Buffer(bin, 'binary'));\n var str = buf.toString('hex').toUpperCase();\n return zeroextend(str, 32);\n}\n\n\nmodule.exports.zeroextend = zeroextend;\nmodule.exports.oddpar = oddpar;\nmodule.exports.expandkey = expandkey;\nmodule.exports.bintohex = bintohex;\n","var log = console.log;\nvar crypto = require('crypto');\nvar $ = require('./common');\nvar lmhashbuf = require('./smbhash').lmhashbuf;\nvar nthashbuf = require('./smbhash').nthashbuf;\n\n\nfunction encodeType1(hostname, ntdomain) {\n hostname = hostname.toUpperCase();\n ntdomain = ntdomain.toUpperCase();\n var hostnamelen = Buffer.byteLength(hostname, 'ascii');\n var ntdomainlen = Buffer.byteLength(ntdomain, 'ascii');\n\n var pos = 0;\n var buf = new Buffer(32 + hostnamelen + ntdomainlen);\n\n buf.write('NTLMSSP', pos, 7, 'ascii'); // byte protocol[8];\n pos += 7;\n buf.writeUInt8(0, pos);\n pos++;\n\n buf.writeUInt8(0x01, pos); // byte type;\n pos++;\n\n buf.fill(0x00, pos, pos + 3); // byte zero[3];\n pos += 3;\n\n buf.writeUInt16LE(0xb203, pos); // short flags;\n pos += 2;\n\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(ntdomainlen, pos); // short dom_len;\n pos += 2;\n buf.writeUInt16LE(ntdomainlen, pos); // short dom_len;\n pos += 2;\n\n var ntdomainoff = 0x20 + hostnamelen;\n buf.writeUInt16LE(ntdomainoff, pos); // short dom_off;\n pos += 2;\n\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(hostnamelen, pos); // short host_len;\n pos += 2;\n buf.writeUInt16LE(hostnamelen, pos); // short host_len;\n pos += 2;\n\n buf.writeUInt16LE(0x20, pos); // short host_off;\n pos += 2;\n\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.write(hostname, 0x20, hostnamelen, 'ascii');\n buf.write(ntdomain, ntdomainoff, ntdomainlen, 'ascii');\n\n return buf;\n}\n\n\n/*\n * \n */\nfunction decodeType2(buf)\n{\n var proto = buf.toString('ascii', 0, 7);\n if (buf[7] !== 0x00 || proto !== 'NTLMSSP')\n throw new Error('magic was not NTLMSSP');\n\n var type = buf.readUInt8(8);\n if (type !== 0x02)\n throw new Error('message was not NTLMSSP type 0x02');\n\n //var msg_len = buf.readUInt16LE(16);\n\n //var flags = buf.readUInt16LE(20);\n\n var nonce = buf.slice(24, 32);\n return nonce;\n}\n\nfunction encodeType3(username, hostname, ntdomain, nonce, password) {\n hostname = hostname.toUpperCase();\n ntdomain = ntdomain.toUpperCase();\n\n var lmh = new Buffer(21);\n lmhashbuf(password).copy(lmh);\n lmh.fill(0x00, 16); // null pad to 21 bytes\n var nth = new Buffer(21);\n nthashbuf(password).copy(nth);\n nth.fill(0x00, 16); // null pad to 21 bytes\n\n var lmr = makeResponse(lmh, nonce);\n var ntr = makeResponse(nth, nonce);\n\n var usernamelen = Buffer.byteLength(username, 'ucs2');\n var hostnamelen = Buffer.byteLength(hostname, 'ucs2');\n var ntdomainlen = Buffer.byteLength(ntdomain, 'ucs2');\n var lmrlen = 0x18;\n var ntrlen = 0x18;\n\n var ntdomainoff = 0x40;\n var usernameoff = ntdomainoff + ntdomainlen;\n var hostnameoff = usernameoff + usernamelen;\n var lmroff = hostnameoff + hostnamelen;\n var ntroff = lmroff + lmrlen;\n\n var pos = 0;\n var msg_len = 64 + ntdomainlen + usernamelen + hostnamelen + lmrlen + ntrlen;\n var buf = new Buffer(msg_len);\n\n buf.write('NTLMSSP', pos, 7, 'ascii'); // byte protocol[8];\n pos += 7;\n buf.writeUInt8(0, pos);\n pos++;\n\n buf.writeUInt8(0x03, pos); // byte type;\n pos++;\n\n buf.fill(0x00, pos, pos + 3); // byte zero[3];\n pos += 3;\n\n buf.writeUInt16LE(lmrlen, pos); // short lm_resp_len;\n pos += 2;\n buf.writeUInt16LE(lmrlen, pos); // short lm_resp_len;\n pos += 2;\n buf.writeUInt16LE(lmroff, pos); // short lm_resp_off;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(ntrlen, pos); // short nt_resp_len;\n pos += 2;\n buf.writeUInt16LE(ntrlen, pos); // short nt_resp_len;\n pos += 2;\n buf.writeUInt16LE(ntroff, pos); // short nt_resp_off;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(ntdomainlen, pos); // short dom_len;\n pos += 2;\n buf.writeUInt16LE(ntdomainlen, pos); // short dom_len;\n pos += 2;\n buf.writeUInt16LE(ntdomainoff, pos); // short dom_off;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(usernamelen, pos); // short user_len;\n pos += 2;\n buf.writeUInt16LE(usernamelen, pos); // short user_len;\n pos += 2;\n buf.writeUInt16LE(usernameoff, pos); // short user_off;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(hostnamelen, pos); // short host_len;\n pos += 2;\n buf.writeUInt16LE(hostnamelen, pos); // short host_len;\n pos += 2;\n buf.writeUInt16LE(hostnameoff, pos); // short host_off;\n pos += 2;\n buf.fill(0x00, pos, pos + 6); // byte zero[6];\n pos += 6;\n\n buf.writeUInt16LE(msg_len, pos); // short msg_len;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(0x8201, pos); // short flags;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.write(ntdomain, ntdomainoff, ntdomainlen, 'ucs2');\n buf.write(username, usernameoff, usernamelen, 'ucs2');\n buf.write(hostname, hostnameoff, hostnamelen, 'ucs2');\n lmr.copy(buf, lmroff, 0, lmrlen);\n ntr.copy(buf, ntroff, 0, ntrlen);\n\n return buf;\n}\n\nfunction makeResponse(hash, nonce)\n{\n var out = new Buffer(24);\n for (var i = 0; i < 3; i++) {\n var keybuf = $.oddpar($.expandkey(hash.slice(i * 7, i * 7 + 7)));\n var des = crypto.createCipheriv('DES-ECB', keybuf, '');\n var str = des.update(nonce.toString('binary'), 'binary', 'binary');\n out.write(str, i * 8, i * 8 + 8, 'binary');\n }\n return out;\n}\n\nexports.encodeType1 = encodeType1;\nexports.decodeType2 = decodeType2;\nexports.encodeType3 = encodeType3;\n\n// Convenience methods.\n\nexports.challengeHeader = function (hostname, domain) {\n return 'NTLM ' + exports.encodeType1(hostname, domain).toString('base64');\n};\n\nexports.responseHeader = function (res, url, domain, username, password) {\n var serverNonce = new Buffer((res.headers['www-authenticate'].match(/^NTLM\\s+(.+?)(,|\\s+|$)/) || [])[1], 'base64');\n var hostname = require('url').parse(url).hostname;\n return 'NTLM ' + exports.encodeType3(username, hostname, domain, exports.decodeType2(serverNonce), password).toString('base64')\n};\n\n// Import smbhash module.\n\nexports.smbhash = require('./smbhash');\n","var crypto = require('crypto');\nvar $ = require('./common');\n\n/*\n * Generate the LM Hash\n */\nfunction lmhashbuf(inputstr)\n{\n /* ASCII --> uppercase */\n var x = inputstr.substring(0, 14).toUpperCase();\n var xl = Buffer.byteLength(x, 'ascii');\n\n /* null pad to 14 bytes */\n var y = new Buffer(14);\n y.write(x, 0, xl, 'ascii');\n y.fill(0, xl);\n\n /* insert odd parity bits in key */\n var halves = [\n $.oddpar($.expandkey(y.slice(0, 7))),\n $.oddpar($.expandkey(y.slice(7, 14)))\n ];\n\n /* DES encrypt magic number \"KGS!@#$%\" to two\n * 8-byte ciphertexts, (ECB, no padding)\n */\n var buf = new Buffer(16);\n var pos = 0;\n var cts = halves.forEach(function(z) {\n var des = crypto.createCipheriv('DES-ECB', z, '');\n var str = des.update('KGS!@#$%', 'binary', 'binary');\n buf.write(str, pos, pos + 8, 'binary');\n pos += 8;\n });\n\n /* concat the two ciphertexts to form 16byte value,\n * the LM hash */\n return buf;\n}\n\nfunction nthashbuf(str)\n{\n /* take MD4 hash of UCS-2 encoded password */\n var ucs2 = new Buffer(str, 'ucs2');\n var md4 = crypto.createHash('md4');\n md4.update(ucs2);\n return new Buffer(md4.digest('binary'), 'binary');\n}\n\nfunction lmhash(is)\n{\n return $.bintohex(lmhashbuf(is));\n}\n\nfunction nthash(is)\n{\n return $.bintohex(nthashbuf(is));\n}\n\nmodule.exports.nthashbuf = nthashbuf;\nmodule.exports.lmhashbuf = lmhashbuf;\n\nmodule.exports.nthash = nthash;\nmodule.exports.lmhash = lmhash;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"// Underscore.js 1.13.1\n// https://underscorejs.org\n// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// Current version.\nvar VERSION = '1.13.1';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nvar root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nvar ArrayProto = Array.prototype, ObjProto = Object.prototype;\nvar SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nvar push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nvar supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nvar nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nvar _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nvar hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nvar MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n\n// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nfunction restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n\n// Is a given variable an object?\nfunction isObject(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n}\n\n// Is a given value equal to null?\nfunction isNull(obj) {\n return obj === null;\n}\n\n// Is a given variable undefined?\nfunction isUndefined(obj) {\n return obj === void 0;\n}\n\n// Is a given value a boolean?\nfunction isBoolean(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n\n// Is a given value a DOM element?\nfunction isElement(obj) {\n return !!(obj && obj.nodeType === 1);\n}\n\n// Internal function for creating a `toString`-based type tester.\nfunction tagTester(name) {\n var tag = '[object ' + name + ']';\n return function(obj) {\n return toString.call(obj) === tag;\n };\n}\n\nvar isString = tagTester('String');\n\nvar isNumber = tagTester('Number');\n\nvar isDate = tagTester('Date');\n\nvar isRegExp = tagTester('RegExp');\n\nvar isError = tagTester('Error');\n\nvar isSymbol = tagTester('Symbol');\n\nvar isArrayBuffer = tagTester('ArrayBuffer');\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\nvar isFunction$1 = isFunction;\n\nvar hasObjectTag = tagTester('Object');\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\nvar hasStringTagBug = (\n supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8)))\n ),\n isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\nfunction ie10IsDataView(obj) {\n return obj != null && isFunction$1(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nvar isDataView$1 = (hasStringTagBug ? ie10IsDataView : isDataView);\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nvar isArray = nativeIsArray || tagTester('Array');\n\n// Internal function to check whether `key` is an own property name of `obj`.\nfunction has$1(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n}\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return has$1(obj, 'callee');\n };\n }\n}());\n\nvar isArguments$1 = isArguments;\n\n// Is a given object a finite number?\nfunction isFinite$1(obj) {\n return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));\n}\n\n// Is the given value `NaN`?\nfunction isNaN$1(obj) {\n return isNumber(obj) && _isNaN(obj);\n}\n\n// Predicate-generating function. Often useful outside of Underscore.\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nfunction createSizePropertyCheck(getSizeProperty) {\n return function(collection) {\n var sizeProperty = getSizeProperty(collection);\n return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n }\n}\n\n// Internal helper to generate a function to obtain property `key` from `obj`.\nfunction shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n\n// Internal helper to obtain the `byteLength` property of an object.\nvar getByteLength = shallowProperty('byteLength');\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nvar isBufferLike = createSizePropertyCheck(getByteLength);\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n // Otherwise, fall back on the above regular expression.\n return nativeIsView ? (nativeIsView(obj) && !isDataView$1(obj)) :\n isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nvar isTypedArray$1 = supportsArrayBuffer ? isTypedArray : constant(false);\n\n// Internal helper to obtain the `length` property of an object.\nvar getLength = shallowProperty('length');\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n var hash = {};\n for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n return {\n contains: function(key) { return hash[key]; },\n push: function(key) {\n hash[key] = true;\n return keys.push(key);\n }\n };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nfunction collectNonEnumProps(obj, keys) {\n keys = emulatedSet(keys);\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = isFunction$1(constructor) && constructor.prototype || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has$1(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n keys.push(prop);\n }\n }\n}\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nfunction keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has$1(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nfunction isEmpty(obj) {\n if (obj == null) return true;\n // Skip the more expensive `toString`-based type checks if `obj` has no\n // `.length`.\n var length = getLength(obj);\n if (typeof length == 'number' && (\n isArray(obj) || isString(obj) || isArguments$1(obj)\n )) return length === 0;\n return getLength(keys(obj)) === 0;\n}\n\n// Returns whether an object has a given set of `key:value` pairs.\nfunction isMatch(object, attrs) {\n var _keys = keys(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nfunction _$1(obj) {\n if (obj instanceof _$1) return obj;\n if (!(this instanceof _$1)) return new _$1(obj);\n this._wrapped = obj;\n}\n\n_$1.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_$1.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_$1.prototype.valueOf = _$1.prototype.toJSON = _$1.prototype.value;\n\n_$1.prototype.toString = function() {\n return String(this._wrapped);\n};\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nfunction toBufferView(bufferSource) {\n return new Uint8Array(\n bufferSource.buffer || bufferSource,\n bufferSource.byteOffset || 0,\n getByteLength(bufferSource)\n );\n}\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction eq(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n}\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _$1) a = a._wrapped;\n if (b instanceof _$1) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n // Work around a bug in IE 10 - Edge 13.\n if (hasStringTagBug && className == '[object Object]' && isDataView$1(a)) {\n if (!isDataView$1(b)) return false;\n className = tagDataView;\n }\n switch (className) {\n // These types are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n case '[object ArrayBuffer]':\n case tagDataView:\n // Coerce to typed array so we can fall through.\n return deepEq(toBufferView(a), toBufferView(b), aStack, bStack);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays && isTypedArray$1(a)) {\n var byteLength = getByteLength(a);\n if (byteLength !== getByteLength(b)) return false;\n if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true;\n areArrays = true;\n }\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction$1(aCtor) && aCtor instanceof aCtor &&\n isFunction$1(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var _keys = keys(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!(has$1(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\n\n// Perform a deep comparison to check if two objects are equal.\nfunction isEqual(a, b) {\n return eq(a, b);\n}\n\n// Retrieve all the enumerable property names of an object.\nfunction allKeys(obj) {\n if (!isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nfunction ie11fingerprint(methods) {\n var length = getLength(methods);\n return function(obj) {\n if (obj == null) return false;\n // `Map`, `WeakMap` and `Set` have no enumerable keys.\n var keys = allKeys(obj);\n if (getLength(keys)) return false;\n for (var i = 0; i < length; i++) {\n if (!isFunction$1(obj[methods[i]])) return false;\n }\n // If we are testing against `WeakMap`, we need to ensure that\n // `obj` doesn't have a `forEach` method in order to distinguish\n // it from a regular `Map`.\n return methods !== weakMapMethods || !isFunction$1(obj[forEachName]);\n };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n hasName = 'has',\n commonInit = ['clear', 'delete'],\n mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nvar mapMethods = commonInit.concat(forEachName, mapTail),\n weakMapMethods = commonInit.concat(mapTail),\n setMethods = ['add'].concat(commonInit, forEachName, hasName);\n\nvar isMap = isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');\n\nvar isWeakMap = isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');\n\nvar isSet = isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');\n\nvar isWeakSet = tagTester('WeakSet');\n\n// Retrieve the values of an object's properties.\nfunction values(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nfunction pairs(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [_keys[i], obj[_keys[i]]];\n }\n return pairs;\n}\n\n// Invert the keys and values of an object. The values must be serializable.\nfunction invert(obj) {\n var result = {};\n var _keys = keys(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n\n// Return a sorted list of the function names available on the object.\nfunction functions(obj) {\n var names = [];\n for (var key in obj) {\n if (isFunction$1(obj[key])) names.push(key);\n }\n return names.sort();\n}\n\n// An internal function for creating assigner functions.\nfunction createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n\n// Extend a given object with all the properties in passed-in object(s).\nvar extend = createAssigner(allKeys);\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nvar extendOwn = createAssigner(keys);\n\n// Fill in a given object with default properties.\nvar defaults = createAssigner(allKeys, true);\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nfunction baseCreate(prototype) {\n if (!isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n var Ctor = ctor();\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nfunction create(prototype, props) {\n var result = baseCreate(prototype);\n if (props) extendOwn(result, props);\n return result;\n}\n\n// Create a (shallow-cloned) duplicate of an object.\nfunction clone(obj) {\n if (!isObject(obj)) return obj;\n return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n\n// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nfunction tap(obj, interceptor) {\n interceptor(obj);\n return obj;\n}\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nfunction toPath$1(path) {\n return isArray(path) ? path : [path];\n}\n_$1.toPath = toPath$1;\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nfunction toPath(path) {\n return _$1.toPath(path);\n}\n\n// Internal function to obtain a nested property in `obj` along `path`.\nfunction deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nfunction get(object, path, defaultValue) {\n var value = deepGet(object, toPath(path));\n return isUndefined(value) ? defaultValue : value;\n}\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nfunction has(obj, path) {\n path = toPath(path);\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (!has$1(obj, key)) return false;\n obj = obj[key];\n }\n return !!length;\n}\n\n// Keep the identity function around for default iteratees.\nfunction identity(value) {\n return value;\n}\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nfunction matcher(attrs) {\n attrs = extendOwn({}, attrs);\n return function(obj) {\n return isMatch(obj, attrs);\n };\n}\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nfunction property(path) {\n path = toPath(path);\n return function(obj) {\n return deepGet(obj, path);\n };\n}\n\n// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nfunction optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nfunction baseIteratee(value, context, argCount) {\n if (value == null) return identity;\n if (isFunction$1(value)) return optimizeCb(value, context, argCount);\n if (isObject(value) && !isArray(value)) return matcher(value);\n return property(value);\n}\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nfunction iteratee(value, context) {\n return baseIteratee(value, context, Infinity);\n}\n_$1.iteratee = iteratee;\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nfunction cb(value, context, argCount) {\n if (_$1.iteratee !== iteratee) return _$1.iteratee(value, context);\n return baseIteratee(value, context, argCount);\n}\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nfunction mapObject(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = keys(obj),\n length = _keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = _keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n// Predicate-generating function. Often useful outside of Underscore.\nfunction noop(){}\n\n// Generates a function for a given object that returns a given property.\nfunction propertyOf(obj) {\n if (obj == null) return noop;\n return function(path) {\n return get(obj, path);\n };\n}\n\n// Run a function **n** times.\nfunction times(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n}\n\n// Return a random integer between `min` and `max` (inclusive).\nfunction random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n\n// A (possibly faster) way to get the current timestamp as an integer.\nvar now = Date.now || function() {\n return new Date().getTime();\n};\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nfunction createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\n\n// Internal list of HTML entities for escaping.\nvar escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\n\n// Function for escaping strings to HTML interpolation.\nvar _escape = createEscaper(escapeMap);\n\n// Internal list of HTML entities for unescaping.\nvar unescapeMap = invert(escapeMap);\n\n// Function for unescaping strings from HTML interpolation.\nvar _unescape = createEscaper(unescapeMap);\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nvar templateSettings = _$1.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n};\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n return '\\\\' + escapes[match];\n}\n\n// In order to prevent third-party code injection through\n// `_.templateSettings.variable`, we test it against the following regular\n// expression. It is intentionally a bit more liberal than just matching valid\n// identifiers, but still prevents possible loopholes through defaults or\n// destructuring assignment.\nvar bareIdentifier = /^\\s*(\\w|\\$)+\\s*$/;\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nfunction template(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = defaults({}, settings, _$1.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n var argument = settings.variable;\n if (argument) {\n // Insure against third-party code injection. (CVE-2021-23358)\n if (!bareIdentifier.test(argument)) throw new Error(\n 'variable is not a bare identifier: ' + argument\n );\n } else {\n // If a variable is not specified, place data values in local scope.\n source = 'with(obj||{}){\\n' + source + '}\\n';\n argument = 'obj';\n }\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(argument, '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _$1);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n}\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nfunction result(obj, path, fallback) {\n path = toPath(path);\n var length = path.length;\n if (!length) {\n return isFunction$1(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = isFunction$1(prop) ? prop.call(obj) : prop;\n }\n return obj;\n}\n\n// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nfunction uniqueId(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n\n// Start chaining a wrapped Underscore object.\nfunction chain(obj) {\n var instance = _$1(obj);\n instance._chain = true;\n return instance;\n}\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nfunction executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (isObject(result)) return result;\n return self;\n}\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _$1;\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nvar bind = restArguments(function(func, context, args) {\n if (!isFunction$1(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n});\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nvar isArrayLike = createSizePropertyCheck(getLength);\n\n// Internal implementation of a recursive `flatten` function.\nfunction flatten$1(input, depth, strict, output) {\n output = output || [];\n if (!depth && depth !== 0) {\n depth = Infinity;\n } else if (depth <= 0) {\n return output.concat(input);\n }\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (isArray(value) || isArguments$1(value))) {\n // Flatten current level of array or arguments object.\n if (depth > 1) {\n flatten$1(value, depth - 1, strict, output);\n idx = output.length;\n } else {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nvar bindAll = restArguments(function(obj, keys) {\n keys = flatten$1(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = bind(obj[key], obj);\n }\n return obj;\n});\n\n// Memoize an expensive function by storing its results.\nfunction memoize(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has$1(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n}\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nvar delay = restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n});\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nvar defer = partial(delay, _$1, 1);\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nfunction throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var _now = now();\n if (!previous && options.leading === false) previous = _now;\n var remaining = wait - (_now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = _now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nfunction debounce(func, wait, immediate) {\n var timeout, previous, args, result, context;\n\n var later = function() {\n var passed = now() - previous;\n if (wait > passed) {\n timeout = setTimeout(later, wait - passed);\n } else {\n timeout = null;\n if (!immediate) result = func.apply(context, args);\n // This check is needed because `func` can recursively invoke `debounced`.\n if (!timeout) args = context = null;\n }\n };\n\n var debounced = restArguments(function(_args) {\n context = this;\n args = _args;\n previous = now();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n if (immediate) result = func.apply(context, args);\n }\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = args = context = null;\n };\n\n return debounced;\n}\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nfunction wrap(func, wrapper) {\n return partial(wrapper, func);\n}\n\n// Returns a negated version of the passed-in predicate.\nfunction negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n\n// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nfunction compose() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n// Returns a function that will only be executed on and after the Nth call.\nfunction after(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n\n// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nfunction before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nvar once = partial(before, 2);\n\n// Returns the first key on an object that passes a truth test.\nfunction findKey(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = keys(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nfunction createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n\n// Returns the first index on an array-like that passes a truth test.\nvar findIndex = createPredicateIndexFinder(1);\n\n// Returns the last index on an array-like that passes a truth test.\nvar findLastIndex = createPredicateIndexFinder(-1);\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nfunction sortedIndex(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nfunction createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), isNaN$1);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nvar indexOf = createIndexFinder(1, findIndex, sortedIndex);\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\nvar lastIndexOf = createIndexFinder(-1, findLastIndex);\n\n// Return the first value which passes a truth test.\nfunction find(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nfunction findWhere(obj, attrs) {\n return find(obj, matcher(attrs));\n}\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nfunction each(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = keys(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\n\n// Return the results of applying the iteratee to each element.\nfunction map(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n// Internal helper to create a reducing function, iterating left or right.\nfunction createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n}\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nvar reduce = createReduce(1);\n\n// The right-associative version of reduce, also known as `foldr`.\nvar reduceRight = createReduce(-1);\n\n// Return all the elements that pass a truth test.\nfunction filter(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\n\n// Return all the elements for which a truth test fails.\nfunction reject(obj, predicate, context) {\n return filter(obj, negate(cb(predicate)), context);\n}\n\n// Determine whether all of the elements pass a truth test.\nfunction every(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n}\n\n// Determine if at least one element in the object passes a truth test.\nfunction some(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n}\n\n// Determine if the array or object contains a given item (using `===`).\nfunction contains(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return indexOf(obj, item, fromIndex) >= 0;\n}\n\n// Invoke a method (with arguments) on every item in a collection.\nvar invoke = restArguments(function(obj, path, args) {\n var contextPath, func;\n if (isFunction$1(path)) {\n func = path;\n } else {\n path = toPath(path);\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n});\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nfunction pluck(obj, key) {\n return map(obj, property(key));\n}\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nfunction where(obj, attrs) {\n return filter(obj, matcher(attrs));\n}\n\n// Return the maximum element (or element-based computation).\nfunction max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n// Return the minimum element (or element-based computation).\nfunction min(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nfunction sample(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n return obj[random(obj.length - 1)];\n }\n var sample = isArrayLike(obj) ? clone(obj) : values(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n\n// Shuffle a collection.\nfunction shuffle(obj) {\n return sample(obj, Infinity);\n}\n\n// Sort the object's values by a criterion produced by an iteratee.\nfunction sortBy(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return pluck(map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n}\n\n// An internal function used for aggregate \"group by\" operations.\nfunction group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nvar groupBy = group(function(result, value, key) {\n if (has$1(result, key)) result[key].push(value); else result[key] = [value];\n});\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\nvar indexBy = group(function(result, value, key) {\n result[key] = value;\n});\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nvar countBy = group(function(result, value, key) {\n if (has$1(result, key)) result[key]++; else result[key] = 1;\n});\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\nvar partition = group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n}, true);\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nfunction toArray(obj) {\n if (!obj) return [];\n if (isArray(obj)) return slice.call(obj);\n if (isString(obj)) {\n // Keep surrogate pair characters together.\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return map(obj, identity);\n return values(obj);\n}\n\n// Return the number of elements in a collection.\nfunction size(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n\n// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nfunction keyInObj(value, key, obj) {\n return key in obj;\n}\n\n// Return a copy of the object only containing the allowed properties.\nvar pick = restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (isFunction$1(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten$1(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n});\n\n// Return a copy of the object without the disallowed properties.\nvar omit = restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (isFunction$1(iteratee)) {\n iteratee = negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = map(flatten$1(keys, false, false), String);\n iteratee = function(value, key) {\n return !contains(keys, key);\n };\n }\n return pick(obj, iteratee, context);\n});\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nfunction initial(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nfunction first(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[0];\n return initial(array, array.length - n);\n}\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nfunction rest(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n}\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nfunction last(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return rest(array, Math.max(0, array.length - n));\n}\n\n// Trim out all falsy values from an array.\nfunction compact(array) {\n return filter(array, Boolean);\n}\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nfunction flatten(array, depth) {\n return flatten$1(array, depth, false);\n}\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nvar difference = restArguments(function(array, rest) {\n rest = flatten$1(rest, true, true);\n return filter(array, function(value){\n return !contains(rest, value);\n });\n});\n\n// Return a version of the array that does not contain the specified value(s).\nvar without = restArguments(function(array, otherArrays) {\n return difference(array, otherArrays);\n});\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nfunction uniq(array, isSorted, iteratee, context) {\n if (!isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nvar union = restArguments(function(arrays) {\n return uniq(flatten$1(arrays, true, true));\n});\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nfunction intersection(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n}\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nfunction unzip(array) {\n var length = array && max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = pluck(array, index);\n }\n return result;\n}\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nvar zip = restArguments(unzip);\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nfunction object(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n}\n\n// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nfunction range(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n}\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nfunction chunk(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n}\n\n// Helper function to continue chaining intermediate results.\nfunction chainResult(instance, obj) {\n return instance._chain ? _$1(obj).chain() : obj;\n}\n\n// Add your own custom functions to the Underscore object.\nfunction mixin(obj) {\n each(functions(obj), function(name) {\n var func = _$1[name] = obj[name];\n _$1.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_$1, args));\n };\n });\n return _$1;\n}\n\n// Add all mutator `Array` functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _$1.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) {\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n delete obj[0];\n }\n }\n return chainResult(this, obj);\n };\n});\n\n// Add all accessor `Array` functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _$1.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) obj = method.apply(obj, arguments);\n return chainResult(this, obj);\n };\n});\n\n// Named Exports\n\nvar allExports = {\n __proto__: null,\n VERSION: VERSION,\n restArguments: restArguments,\n isObject: isObject,\n isNull: isNull,\n isUndefined: isUndefined,\n isBoolean: isBoolean,\n isElement: isElement,\n isString: isString,\n isNumber: isNumber,\n isDate: isDate,\n isRegExp: isRegExp,\n isError: isError,\n isSymbol: isSymbol,\n isArrayBuffer: isArrayBuffer,\n isDataView: isDataView$1,\n isArray: isArray,\n isFunction: isFunction$1,\n isArguments: isArguments$1,\n isFinite: isFinite$1,\n isNaN: isNaN$1,\n isTypedArray: isTypedArray$1,\n isEmpty: isEmpty,\n isMatch: isMatch,\n isEqual: isEqual,\n isMap: isMap,\n isWeakMap: isWeakMap,\n isSet: isSet,\n isWeakSet: isWeakSet,\n keys: keys,\n allKeys: allKeys,\n values: values,\n pairs: pairs,\n invert: invert,\n functions: functions,\n methods: functions,\n extend: extend,\n extendOwn: extendOwn,\n assign: extendOwn,\n defaults: defaults,\n create: create,\n clone: clone,\n tap: tap,\n get: get,\n has: has,\n mapObject: mapObject,\n identity: identity,\n constant: constant,\n noop: noop,\n toPath: toPath$1,\n property: property,\n propertyOf: propertyOf,\n matcher: matcher,\n matches: matcher,\n times: times,\n random: random,\n now: now,\n escape: _escape,\n unescape: _unescape,\n templateSettings: templateSettings,\n template: template,\n result: result,\n uniqueId: uniqueId,\n chain: chain,\n iteratee: iteratee,\n partial: partial,\n bind: bind,\n bindAll: bindAll,\n memoize: memoize,\n delay: delay,\n defer: defer,\n throttle: throttle,\n debounce: debounce,\n wrap: wrap,\n negate: negate,\n compose: compose,\n after: after,\n before: before,\n once: once,\n findKey: findKey,\n findIndex: findIndex,\n findLastIndex: findLastIndex,\n sortedIndex: sortedIndex,\n indexOf: indexOf,\n lastIndexOf: lastIndexOf,\n find: find,\n detect: find,\n findWhere: findWhere,\n each: each,\n forEach: each,\n map: map,\n collect: map,\n reduce: reduce,\n foldl: reduce,\n inject: reduce,\n reduceRight: reduceRight,\n foldr: reduceRight,\n filter: filter,\n select: filter,\n reject: reject,\n every: every,\n all: every,\n some: some,\n any: some,\n contains: contains,\n includes: contains,\n include: contains,\n invoke: invoke,\n pluck: pluck,\n where: where,\n max: max,\n min: min,\n shuffle: shuffle,\n sample: sample,\n sortBy: sortBy,\n groupBy: groupBy,\n indexBy: indexBy,\n countBy: countBy,\n partition: partition,\n toArray: toArray,\n size: size,\n pick: pick,\n omit: omit,\n first: first,\n head: first,\n take: first,\n initial: initial,\n last: last,\n rest: rest,\n tail: rest,\n drop: rest,\n compact: compact,\n flatten: flatten,\n without: without,\n uniq: uniq,\n unique: uniq,\n union: union,\n intersection: intersection,\n difference: difference,\n unzip: unzip,\n transpose: unzip,\n zip: zip,\n object: object,\n range: range,\n chunk: chunk,\n mixin: mixin,\n 'default': _$1\n};\n\n// Default Export\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API.\n_._ = _;\n\nexports.VERSION = VERSION;\nexports._ = _;\nexports._escape = _escape;\nexports._unescape = _unescape;\nexports.after = after;\nexports.allKeys = allKeys;\nexports.before = before;\nexports.bind = bind;\nexports.bindAll = bindAll;\nexports.chain = chain;\nexports.chunk = chunk;\nexports.clone = clone;\nexports.compact = compact;\nexports.compose = compose;\nexports.constant = constant;\nexports.contains = contains;\nexports.countBy = countBy;\nexports.create = create;\nexports.debounce = debounce;\nexports.defaults = defaults;\nexports.defer = defer;\nexports.delay = delay;\nexports.difference = difference;\nexports.each = each;\nexports.every = every;\nexports.extend = extend;\nexports.extendOwn = extendOwn;\nexports.filter = filter;\nexports.find = find;\nexports.findIndex = findIndex;\nexports.findKey = findKey;\nexports.findLastIndex = findLastIndex;\nexports.findWhere = findWhere;\nexports.first = first;\nexports.flatten = flatten;\nexports.functions = functions;\nexports.get = get;\nexports.groupBy = groupBy;\nexports.has = has;\nexports.identity = identity;\nexports.indexBy = indexBy;\nexports.indexOf = indexOf;\nexports.initial = initial;\nexports.intersection = intersection;\nexports.invert = invert;\nexports.invoke = invoke;\nexports.isArguments = isArguments$1;\nexports.isArray = isArray;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isBoolean = isBoolean;\nexports.isDataView = isDataView$1;\nexports.isDate = isDate;\nexports.isElement = isElement;\nexports.isEmpty = isEmpty;\nexports.isEqual = isEqual;\nexports.isError = isError;\nexports.isFinite = isFinite$1;\nexports.isFunction = isFunction$1;\nexports.isMap = isMap;\nexports.isMatch = isMatch;\nexports.isNaN = isNaN$1;\nexports.isNull = isNull;\nexports.isNumber = isNumber;\nexports.isObject = isObject;\nexports.isRegExp = isRegExp;\nexports.isSet = isSet;\nexports.isString = isString;\nexports.isSymbol = isSymbol;\nexports.isTypedArray = isTypedArray$1;\nexports.isUndefined = isUndefined;\nexports.isWeakMap = isWeakMap;\nexports.isWeakSet = isWeakSet;\nexports.iteratee = iteratee;\nexports.keys = keys;\nexports.last = last;\nexports.lastIndexOf = lastIndexOf;\nexports.map = map;\nexports.mapObject = mapObject;\nexports.matcher = matcher;\nexports.max = max;\nexports.memoize = memoize;\nexports.min = min;\nexports.mixin = mixin;\nexports.negate = negate;\nexports.noop = noop;\nexports.now = now;\nexports.object = object;\nexports.omit = omit;\nexports.once = once;\nexports.pairs = pairs;\nexports.partial = partial;\nexports.partition = partition;\nexports.pick = pick;\nexports.pluck = pluck;\nexports.property = property;\nexports.propertyOf = propertyOf;\nexports.random = random;\nexports.range = range;\nexports.reduce = reduce;\nexports.reduceRight = reduceRight;\nexports.reject = reject;\nexports.rest = rest;\nexports.restArguments = restArguments;\nexports.result = result;\nexports.sample = sample;\nexports.shuffle = shuffle;\nexports.size = size;\nexports.some = some;\nexports.sortBy = sortBy;\nexports.sortedIndex = sortedIndex;\nexports.tap = tap;\nexports.template = template;\nexports.templateSettings = templateSettings;\nexports.throttle = throttle;\nexports.times = times;\nexports.toArray = toArray;\nexports.toPath = toPath$1;\nexports.union = union;\nexports.uniq = uniq;\nexports.uniqueId = uniqueId;\nexports.unzip = unzip;\nexports.values = values;\nexports.where = where;\nexports.without = without;\nexports.wrap = wrap;\nexports.zip = zip;\n//# sourceMappingURL=underscore-node-f.cjs.map\n","// Underscore.js 1.13.1\n// https://underscorejs.org\n// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\nvar underscoreNodeF = require('./underscore-node-f.cjs');\n\n\n\nmodule.exports = underscoreNodeF._;\n//# sourceMappingURL=underscore-node.cjs.map\n","module.exports = require(\"assert\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(3109);\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACrSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACtvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC5/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC15BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACjeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACjwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC1OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACt2EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC74IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7mBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AClYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7eA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC3uFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC3LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC9QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACriJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACx9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACv1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC5PA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoJA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7vBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACh5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7xFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrsDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC13CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACl+CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC9MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACjLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACv5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC73EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACv2BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACnnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC9uDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AChvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC3iBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACx0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC3KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACnDA;AACA;AACA;AACA;AACA;;;A;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzCA;AACA;AACA;AACA;AACA;;;A;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AChnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACjSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC1PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC3HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;ACndA;;;A;;;;;ACAA;;;A;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACpfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC3NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AChCA;;;A;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC7mEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7BA;AACA;;;;ACDA;AACA;AACA;AACA;;;;A","sourceRoot":""} \ No newline at end of file diff --git a/dist/licenses.txt b/dist/licenses.txt new file mode 100644 index 0000000..1c9b79b --- /dev/null +++ b/dist/licenses.txt @@ -0,0 +1,880 @@ +@actions/core +MIT +The MIT License (MIT) + +Copyright 2019 GitHub + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +@actions/github +MIT +The MIT License (MIT) + +Copyright 2019 GitHub + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +@actions/http-client +MIT +Actions Http Client for Node.js + +Copyright (c) GitHub, Inc. + +All rights reserved. + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +@octokit/auth-token +MIT +The MIT License + +Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@octokit/core +MIT +The MIT License + +Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@octokit/endpoint +MIT +The MIT License + +Copyright (c) 2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@octokit/graphql +MIT +The MIT License + +Copyright (c) 2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@octokit/plugin-paginate-rest +MIT +MIT License Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +@octokit/plugin-rest-endpoint-methods +MIT +MIT License Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +@octokit/request +MIT +The MIT License + +Copyright (c) 2018 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@octokit/request-error +MIT +The MIT License + +Copyright (c) 2019 Octokit contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@vercel/ncc +MIT +Copyright 2018 ZEIT, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +azure-devops-node-api +MIT +Visual Studio Team Services Client for Node.js + +Copyright (c) Microsoft Corporation + +All rights reserved. + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +before-after-hook +Apache-2.0 + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018 Gregor Martynus and other contributors. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +call-bind +MIT +MIT License + +Copyright (c) 2020 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +deprecation +ISC +The ISC License + +Copyright (c) Gregor Martynus and contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +function-bind +MIT +Copyright (c) 2013 Raynos. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + + +get-intrinsic +MIT +MIT License + +Copyright (c) 2020 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +has +MIT +Copyright (c) 2013 Thiago de Arruda + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + + +has-symbols +MIT +MIT License + +Copyright (c) 2016 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +is-plain-object +MIT +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +node-fetch +MIT +The MIT License (MIT) + +Copyright (c) 2016 David Frank + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + +object-inspect +MIT +MIT License + +Copyright (c) 2013 James Halliday + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +once +ISC +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +qs +BSD-3-Clause +BSD 3-Clause License + +Copyright (c) 2014, Nathan LaFreniere and other [contributors](https://github.com/ljharb/qs/graphs/contributors) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +side-channel +MIT +MIT License + +Copyright (c) 2019 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +tunnel +MIT +The MIT License (MIT) + +Copyright (c) 2012 Koichi Kobayashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +typed-rest-client +MIT +Typed Rest Client for Node.js + +Copyright (c) Microsoft Corporation + +All rights reserved. + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +/* Node-SMB/ntlm + * https://github.com/Node-SMB/ntlm + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Copyright (C) 2012 Joshua M. Clulow + */ + + +underscore +MIT +Copyright (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + + +universal-user-agent +ISC +# [ISC License](https://spdx.org/licenses/ISC) + +Copyright (c) 2018, Gregor Martynus (https://github.com/gr2m) + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +wrappy +ISC +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/dist/package.json b/dist/package.json new file mode 100644 index 0000000..7184a34 --- /dev/null +++ b/dist/package.json @@ -0,0 +1,86 @@ +{ + "_from": "azure-devops-node-api", + "_id": "azure-devops-node-api@11.0.1", + "_inBundle": false, + "_integrity": "sha512-YMdjAw9l5p/6leiyIloxj3k7VIvYThKjvqgiQn88r3nhT93ENwsoDS3A83CyJ4uTWzCZ5f5jCi6c27rTU5Pz+A==", + "_location": "/azure-devops-node-api", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "azure-devops-node-api", + "name": "azure-devops-node-api", + "escapedName": "azure-devops-node-api", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.0.1.tgz", + "_shasum": "b7ec4783230e1de8fc972b23effe7ed2ebac17ff", + "_spec": "azure-devops-node-api", + "_where": "/workspaces/github-ado-chatops", + "author": { + "name": "Microsoft Corporation" + }, + "bugs": { + "url": "https://github.com/Microsoft/azure-devops-node-api/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Bryan MacFarlane", + "email": "bryanmac@microsoft.com" + }, + { + "name": "Daniel McCormick", + "email": "daniel.mccormick@microsoft.com" + }, + { + "name": "Scott Dallamura", + "email": "scdallam@microsoft.com" + }, + { + "name": "Stephen Franceschelli", + "email": "stephen.franceschelli@microsoft.com" + }, + { + "name": "Teddy Ward", + "email": "t-edward@microsoft.com" + } + ], + "dependencies": { + "tunnel": "0.0.6", + "typed-rest-client": "^1.8.4" + }, + "deprecated": false, + "description": "Node client for Azure DevOps and TFS REST APIs", + "devDependencies": { + "@types/mocha": "^2.2.44", + "@types/node": "8.9.2", + "@types/shelljs": "0.7.8", + "mocha": "^3.5.3", + "nock": "9.6.1", + "shelljs": "0.7.8", + "typescript": "3.1.5" + }, + "homepage": "https://github.com/Microsoft/azure-devops-node-api#readme", + "license": "MIT", + "main": "./WebApi.js", + "name": "azure-devops-node-api", + "repository": { + "type": "git", + "url": "git+https://github.com/Microsoft/azure-devops-node-api.git" + }, + "scripts": { + "build": "node make.js build", + "samples": "node make.js samples", + "test": "node make.js test", + "units": "node make.js units" + }, + "types": "./WebApi.d.ts", + "version": "11.0.1" +} diff --git a/dist/sourcemap-register.js b/dist/sourcemap-register.js new file mode 100644 index 0000000..56566f1 --- /dev/null +++ b/dist/sourcemap-register.js @@ -0,0 +1 @@ +(()=>{var e={650:e=>{var r=Object.prototype.toString;var n=typeof Buffer.alloc==="function"&&typeof Buffer.allocUnsafe==="function"&&typeof Buffer.from==="function";function isArrayBuffer(e){return r.call(e).slice(8,-1)==="ArrayBuffer"}function fromArrayBuffer(e,r,t){r>>>=0;var o=e.byteLength-r;if(o<0){throw new RangeError("'offset' is out of bounds")}if(t===undefined){t=o}else{t>>>=0;if(t>o){throw new RangeError("'length' is out of bounds")}}return n?Buffer.from(e.slice(r,r+t)):new Buffer(new Uint8Array(e.slice(r,r+t)))}function fromString(e,r){if(typeof r!=="string"||r===""){r="utf8"}if(!Buffer.isEncoding(r)){throw new TypeError('"encoding" must be a valid string encoding')}return n?Buffer.from(e,r):new Buffer(e,r)}function bufferFrom(e,r,t){if(typeof e==="number"){throw new TypeError('"value" argument must not be a number')}if(isArrayBuffer(e)){return fromArrayBuffer(e,r,t)}if(typeof e==="string"){return fromString(e,r)}return n?Buffer.from(e):new Buffer(e)}e.exports=bufferFrom},284:(e,r,n)=>{e=n.nmd(e);var t=n(596).SourceMapConsumer;var o=n(622);var i;try{i=n(747);if(!i.existsSync||!i.readFileSync){i=null}}catch(e){}var a=n(650);function dynamicRequire(e,r){return e.require(r)}var u=false;var s=false;var l=false;var c="auto";var p={};var f={};var g=/^data:application\/json[^,]+base64,/;var h=[];var d=[];function isInBrowser(){if(c==="browser")return true;if(c==="node")return false;return typeof window!=="undefined"&&typeof XMLHttpRequest==="function"&&!(window.require&&window.module&&window.process&&window.process.type==="renderer")}function hasGlobalProcessEventEmitter(){return typeof process==="object"&&process!==null&&typeof process.on==="function"}function handlerExec(e){return function(r){for(var n=0;n"}var n=this.getLineNumber();if(n!=null){r+=":"+n;var t=this.getColumnNumber();if(t){r+=":"+t}}}var o="";var i=this.getFunctionName();var a=true;var u=this.isConstructor();var s=!(this.isToplevel()||u);if(s){var l=this.getTypeName();if(l==="[object Object]"){l="null"}var c=this.getMethodName();if(i){if(l&&i.indexOf(l)!=0){o+=l+"."}o+=i;if(c&&i.indexOf("."+c)!=i.length-c.length-1){o+=" [as "+c+"]"}}else{o+=l+"."+(c||"")}}else if(u){o+="new "+(i||"")}else if(i){o+=i}else{o+=r;a=false}if(a){o+=" ("+r+")"}return o}function cloneCallSite(e){var r={};Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach((function(n){r[n]=/^(?:is|get)/.test(n)?function(){return e[n].call(e)}:e[n]}));r.toString=CallSiteToString;return r}function wrapCallSite(e,r){if(r===undefined){r={nextPosition:null,curPosition:null}}if(e.isNative()){r.curPosition=null;return e}var n=e.getFileName()||e.getScriptNameOrSourceURL();if(n){var t=e.getLineNumber();var o=e.getColumnNumber()-1;var i=/^v(10\.1[6-9]|10\.[2-9][0-9]|10\.[0-9]{3,}|1[2-9]\d*|[2-9]\d|\d{3,}|11\.11)/;var a=i.test(process.version)?0:62;if(t===1&&o>a&&!isInBrowser()&&!e.isEval()){o-=a}var u=mapSourcePosition({source:n,line:t,column:o});r.curPosition=u;e=cloneCallSite(e);var s=e.getFunctionName;e.getFunctionName=function(){if(r.nextPosition==null){return s()}return r.nextPosition.name||s()};e.getFileName=function(){return u.source};e.getLineNumber=function(){return u.line};e.getColumnNumber=function(){return u.column+1};e.getScriptNameOrSourceURL=function(){return u.source};return e}var l=e.isEval()&&e.getEvalOrigin();if(l){l=mapEvalOrigin(l);e=cloneCallSite(e);e.getEvalOrigin=function(){return l};return e}return e}function prepareStackTrace(e,r){if(l){p={};f={}}var n=e.name||"Error";var t=e.message||"";var o=n+": "+t;var i={nextPosition:null,curPosition:null};var a=[];for(var u=r.length-1;u>=0;u--){a.push("\n at "+wrapCallSite(r[u],i));i.nextPosition=i.curPosition}i.curPosition=i.nextPosition=null;return o+a.reverse().join("")}function getErrorSource(e){var r=/\n at [^(]+ \((.*):(\d+):(\d+)\)/.exec(e.stack);if(r){var n=r[1];var t=+r[2];var o=+r[3];var a=p[n];if(!a&&i&&i.existsSync(n)){try{a=i.readFileSync(n,"utf8")}catch(e){a=""}}if(a){var u=a.split(/(?:\r\n|\r|\n)/)[t-1];if(u){return n+":"+t+"\n"+u+"\n"+new Array(o).join(" ")+"^"}}}return null}function printErrorAndExit(e){var r=getErrorSource(e);if(process.stderr._handle&&process.stderr._handle.setBlocking){process.stderr._handle.setBlocking(true)}if(r){console.error();console.error(r)}console.error(e.stack);process.exit(1)}function shimEmitUncaughtException(){var e=process.emit;process.emit=function(r){if(r==="uncaughtException"){var n=arguments[1]&&arguments[1].stack;var t=this.listeners(r).length>0;if(n&&!t){return printErrorAndExit(arguments[1])}}return e.apply(this,arguments)}}var S=h.slice(0);var _=d.slice(0);r.wrapCallSite=wrapCallSite;r.getErrorSource=getErrorSource;r.mapSourcePosition=mapSourcePosition;r.retrieveSourceMap=v;r.install=function(r){r=r||{};if(r.environment){c=r.environment;if(["node","browser","auto"].indexOf(c)===-1){throw new Error("environment "+c+" was unknown. Available options are {auto, browser, node}")}}if(r.retrieveFile){if(r.overrideRetrieveFile){h.length=0}h.unshift(r.retrieveFile)}if(r.retrieveSourceMap){if(r.overrideRetrieveSourceMap){d.length=0}d.unshift(r.retrieveSourceMap)}if(r.hookRequire&&!isInBrowser()){var n=dynamicRequire(e,"module");var t=n.prototype._compile;if(!t.__sourceMapSupport){n.prototype._compile=function(e,r){p[r]=e;f[r]=undefined;return t.call(this,e,r)};n.prototype._compile.__sourceMapSupport=true}}if(!l){l="emptyCacheBetweenOperations"in r?r.emptyCacheBetweenOperations:false}if(!u){u=true;Error.prepareStackTrace=prepareStackTrace}if(!s){var o="handleUncaughtExceptions"in r?r.handleUncaughtExceptions:true;try{var i=dynamicRequire(e,"worker_threads");if(i.isMainThread===false){o=false}}catch(e){}if(o&&hasGlobalProcessEventEmitter()){s=true;shimEmitUncaughtException()}}};r.resetRetrieveHandlers=function(){h.length=0;d.length=0;h=S.slice(0);d=_.slice(0);v=handlerExec(d);m=handlerExec(h)}},837:(e,r,n)=>{var t=n(983);var o=Object.prototype.hasOwnProperty;var i=typeof Map!=="undefined";function ArraySet(){this._array=[];this._set=i?new Map:Object.create(null)}ArraySet.fromArray=function ArraySet_fromArray(e,r){var n=new ArraySet;for(var t=0,o=e.length;t=0){return r}}else{var n=t.toSetString(e);if(o.call(this._set,n)){return this._set[n]}}throw new Error('"'+e+'" is not in the set.')};ArraySet.prototype.at=function ArraySet_at(e){if(e>=0&&e{var t=n(537);var o=5;var i=1<>1;return r?-n:n}r.encode=function base64VLQ_encode(e){var r="";var n;var i=toVLQSigned(e);do{n=i&a;i>>>=o;if(i>0){n|=u}r+=t.encode(n)}while(i>0);return r};r.decode=function base64VLQ_decode(e,r,n){var i=e.length;var s=0;var l=0;var c,p;do{if(r>=i){throw new Error("Expected more digits in base 64 VLQ value.")}p=t.decode(e.charCodeAt(r++));if(p===-1){throw new Error("Invalid base64 digit: "+e.charAt(r-1))}c=!!(p&u);p&=a;s=s+(p<{var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");r.encode=function(e){if(0<=e&&e{r.GREATEST_LOWER_BOUND=1;r.LEAST_UPPER_BOUND=2;function recursiveSearch(e,n,t,o,i,a){var u=Math.floor((n-e)/2)+e;var s=i(t,o[u],true);if(s===0){return u}else if(s>0){if(n-u>1){return recursiveSearch(u,n,t,o,i,a)}if(a==r.LEAST_UPPER_BOUND){return n1){return recursiveSearch(e,u,t,o,i,a)}if(a==r.LEAST_UPPER_BOUND){return u}else{return e<0?-1:e}}}r.search=function search(e,n,t,o){if(n.length===0){return-1}var i=recursiveSearch(-1,n.length,e,n,t,o||r.GREATEST_LOWER_BOUND);if(i<0){return-1}while(i-1>=0){if(t(n[i],n[i-1],true)!==0){break}--i}return i}},740:(e,r,n)=>{var t=n(983);function generatedPositionAfter(e,r){var n=e.generatedLine;var o=r.generatedLine;var i=e.generatedColumn;var a=r.generatedColumn;return o>n||o==n&&a>=i||t.compareByGeneratedPositionsInflated(e,r)<=0}function MappingList(){this._array=[];this._sorted=true;this._last={generatedLine:-1,generatedColumn:0}}MappingList.prototype.unsortedForEach=function MappingList_forEach(e,r){this._array.forEach(e,r)};MappingList.prototype.add=function MappingList_add(e){if(generatedPositionAfter(this._last,e)){this._last=e;this._array.push(e)}else{this._sorted=false;this._array.push(e)}};MappingList.prototype.toArray=function MappingList_toArray(){if(!this._sorted){this._array.sort(t.compareByGeneratedPositionsInflated);this._sorted=true}return this._array};r.H=MappingList},226:(e,r)=>{function swap(e,r,n){var t=e[r];e[r]=e[n];e[n]=t}function randomIntInRange(e,r){return Math.round(e+Math.random()*(r-e))}function doQuickSort(e,r,n,t){if(n{var t;var o=n(983);var i=n(164);var a=n(837).I;var u=n(215);var s=n(226).U;function SourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}return n.sections!=null?new IndexedSourceMapConsumer(n,r):new BasicSourceMapConsumer(n,r)}SourceMapConsumer.fromSourceMap=function(e,r){return BasicSourceMapConsumer.fromSourceMap(e,r)};SourceMapConsumer.prototype._version=3;SourceMapConsumer.prototype.__generatedMappings=null;Object.defineProperty(SourceMapConsumer.prototype,"_generatedMappings",{configurable:true,enumerable:true,get:function(){if(!this.__generatedMappings){this._parseMappings(this._mappings,this.sourceRoot)}return this.__generatedMappings}});SourceMapConsumer.prototype.__originalMappings=null;Object.defineProperty(SourceMapConsumer.prototype,"_originalMappings",{configurable:true,enumerable:true,get:function(){if(!this.__originalMappings){this._parseMappings(this._mappings,this.sourceRoot)}return this.__originalMappings}});SourceMapConsumer.prototype._charIsMappingSeparator=function SourceMapConsumer_charIsMappingSeparator(e,r){var n=e.charAt(r);return n===";"||n===","};SourceMapConsumer.prototype._parseMappings=function SourceMapConsumer_parseMappings(e,r){throw new Error("Subclasses must implement _parseMappings")};SourceMapConsumer.GENERATED_ORDER=1;SourceMapConsumer.ORIGINAL_ORDER=2;SourceMapConsumer.GREATEST_LOWER_BOUND=1;SourceMapConsumer.LEAST_UPPER_BOUND=2;SourceMapConsumer.prototype.eachMapping=function SourceMapConsumer_eachMapping(e,r,n){var t=r||null;var i=n||SourceMapConsumer.GENERATED_ORDER;var a;switch(i){case SourceMapConsumer.GENERATED_ORDER:a=this._generatedMappings;break;case SourceMapConsumer.ORIGINAL_ORDER:a=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var u=this.sourceRoot;a.map((function(e){var r=e.source===null?null:this._sources.at(e.source);r=o.computeSourceURL(u,r,this._sourceMapURL);return{source:r,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:e.name===null?null:this._names.at(e.name)}}),this).forEach(e,t)};SourceMapConsumer.prototype.allGeneratedPositionsFor=function SourceMapConsumer_allGeneratedPositionsFor(e){var r=o.getArg(e,"line");var n={source:o.getArg(e,"source"),originalLine:r,originalColumn:o.getArg(e,"column",0)};n.source=this._findSourceIndex(n.source);if(n.source<0){return[]}var t=[];var a=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,i.LEAST_UPPER_BOUND);if(a>=0){var u=this._originalMappings[a];if(e.column===undefined){var s=u.originalLine;while(u&&u.originalLine===s){t.push({line:o.getArg(u,"generatedLine",null),column:o.getArg(u,"generatedColumn",null),lastColumn:o.getArg(u,"lastGeneratedColumn",null)});u=this._originalMappings[++a]}}else{var l=u.originalColumn;while(u&&u.originalLine===r&&u.originalColumn==l){t.push({line:o.getArg(u,"generatedLine",null),column:o.getArg(u,"generatedColumn",null),lastColumn:o.getArg(u,"lastGeneratedColumn",null)});u=this._originalMappings[++a]}}}return t};r.SourceMapConsumer=SourceMapConsumer;function BasicSourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}var t=o.getArg(n,"version");var i=o.getArg(n,"sources");var u=o.getArg(n,"names",[]);var s=o.getArg(n,"sourceRoot",null);var l=o.getArg(n,"sourcesContent",null);var c=o.getArg(n,"mappings");var p=o.getArg(n,"file",null);if(t!=this._version){throw new Error("Unsupported version: "+t)}if(s){s=o.normalize(s)}i=i.map(String).map(o.normalize).map((function(e){return s&&o.isAbsolute(s)&&o.isAbsolute(e)?o.relative(s,e):e}));this._names=a.fromArray(u.map(String),true);this._sources=a.fromArray(i,true);this._absoluteSources=this._sources.toArray().map((function(e){return o.computeSourceURL(s,e,r)}));this.sourceRoot=s;this.sourcesContent=l;this._mappings=c;this._sourceMapURL=r;this.file=p}BasicSourceMapConsumer.prototype=Object.create(SourceMapConsumer.prototype);BasicSourceMapConsumer.prototype.consumer=SourceMapConsumer;BasicSourceMapConsumer.prototype._findSourceIndex=function(e){var r=e;if(this.sourceRoot!=null){r=o.relative(this.sourceRoot,r)}if(this._sources.has(r)){return this._sources.indexOf(r)}var n;for(n=0;n1){v.source=l+_[1];l+=_[1];v.originalLine=i+_[2];i=v.originalLine;v.originalLine+=1;v.originalColumn=a+_[3];a=v.originalColumn;if(_.length>4){v.name=c+_[4];c+=_[4]}}m.push(v);if(typeof v.originalLine==="number"){d.push(v)}}}s(m,o.compareByGeneratedPositionsDeflated);this.__generatedMappings=m;s(d,o.compareByOriginalPositions);this.__originalMappings=d};BasicSourceMapConsumer.prototype._findMapping=function SourceMapConsumer_findMapping(e,r,n,t,o,a){if(e[n]<=0){throw new TypeError("Line must be greater than or equal to 1, got "+e[n])}if(e[t]<0){throw new TypeError("Column must be greater than or equal to 0, got "+e[t])}return i.search(e,r,o,a)};BasicSourceMapConsumer.prototype.computeColumnSpans=function SourceMapConsumer_computeColumnSpans(){for(var e=0;e=0){var t=this._generatedMappings[n];if(t.generatedLine===r.generatedLine){var i=o.getArg(t,"source",null);if(i!==null){i=this._sources.at(i);i=o.computeSourceURL(this.sourceRoot,i,this._sourceMapURL)}var a=o.getArg(t,"name",null);if(a!==null){a=this._names.at(a)}return{source:i,line:o.getArg(t,"originalLine",null),column:o.getArg(t,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}};BasicSourceMapConsumer.prototype.hasContentsOfAllSources=function BasicSourceMapConsumer_hasContentsOfAllSources(){if(!this.sourcesContent){return false}return this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return e==null}))};BasicSourceMapConsumer.prototype.sourceContentFor=function SourceMapConsumer_sourceContentFor(e,r){if(!this.sourcesContent){return null}var n=this._findSourceIndex(e);if(n>=0){return this.sourcesContent[n]}var t=e;if(this.sourceRoot!=null){t=o.relative(this.sourceRoot,t)}var i;if(this.sourceRoot!=null&&(i=o.urlParse(this.sourceRoot))){var a=t.replace(/^file:\/\//,"");if(i.scheme=="file"&&this._sources.has(a)){return this.sourcesContent[this._sources.indexOf(a)]}if((!i.path||i.path=="/")&&this._sources.has("/"+t)){return this.sourcesContent[this._sources.indexOf("/"+t)]}}if(r){return null}else{throw new Error('"'+t+'" is not in the SourceMap.')}};BasicSourceMapConsumer.prototype.generatedPositionFor=function SourceMapConsumer_generatedPositionFor(e){var r=o.getArg(e,"source");r=this._findSourceIndex(r);if(r<0){return{line:null,column:null,lastColumn:null}}var n={source:r,originalLine:o.getArg(e,"line"),originalColumn:o.getArg(e,"column")};var t=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,o.getArg(e,"bias",SourceMapConsumer.GREATEST_LOWER_BOUND));if(t>=0){var i=this._originalMappings[t];if(i.source===n.source){return{line:o.getArg(i,"generatedLine",null),column:o.getArg(i,"generatedColumn",null),lastColumn:o.getArg(i,"lastGeneratedColumn",null)}}}return{line:null,column:null,lastColumn:null}};t=BasicSourceMapConsumer;function IndexedSourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}var t=o.getArg(n,"version");var i=o.getArg(n,"sections");if(t!=this._version){throw new Error("Unsupported version: "+t)}this._sources=new a;this._names=new a;var u={line:-1,column:0};this._sections=i.map((function(e){if(e.url){throw new Error("Support for url field in sections not implemented.")}var n=o.getArg(e,"offset");var t=o.getArg(n,"line");var i=o.getArg(n,"column");if(t{var t=n(215);var o=n(983);var i=n(837).I;var a=n(740).H;function SourceMapGenerator(e){if(!e){e={}}this._file=o.getArg(e,"file",null);this._sourceRoot=o.getArg(e,"sourceRoot",null);this._skipValidation=o.getArg(e,"skipValidation",false);this._sources=new i;this._names=new i;this._mappings=new a;this._sourcesContents=null}SourceMapGenerator.prototype._version=3;SourceMapGenerator.fromSourceMap=function SourceMapGenerator_fromSourceMap(e){var r=e.sourceRoot;var n=new SourceMapGenerator({file:e.file,sourceRoot:r});e.eachMapping((function(e){var t={generated:{line:e.generatedLine,column:e.generatedColumn}};if(e.source!=null){t.source=e.source;if(r!=null){t.source=o.relative(r,t.source)}t.original={line:e.originalLine,column:e.originalColumn};if(e.name!=null){t.name=e.name}}n.addMapping(t)}));e.sources.forEach((function(t){var i=t;if(r!==null){i=o.relative(r,t)}if(!n._sources.has(i)){n._sources.add(i)}var a=e.sourceContentFor(t);if(a!=null){n.setSourceContent(t,a)}}));return n};SourceMapGenerator.prototype.addMapping=function SourceMapGenerator_addMapping(e){var r=o.getArg(e,"generated");var n=o.getArg(e,"original",null);var t=o.getArg(e,"source",null);var i=o.getArg(e,"name",null);if(!this._skipValidation){this._validateMapping(r,n,t,i)}if(t!=null){t=String(t);if(!this._sources.has(t)){this._sources.add(t)}}if(i!=null){i=String(i);if(!this._names.has(i)){this._names.add(i)}}this._mappings.add({generatedLine:r.line,generatedColumn:r.column,originalLine:n!=null&&n.line,originalColumn:n!=null&&n.column,source:t,name:i})};SourceMapGenerator.prototype.setSourceContent=function SourceMapGenerator_setSourceContent(e,r){var n=e;if(this._sourceRoot!=null){n=o.relative(this._sourceRoot,n)}if(r!=null){if(!this._sourcesContents){this._sourcesContents=Object.create(null)}this._sourcesContents[o.toSetString(n)]=r}else if(this._sourcesContents){delete this._sourcesContents[o.toSetString(n)];if(Object.keys(this._sourcesContents).length===0){this._sourcesContents=null}}};SourceMapGenerator.prototype.applySourceMap=function SourceMapGenerator_applySourceMap(e,r,n){var t=r;if(r==null){if(e.file==null){throw new Error("SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, "+'or the source map\'s "file" property. Both were omitted.')}t=e.file}var a=this._sourceRoot;if(a!=null){t=o.relative(a,t)}var u=new i;var s=new i;this._mappings.unsortedForEach((function(r){if(r.source===t&&r.originalLine!=null){var i=e.originalPositionFor({line:r.originalLine,column:r.originalColumn});if(i.source!=null){r.source=i.source;if(n!=null){r.source=o.join(n,r.source)}if(a!=null){r.source=o.relative(a,r.source)}r.originalLine=i.line;r.originalColumn=i.column;if(i.name!=null){r.name=i.name}}}var l=r.source;if(l!=null&&!u.has(l)){u.add(l)}var c=r.name;if(c!=null&&!s.has(c)){s.add(c)}}),this);this._sources=u;this._names=s;e.sources.forEach((function(r){var t=e.sourceContentFor(r);if(t!=null){if(n!=null){r=o.join(n,r)}if(a!=null){r=o.relative(a,r)}this.setSourceContent(r,t)}}),this)};SourceMapGenerator.prototype._validateMapping=function SourceMapGenerator_validateMapping(e,r,n,t){if(r&&typeof r.line!=="number"&&typeof r.column!=="number"){throw new Error("original.line and original.column are not numbers -- you probably meant to omit "+"the original mapping entirely and only map the generated position. If so, pass "+"null for the original mapping instead of an object with empty or null values.")}if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!r&&!n&&!t){return}else if(e&&"line"in e&&"column"in e&&r&&"line"in r&&"column"in r&&e.line>0&&e.column>=0&&r.line>0&&r.column>=0&&n){return}else{throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:r,name:t}))}};SourceMapGenerator.prototype._serializeMappings=function SourceMapGenerator_serializeMappings(){var e=0;var r=1;var n=0;var i=0;var a=0;var u=0;var s="";var l;var c;var p;var f;var g=this._mappings.toArray();for(var h=0,d=g.length;h0){if(!o.compareByGeneratedPositionsInflated(c,g[h-1])){continue}l+=","}}l+=t.encode(c.generatedColumn-e);e=c.generatedColumn;if(c.source!=null){f=this._sources.indexOf(c.source);l+=t.encode(f-u);u=f;l+=t.encode(c.originalLine-1-i);i=c.originalLine-1;l+=t.encode(c.originalColumn-n);n=c.originalColumn;if(c.name!=null){p=this._names.indexOf(c.name);l+=t.encode(p-a);a=p}}s+=l}return s};SourceMapGenerator.prototype._generateSourcesContent=function SourceMapGenerator_generateSourcesContent(e,r){return e.map((function(e){if(!this._sourcesContents){return null}if(r!=null){e=o.relative(r,e)}var n=o.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null}),this)};SourceMapGenerator.prototype.toJSON=function SourceMapGenerator_toJSON(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};if(this._file!=null){e.file=this._file}if(this._sourceRoot!=null){e.sourceRoot=this._sourceRoot}if(this._sourcesContents){e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)}return e};SourceMapGenerator.prototype.toString=function SourceMapGenerator_toString(){return JSON.stringify(this.toJSON())};r.h=SourceMapGenerator},990:(e,r,n)=>{var t;var o=n(341).h;var i=n(983);var a=/(\r?\n)/;var u=10;var s="$$$isSourceNode$$$";function SourceNode(e,r,n,t,o){this.children=[];this.sourceContents={};this.line=e==null?null:e;this.column=r==null?null:r;this.source=n==null?null:n;this.name=o==null?null:o;this[s]=true;if(t!=null)this.add(t)}SourceNode.fromStringWithSourceMap=function SourceNode_fromStringWithSourceMap(e,r,n){var t=new SourceNode;var o=e.split(a);var u=0;var shiftNextLine=function(){var e=getNextLine();var r=getNextLine()||"";return e+r;function getNextLine(){return u=0;r--){this.prepend(e[r])}}else if(e[s]||typeof e==="string"){this.children.unshift(e)}else{throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e)}return this};SourceNode.prototype.walk=function SourceNode_walk(e){var r;for(var n=0,t=this.children.length;n0){r=[];for(n=0;n{function getArg(e,r,n){if(r in e){return e[r]}else if(arguments.length===3){return n}else{throw new Error('"'+r+'" is a required argument.')}}r.getArg=getArg;var n=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/;var t=/^data:.+\,.+$/;function urlParse(e){var r=e.match(n);if(!r){return null}return{scheme:r[1],auth:r[2],host:r[3],port:r[4],path:r[5]}}r.urlParse=urlParse;function urlGenerate(e){var r="";if(e.scheme){r+=e.scheme+":"}r+="//";if(e.auth){r+=e.auth+"@"}if(e.host){r+=e.host}if(e.port){r+=":"+e.port}if(e.path){r+=e.path}return r}r.urlGenerate=urlGenerate;function normalize(e){var n=e;var t=urlParse(e);if(t){if(!t.path){return e}n=t.path}var o=r.isAbsolute(n);var i=n.split(/\/+/);for(var a,u=0,s=i.length-1;s>=0;s--){a=i[s];if(a==="."){i.splice(s,1)}else if(a===".."){u++}else if(u>0){if(a===""){i.splice(s+1,u);u=0}else{i.splice(s,2);u--}}}n=i.join("/");if(n===""){n=o?"/":"."}if(t){t.path=n;return urlGenerate(t)}return n}r.normalize=normalize;function join(e,r){if(e===""){e="."}if(r===""){r="."}var n=urlParse(r);var o=urlParse(e);if(o){e=o.path||"/"}if(n&&!n.scheme){if(o){n.scheme=o.scheme}return urlGenerate(n)}if(n||r.match(t)){return r}if(o&&!o.host&&!o.path){o.host=r;return urlGenerate(o)}var i=r.charAt(0)==="/"?r:normalize(e.replace(/\/+$/,"")+"/"+r);if(o){o.path=i;return urlGenerate(o)}return i}r.join=join;r.isAbsolute=function(e){return e.charAt(0)==="/"||n.test(e)};function relative(e,r){if(e===""){e="."}e=e.replace(/\/$/,"");var n=0;while(r.indexOf(e+"/")!==0){var t=e.lastIndexOf("/");if(t<0){return r}e=e.slice(0,t);if(e.match(/^([^\/]+:\/)?\/*$/)){return r}++n}return Array(n+1).join("../")+r.substr(e.length+1)}r.relative=relative;var o=function(){var e=Object.create(null);return!("__proto__"in e)}();function identity(e){return e}function toSetString(e){if(isProtoString(e)){return"$"+e}return e}r.toSetString=o?identity:toSetString;function fromSetString(e){if(isProtoString(e)){return e.slice(1)}return e}r.fromSetString=o?identity:fromSetString;function isProtoString(e){if(!e){return false}var r=e.length;if(r<9){return false}if(e.charCodeAt(r-1)!==95||e.charCodeAt(r-2)!==95||e.charCodeAt(r-3)!==111||e.charCodeAt(r-4)!==116||e.charCodeAt(r-5)!==111||e.charCodeAt(r-6)!==114||e.charCodeAt(r-7)!==112||e.charCodeAt(r-8)!==95||e.charCodeAt(r-9)!==95){return false}for(var n=r-10;n>=0;n--){if(e.charCodeAt(n)!==36){return false}}return true}function compareByOriginalPositions(e,r,n){var t=strcmp(e.source,r.source);if(t!==0){return t}t=e.originalLine-r.originalLine;if(t!==0){return t}t=e.originalColumn-r.originalColumn;if(t!==0||n){return t}t=e.generatedColumn-r.generatedColumn;if(t!==0){return t}t=e.generatedLine-r.generatedLine;if(t!==0){return t}return strcmp(e.name,r.name)}r.compareByOriginalPositions=compareByOriginalPositions;function compareByGeneratedPositionsDeflated(e,r,n){var t=e.generatedLine-r.generatedLine;if(t!==0){return t}t=e.generatedColumn-r.generatedColumn;if(t!==0||n){return t}t=strcmp(e.source,r.source);if(t!==0){return t}t=e.originalLine-r.originalLine;if(t!==0){return t}t=e.originalColumn-r.originalColumn;if(t!==0){return t}return strcmp(e.name,r.name)}r.compareByGeneratedPositionsDeflated=compareByGeneratedPositionsDeflated;function strcmp(e,r){if(e===r){return 0}if(e===null){return 1}if(r===null){return-1}if(e>r){return 1}return-1}function compareByGeneratedPositionsInflated(e,r){var n=e.generatedLine-r.generatedLine;if(n!==0){return n}n=e.generatedColumn-r.generatedColumn;if(n!==0){return n}n=strcmp(e.source,r.source);if(n!==0){return n}n=e.originalLine-r.originalLine;if(n!==0){return n}n=e.originalColumn-r.originalColumn;if(n!==0){return n}return strcmp(e.name,r.name)}r.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated;function parseSourceMapInput(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}r.parseSourceMapInput=parseSourceMapInput;function computeSourceURL(e,r,n){r=r||"";if(e){if(e[e.length-1]!=="/"&&r[0]!=="/"){e+="/"}r=e+r}if(n){var t=urlParse(n);if(!t){throw new Error("sourceMapURL could not be parsed")}if(t.path){var o=t.path.lastIndexOf("/");if(o>=0){t.path=t.path.substring(0,o+1)}}r=join(urlGenerate(t),r)}return normalize(r)}r.computeSourceURL=computeSourceURL},596:(e,r,n)=>{n(341).h;r.SourceMapConsumer=n(327).SourceMapConsumer;n(990)},747:e=>{"use strict";e.exports=require("fs")},622:e=>{"use strict";e.exports=require("path")}};var r={};function __webpack_require__(n){var t=r[n];if(t!==undefined){return t.exports}var o=r[n]={id:n,loaded:false,exports:{}};var i=true;try{e[n](o,o.exports,__webpack_require__);i=false}finally{if(i)delete r[n]}o.loaded=true;return o.exports}(()=>{__webpack_require__.nmd=e=>{e.paths=[];if(!e.children)e.children=[];return e}})();if(typeof __webpack_require__!=="undefined")__webpack_require__.ab=__dirname+"/";var n={};(()=>{__webpack_require__(284).install()})();module.exports=n})(); \ No newline at end of file diff --git a/jest.config.js b/jest.config.js index 7685110..5a82228 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,10 +1,9 @@ module.exports = { - roots: ["/src/", "/test/"], + clearMocks: true, + moduleFileExtensions: ['js', 'ts'], + testMatch: ['**/*.test.ts'], transform: { - "^.+\\.tsx?$": "ts-jest", + '^.+\\.ts$': 'ts-jest' }, - testRegex: "(/__tests__/.*|\\.(test|spec))\\.[tj]sx?$", - moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], - testEnvironment: "node", - setupFiles: ['dotenv/config'] -}; + verbose: true +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 268dfea..738b4aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,36 +4,60 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@actions/core": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.4.0.tgz", + "integrity": "sha512-CGx2ilGq5i7zSLgiiGUtBCxhRRxibJYU6Fim0Q1Wg2aQL2LTnF27zbqZOrxfvFQ55eSBW0L8uVStgtKMpa0Qlg==" + }, + "@actions/github": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@actions/github/-/github-5.0.0.tgz", + "integrity": "sha512-QvE9eAAfEsS+yOOk0cylLBIO/d6WyWIOvsxxzdrPFaud39G6BOkUwScXZn1iBzQzHyu9SBkkLSWlohDWdsasAQ==", + "requires": { + "@actions/http-client": "^1.0.11", + "@octokit/core": "^3.4.0", + "@octokit/plugin-paginate-rest": "^2.13.3", + "@octokit/plugin-rest-endpoint-methods": "^5.1.1" + } + }, + "@actions/http-client": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.11.tgz", + "integrity": "sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg==", + "requires": { + "tunnel": "0.0.6" + } + }, "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { - "@babel/highlight": "^7.14.5" + "@babel/highlight": "^7.10.4" } }, "@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", + "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", "dev": true }, "@babel/core": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.0.tgz", - "integrity": "sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==", + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz", + "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.0", - "@babel/helper-module-transforms": "^7.15.0", - "@babel/helpers": "^7.14.8", - "@babel/parser": "^7.15.0", + "@babel/generator": "^7.14.5", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helpers": "^7.14.6", + "@babel/parser": "^7.14.6", "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -42,6 +66,26 @@ "source-map": "^0.5.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -51,12 +95,12 @@ } }, "@babel/generator": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", - "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", + "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", "dev": true, "requires": { - "@babel/types": "^7.15.0", + "@babel/types": "^7.14.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -70,12 +114,12 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz", - "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", + "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", "dev": true, "requires": { - "@babel/compat-data": "^7.15.0", + "@babel/compat-data": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "browserslist": "^4.16.6", "semver": "^6.3.0" @@ -111,12 +155,12 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", - "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", + "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", "dev": true, "requires": { - "@babel/types": "^7.15.0" + "@babel/types": "^7.14.5" } }, "@babel/helper-module-imports": { @@ -129,19 +173,19 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz", - "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", + "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.15.0", - "@babel/helper-simple-access": "^7.14.8", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-simple-access": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.14.5", "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/helper-optimise-call-expression": { @@ -160,24 +204,24 @@ "dev": true }, "@babel/helper-replace-supers": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", - "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", + "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.0", + "@babel/helper-member-expression-to-functions": "^7.14.5", "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/helper-simple-access": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", - "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", + "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", "dev": true, "requires": { - "@babel/types": "^7.14.8" + "@babel/types": "^7.14.5" } }, "@babel/helper-split-export-declaration": { @@ -190,9 +234,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", "dev": true }, "@babel/helper-validator-option": { @@ -202,14 +246,14 @@ "dev": true }, "@babel/helpers": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.3.tgz", - "integrity": "sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==", + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz", + "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==", "dev": true, "requires": { "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/highlight": { @@ -221,70 +265,12 @@ "@babel/helper-validator-identifier": "^7.14.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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "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 - }, - "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" - } - } } }, "@babel/parser": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.3.tgz", - "integrity": "sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", + "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", "dev": true }, "@babel/plugin-syntax-async-generators": { @@ -395,6 +381,15 @@ "@babel/helper-plugin-utils": "^7.14.5" } }, + "@babel/plugin-syntax-typescript": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", + "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/template": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", @@ -404,32 +399,76 @@ "@babel/code-frame": "^7.14.5", "@babel/parser": "^7.14.5", "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + } } }, "@babel/traverse": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", - "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", + "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", + "@babel/generator": "^7.14.5", "@babel/helper-function-name": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.15.0", - "@babel/types": "^7.15.0", + "@babel/parser": "^7.14.7", + "@babel/types": "^7.14.5", "debug": "^4.1.0", "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + } } }, "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.14.5", "to-fast-properties": "^2.0.0" } }, @@ -439,20 +478,69 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "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" + } + }, + "globals": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "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" + } + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dev": true, "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" } }, - "@hapi/bourne": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", - "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" + "@humanwhocodes/object-schema": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", + "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", + "dev": true }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", @@ -465,6 +553,82 @@ "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "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, + "requires": { + "p-try": "^2.0.0" + } + }, + "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, + "requires": { + "p-limit": "^2.2.0" + } + }, + "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 + }, + "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 + }, + "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 + } } }, "@istanbuljs/schema": { @@ -474,131 +638,212 @@ "dev": true }, "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.0.6.tgz", + "integrity": "sha512-fMlIBocSHPZ3JxgWiDNW/KPj6s+YRd0hicb33IrmelCcjXo/pXPwvuiKFmZz+XuqI/1u7nbUK10zSsWL/1aegg==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.6", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", + "jest-message-util": "^27.0.6", + "jest-util": "^27.0.6", "slash": "^3.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" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "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 + }, + "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" + } + } } }, "@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.0.6.tgz", + "integrity": "sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow==", "dev": true, "requires": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^27.0.6", + "@jest/reporters": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", + "emittery": "^0.8.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", + "jest-changed-files": "^27.0.6", + "jest-config": "^27.0.6", + "jest-haste-map": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-resolve-dependencies": "^27.0.6", + "jest-runner": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", + "jest-watcher": "^27.0.6", + "micromatch": "^4.0.4", "p-each-series": "^2.1.0", "rimraf": "^3.0.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, "dependencies": { - "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "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": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "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 + }, + "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" } } } }, "@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.0.6.tgz", + "integrity": "sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg==", "dev": true, "requires": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/fake-timers": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", - "jest-mock": "^26.6.2" + "jest-mock": "^27.0.6" } }, "@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.0.6.tgz", + "integrity": "sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", + "@jest/types": "^27.0.6", + "@sinonjs/fake-timers": "^7.0.2", "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "jest-message-util": "^27.0.6", + "jest-mock": "^27.0.6", + "jest-util": "^27.0.6" } }, "@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.0.6.tgz", + "integrity": "sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw==", "dev": true, "requires": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" + "@jest/environment": "^27.0.6", + "@jest/types": "^27.0.6", + "expect": "^27.0.6" } }, "@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.0.6.tgz", + "integrity": "sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", @@ -609,143 +854,293 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "node-notifier": "^8.0.0", + "jest-haste-map": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-util": "^27.0.6", + "jest-worker": "^27.0.6", "slash": "^3.0.0", "source-map": "^0.6.0", "string-length": "^4.0.1", "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - } - }, - "@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - } - }, - "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", + "v8-to-istanbul": "^8.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" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "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 + }, + "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" + } + } + } + }, + "@jest/source-map": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", + "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + } + } + }, + "@jest/test-result": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.0.6.tgz", + "integrity": "sha512-ja/pBOMTufjX4JLEauLxE3LQBPaI2YjGFtXexRAjt1I/MbfNlMx0sytSX3tn5hSLzQsR3Qy2rd0hc1BWojtj9w==", + "dev": true, + "requires": { + "@jest/console": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz", + "integrity": "sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA==", + "dev": true, + "requires": { + "@jest/test-result": "^27.0.6", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.0.6", + "jest-runtime": "^27.0.6" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + } + } + }, + "@jest/transform": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.0.6.tgz", + "integrity": "sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.0.6", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", + "jest-haste-map": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-util": "^27.0.6", + "micromatch": "^4.0.4", "pirates": "^4.0.1", "slash": "^3.0.0", "source-map": "^0.6.1", "write-file-atomic": "^3.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" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "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 + }, + "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" + } + } } }, "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.6.tgz", + "integrity": "sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "@types/yargs": "^15.0.0", + "@types/yargs": "^16.0.0", "chalk": "^4.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" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "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 + }, + "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" + } + } } }, - "@octokit/auth-app": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-app/-/auth-app-3.6.0.tgz", - "integrity": "sha512-A+tLuHEMXw+Xz9dmKO7Ho9i4EmMr4tThrwYTlmMNu8y93JxvvRjKFFElpCTS+Z0NlbfuyNdaTlJnAinFbVKm7g==", + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, "requires": { - "@octokit/auth-oauth-app": "^4.3.0", - "@octokit/auth-oauth-user": "^1.2.3", - "@octokit/request": "^5.6.0", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.0.3", - "@types/lru-cache": "^5.1.0", - "deprecation": "^2.3.1", - "lru-cache": "^6.0.0", - "universal-github-app-jwt": "^1.0.1", - "universal-user-agent": "^6.0.0" + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" } }, - "@octokit/auth-oauth-app": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-app/-/auth-oauth-app-4.3.0.tgz", - "integrity": "sha512-cETmhmOQRHCz6cLP7StThlJROff3A/ln67Q961GuIr9zvyFXZ4lIJy9RE6Uw5O7D8IXWPU3jhDnG47FTSGQr8Q==", - "requires": { - "@octokit/auth-oauth-device": "^3.1.1", - "@octokit/auth-oauth-user": "^1.2.1", - "@octokit/request": "^5.3.0", - "@octokit/types": "^6.0.3", - "@types/btoa-lite": "^1.0.0", - "btoa-lite": "^1.0.0", - "universal-user-agent": "^6.0.0" - } + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true }, - "@octokit/auth-oauth-device": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-device/-/auth-oauth-device-3.1.2.tgz", - "integrity": "sha512-w7Po4Ck6N2aAn2VQyKLuojruiyKROTBv4qs6IwE5rbwF7HhBXXp4A/NKmkpoFIZkiXQtM+N8QtkSck4ApYWdGg==", + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, "requires": { - "@octokit/oauth-methods": "^1.1.0", - "@octokit/request": "^5.4.14", - "@octokit/types": "^6.10.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/auth-oauth-user": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-oauth-user/-/auth-oauth-user-1.3.0.tgz", - "integrity": "sha512-3QC/TAdk7onnxfyZ24BnJRfZv8TRzQK7SEFUS9vLng4Vv6Hv6I64ujdk/CUkREec8lhrwU764SZ/d+yrjjqhaQ==", - "requires": { - "@octokit/auth-oauth-device": "^3.1.1", - "@octokit/oauth-methods": "^1.1.0", - "@octokit/request": "^5.4.14", - "@octokit/types": "^6.12.2", - "btoa-lite": "^1.0.0", - "universal-user-agent": "^6.0.0" + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" } }, "@octokit/auth-token": { @@ -756,15 +1151,6 @@ "@octokit/types": "^6.0.3" } }, - "@octokit/auth-unauthenticated": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-unauthenticated/-/auth-unauthenticated-2.1.0.tgz", - "integrity": "sha512-+baofLfSL0CAv3CfGQ9rxiZZQEX8VNJMGuuS4PgrMRBUL52Ho5+hQYb63UJQshw7EXYMPDZxbXznc0y33cbPqw==", - "requires": { - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.0.3" - } - }, "@octokit/core": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", @@ -790,81 +1176,42 @@ } }, "@octokit/graphql": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.7.0.tgz", - "integrity": "sha512-diY0qMPyQjfu4rDu3kDhJ9qIZadIm4IISO3RJSv9ajYUWJUCO0AykbgzLcg1xclxtXgzY583u3gAv66M6zz5SA==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", "requires": { "@octokit/request": "^5.6.0", "@octokit/types": "^6.0.3", "universal-user-agent": "^6.0.0" } }, - "@octokit/oauth-authorization-url": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@octokit/oauth-authorization-url/-/oauth-authorization-url-4.3.3.tgz", - "integrity": "sha512-lhP/t0i8EwTmayHG4dqLXgU+uPVys4WD/qUNvC+HfB1S1dyqULm5Yx9uKc1x79aP66U1Cb4OZeW8QU/RA9A4XA==" - }, - "@octokit/oauth-methods": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@octokit/oauth-methods/-/oauth-methods-1.2.4.tgz", - "integrity": "sha512-85hen2Dkpnmy2PGfVFe7Ke9rUo//nlqUcHE4GiQBHJ7D95rAm19GcRO49LlH6NOXOMdEFj7i/Ay5GVDRrAk38w==", - "requires": { - "@octokit/oauth-authorization-url": "^4.3.1", - "@octokit/request": "^5.4.14", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.12.2", - "btoa-lite": "^1.0.0" - } - }, "@octokit/openapi-types": { - "version": "9.7.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-9.7.0.tgz", - "integrity": "sha512-TUJ16DJU8mekne6+KVcMV5g6g/rJlrnIKn7aALG9QrNpnEipFc1xjoarh0PKaAWf2Hf+HwthRKYt+9mCm5RsRg==" - }, - "@octokit/plugin-enterprise-compatibility": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-compatibility/-/plugin-enterprise-compatibility-1.3.0.tgz", - "integrity": "sha512-h34sMGdEOER/OKrZJ55v26ntdHb9OPfR1fwOx6Q4qYyyhWA104o11h9tFxnS/l41gED6WEI41Vu2G2zHDVC5lQ==", - "requires": { - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.0.3" - } + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-10.1.0.tgz", + "integrity": "sha512-Nq5TMBwijRXco+Bm/Rq1n5maxxXsHLwd/Cm3lyNeOxbjyzAOSD0qmr4TwKCD4TN4rHZ7lq/tARuqSv/WJHF7IA==" }, "@octokit/plugin-paginate-rest": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.15.1.tgz", - "integrity": "sha512-47r52KkhQDkmvUKZqXzA1lKvcyJEfYh3TKAIe5+EzMeyDM3d+/s5v11i2gTk8/n6No6DPi3k5Ind6wtDbo/AEg==", + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.16.0.tgz", + "integrity": "sha512-8YYzALPMvEZ35kgy5pdYvQ22Roz+BIuEaedO575GwE2vb/ACDqQn0xQrTJR4tnZCJn7pi8+AWPVjrFDaERIyXQ==", "requires": { - "@octokit/types": "^6.24.0" + "@octokit/types": "^6.26.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==" + }, "@octokit/plugin-rest-endpoint-methods": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.8.0.tgz", - "integrity": "sha512-qeLZZLotNkoq+it6F+xahydkkbnvSK0iDjlXFo3jNTB+Ss0qIbYQb9V/soKLMkgGw8Q2sHjY5YEXiA47IVPp4A==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.10.0.tgz", + "integrity": "sha512-HiUZliq5wNg15cevJlTo9zDnPXAD0BMRhLxbRNPnq9J3HELKesDTOiou56ax2jC/rECUkK/uJTugrizYKSo/jg==", "requires": { - "@octokit/types": "^6.25.0", + "@octokit/types": "^6.27.0", "deprecation": "^2.3.1" } }, - "@octokit/plugin-retry": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-3.0.9.tgz", - "integrity": "sha512-r+fArdP5+TG6l1Rv/C9hVoty6tldw6cE2pRHNGmFPdyfrc696R6JjrQ3d7HdVqGwuzfyrcaLAKD7K8TX8aehUQ==", - "requires": { - "@octokit/types": "^6.0.3", - "bottleneck": "^2.15.3" - } - }, - "@octokit/plugin-throttling": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-3.5.1.tgz", - "integrity": "sha512-d2jh3/RZo98DRw2J0jFxhKz7nrTGalGdkfRtxM+pI5k1wRb4BKBjiuE9cuZnhZyj+zLC1EcIptj7K+28LJZ3eA==", - "requires": { - "@octokit/types": "^6.0.1", - "bottleneck": "^2.15.3" - } - }, "@octokit/request": { "version": "5.6.1", "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.1.tgz", @@ -888,148 +1235,25 @@ "once": "^1.4.0" } }, - "@octokit/types": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.25.0.tgz", - "integrity": "sha512-bNvyQKfngvAd/08COlYIN54nRgxskmejgywodizQNyiKoXmWRAjKup2/LYwm+T9V0gsKH6tuld1gM0PzmOiB4Q==", - "requires": { - "@octokit/openapi-types": "^9.5.0" - } - }, - "@octokit/webhooks": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@octokit/webhooks/-/webhooks-7.21.0.tgz", - "integrity": "sha512-Mj7Pa6JZgSjfzQfYF3Bf5KpyhzEBv4kHbj2EjCB/vMQiZCiiW30j5rS6t/d0ZN0FBrlSOuJIT+YU8IJt30VyWA==", - "requires": { - "@octokit/request-error": "^2.0.2", - "aggregate-error": "^3.1.0", - "debug": "^4.0.0" - } - }, - "@probot/get-private-key": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@probot/get-private-key/-/get-private-key-1.1.1.tgz", - "integrity": "sha512-hOmBNSAhSZc6PaNkTvj6CO9R5J67ODJ+w5XQlDW9w/6mtcpHWK4L+PZcW0YwVM7PpetLZjN6rsKQIR9yqIaWlA==", - "requires": { - "@types/is-base64": "^1.1.0", - "is-base64": "^1.1.0" - } - }, - "@probot/octokit-plugin-config": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@probot/octokit-plugin-config/-/octokit-plugin-config-1.1.2.tgz", - "integrity": "sha512-glLLk3rXMoq6E9WM6TpHuxckuKLLE+AvWd9hrVi2MBQts6xQSGIDanhQcegJ5R38WS7tCnuRd4+PmhWQXLyFEQ==", - "requires": { - "@types/js-yaml": "^4.0.3", - "js-yaml": "^4.1.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "@probot/pino": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@probot/pino/-/pino-2.3.4.tgz", - "integrity": "sha512-OMSKIwN7O85OCYId35Fm12G8zC9soq5DMlD7xwHh0vNq4nWwO+3iTkwrHtQZXQTM7ZIcfnz8wBMptWRVLh6ttA==", - "requires": { - "@sentry/node": "^6.0.0", - "pino-pretty": "^6.0.0", - "pump": "^3.0.0", - "readable-stream": "^3.6.0", - "split2": "^3.2.2" - } - }, - "@sentry/core": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.11.0.tgz", - "integrity": "sha512-09TB+f3pqEq8LFahFWHO6I/4DxHo+NcS52OkbWMDqEi6oNZRD7PhPn3i14LfjsYVv3u3AESU8oxSEGbFrr2UjQ==", - "requires": { - "@sentry/hub": "6.11.0", - "@sentry/minimal": "6.11.0", - "@sentry/types": "6.11.0", - "@sentry/utils": "6.11.0", - "tslib": "^1.9.3" - } - }, - "@sentry/hub": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.11.0.tgz", - "integrity": "sha512-pT9hf+ZJfVFpoZopoC+yJmFNclr4NPqPcl2cgguqCHb69DklD1NxgBNWK8D6X05qjnNFDF991U6t1mxP9HrGuw==", - "requires": { - "@sentry/types": "6.11.0", - "@sentry/utils": "6.11.0", - "tslib": "^1.9.3" - } - }, - "@sentry/minimal": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.11.0.tgz", - "integrity": "sha512-XkZ7qrdlGp4IM/gjGxf1Q575yIbl5RvPbg+WFeekpo16Ufvzx37Mr8c2xsZaWosISVyE6eyFpooORjUlzy8EDw==", - "requires": { - "@sentry/hub": "6.11.0", - "@sentry/types": "6.11.0", - "tslib": "^1.9.3" - } - }, - "@sentry/node": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.11.0.tgz", - "integrity": "sha512-vbk+V/n7ZIFD8rHPYy03t/gIG5V7LGdjU4qJxVDgNZzticfWPnd2sLgle/r+l60XF6SKW/epG4rnxnBcgPdWaw==", - "requires": { - "@sentry/core": "6.11.0", - "@sentry/hub": "6.11.0", - "@sentry/tracing": "6.11.0", - "@sentry/types": "6.11.0", - "@sentry/utils": "6.11.0", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - } - }, - "@sentry/tracing": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.11.0.tgz", - "integrity": "sha512-9VA1/SY++WeoMQI4K6n/sYgIdRtCu9NLWqmGqu/5kbOtESYFgAt1DqSyqGCr00ZjQiC2s7tkDkTNZb38K6KytQ==", + "@octokit/rest": { + "version": "18.10.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.10.0.tgz", + "integrity": "sha512-esHR5OKy38bccL/sajHqZudZCvmv4yjovMJzyXlphaUo7xykmtOdILGJ3aAm0mFHmMLmPFmDMJXf39cAjNJsrw==", "requires": { - "@sentry/hub": "6.11.0", - "@sentry/minimal": "6.11.0", - "@sentry/types": "6.11.0", - "@sentry/utils": "6.11.0", - "tslib": "^1.9.3" + "@octokit/core": "^3.5.1", + "@octokit/plugin-paginate-rest": "^2.16.0", + "@octokit/plugin-request-log": "^1.0.4", + "@octokit/plugin-rest-endpoint-methods": "^5.9.0" } }, - "@sentry/types": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.11.0.tgz", - "integrity": "sha512-gm5H9eZhL6bsIy/h3T+/Fzzz2vINhHhqd92CjHle3w7uXdTdFV98i2pDpErBGNTSNzbntqOMifYEB5ENtZAvcg==" - }, - "@sentry/utils": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.11.0.tgz", - "integrity": "sha512-IOvyFHcnbRQxa++jO+ZUzRvFHEJ1cZjrBIQaNVc0IYF0twUOB5PTP6joTcix38ldaLeapaPZ9LGfudbvYvxkdg==", + "@octokit/types": { + "version": "6.27.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.27.0.tgz", + "integrity": "sha512-ha27f8DToxXBPEJdzHCCuqpw7AgKfjhWGdNf3yIlBAhAsaexBXTfWw36zNSsncALXGvJq4EjLy1p3Wz45Aqb4A==", "requires": { - "@sentry/types": "6.11.0", - "tslib": "^1.9.3" + "@octokit/openapi-types": "^10.1.0" } }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, "@sinonjs/commons": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", @@ -1040,22 +1264,14 @@ } }, "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" } }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -1103,81 +1319,20 @@ "@babel/types": "^7.3.0" } }, - "@types/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, "requires": { - "@types/connect": "*", "@types/node": "*" } }, - "@types/btoa-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg==" - }, - "@types/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-c/QCznvk7bLKGhHETj29rqKufui3jaAxjBhK4R2zUrMG5UG0qTwfWYxBoUbH8JCyDjdCWMIxPJ7/Fdz1UcAnWg==" - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "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==", - "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.24", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz", - "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/ioredis": { - "version": "4.27.1", - "resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.27.1.tgz", - "integrity": "sha512-+JichYPCtVapxi5Z+7V/8Uhn+4Piz+rkb03JQTQ0kW0pkV71+bmzSTkpwmIqa7FfWIszp0VbRyN8gfgWDNQMdA==", - "requires": { - "@types/node": "*" - } - }, - "@types/is-base64": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/is-base64/-/is-base64-1.1.1.tgz", - "integrity": "sha512-JgnGhP+MeSHEQmvxcobcwPEP4Ew56voiq9/0hmP/41lyQ/3gBw/ZCIRy2v+QkEOdeCl58lRcrf6+Y6WMlJGETA==" - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "dev": true }, "@types/istanbul-lib-report": { "version": "3.0.0", @@ -1197,138 +1352,306 @@ "@types/istanbul-lib-report": "*" } }, - "@types/jest": { - "version": "26.0.24", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz", - "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", - "dev": true, - "requires": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" - } - }, - "@types/js-yaml": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.3.tgz", - "integrity": "sha512-5t9BhoORasuF5uCPr+d5/hdB++zRFUTMIZOzbNkr+jZh3yQht4HYbRDyj9fY8n2TZT30iW9huzav73x4NikqWg==" - }, - "@types/jsonwebtoken": { - "version": "8.5.5", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.5.tgz", - "integrity": "sha512-OGqtHQ7N5/Ap/TUwO6IgHDuLiAoTmHhGpNvgkCm/F4N6pKzx/RBSfr2OXZSwC6vkfnsEdb6+7DNZVtiXiwdwFw==", - "requires": { - "@types/node": "*" - } - }, - "@types/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==" + "@types/json-schema": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.3.tgz", + "integrity": "sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==", + "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==" + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true }, "@types/node": { - "version": "14.17.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.12.tgz", - "integrity": "sha512-vhUqgjJR1qxwTWV5Ps5txuy2XMdf7Fw+OrdChRboy8BmWUPkckOhphaohzFG6b8DW7CrxaBMdrdJ47SYFq1okw==" + "version": "16.3.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.3.tgz", + "integrity": "sha512-8h7k1YgQKxKXWckzFCMfsIwn0Y61UK6tlD6y2lOb3hTOIMlK3t9/QwHOhc81TwU+RMf0As5fj7NPjroERCnejQ==", + "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==", + "@types/prettier": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, - "@types/pino": { - "version": "6.3.11", - "resolved": "https://registry.npmjs.org/@types/pino/-/pino-6.3.11.tgz", - "integrity": "sha512-S7+fLONqSpHeW9d7TApUqO6VN47KYgOXhCNKwGBVLHObq8HhaAYlVqUNdfnvoXjCMiwE5xcPm/5R2ZUh8bgaXQ==", + "@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/node": "*", - "@types/pino-pretty": "*", - "@types/pino-std-serializers": "*", - "sonic-boom": "^2.1.0" + "@types/yargs-parser": "*" } }, - "@types/pino-http": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@types/pino-http/-/pino-http-5.7.0.tgz", - "integrity": "sha512-6I6Nmp5ySfaxE+QFMZWGpDMTfkx8AHh6VETkqAixiTupeTY2uOSnMmGAbtLoWIA1ymrw+lCvA8HB0U4JkL0gTQ==", + "@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 + }, + "@typescript-eslint/eslint-plugin": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.7.0.tgz", + "integrity": "sha512-4OEcPON3QIx0ntsuiuFP/TkldmBGXf0uKxPQlGtS/W2F3ndYm8Vgdpj/woPJkzUc65gd3iR+qi3K8SDQP/obFg==", + "dev": true, "requires": { - "@types/pino": "*" + "@typescript-eslint/experimental-utils": "3.7.0", + "debug": "^4.1.1", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.0.0", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "dependencies": { + "@typescript-eslint/experimental-utils": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.7.0.tgz", + "integrity": "sha512-xpfXXAfZqhhqs5RPQBfAFrWDHoNxD5+sVB5A46TF58Bq1hRfVROrWHcQHHUM9aCBdy9+cwATcvCbRg8aIRbaHQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/types": "3.7.0", + "@typescript-eslint/typescript-estree": "3.7.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/types": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.7.0.tgz", + "integrity": "sha512-reCaK+hyKkKF+itoylAnLzFeNYAEktB0XVfSQvf0gcVgpz1l49Lt6Vo9x4MVCCxiDydA0iLAjTF/ODH0pbfnpg==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.7.0.tgz", + "integrity": "sha512-xr5oobkYRebejlACGr1TJ0Z/r0a2/HUf0SXqPvlgUMwiMqOCu/J+/Dr9U3T0IxpE5oLFSkqMx1FE/dKaZ8KsOQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "3.7.0", + "@typescript-eslint/visitor-keys": "3.7.0", + "debug": "^4.1.1", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.7.0.tgz", + "integrity": "sha512-k5PiZdB4vklUpUX4NBncn5RBKty8G3ihTY+hqJsCdMuD0v4jofI5xuqwnVcWxfv6iTm2P/dfEa2wMUnsUY8ODw==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + } } }, - "@types/pino-pretty": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/@types/pino-pretty/-/pino-pretty-4.7.1.tgz", - "integrity": "sha512-l1ntNXdpVWsnPYUk5HyO5Lxfr38zLCgxVfEn/9Zhhm+nGF04/BiIou/m8XPwvoVZLV+livUo79VdHXMJPfUYxA==", + "@typescript-eslint/experimental-utils": { + "version": "4.28.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.3.tgz", + "integrity": "sha512-zZYl9TnrxwEPi3FbyeX0ZnE8Hp7j3OCR+ELoUfbwGHGxWnHg9+OqSmkw2MoCVpZksPCZYpQzC559Ee9pJNHTQw==", + "dev": true, "requires": { - "@types/pino": "*" + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.28.3", + "@typescript-eslint/types": "4.28.3", + "@typescript-eslint/typescript-estree": "4.28.3", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "dependencies": { + "@types/json-schema": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", + "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + } } }, - "@types/pino-std-serializers": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/pino-std-serializers/-/pino-std-serializers-2.4.1.tgz", - "integrity": "sha512-17XcksO47M24IVTVKPeAByWUd3Oez7EbIjXpSbzMPhXVzgjGtrOa49gKBwxH9hb8dKv58OelsWQ+A1G1l9S3wQ==", + "@typescript-eslint/parser": { + "version": "4.28.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.3.tgz", + "integrity": "sha512-ZyWEn34bJexn/JNYvLQab0Mo5e+qqQNhknxmc8azgNd4XqspVYR5oHq9O11fLwdZMRcj4by15ghSlIEq+H5ltQ==", + "dev": true, "requires": { - "@types/node": "*" + "@typescript-eslint/scope-manager": "4.28.3", + "@typescript-eslint/types": "4.28.3", + "@typescript-eslint/typescript-estree": "4.28.3", + "debug": "^4.3.1" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + } } }, - "@types/prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==", - "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==" - }, - "@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==" - }, - "@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==", + "@typescript-eslint/scope-manager": { + "version": "4.28.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.3.tgz", + "integrity": "sha512-/8lMisZ5NGIzGtJB+QizQ5eX4Xd8uxedFfMBXOKuJGP0oaBBVEMbJVddQKDXyyB0bPlmt8i6bHV89KbwOelJiQ==", + "dev": true, "requires": { - "@types/mime": "^1", - "@types/node": "*" + "@typescript-eslint/types": "4.28.3", + "@typescript-eslint/visitor-keys": "4.28.3" } }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "@typescript-eslint/types": { + "version": "4.28.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.3.tgz", + "integrity": "sha512-kQFaEsQBQVtA9VGVyciyTbIg7S3WoKHNuOp/UF5RG40900KtGqfoiETWD/v0lzRXc+euVE9NXmfer9dLkUJrkA==", "dev": true }, - "@types/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-aGY5pH1Q/DcToKXl4MCj1c0uDUB+zSVFDRCI7Q7js5sguzBTqJV/5kJA2awofbtWYF3xnon1TYdZYnFditRPtQ==", + "@typescript-eslint/typescript-estree": { + "version": "4.28.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.3.tgz", + "integrity": "sha512-YAb1JED41kJsqCQt1NcnX5ZdTA93vKFCMP4lQYG6CFxd0VzDJcKttRlMrlG+1qiWAw8+zowmHU1H0OzjWJzR2w==", + "dev": true, "requires": { - "@types/configstore": "*", - "boxen": "^4.2.0" + "@typescript-eslint/types": "4.28.3", + "@typescript-eslint/visitor-keys": "4.28.3", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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" + } + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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" + } + } } }, - "@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", + "@typescript-eslint/visitor-keys": { + "version": "4.28.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.3.tgz", + "integrity": "sha512-ri1OzcLnk1HH4gORmr1dllxDzzrN6goUIz/P4MHFV0YZJDCADPR3RvYNp0PW2SetKTThar6wlbFTL00hV2Q+fg==", "dev": true, "requires": { - "@types/yargs-parser": "*" + "@typescript-eslint/types": "4.28.3", + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } } }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", + "@vercel/ncc": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.29.0.tgz", + "integrity": "sha512-p+sB835wOSDdgm2mgFgSOcXJF84AqZ+vBEnnGS0sm8veA92Hia7sqH0qEnqeFilPl+cXtxbdh2er+WdlfbVCZA==", "dev": true }, "abab": { @@ -1337,19 +1660,10 @@ "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, "acorn": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", - "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, "acorn-globals": { @@ -1360,16 +1674,14 @@ "requires": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - } } }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, "acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", @@ -1380,61 +1692,28 @@ "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" } }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.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==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true }, "ansi-escapes": { "version": "4.3.2", @@ -1443,19 +1722,29 @@ "dev": true, "requires": { "type-fest": "^0.21.3" + }, + "dependencies": { + "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 + } } }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "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==", + "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": "^2.0.1" + "color-convert": "^1.9.0" } }, "anymatch": { @@ -1469,118 +1758,114 @@ } }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } + "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 }, - "args": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", - "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", + "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "dev": true, "requires": { - "camelcase": "5.0.0", - "chalk": "2.4.2", - "leven": "2.1.0", - "mri": "1.1.4" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" }, "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==", + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, "requires": { - "color-convert": "^1.9.0" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "has-symbols": "^1.0.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==", + } + } + }, + "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.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", + "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, "requires": { - "color-name": "1.1.3" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "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=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-symbols": "^1.0.1" } } } }, - "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=" - }, - "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 - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "asynckit": { @@ -1589,17 +1874,6 @@ "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==" - }, "azure-devops-node-api": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.0.1.tgz", @@ -1610,19 +1884,76 @@ } }, "babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.0.6.tgz", + "integrity": "sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA==", "dev": true, "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", + "babel-preset-jest": "^27.0.6", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "slash": "^3.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" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "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 + }, + "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" + } + } } }, "babel-plugin-istanbul": { @@ -1639,9 +1970,9 @@ } }, "babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz", + "integrity": "sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw==", "dev": true, "requires": { "@babel/template": "^7.3.3", @@ -1671,129 +2002,26 @@ } }, "babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz", + "integrity": "sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^26.6.2", + "babel-plugin-jest-hoist": "^27.0.6", "babel-preset-current-node-syntax": "^1.0.0" } }, "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "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": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, "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==" }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "bottleneck": { - "version": "2.19.5", - "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", - "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - } - } - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1820,16 +2048,16 @@ "dev": true }, "browserslist": { - "version": "4.16.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.8.tgz", - "integrity": "sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ==", + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001251", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.811", + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", "escalade": "^3.1.1", - "node-releases": "^1.1.75" + "node-releases": "^1.1.71" } }, "bs-logger": { @@ -1850,65 +2078,12 @@ "node-int64": "^0.4.0" } }, - "btoa-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=" - }, - "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=" - }, "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==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "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" - } - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -1927,30 +2102,24 @@ "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true }, "caniuse-lite": { - "version": "1.0.30001252", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz", - "integrity": "sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw==", + "version": "1.0.30001245", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001245.tgz", + "integrity": "sha512-768fM9j1PKXpOCKws6eTo3RHmvTUsG9UrpT4WoREFeZgJBTi4/X9g565azS/rVUGtqb8nt7FjLeF5u4kukERnA==", "dev": true }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "requires": { - "rsvp": "^4.8.4" - } - }, "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "char-regex": { @@ -1960,130 +2129,28 @@ "dev": true }, "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", + "dev": true }, "cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", "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": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "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": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "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": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "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": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "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": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "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-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^1.0.0" + "wrap-ansi": "^7.0.0" } }, - "cluster-key-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz", - "integrity": "sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==" - }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -2096,33 +2163,26 @@ "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", "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-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==", + "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.4" + "color-name": "1.1.3" } }, "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==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true }, "colorette": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz", - "integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true }, "combined-stream": { "version": "1.0.8", @@ -2133,48 +2193,17 @@ "delayed-stream": "~1.0.0" } }, - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" - }, - "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 - }, "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 }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true }, "convert-source-map": { "version": "1.8.0", @@ -2185,28 +2214,6 @@ "safe-buffer": "~5.1.1" } }, - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", - "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 - }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -2218,11 +2225,6 @@ "which": "^2.0.1" } }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - }, "cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", @@ -2257,50 +2259,27 @@ "whatwg-url": "^8.0.0" } }, - "dateformat": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.5.1.tgz", - "integrity": "sha512-OD0TZ+B7yP7ZgpJf5K2DIbj3FZvFvxgFUuaqA/V5zTjAtAAXZ1E8bktHxmAGs4x5b7PflqA9LeQ84Og7wYtF7Q==" - }, "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, "decimal.js": { "version": "10.3.1", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", "dev": true }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "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==" - }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -2310,21 +2289,16 @@ "deepmerge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true }, - "defer-to-connect": { + "define-properties": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "object-keys": "^1.0.12" } }, "delayed-stream": { @@ -2333,26 +2307,11 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, - "denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, "deprecation": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -2360,11 +2319,37 @@ "dev": true }, "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", + "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", "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" + }, + "dependencies": { + "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 + } + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, "domexception": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", @@ -2382,95 +2367,63 @@ } } }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "requires": { - "is-obj": "^2.0.0" - } - }, - "dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==" - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "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==", - "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=" - }, "electron-to-chromium": { - "version": "1.3.824", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.824.tgz", - "integrity": "sha512-Fk+5aD0HDi9i9ZKt9n2VPOZO1dQy7PV++hz2wJ/KIn+CvVfu4fny39squHtyVDPuHNuoJGAZIbuReEklqYIqfA==", + "version": "1.3.779", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.779.tgz", + "integrity": "sha512-nreave0y/1Qhmo8XtO6C/LpawNyC6U26+q7d814/e+tIqUK073pM+4xW7WUXyqCRa5K4wdxHmNMBAi8ap9nEew==", "dev": true }, "emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", "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==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "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==", + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, "requires": { - "once": "^1.4.0" + "ansi-colors": "^4.1.1" } }, "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" } }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "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": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "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 }, "escodegen": { @@ -2484,172 +2437,258 @@ "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "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==" - }, - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "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": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "eventsource": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", - "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", - "requires": { - "original": "^1.0.0" - } - }, - "exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", - "dev": true - }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "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=", + "eslint": { + "version": "7.31.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.31.0.tgz", + "integrity": "sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA==", "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" + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "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": { - "ms": "2.0.0" + "color-convert": "^2.0.1" + } + }, + "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" } }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "extend-shallow": { + "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "color-name": "~1.1.4" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "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 + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "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": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "kind-of": "^3.0.2" + "estraverse": "^5.2.0" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true } } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "globals": { + "version": "13.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", + "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "type-fest": "^0.20.2" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "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 }, - "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==", + "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" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + } + } + }, + "eslint-config-prettier": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz", + "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==", + "dev": true, + "requires": { + "get-stdin": "^6.0.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.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" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -2658,66 +2697,21 @@ } } }, - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" }, "dependencies": { - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, "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" } @@ -2725,170 +2719,414 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true } } }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "eslint-plugin-eslint-comments": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz", + "integrity": "sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==", "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "escape-string-regexp": "^1.0.5", + "ignore": "^5.0.5" + }, + "dependencies": { + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + } } }, - "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" + "eslint-plugin-github": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-github/-/eslint-plugin-github-4.1.1.tgz", + "integrity": "sha512-MzCh4P4zVvR/13AHtumzZ3znq0cbUE7lXehyBEpFURD/EHdx/+7qW+0c+ySTrteImpX9LGLJFTYNtu10BifkbQ==", + "dev": true, + "requires": { + "@typescript-eslint/eslint-plugin": ">=2.25.0", + "@typescript-eslint/parser": ">=2.25.0", + "eslint-config-prettier": ">=6.10.1", + "eslint-plugin-eslint-comments": ">=3.0.1", + "eslint-plugin-import": ">=2.20.1", + "eslint-plugin-prettier": ">=3.1.2", + "eslint-rule-documentation": ">=1.0.0", + "prettier": ">=1.12.0", + "svg-element-attributes": ">=1.3.1" + } + }, + "eslint-plugin-import": { + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz", + "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==", + "dev": true, + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.3", + "eslint-module-utils": "^2.6.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.1", + "read-pkg-up": "^2.0.0", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "ms": "2.0.0" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } } } }, - "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 - }, - "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-redact": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.2.tgz", - "integrity": "sha512-YN+CYfCVRVMUZOUPeinHNKgytM1wPI/C/UCLEi56EsY2dwwvI00kIJHJoI7pMVqGoMew8SMZ2SSfHKHULHXDsg==" - }, - "fast-safe-stringify": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz", - "integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==" + "eslint-plugin-jest": { + "version": "24.3.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.3.6.tgz", + "integrity": "sha512-WOVH4TIaBLIeCX576rLcOgjNXqP+jNlCiEmRgFTfQtJ52DpwnIQKAVGlGPAN7CZ33bW6eNfHD6s8ZbEUTQubJg==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "^4.0.1" + } }, - "fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", + "eslint-plugin-prettier": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz", + "integrity": "sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg==", + "dev": true, "requires": { - "punycode": "^1.3.2" + "prettier-linter-helpers": "^1.0.0" } }, - "fastify-warning": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/fastify-warning/-/fastify-warning-0.2.0.tgz", - "integrity": "sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==" + "eslint-rule-documentation": { + "version": "1.0.23", + "resolved": "https://registry.npmjs.org/eslint-rule-documentation/-/eslint-rule-documentation-1.0.23.tgz", + "integrity": "sha512-pWReu3fkohwyvztx/oQWWgld2iad25TfUdi6wvhhaDPIQjHU/pyvlKgXFw1kX31SQK2Nq9MH+vRDWB0ZLy8fYw==", + "dev": true }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "eslint-scope": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", + "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", "dev": true, "requires": { - "bser": "2.1.1" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, - "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==", + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "eslint-visitor-keys": "^1.1.0" } }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "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==", + "eslint-visitor-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", + "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "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 + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "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 + }, + "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" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expect": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.0.6.tgz", + "integrity": "sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw==", + "dev": true, + "requires": { + "@jest/types": "^27.0.6", + "ansi-styles": "^5.0.0", + "jest-get-type": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-regex-util": "^27.0.6" + }, + "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 + } + } + }, + "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-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "dependencies": { + "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": { - "ms": "2.0.0" + "fill-range": "^7.0.1" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "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" + } + }, + "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 + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "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" + } } } }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "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 + }, + "fastq": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "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==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "locate-path": "^2.0.0" } }, - "flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "flatted": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", + "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", "dev": true }, - "foreachasync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", - "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=" - }, "form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -2900,31 +3138,6 @@ "mime-types": "^2.1.12" } }, - "formidable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", - "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==", - "dev": true - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "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=" - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2943,6 +3156,12 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -2971,24 +3190,22 @@ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, - "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==", - "requires": { - "pump": "^3.0.0" - } + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "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 }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -2999,12 +3216,13 @@ "path-is-absolute": "^1.0.0" } }, - "global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "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": { - "ini": "2.0.0" + "is-glob": "^4.0.1" } }, "globals": { @@ -3013,57 +3231,11 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - } - } - }, "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true }, "has": { "version": "1.0.3", @@ -3074,80 +3246,15 @@ } }, "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true }, "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "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": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "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": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "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": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "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": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" - }, - "hbs": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/hbs/-/hbs-4.1.2.tgz", - "integrity": "sha512-WfBnQbozbdiTLjJu6P6Wturgvy0FN8xtRmIjmP0ebX9OGQrt+2S6UC7xX0IebHTCS1sXe20zfTzQ7yhjrEvrfQ==", - "requires": { - "handlebars": "4.7.7", - "walk": "2.3.14" - } + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, "hosted-git-info": { "version": "2.8.9", @@ -3170,30 +3277,6 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, "http-proxy-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", @@ -3209,29 +3292,42 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, "requires": { "agent-base": "6", "debug": "4" } }, "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "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" } }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } }, "import-local": { "version": "3.0.2", @@ -3241,17 +3337,73 @@ "requires": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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, + "requires": { + "p-try": "^2.0.0" + } + }, + "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, + "requires": { + "p-limit": "^2.2.0" + } + }, + "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 + }, + "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 + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } + } + }, + "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", @@ -3266,128 +3418,56 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" - }, - "ioredis": { - "version": "4.27.9", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.27.9.tgz", - "integrity": "sha512-hAwrx9F+OQ0uIvaJefuS3UTqW+ByOLyLIV+j0EH8ClNVxvFyH9Vmb08hCL4yje6mDYT5zMquShhypkd50RRzkg==", - "requires": { - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.1", - "denque": "^1.1.0", - "lodash.defaults": "^4.2.0", - "lodash.flatten": "^4.4.0", - "lodash.isarguments": "^3.1.0", - "p-map": "^2.1.0", - "redis-commands": "1.7.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - } - }, - "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==" - }, - "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" - } + "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=" - }, - "is-base64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-base64/-/is-base64-1.1.0.tgz", - "integrity": "sha512-Nlhg7Z2dVC4/PTvIFkgVVNvPHSO2eR/Yd0XzhGiXCXEvWnptXlXa/clQ8aePPiMuxEGcWfzWbGw2Fe3d+Y3v1g==" + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", "dev": true }, "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", - "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "ci-info": "^3.1.1" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "is-core-module": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "has": "^1.0.3" } }, - "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, - "optional": true - }, - "is-extendable": { + "is-date-object": { "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" - } - } - } + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "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==" + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true }, "is-generator-fn": { "version": "2.1.0", @@ -3395,36 +3475,21 @@ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true }, - "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==", + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, "requires": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" + "is-extglob": "^2.1.1" } }, - "is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==" - }, "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==" - }, - "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==" - }, "is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -3437,36 +3502,31 @@ "dev": true }, "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "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==", + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", "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==", + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, - "optional": true, "requires": { - "is-docker": "^2.0.0" + "has-symbols": "^1.0.1" } }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true }, "isarray": { "version": "1.0.0", @@ -3480,12 +3540,6 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, "istanbul-lib-coverage": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", @@ -3513,6 +3567,23 @@ "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", "supports-color": "^7.1.0" + }, + "dependencies": { + "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 + }, + "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" + } + } } }, "istanbul-lib-source-maps": { @@ -3537,239 +3608,734 @@ } }, "jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.0.6.tgz", + "integrity": "sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA==", "dev": true, "requires": { - "@jest/core": "^26.6.3", + "@jest/core": "^27.0.6", "import-local": "^3.0.2", - "jest-cli": "^26.6.3" + "jest-cli": "^27.0.6" + }, + "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.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "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 + }, + "jest-cli": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.0.6.tgz", + "integrity": "sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg==", + "dev": true, + "requires": { + "@jest/core": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "jest-config": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", + "prompts": "^2.0.1", + "yargs": "^16.0.3" + } + }, + "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" + } + } } }, "jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.0.6.tgz", + "integrity": "sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" + "@jest/types": "^27.0.6", + "execa": "^5.0.0", + "throat": "^6.0.1" } }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "jest-circus": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.0.6.tgz", + "integrity": "sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q==", "dev": true, "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/environment": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/node": "*", "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.0.6", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "pretty-format": "^27.0.6", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" }, "dependencies": { - "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "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": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "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 + }, + "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" } } } }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "jest-config": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.0.6.tgz", + "integrity": "sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w==", "dev": true, "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^27.0.6", + "@jest/types": "^27.0.6", + "babel-jest": "^27.0.6", "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "is-ci": "^3.0.0", + "jest-circus": "^27.0.6", + "jest-environment-jsdom": "^27.0.6", + "jest-environment-node": "^27.0.6", + "jest-get-type": "^27.0.6", + "jest-jasmine2": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-runner": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", + "micromatch": "^4.0.4", + "pretty-format": "^27.0.6" + }, + "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.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "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 + }, + "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" + } + } } }, - "jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "jest-diff": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.0.6.tgz", + "integrity": "sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg==", "dev": true, "requires": { - "@jest/types": "^26.6.2", "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - } - }, - "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - } + "diff-sequences": "^27.0.6", + "jest-get-type": "^27.0.6", + "pretty-format": "^27.0.6" + }, + "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.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "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 + }, + "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" + } + } + } + }, + "jest-docblock": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", + "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.0.6.tgz", + "integrity": "sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA==", + "dev": true, + "requires": { + "@jest/types": "^27.0.6", + "chalk": "^4.0.0", + "jest-get-type": "^27.0.6", + "jest-util": "^27.0.6", + "pretty-format": "^27.0.6" + }, + "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.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "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 + }, + "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" + } + } + } + }, + "jest-environment-jsdom": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz", + "integrity": "sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw==", + "dev": true, + "requires": { + "@jest/environment": "^27.0.6", + "@jest/fake-timers": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/node": "*", + "jest-mock": "^27.0.6", + "jest-util": "^27.0.6", + "jsdom": "^16.6.0" + } }, "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.0.6.tgz", + "integrity": "sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w==", "dev": true, "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/environment": "^27.0.6", + "@jest/fake-timers": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "jest-mock": "^27.0.6", + "jest-util": "^27.0.6" } }, "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", "dev": true }, "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.0.6.tgz", + "integrity": "sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.6", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", + "fsevents": "^2.3.2", "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.0.6", + "jest-worker": "^27.0.6", + "micromatch": "^4.0.4", "walker": "^1.0.7" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + } } }, "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz", + "integrity": "sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA==", "dev": true, "requires": { "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/environment": "^27.0.6", + "@jest/source-map": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "expect": "^26.6.2", + "expect": "^27.0.6", "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" + "jest-each": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "pretty-format": "^27.0.6", + "throat": "^6.0.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.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "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 + }, + "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" + } + } } }, "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz", + "integrity": "sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ==", "dev": true, "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "jest-get-type": "^27.0.6", + "pretty-format": "^27.0.6" } }, "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz", + "integrity": "sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "jest-diff": "^27.0.6", + "jest-get-type": "^27.0.6", + "pretty-format": "^27.0.6" + }, + "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.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "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 + }, + "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" + } + } } }, "jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.0.6.tgz", + "integrity": "sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.0.6", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", + "micromatch": "^4.0.4", + "pretty-format": "^27.0.6", "slash": "^3.0.0", - "stack-utils": "^2.0.2" + "stack-utils": "^2.0.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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" + } + }, + "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" + } + } + } + }, + "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 + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "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 + } } }, "jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.0.6.tgz", + "integrity": "sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.6", "@types/node": "*" } }, @@ -3780,191 +4346,386 @@ "dev": true }, "jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", + "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", "dev": true }, "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.0.6.tgz", + "integrity": "sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.6", "chalk": "^4.0.0", + "escalade": "^3.1.1", "graceful-fs": "^4.2.4", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", + "resolve": "^1.20.0", "slash": "^3.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" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "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 + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "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" + } + } } }, "jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz", + "integrity": "sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" + "@jest/types": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-snapshot": "^27.0.6" } }, "jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.0.6.tgz", + "integrity": "sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ==", "dev": true, "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^27.0.6", + "@jest/environment": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", "chalk": "^4.0.0", - "emittery": "^0.7.1", + "emittery": "^0.8.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", + "jest-docblock": "^27.0.6", + "jest-environment-jsdom": "^27.0.6", + "jest-environment-node": "^27.0.6", + "jest-haste-map": "^27.0.6", + "jest-leak-detector": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-util": "^27.0.6", + "jest-worker": "^27.0.6", "source-map-support": "^0.5.6", - "throat": "^5.0.0" + "throat": "^6.0.1" }, "dependencies": { - "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "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": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" + "color-convert": "^2.0.1" } - } - } - }, - "jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - }, - "dependencies": { - "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dev": true, + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" + "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 + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "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 + }, + "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" + } + } + } + }, + "jest-runtime": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.0.6.tgz", + "integrity": "sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q==", + "dev": true, + "requires": { + "@jest/console": "^27.0.6", + "@jest/environment": "^27.0.6", + "@jest/fake-timers": "^27.0.6", + "@jest/globals": "^27.0.6", + "@jest/source-map": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-mock": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^16.0.3" + }, + "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.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "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 + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "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" } } } }, "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", "dev": true, "requires": { "@types/node": "*", "graceful-fs": "^4.2.4" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + } } }, "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.0.6.tgz", + "integrity": "sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A==", "dev": true, "requires": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/parser": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^26.6.2", + "expect": "^27.0.6", "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", + "jest-diff": "^27.0.6", + "jest-get-type": "^27.0.6", + "jest-haste-map": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-util": "^27.0.6", "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", + "pretty-format": "^27.0.6", "semver": "^7.3.2" }, "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.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "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 + }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -3973,81 +4734,260 @@ "requires": { "lru-cache": "^6.0.0" } + }, + "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" + } } } }, "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.0.6.tgz", + "integrity": "sha512-1JjlaIh+C65H/F7D11GNkGDDZtDfMEM8EBXsvd+l/cxtgQ6QhxuloOaiayt89DxUvDarbVhqI98HhgrM1yliFQ==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.6", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" + }, + "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.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "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 + }, + "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 + }, + "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" + } + } } }, "jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.0.6.tgz", + "integrity": "sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", + "@jest/types": "^27.0.6", + "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", + "jest-get-type": "^27.0.6", "leven": "^3.1.0", - "pretty-format": "^26.6.2" + "pretty-format": "^27.0.6" }, "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" + } + }, "camelcase": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "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 + }, + "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" + } } } }, "jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.0.6.tgz", + "integrity": "sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ==", "dev": true, "requires": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^26.6.2", + "jest-util": "^27.0.6", "string-length": "^4.0.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.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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 + }, + "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 + }, + "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" + } + } } }, "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz", + "integrity": "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==", "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "supports-color": "^8.0.0" + }, + "dependencies": { + "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 + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "jmespath": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" - }, - "joycon": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.0.1.tgz", - "integrity": "sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA==" - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4055,18 +4995,18 @@ "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==", + "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": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.6.0.tgz", + "integrity": "sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==", "dev": true, "requires": { "abab": "^2.0.5", @@ -4094,8 +5034,16 @@ "whatwg-encoding": "^1.0.5", "whatwg-mimetype": "^2.3.0", "whatwg-url": "^8.5.0", - "ws": "^7.4.6", + "ws": "^7.4.5", "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", + "dev": true + } } }, "jsesc": { @@ -4104,26 +5052,16 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "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==" - }, - "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==", + "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 }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json5": { @@ -4135,76 +5073,11 @@ "minimist": "^1.2.5" } }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "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==", - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "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 - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "requires": { - "package-json": "^6.3.0" - } + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true }, "leven": { "version": "3.1.0", @@ -4222,43 +5095,26 @@ "type-check": "~0.3.2" } }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, "load-json-file": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", - "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", - "requires": { - "graceful-fs": "^4.1.15", - "parse-json": "^4.0.0", - "pify": "^4.0.1", - "strip-bom": "^3.0.0", - "type-fest": "^0.3.0" - }, - "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" } }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "^4.1.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -4267,84 +5123,38 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "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=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true }, - "lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", + "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 }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "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" } }, - "lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=" - }, "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" } @@ -4364,41 +5174,17 @@ "tmpl": "1.0.x" } }, - "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" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, "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 }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "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", @@ -4408,24 +5194,29 @@ "requires": { "braces": "^3.0.1", "picomatch": "^2.2.3" + }, + "dependencies": { + "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 + } } }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", + "dev": true }, "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "dev": true, "requires": { - "mime-db": "1.49.0" + "mime-db": "1.48.0" } }, "mimic-fn": { @@ -4434,11 +5225,6 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -4451,17 +5237,8 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "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" - } + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true }, "mkdirp": { "version": "1.0.4", @@ -4469,70 +5246,11 @@ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, - "morgan": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", - "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", - "dev": true, - "requires": { - "basic-auth": "~2.0.1", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-finished": "~2.3.0", - "on-headers": "~1.0.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 - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "mri": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", - "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==" - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "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" - } + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "natural-compare": { "version": "1.4.0", @@ -4540,34 +5258,6 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "nock": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.1.3.tgz", - "integrity": "sha512-YKj0rKQWMGiiIO+Y65Ut8OEgYM3PplLU2+GAhnPmqZdBd6z5IskgdBqWmjzA6lH3RF0S2a3wiAlrMOF5Iv2Jeg==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash.set": "^4.3.2", - "propagate": "^2.0.0" - } - }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", @@ -4585,37 +5275,10 @@ "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", "dev": true }, - "node-notifier": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", - "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", - "dev": true, - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, "node-releases": { - "version": "1.1.75", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==", + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", "dev": true }, "normalize-package-data": { @@ -4644,11 +5307,6 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - }, "npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -4664,122 +5322,78 @@ "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", "dev": true, "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "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": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "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": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "requires": { - "kind-of": "^3.0.2" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" } }, - "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 - } - } + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "has-symbols": "^1.0.1" } } } }, - "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" - }, - "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" - } - }, - "octokit-auth-probot": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/octokit-auth-probot/-/octokit-auth-probot-1.2.6.tgz", - "integrity": "sha512-QY0xfxe8aXenZfIF6LVFwWqmPcpSV5tqkhOc5AcXzfnN14EWEbl3a53NDE0WAP7p8BelXS//rKwfrvlNjcjJXQ==", - "requires": { - "@octokit/auth-app": "^3.3.0", - "@octokit/auth-token": "^2.4.4", - "@octokit/auth-unauthenticated": "^2.0.2", - "@octokit/types": "^6.1.1" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "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", @@ -4811,76 +5425,52 @@ "word-wrap": "~1.2.3" } }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "requires": { - "url-parse": "^1.4.3" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, "p-each-series": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", "dev": true }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "^1.0.0" } }, "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==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "^2.2.0" + "p-limit": "^1.1.0" } }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - }, "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==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" + "callsites": "^3.0.0" } }, "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "error-ex": "^1.2.0" } }, "parse5": { @@ -4889,21 +5479,10 @@ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { @@ -4919,91 +5498,31 @@ "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==" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "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": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "pino": { - "version": "6.13.1", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.13.1.tgz", - "integrity": "sha512-QQf67BU+cANnc/2U+wzUV20UjO5oBryWpnNyKshdLfT9BdeiXlh9wxLGmOjAuBWMYITdMs+BtJSQQNlGRNbWpA==", - "requires": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.8", - "fastify-warning": "^0.2.0", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", - "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" - }, - "dependencies": { - "sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", - "requires": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" - } - } - } - }, - "pino-http": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/pino-http/-/pino-http-5.7.0.tgz", - "integrity": "sha512-BMpj8CKP48XALGGcEzf+rvaz+gVhVRAkxk08gvGPfyoOB4zAix6WKO7k2BHiw7UAwma1eoG1z2NzkAU/+fkyhA==", - "requires": { - "fast-url-parser": "^1.1.3", - "pino": "^6.13.0", - "pino-std-serializers": "^4.0.0" - }, - "dependencies": { - "pino-std-serializers": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", - "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==" - } - } - }, - "pino-pretty": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-6.0.0.tgz", - "integrity": "sha512-jyeR2fXXWc68st1DTTM5NhkHlx8p+1fKZMfm84Jwq+jSw08IwAjNaZBZR6ts69hhPOfOjg/NiE1HYW7vBRPL3A==", - "requires": { - "@hapi/bourne": "^2.0.0", - "args": "^5.0.1", - "colorette": "^1.3.0", - "dateformat": "^4.5.1", - "fast-safe-stringify": "^2.0.7", - "jmespath": "^0.15.0", - "joycon": "^3.0.0", - "pump": "^3.0.0", - "readable-stream": "^3.6.0", - "rfdc": "^1.3.0", - "split2": "^3.1.1", - "strip-json-comments": "^3.1.1" - } - }, - "pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true }, "pirates": { "version": "4.0.1", @@ -5014,137 +5533,62 @@ "node-modules-regexp": "^1.0.0" } }, - "pkg-conf": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", - "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", - "requires": { - "find-up": "^3.0.0", - "load-json-file": "^5.2.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^4.0.0" + "find-up": "^2.1.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 - }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + "prettier": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } }, "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.6.tgz", + "integrity": "sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.6", "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", + "ansi-styles": "^5.0.0", "react-is": "^17.0.1" - } - }, - "probot": { - "version": "11.4.1", - "resolved": "https://registry.npmjs.org/probot/-/probot-11.4.1.tgz", - "integrity": "sha512-kxNImVNZIheWtDUFbQSp0F1Qb7EEi4MvZRtKFBQPS3GSklC+u4oqnILfH4GsmXs0g+brrIX7g8qf/SUyDkw2sw==", - "requires": { - "@octokit/core": "^3.2.4", - "@octokit/plugin-enterprise-compatibility": "^1.2.8", - "@octokit/plugin-paginate-rest": "^2.6.2", - "@octokit/plugin-rest-endpoint-methods": "^5.0.1", - "@octokit/plugin-retry": "^3.0.6", - "@octokit/plugin-throttling": "^3.3.4", - "@octokit/types": "^6.1.1", - "@octokit/webhooks": "7.21.0", - "@probot/get-private-key": "^1.1.0", - "@probot/octokit-plugin-config": "^1.0.0", - "@probot/pino": "^2.2.0", - "@types/express": "^4.17.9", - "@types/ioredis": "^4.17.8", - "@types/pino": "^6.3.4", - "@types/pino-http": "^5.0.6", - "@types/update-notifier": "^5.0.0", - "commander": "^6.2.0", - "deepmerge": "^4.2.2", - "deprecation": "^2.3.1", - "dotenv": "^8.2.0", - "eventsource": "^1.0.7", - "express": "^4.17.1", - "hbs": "^4.1.1", - "ioredis": "^4.19.2", - "js-yaml": "^3.14.1", - "lru-cache": "^6.0.0", - "octokit-auth-probot": "^1.2.2", - "pino": "^6.7.0", - "pino-http": "^5.3.0", - "pkg-conf": "^3.1.0", - "resolve": "^1.19.0", - "semver": "^7.3.4", - "update-dotenv": "^1.1.1", - "update-notifier": "^5.0.1", - "uuid": "^8.3.2" }, "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } + "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 } } }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, "prompts": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", @@ -5155,101 +5599,24 @@ "sisteransi": "^1.0.5" } }, - "propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "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==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", "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==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "pupa": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "requires": { - "escape-goat": "^2.0.0" - } + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true }, "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "quick-format-unescaped": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz", - "integrity": "sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg==" - }, - "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==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", + "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "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==" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - } + "side-channel": "^1.0.4" } }, "react-is": { @@ -5259,126 +5626,20 @@ "dev": true }, "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.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" - } - }, - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "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 - } - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "redis-commands": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.7.0.tgz", - "integrity": "sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==" - }, - "redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=" - }, - "redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=", - "requires": { - "redis-errors": "^1.0.0" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "requires": { - "rc": "^1.2.8" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, - "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=", + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, "require-directory": { @@ -5387,23 +5648,18 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "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==", + "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 }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", + "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", + "dev": true, "requires": { - "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } }, @@ -5414,308 +5670,55 @@ "dev": true, "requires": { "resolve-from": "^5.0.0" + }, + "dependencies": { + "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-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=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "requires": { - "lowercase-keys": "^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==", + "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==" - }, "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" - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true - }, - "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==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "dev": true, - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "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": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "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": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "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": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "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" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } + "dev": true, + "requires": { + "glob": "^7.1.3" } }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "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 + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, "saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", @@ -5728,118 +5731,9 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "requires": { - "semver": "^6.3.0" - } - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "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": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "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": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "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.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5855,13 +5749,6 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true - }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -5870,12 +5757,20 @@ "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", "object-inspect": "^1.9.0" + }, + "dependencies": { + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + } } }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true }, "sisteransi": { "version": "1.0.5", @@ -5889,214 +5784,48 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "smee-client": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/smee-client/-/smee-client-1.2.2.tgz", - "integrity": "sha512-RFV54aJOgj0jeBGFR5hBZ/QqxYO4Vuz7GmceJyAYnT5eigkBe5DiZUx9t9izpKHMXYk3TEiyKVW1Aa8eeKsIvQ==", - "dev": true, - "requires": { - "commander": "^2.19.0", - "eventsource": "^1.0.7", - "morgan": "^1.9.1", - "superagent": "^5.0.2", - "validator": "^10.11.0" - }, - "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 - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "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" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.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" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "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": { - "is-descriptor": "^0.1.0" + "color-convert": "^2.0.1" } }, - "extend-shallow": { + "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "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": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "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": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "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": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "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": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "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==", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "color-name": "~1.1.4" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "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 } } }, - "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": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "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": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sonic-boom": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.2.1.tgz", - "integrity": "sha512-4qhnWEJWLQtzs9xidi4IxI56H3drhedMyzeFv4BjiH4nenXf8xBkkbUsI/RO+8GD8Qi3cc3vzZah+y/U15w6AQ==", - "requires": { - "atomic-sleep": "^1.0.0" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "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" - } + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, "source-map-support": { "version": "0.5.19", @@ -6108,16 +5837,10 @@ "source-map": "^0.6.0" } }, - "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==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -6125,15 +5848,15 @@ } }, "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==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -6141,32 +5864,16 @@ } }, "spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "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" - } - }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "requires": { - "readable-stream": "^3.0.0" - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, "stack-utils": { "version": "2.0.3", @@ -6175,96 +5882,16 @@ "dev": true, "requires": { "escape-string-regexp": "^2.0.0" - } - }, - "standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" - }, - "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": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "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": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "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": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "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": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "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": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "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==", + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true } } }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -6276,27 +5903,105 @@ } }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } }, - "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==", + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", + "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "dev": true, "requires": { - "safe-buffer": "~5.2.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.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==" + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", + "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", + "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", + "dev": true + }, + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } } } }, @@ -6304,20 +6009,23 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, "requires": { "ansi-regex": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + } } }, "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, "strip-final-newline": { @@ -6329,59 +6037,16 @@ "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - }, - "superagent": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.3.1.tgz", - "integrity": "sha512-wjJ/MoTid2/RuGCOFtlacyGNxN9QLMgcpYLDQlWFIhhdJ93kNscFonGvrpAHSCVjRVj++DGCglocF7Aej1KHvQ==", - "dev": true, - "requires": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.2", - "debug": "^4.1.1", - "fast-safe-stringify": "^2.0.7", - "form-data": "^3.0.0", - "formidable": "^1.2.2", - "methods": "^1.1.2", - "mime": "^2.4.6", - "qs": "^6.9.4", - "readable-stream": "^3.6.0", - "semver": "^7.3.2" - }, - "dependencies": { - "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true - }, - "qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "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==", + "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": "^4.0.0" + "has-flag": "^3.0.0" } }, "supports-hyperlinks": { @@ -6392,18 +6057,70 @@ "requires": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" + }, + "dependencies": { + "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 + }, + "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" + } + } } }, + "svg-element-attributes": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/svg-element-attributes/-/svg-element-attributes-1.3.1.tgz", + "integrity": "sha512-Bh05dSOnJBf3miNMqpsormfNtfidA/GxQVakhtn0T4DECWKeXQRQUceYjJ+OxYiiLdGe4Jo9iFV8wICFapFeIA==", + "dev": true + }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" + "table": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", + "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", + "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 + } + } }, "terminal-link": { "version": "2.1.1", @@ -6426,10 +6143,16 @@ "minimatch": "^3.0.4" } }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, "throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", "dev": true }, "tmpl": { @@ -6444,43 +6167,6 @@ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, - "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": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, - "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" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -6490,11 +6176,6 @@ "is-number": "^7.0.0" } }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, "tough-cookie": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", @@ -6504,14 +6185,6 @@ "psl": "^1.1.33", "punycode": "^2.1.1", "universalify": "^0.1.2" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - } } }, "tr46": { @@ -6521,26 +6194,18 @@ "dev": true, "requires": { "punycode": "^2.1.1" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - } } }, "ts-jest": { - "version": "26.5.6", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.6.tgz", - "integrity": "sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA==", + "version": "27.0.3", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.3.tgz", + "integrity": "sha512-U5rdMjnYam9Ucw+h0QvtNDbc5+88nxt7tbIvqaZUhFrfG4+SkWhMXjejCLVGcpILTPuV+H3W/GZDZrnZFpPeXw==", "dev": true, "requires": { "bs-logger": "0.x", "buffer-from": "1.x", "fast-json-stable-stringify": "2.x", - "jest-util": "^26.1.0", + "jest-util": "^27.0.0", "json5": "2.x", "lodash": "4.x", "make-error": "1.x", @@ -6560,10 +6225,43 @@ } } }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } }, "tunnel": { "version": "0.0.6", @@ -6586,20 +6284,11 @@ "dev": true }, "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==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "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==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, "typed-rest-client": { "version": "1.8.6", "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.6.tgz", @@ -6608,80 +6297,28 @@ "qs": "^6.9.1", "tunnel": "0.0.6", "underscore": "^1.12.1" - }, - "dependencies": { - "qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", - "requires": { - "side-channel": "^1.0.4" - } - } } }, "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": "4.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.2.tgz", - "integrity": "sha512-gzP+t5W4hdy4c+68bfcv0t400HVJMMd2+H9B7gae1nQlBzCqvrXX+6GL/b3GAgyTH966pzrZ70/fRjwAtZksSQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, - "uglify-js": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.1.tgz", - "integrity": "sha512-JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g==", - "optional": true - }, "underscore": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==" }, - "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": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - } - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universal-github-app-jwt": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/universal-github-app-jwt/-/universal-github-app-jwt-1.1.0.tgz", - "integrity": "sha512-3b+ocAjjz4JTyqaOT+NNBd5BtTuvJTxWElIoeHSVelUV9J3Jp7avmQTdLKCaoqi/5Ox2o/q+VK19TJ233rVXVQ==", - "requires": { - "@types/jsonwebtoken": "^8.3.3", - "jsonwebtoken": "^8.5.1" - } - }, "universal-user-agent": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", @@ -6693,170 +6330,25 @@ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "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": { - "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": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "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": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "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": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "update-dotenv": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-dotenv/-/update-dotenv-1.1.1.tgz", - "integrity": "sha512-3cIC18In/t0X/yH793c00qqxcKD8jVCgNOPif/fGQkFpYMGecM9YAc+kaAKXuZsM2dE9I9wFI7KvAuNX22SGMQ==" - }, - "update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "requires": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "boxen": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz", - "integrity": "sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.0", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - } - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - }, - "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==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url-parse": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "^2.0.0" + "punycode": "^2.1.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, "v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz", + "integrity": "sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -6882,17 +6374,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "validator": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz", - "integrity": "sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -6911,14 +6392,6 @@ "xml-name-validator": "^3.0.0" } }, - "walk": { - "version": "2.3.14", - "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.14.tgz", - "integrity": "sha512-5skcWAUmySj6hkBdH6B6+3ddMjVQYH5Qy9QGbPmN8kVmLteXk+yVXg+yfk1nbX30EYakahLrr8iPcCxJQSCBeg==", - "requires": { - "foreachasync": "^3.0.0" - } - }, "walker": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", @@ -6969,40 +6442,47 @@ "isexe": "^2.0.0" } }, - "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 - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.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 }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, "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==", + "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 + } } }, "wrappy": { @@ -7014,6 +6494,7 @@ "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", @@ -7022,16 +6503,11 @@ } }, "ws": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.4.tgz", - "integrity": "sha512-zP9z6GXm6zC27YtspwH99T3qTG7bBFv2VIkeHstMLrLlDJuzA7tQ5ls3OJ1hOGGCzTQPniNJoHXIAOS0Jljohg==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", "dev": true }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" - }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", @@ -7045,45 +6521,30 @@ "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==", + "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==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "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" - }, - "dependencies": { - "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, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } }, "yargs-parser": { diff --git a/package.json b/package.json index 8eb1457..5646a47 100644 --- a/package.json +++ b/package.json @@ -4,33 +4,44 @@ "private": true, "description": "Integrates GitHub with Azure DevOps via ChatOps", "author": "Philip Gai ", - "license": "ISC", + "license": "MIT", "homepage": "https://github.com/philip-gai/github-ado-chatops", "keywords": [ "probot", "github", "probot-app" ], + "main": "lib/main.js", "scripts": { "build": "tsc", - "start": "probot run ./lib/index.js", + "format": "prettier --write **/*.ts", + "format-check": "prettier --check **/*.ts", + "lint": "eslint src/**/*.ts", + "package": "ncc build --source-map --license licenses.txt", "test": "jest", - "lint": "tsc --noEmit -p ." + "all": "npm run build && npm run format && npm run lint && npm run package && npm test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/philip-gai/github-ado-chatops.git" }, "dependencies": { - "azure-devops-node-api": "^11.0.1", - "probot": "^11.0.1" + "@actions/core": "^1.4.0", + "@actions/github": "^5.0.0", + "@octokit/rest": "^18.10.0", + "azure-devops-node-api": "^11.0.1" }, "devDependencies": { - "@types/jest": "^26.0.19", - "@types/node": "^14.14.19", - "jest": "^26.6.3", - "nock": "^13.0.5", - "smee-client": "^1.2.2", - "ts-jest": "^26.4.4", + "@types/node": "^16.3.3", + "@typescript-eslint/parser": "^4.28.3", + "@vercel/ncc": "^0.29.0", + "eslint": "^7.31.0", + "eslint-plugin-github": "^4.1.1", + "eslint-plugin-jest": "^24.3.6", + "jest": "^27.0.6", + "js-yaml": "^4.1.0", + "prettier": "2.2.1", + "ts-jest": "^27.0.3", "typescript": "^4.1.3" - }, - "engines": { - "node": ">= 10.13.0" } } diff --git a/scripts/test-pat.sh b/scripts/test-pat.sh deleted file mode 100755 index 0460454..0000000 --- a/scripts/test-pat.sh +++ /dev/null @@ -1,7 +0,0 @@ -# https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=preview-page#use-a-pat -ADO_PAT=PAT_HERE -ADO_ORG=philip-gai -ADO_PROJECT=github-ado-chatops -ADO_REPO=github-ado-chatops -B64_PAT=$(printf "%s"":$ADO_PAT" | base64) -git -c http.extraHeader="Authorization: Basic ${B64_PAT}" clone "https://dev.azure.com/${ADO_ORG}/${ADO_PROJECT}/_git/${ADO_REPO}" diff --git a/src/azureDevOpsClient.ts b/src/azureDevOpsClient.ts index ded0971..6673fd9 100644 --- a/src/azureDevOpsClient.ts +++ b/src/azureDevOpsClient.ts @@ -1,126 +1,117 @@ -import * as azdev from "azure-devops-node-api"; -import { IGitApi } from "azure-devops-node-api/GitApi"; -import { GitRepository, GitRefUpdate, GitRefUpdateResult } from "azure-devops-node-api/interfaces/GitInterfaces"; -import { Context } from "probot"; -import { Config, IAppConfig } from "./config"; +import { Context } from '@actions/github/lib/context'; +import * as core from '@actions/core'; +import * as azdev from 'azure-devops-node-api'; +import { IGitApi } from 'azure-devops-node-api/GitApi'; +import { GitRepository, GitRefUpdate, GitRefUpdateResult } from 'azure-devops-node-api/interfaces/GitInterfaces'; +import { Config, IAppConfig } from './config'; export class AzureDevOpsClient { - - private _appConfig: IAppConfig = Config.defaultAppConfig; - private _context: Context; - private _azDevClient: azdev.WebApi; - - private constructor(context: Context, appConfig: IAppConfig, azDevClient: azdev.WebApi) { - this._context = context; - this._appConfig = appConfig; - this._azDevClient = azDevClient; - } - - static async build(context: Context): Promise { - const appConfig = (await Config.build(context)).appConfig; - const orgUrl = `https://${appConfig.ado_instance}/${appConfig.ado_org}`; - context.log.debug(`orgUrl: ${orgUrl}`); - const authHandler = azdev.getPersonalAccessTokenHandler(appConfig.ado_pat); - const azDevClient = new azdev.WebApi(orgUrl, authHandler); - return new AzureDevOpsClient(context, appConfig, azDevClient); - } - - async createBranch(branchName: string, sourceBranch?: string): Promise { - try { - this._context.log.debug('Getting the ADO git API...'); - const gitClient = await this._azDevClient.getGitApi(); - this._context.log.debug('Getting repo...'); - const repo = await this.getRepo(gitClient); - this._context.log.debug('Got it.'); - - let sourceBranchFinal = `heads/${sourceBranch}`; - if (!sourceBranch) { - this._context.log.debug('Getting the default branch in ADO...'); - sourceBranchFinal = this.getDefaultBranch(repo); - this._context.log.debug('Got it...'); - } - const result = await this.createBranchInner(gitClient, repo, sourceBranchFinal, branchName); - return result; - } - catch (error: any) { - this._context.log.error(`POST to create branch [${branchName}] has failed`); - throw new Error(`POST to create branch [${branchName}] has failed`); - } - } - - async deleteBranch(refName?: string, refObjectId?: string) { - const gitClient = await this._azDevClient.getGitApi(); - - const gitRefUpdates: GitRefUpdate[] = [ - { - oldObjectId: refObjectId, - newObjectId: new Array(41).join('0'), - name: refName - } - ]; - - // create a new branch from the source - const updateResults = await gitClient.updateRefs( - gitRefUpdates, - this._appConfig.ado_repo, - this._appConfig.ado_project - ); - const refDeleteResult = updateResults[0]; - - return refDeleteResult; - } - - getBranchUrl(branchName: string) { - const uriEncodedBranchName = encodeURIComponent(branchName); - return `https://${this._appConfig.ado_instance}/${this._appConfig.ado_org}/${this._appConfig.ado_project}/_git/${this._appConfig.ado_repo}?version=GB${uriEncodedBranchName}`; + private _appConfig: IAppConfig = Config.defaultAppConfig; + private _context: Context; + private _azDevClient: azdev.WebApi; + + private constructor(context: Context, appConfig: IAppConfig, azDevClient: azdev.WebApi) { + this._context = context; + this._appConfig = appConfig; + this._azDevClient = azDevClient; + } + + static async build(context: Context): Promise { + const appConfig = (await Config.build()).appConfig; + const orgUrl = `https://${appConfig.ado_domain}/${appConfig.ado_org}`; + core.debug(`orgUrl: ${orgUrl}`); + const authHandler = azdev.getPersonalAccessTokenHandler(appConfig.ado_pat); + const azDevClient = new azdev.WebApi(orgUrl, authHandler); + return new AzureDevOpsClient(context, appConfig, azDevClient); + } + + async createBranch(branchName: string, sourceBranch?: string): Promise { + try { + core.debug('Getting the ADO git API...'); + const gitClient = await this._azDevClient.getGitApi(); + core.debug('Getting repo...'); + const repo = await this.getRepo(gitClient); + core.debug('Got it.'); + + let sourceBranchFinal = sourceBranch; + if (!sourceBranchFinal) { + core.debug('Getting the default branch in ADO...'); + sourceBranchFinal = this.getDefaultBranch(repo); + core.debug('Got it...'); + } + const result = await this.createBranchInner(gitClient, repo, sourceBranchFinal, branchName); + return result; + } catch (error: unknown) { + core.error(`POST to create branch [${branchName}] has failed`); + throw new Error(`POST to create branch [${branchName}] has failed`); } - - private async createBranchInner(gitClient: IGitApi, repo: GitRepository, sourceBranch: string, branchName: string) { - this._context.log.debug(`Creating branch from ${sourceBranch}.`); - - this._context.log.debug(`Getting ${sourceBranch} refs...`); - const gitRefs = await gitClient.getRefs(repo.id as string, this._appConfig.ado_project, sourceBranch); - const sourceRef = gitRefs[0]; - this._context.log.debug("Got 'em."); - - const gitRefUpdates: GitRefUpdate[] = [ - { - oldObjectId: new Array(41).join('0'), - newObjectId: sourceRef.objectId, - name: `refs/heads/${branchName}` - } - ]; - - // create a new branch from the source - this._context.log.debug("Creating the branch..."); - const updateResults = await gitClient.updateRefs( - gitRefUpdates, - this._appConfig.ado_repo, - this._appConfig.ado_project - ); - const refCreateResult = updateResults[0]; - - this._context.log.info(`project ${this._appConfig.ado_project}, repo ${repo.name}, source branch ${sourceRef.name}`); - this._context.log.info(`new branch ${refCreateResult.name} (success=${refCreateResult.success} status=${refCreateResult.updateStatus})`); - - return refCreateResult; + } + + async deleteBranch(refName?: string, refObjectId?: string): Promise { + const gitClient = await this._azDevClient.getGitApi(); + + const gitRefUpdates: GitRefUpdate[] = [ + { + oldObjectId: refObjectId, + newObjectId: new Array(41).join('0'), + name: refName + } + ]; + + // create a new branch from the source + const updateResults = await gitClient.updateRefs(gitRefUpdates, this._appConfig.ado_repo, this._appConfig.ado_project); + const refDeleteResult = updateResults[0]; + + return refDeleteResult; + } + + getBranchUrl(branchName: string): string { + const uriEncodedBranchName = encodeURIComponent(branchName); + return `https://${this._appConfig.ado_domain}/${this._appConfig.ado_org}/${this._appConfig.ado_project}/_git/${this._appConfig.ado_repo}?version=GB${uriEncodedBranchName}`; + } + + private async createBranchInner(gitClient: IGitApi, repo: GitRepository, sourceBranch: string, branchName: string): Promise { + core.debug(`Creating branch from ${sourceBranch}.`); + + core.debug(`Getting ${sourceBranch} refs...`); + const gitRefs = await gitClient.getRefs(repo.id as string, this._appConfig.ado_project, sourceBranch); + const sourceRef = gitRefs[0]; + core.debug("Got 'em."); + + const gitRefUpdates: GitRefUpdate[] = [ + { + oldObjectId: new Array(41).join('0'), + newObjectId: sourceRef.objectId, + name: `refs/heads/${branchName}` + } + ]; + + // create a new branch from the source + core.debug('Creating the branch...'); + const updateResults = await gitClient.updateRefs(gitRefUpdates, this._appConfig.ado_repo, this._appConfig.ado_project); + const refCreateResult = updateResults[0]; + + core.info(`project ${this._appConfig.ado_project}, repo ${repo.name}, source branch ${sourceRef.name}`); + core.info(`new branch ${refCreateResult.name} (success=${refCreateResult.success} status=${refCreateResult.updateStatus})`); + + return refCreateResult; + } + + private getDefaultBranch(repo: GitRepository): string { + const defaultBranch = repo.defaultBranch?.replace('refs/', ''); + if (!defaultBranch) { + core.error(`${defaultBranch} does not exist`); + throw new Error(`${defaultBranch} does not exist`); } - - private getDefaultBranch(repo: GitRepository) { - const defaultBranch = repo.defaultBranch?.replace('refs/', ''); - if (!defaultBranch) { - console.error(`${defaultBranch} does not exist`); - throw new Error(`${defaultBranch} does not exist`); - } - return defaultBranch; - } - - private async getRepo(gitClient: IGitApi) { - const repo = await gitClient.getRepository(this._appConfig.ado_repo, this._appConfig.ado_project); - if (!repo.id) { - console.error(`Repo ${this._appConfig.ado_repo} does not exist in project ${this._appConfig.ado_project}`); - throw new Error(`Repo ${this._appConfig.ado_repo} does not exist in project ${this._appConfig.ado_project}`); - } - return repo; + return defaultBranch; + } + + private async getRepo(gitClient: IGitApi): Promise { + const repo = await gitClient.getRepository(this._appConfig.ado_repo, this._appConfig.ado_project); + if (!repo.id) { + core.error(`Repo ${this._appConfig.ado_repo} does not exist in project ${this._appConfig.ado_project}`); + throw new Error(`Repo ${this._appConfig.ado_repo} does not exist in project ${this._appConfig.ado_project}`); } -} \ No newline at end of file + return repo; + } +} diff --git a/src/chatOpService.ts b/src/chatOpService.ts index 6fd2df0..ae5ebbe 100644 --- a/src/chatOpService.ts +++ b/src/chatOpService.ts @@ -1,120 +1,123 @@ -import { Context } from "probot"; -import { AzureDevOpsClient } from "./azureDevOpsClient"; -import { EventPayloads } from "@octokit/webhooks" +import * as core from '@actions/core'; +import * as github from '@actions/github'; +import { Context } from '@actions/github/lib/context'; +import { Octokit } from '@octokit/rest'; +import { AzureDevOpsClient } from './azureDevOpsClient'; export class ChatOpService { - private static createBranchChatOpCommands = ['/create-branch-ado', '/cb-ado'] + private static createBranchChatOpCommands = ['/create-branch-ado', '/cb-ado']; - private _adoClient: AzureDevOpsClient; + private _adoClient: AzureDevOpsClient; - private static usernameParameter = 'username'; + private static usernameParameter = 'username'; - private static branchParameter = 'branch'; + private static branchParameter = 'branch'; - // Maximum number of bytes in a git branch is 250 - // Therefore, trim branch name to 62 characters (assuming 32-bit/4-byte Unicode) => 238 bytes - // (https://stackoverflow.com/questions/60045157/what-is-the-maximum-length-of-a-github-branch-name) - maxNumOfChars = 62; - static sourceBranch: string; + // Maximum number of bytes in a git branch is 250 + // Therefore, trim branch name to 62 characters (assuming 32-bit/4-byte Unicode) => 238 bytes + // (https://stackoverflow.com/questions/60045157/what-is-the-maximum-length-of-a-github-branch-name) + maxNumOfChars = 62; + static sourceBranch: string; + private _octokit: Octokit; - private constructor(adoClient: AzureDevOpsClient) { - this._adoClient = adoClient; - } + private constructor(octokit: Octokit, adoClient: AzureDevOpsClient) { + this._octokit = octokit; + this._adoClient = adoClient; + } - static async build(context: Context): Promise { - const adoClient = await AzureDevOpsClient.build(context); - return new ChatOpService(adoClient); - } + static async build(context: Context): Promise { + const adoClient = await AzureDevOpsClient.build(context); + const githubToken = core.getInput('GITHUB_TOKEN'); + const octokit = github.getOctokit(githubToken) as Octokit; + return new ChatOpService(octokit, adoClient); + } - private static containsChatOpCommand(comment: string, chatOps: string[]) { - return chatOps.includes(comment.trim()); - } + private static containsChatOpCommand(comment: string, chatOps: string[]): boolean { + return chatOps.includes(comment.trim()); + } - async tryCreateBranch(context: Context): Promise { - const comment = context.payload.comment.body; - - // Check if the comment contains any createBranchChatCommands - context.log.debug(comment.trim()); - if (!ChatOpService.containsChatOpCommand(comment.split(' ')[0], ChatOpService.createBranchChatOpCommands)) { - context.log.debug(`Comment ${context.payload.comment.url} does not contain createBranchChatOps`) - return false; - } - - let username = context.payload.comment.user.login; - context.log.debug(`username: ${username}`); - - // Check for username parameter - if (comment.includes(ChatOpService.usernameParameter)) { - username = this.parseParameter(comment, ChatOpService.usernameParameter); - } - - // Check for branch parameter - let sourceBranch: string | undefined; - if (comment.includes(ChatOpService.branchParameter)) { - sourceBranch = this.parseParameter(comment, ChatOpService.branchParameter); - } - - // Build the branch name from the issue title - const branchName = this.createBranchName(username, context.payload.issue.number, context.payload.issue.title); - context.log.info(`built branch name string: ${branchName}`); - - const issue = context.issue(); - - // Create the branch in ADO - try { - this._adoClient.createBranch(branchName, sourceBranch) - } catch (e: any) { - // Create a comment that a failure occured - const errorMessage = `Branch [${branchName}] was unable to be created in Azure DevOps" ${e}`; - context.log.error(errorMessage); - - await context.octokit.issues.createComment({ - issue_number: issue.issue_number as number, - owner: issue.owner, - repo: issue.repo, - body: errorMessage - }); - return false; - } - - // Create a comment with a link to the newly created branch - const result = `Branch [${branchName}](${this._adoClient.getBranchUrl(branchName)}) has been created in Azure DevOps` - - await context.octokit.issues.createComment({ - issue_number: issue.issue_number as number, - owner: issue.owner, - repo: issue.repo, - body: result - }); - - return true; - } + async tryCreateBranch(context: Context): Promise { + const comment = context.payload.comment?.body; - createBranchName(username: string, issueNum: number, issueTitle: string): string { - let branchString = issueNum + '-' + issueTitle; + // Check if the comment contains any createBranchChatCommands + core.debug(comment.trim()); + if (!ChatOpService.containsChatOpCommand(comment.split(' ')[0], ChatOpService.createBranchChatOpCommands)) { + core.debug(`Comment ${context.payload.comment?.url} does not contain createBranchChatOps`); + return false; + } - branchString = `users/${this.makeGitSafe(username)}/${this.makeGitSafe(branchString)}`; + let username = context.payload.comment?.user.login; + core.debug(`username: ${username}`); - return branchString.substr(0, this.maxNumOfChars); + // Check for username parameter + if (comment.includes(ChatOpService.usernameParameter)) { + username = this.parseParameter(comment, ChatOpService.usernameParameter); } - makeGitSafe(s: string): string { - const replacementChar = '-'; - const regexp = /(?![-/])[\W]+/g; - const result = s.replace(regexp, replacementChar).replace(/[/]+$/, ''); - - return result; + // Check for branch parameter + let sourceBranch: string | undefined; + if (comment.includes(ChatOpService.branchParameter)) { + sourceBranch = this.parseParameter(comment, ChatOpService.branchParameter); } - parseParameter(comment: string, parameter: string): string { - let commentArr = comment.trim().split(' '); - let paramIdx = commentArr.findIndex(x => x == parameter); - // Check we're still in bounds - if ((paramIdx + 1) < commentArr.length) { - return commentArr[paramIdx + 1]; - } - // TODO: throw error? - return ''; + // Build the branch name from the issue title + const branchName = this.createBranchName(username, context.payload.issue?.number || -1, context.payload.issue?.title); + core.info(`built branch name string: ${branchName}`); + + const issue = context.issue; + + // Create the branch in ADO + try { + this._adoClient.createBranch(branchName, sourceBranch); + } catch (e: unknown) { + // Create a comment that a failure occured + const errorMessage = `Branch [${branchName}] was unable to be created in Azure DevOps" ${e}`; + core.error(errorMessage); + + await this._octokit.issues.createComment({ + issue_number: issue.number, + owner: issue.owner, + repo: issue.repo, + body: errorMessage + }); + return false; + } + // Create a comment with a link to the newly created branch + const result = `Branch [${branchName}](${this._adoClient.getBranchUrl(branchName)}) has been created in Azure DevOps`; + + await this._octokit.rest.issues.createComment({ + issue_number: issue.number, + owner: issue.owner, + repo: issue.repo, + body: result + }); + + return true; + } + + createBranchName(username: string, issueNum: number, issueTitle: string): string { + let branchString = `${issueNum}-${issueTitle}`; + branchString = `users/${this.makeGitSafe(username)}/${this.makeGitSafe(branchString)}`; + return branchString.substr(0, this.maxNumOfChars); + } + + makeGitSafe(s: string): string { + const replacementChar = '-'; + const regexp = /(?![-/])[\W]+/g; + const result = s.replace(regexp, replacementChar).replace(/[/]+$/, ''); + + return result; + } + + parseParameter(comment: string, parameter: string): string { + const commentArr = comment.trim().split(' '); + const paramIdx = commentArr.findIndex(x => x === parameter); + // Check we're still in bounds + if (paramIdx + 1 < commentArr.length) { + return commentArr[paramIdx + 1]; } -} \ No newline at end of file + // TODO: throw error? + return ''; + } +} diff --git a/src/config.ts b/src/config.ts index e6e83ff..dbf21a4 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,95 +1,80 @@ -import { Context } from "probot" -import { env } from "process"; +import * as core from '@actions/core'; export class Config { - static defaultAppConfig: IAppConfig = { - ado_instance: 'dev.azure.com', - ado_org: '', - ado_pat: '', - ado_pat_secret_name: 'ADO_PAT', - ado_project: '', - ado_repo: '' - } - appConfig: IAppConfig = Config.defaultAppConfig; + static defaultAppConfig: IAppConfig = { + ado_domain: 'dev.azure.com', + ado_org: '', + ado_pat: '', + ado_project: '', + ado_repo: '' + }; + appConfig: IAppConfig = Config.defaultAppConfig; - private constructor(appConfig: IAppConfig) { - this.appConfig = appConfig; - } + private constructor(appConfig: IAppConfig) { + this.appConfig = appConfig; + } - static async build(context: Context) { - const loadedConfig = await this.loadConfig(context); - const config = Config.mergeDefaults(loadedConfig); - const errorMessages = Config.validateConfig(config); - if (errorMessages.length > 0) { - const errorStr = errorMessages.join('\n'); - context.log.error(errorStr); - throw new Error(errorStr); - } - if (config.ado_pat_secret_name) { - config.ado_pat = await Config.getSecret(/*config.ado_pat_secret_name, config.ado_org, config.ado_repo, context*/); - if (!config.ado_pat) { - context.log.error(`No repo secret named ${config.ado_pat_secret_name} was found`); - throw new Error(`No repo secret named ${config.ado_pat_secret_name} was found`); - } - } - return new Config(config); + static async build(): Promise { + const loadedConfig = this.loadConfig(); + const config = Config.mergeDefaults(loadedConfig); + const errorMessages = Config.validateConfig(config); + if (errorMessages.length > 0) { + const errorStr = errorMessages.join('\n'); + core.error(errorStr); + throw new Error(errorStr); } + return new Config(config); + } - private static mergeDefaults(loadedConfig: IAppConfig): IAppConfig { - return { - ado_instance: loadedConfig.ado_instance || Config.defaultAppConfig.ado_instance, - ado_org: loadedConfig.ado_org, - ado_pat: loadedConfig.ado_pat, - ado_pat_secret_name: loadedConfig.ado_pat_secret_name || Config.defaultAppConfig.ado_pat_secret_name, - ado_project: loadedConfig.ado_project, - ado_repo: loadedConfig.ado_repo - }; - } + private static mergeDefaults(loadedConfig: IAppConfig): IAppConfig { + return { + ado_domain: loadedConfig.ado_domain || Config.defaultAppConfig.ado_domain, + ado_org: loadedConfig.ado_org, + ado_pat: loadedConfig.ado_pat, + ado_project: loadedConfig.ado_project, + ado_repo: loadedConfig.ado_repo + }; + } - private static validateConfig(config: IAppConfig | undefined): string[] { - let errorMessages: string[] = []; - if (!config) { - errorMessages.push('No config was found. Please put a config in your repo under .github/github-ado-chatops.yml'); - } else { - // There are better ways to do this but I'm being lazy - if (!config.ado_instance) errorMessages.push('No ado_org was found. Please add it to the app config in .github/github-ado-chatops.yml'); - if (!config.ado_org) errorMessages.push('No ado_org was found. Please add it to the app config in .github/github-ado-chatops.yml'); - if (!config.ado_pat_secret_name) errorMessages.push('No ado_pat_secret_name was found. Please add it to the app config in .github/github-ado-chatops.yml'); - if (!config.ado_project) errorMessages.push('No ado_project was found. Please add it to the app config in .github/github-ado-chatops.yml'); - if (!config.ado_repo) errorMessages.push('No ado_repo was found. Please add it to the app config in .github/github-ado-chatops.yml'); - } - return errorMessages; - } + private static validateConfig(config: IAppConfig): string[] { + const errorMessages: string[] = []; + // There are better ways to do this but I'm being lazy + if (!config.ado_domain) errorMessages.push('No ado_org was found. Check your inputs'); + if (!config.ado_org) errorMessages.push('No ado_org was found. Check your inputs'); + if (!config.ado_pat) errorMessages.push('No ado_pat was found. Check your inputs'); + if (!config.ado_project) errorMessages.push('No ado_project was found. Check your inputs'); + if (!config.ado_repo) errorMessages.push('No ado_repo was found. Check your inputs'); + return errorMessages; + } - private static loadConfig = async (context: Context) => { - try { - let loadedConfig = - await context.config('github-ado-chatops.yml') || - await context.config('github-ado-chatops.yaml'); - return loadedConfig || Config.defaultAppConfig; - } catch (e: any) { - context.log.error(`Exception while parsing app config yaml: ${e.message}`); - throw new Error(`Exception while parsing app config yaml: ${e.message}`); - } - } + private static loadConfig = (): IAppConfig => { + const ado_domain = core.getInput('ado_domain'); + const ado_org = core.getInput('ado_org'); + const ado_project = core.getInput('ado_project'); + const ado_repo = core.getInput('ado_repo'); + const ado_pat = core.getInput('ado_pat'); - // NOTE: This is misleading - this does not get the secret value at any point - private static async getSecret(/*secretName: string, org: string, repo: string, context: Context*/): Promise { - // const response = await context.octokit.rest.actions.getRepoSecret({ - // owner: org, - // repo: repo, - // secret_name: secretName - // }); - // return response.data.name; - return env.ADO_PAT || ''; - } + // debug is only output if you set the secret `ACTIONS_RUNNER_DEBUG` to true + core.debug(`ado_domain: ${ado_domain}!`); + core.debug(`ado_org: ${ado_org}!`); + core.debug(`ado_project: ${ado_project}!`); + core.debug(`ado_repo: ${ado_repo}!`); + core.debug(`ado_pat: ${ado_pat}!`); + + return { + ado_domain, + ado_org, + ado_project, + ado_repo, + ado_pat + }; + }; } export interface IAppConfig { - ado_instance: string - ado_org: string; - ado_project: string; - ado_repo: string; - ado_pat_secret_name: string; - ado_pat: string; + ado_domain: string; + ado_org: string; + ado_project: string; + ado_repo: string; + ado_pat: string; } diff --git a/src/index.ts b/src/index.ts deleted file mode 100644 index 4cf34a5..0000000 --- a/src/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Probot } from "probot"; -import { IssueCommentHandler } from "./issueCommentHandler"; - -export = (app: Probot) => { - app.on("issue_comment.created", IssueCommentHandler.onCreated); -}; diff --git a/src/issueCommentHandler.ts b/src/issueCommentHandler.ts deleted file mode 100644 index 32e8520..0000000 --- a/src/issueCommentHandler.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Probot, Context } from "probot"; -import { ChatOpService } from "./chatOpService"; -import { EventPayloads } from "@octokit/webhooks" -import { AzureDevOpsClient } from "./azureDevOpsClient"; - -export class IssueCommentHandler { - static onCreated = async (context: Context) => { - const chatOpService = await ChatOpService.build(context); - chatOpService.tryCreateBranch(context); - } -} \ No newline at end of file diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..fedd38a --- /dev/null +++ b/src/main.ts @@ -0,0 +1,18 @@ +import * as core from '@actions/core'; +import * as github from '@actions/github'; +import { ChatOpService } from './chatOpService'; + +async function run(): Promise { + try { + const context = github.context; + + if (context.eventName === 'issue_comment.created') { + const chatOpService = await ChatOpService.build(context); + chatOpService.tryCreateBranch(context); + } + } catch (error) { + core.setFailed(error.message); + } +} + +run(); diff --git a/test/azureDevOpsClient.test.ts b/test/azureDevOpsClient.test.ts deleted file mode 100644 index a311db3..0000000 --- a/test/azureDevOpsClient.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { AzureDevOpsClient } from "../src/azureDevOpsClient"; -import { Config } from "../src/config"; -import { TestUtils } from "./testUtils"; - -describe("Azure DevOps Client Integration Tests", () => { - let probot: any; - TestUtils.setupTestApp(probot, true); - - const config = new Config(); - const adoClient = new AzureDevOpsClient(probot, config.ado); - - test("creates and deletes a branch", async () => { - const createResult = await adoClient.createBranch('users/github-ado-chatops-tests/create-branch-in-ado-test'); - expect(createResult.success).toBe(true); - - const deleteResult = await adoClient.deleteBranch(createResult.name, createResult.newObjectId); - expect(deleteResult.success).toBe(true); - }); - - test("gets the link to the branch", () => { - const url = adoClient.getBranchUrl('users/philip-gai/1234-test-branch'); - expect(url).toBe('https://dev.azure.com/philip-gai/github-ado-chatops/_git/github-ado-chatops?version=GBusers%2Fphilip-gai%2F1234-test-branch'); - }); -}); \ No newline at end of file diff --git a/test/chatOpService.test.ts b/test/chatOpService.test.ts deleted file mode 100644 index 228521d..0000000 --- a/test/chatOpService.test.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { ChatOpService } from "../src/chatOpService"; -import { AzureDevOpsClient } from "../src/azureDevOpsClient"; -import { Config } from "../src/config"; -import { TestUtils } from "./testUtils"; - -describe("Chat Op Service", () => { - let probot: any; - TestUtils.setupTestApp(probot, true); - - const config = new Config(); - const adoClient = new AzureDevOpsClient(probot, config.ado); - const chatOpService = new ChatOpService(probot, adoClient); - - test("make sure branch name doesn't include [ or ]", async () => { - const branchName = await chatOpService.createBranchName('jdoe', '1234','[ADO] This is an issue'); - expect(branchName).toBe('users/jdoe/1234--ADO-This-is-an-issue'); - }); - - test("make sure branch name doesn't include :", async () => { - const branchName = await chatOpService.createBranchName('jdoe','1234','ADO: This is an issue'); - expect(branchName).toBe('users/jdoe/1234-ADO-This-is-an-issue'); - }); - - test("make sure branch name doesn't include ~", async () => { - const branchName = await chatOpService.createBranchName('jdoe','1234','ADO~ This is an issue'); - expect(branchName).toBe('users/jdoe/1234-ADO-This-is-an-issue'); - }); - - test("make sure branch name doesn't include ^", async () => { - const branchName = await chatOpService.createBranchName('jdoe','1234','ADO^ This is an issue'); - expect(branchName).toBe('users/jdoe/1234-ADO-This-is-an-issue'); - }); - - test("make sure branch name doesn't include ?", async () => { - const branchName = await chatOpService.createBranchName('jdoe','1234','ADO? This is an issue'); - expect(branchName).toBe('users/jdoe/1234-ADO-This-is-an-issue'); - }); - - test("make sure branch name doesn't include *", async () => { - const branchName = await chatOpService.createBranchName('jdoe','1234','ADO* This is an issue'); - expect(branchName).toBe('users/jdoe/1234-ADO-This-is-an-issue'); - }); - - test("make sure branch name doesn't include '\'", async () => { - const branchName = await chatOpService.createBranchName('jdoe','1234','ADO\ This is an issue'); - expect(branchName).toBe('users/jdoe/1234-ADO-This-is-an-issue'); - }); - - test("make sure branch name doesn't exceed 62 chars", async () => { - const branchName = await chatOpService.createBranchName('jdoe','1234','ADO: This is an issue that has a very long description that will take up a lot of bytes'); - expect(branchName.length).toBe(chatOpService.maxNumOfChars); - }); - - test("testing username parsing with /create-branch-ado", async () => { - const username = chatOpService.parseParameter('/create-branch-ado username jdoe', 'username'); - expect(username).toBe('jdoe'); - }); - - test("testing username parsing with no username provided", async () => { - const username = chatOpService.parseParameter('/create-branch-ado username', 'username'); - expect(username).toBe(''); - }); - - test("testing username parsing with non gitsafe username", async () => { - const branchName = await chatOpService.createBranchName('j?d*e','1234','ADO\ This is an issue'); - expect(branchName).toBe('users/j-d-e/1234-ADO-This-is-an-issue'); - }); - -}); \ No newline at end of file diff --git a/test/fixtures/issues.opened.json b/test/fixtures/issues.opened.json deleted file mode 100644 index 54e55f1..0000000 --- a/test/fixtures/issues.opened.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "action": "opened", - "issue": { - "number": 1, - "user": { - "login": "philip-gai" - } - }, - "repository": { - "name": "github-ado-chatops", - "owner": { - "login": "philip-gai" - } - }, - "installation": { - "id": 2 - } -} diff --git a/test/fixtures/mock-cert.pem b/test/fixtures/mock-cert.pem deleted file mode 100644 index f2f271c..0000000 --- a/test/fixtures/mock-cert.pem +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAli7V49NdZe+XYC1pLaHM0te8kiDmZBJ1u2HJHN8GdbROB6NO -VpC3xK7NxQn6xpvZ9ux20NvcDvGle+DOptZztBH+np6h2jZQ1/kD1yG1eQvVH4th -/9oqHuIjmIfO8lIe4Hyd5Fw5xHkGqVETTGR+0c7kdZIlHmkOregUGtMYZRUi4YG+ -q0w+uFemiHpGKXbeCIAvkq7aIkisEzvPWfSyYdA6WJHpxFk7tD7D8VkzABLVRHCq -AuyqPG39BhGZcGLXx5rGK56kDBJkyTR1t3DkHpwX+JKNG5UYNwOG4LcQj1fteeta -TdkYUMjIyWbanlMYyC+dq7B5fe7el99jXQ1gXwIDAQABAoIBADKfiPOpzKLOtzzx -MbHzB0LO+75aHq7+1faayJrVxqyoYWELuB1P3NIMhknzyjdmU3t7S7WtVqkm5Twz -lBUC1q+NHUHEgRQ4GNokExpSP4SU63sdlaQTmv0cBxmkNarS6ZuMBgDy4XoLvaYX -MSUf/uukDLhg0ehFS3BteVFtdJyllhDdTenF1Nb1rAeN4egt8XLsE5NQDr1szFEG -xH5lb+8EDtzgsGpeIddWR64xP0lDIKSZWst/toYKWiwjaY9uZCfAhvYQ1RsO7L/t -sERmpYgh+rAZUh/Lr98EI8BPSPhzFcSHmtqzzejvC5zrZPHcUimz0CGA3YBiLoJX -V1OrxmECgYEAxkd8gpmVP+LEWB3lqpSvJaXcGkbzcDb9m0OPzHUAJDZtiIIf0UmO -nvL68/mzbCHSj+yFjZeG1rsrAVrOzrfDCuXjAv+JkEtEx0DIevU1u60lGnevOeky -r8Be7pmymFB9/gzQAd5ezIlTv/COgoO986a3h1yfhzrrzbqSiivw308CgYEAwecI -aZZwqH3GifR+0+Z1B48cezA5tC8LZt5yObGzUfxKTWy30d7lxe9N59t0KUVt/QL5 -qVkd7mqGzsUMyxUN2U2HVnFTWfUFMhkn/OnCnayhILs8UlCTD2Xxoy1KbQH/9FIr -xf0pbMNJLXeGfyRt/8H+BzSZKBw9opJBWE4gqfECgYBp9FdvvryHuBkt8UQCRJPX -rWsRy6pY47nf11mnazpZH5Cmqspv3zvMapF6AIxFk0leyYiQolFWvAv+HFV5F6+t -Si1mM8GCDwbA5zh6pEBDewHhw+UqMBh63HSeUhmi1RiOwrAA36CO8i+D2Pt+eQHv -ir52IiPJcs4BUNrv5Q1BdwKBgBHgVNw3LGe8QMOTMOYkRwHNZdjNl2RPOgPf2jQL -d/bFBayhq0jD/fcDmvEXQFxVtFAxKAc+2g2S8J67d/R5Gm/AQAvuIrsWZcY6n38n -pfOXaLt1x5fnKcevpFlg4Y2vM4O416RHNLx8PJDehh3Oo/2CSwMrDDuwbtZAGZok -icphAoGBAI74Tisfn+aeCZMrO8KxaWS5r2CD1KVzddEMRKlJvSKTY+dOCtJ+XKj1 -OsZdcDvDC5GtgcywHsYeOWHldgDWY1S8Z/PUo4eK9qBXYBXp3JEZQ1dqzFdz+Txi -rBn2WsFLsxV9j2/ugm0PqWVBcU2bPUCwvaRu3SOms2teaLwGCkhr ------END RSA PRIVATE KEY----- diff --git a/test/index.test.ts b/test/index.test.ts deleted file mode 100644 index f58eba5..0000000 --- a/test/index.test.ts +++ /dev/null @@ -1,74 +0,0 @@ -// You can import your modules -// import index from '../src/index' - -import nock from "nock"; -// Requiring our app implementation -import myProbotApp from "../src"; -import { Probot, ProbotOctokit } from "probot"; -// Requiring our fixtures -import payload from "./fixtures/issues.opened.json"; -const issueCreatedBody = { body: "Thanks for opening this issue!" }; -const fs = require("fs"); -const path = require("path"); - -const privateKey = fs.readFileSync( - path.join(__dirname, "fixtures/mock-cert.pem"), - "utf-8" -); - -describe.skip("My Probot app", () => { - let probot: any; - - beforeEach(() => { - nock.disableNetConnect(); - probot = new Probot({ - appId: 123, - privateKey, - // disable request throttling and retries for testing - Octokit: ProbotOctokit.defaults({ - retry: { enabled: false }, - throttle: { enabled: false }, - }), - }); - // Load our app into probot - probot.load(myProbotApp); - }); - - test("creates a comment when an issue is opened", async (done) => { - const mock = nock("https://api.github.com") - // Test that we correctly return a test token - .post("/app/installations/2/access_tokens") - .reply(200, { - token: "test", - permissions: { - issues: "write", - }, - }) - - // Test that a comment is posted - .post("/repos/hiimbex/testing-things/issues/1/comments", (body: any) => { - done(expect(body).toMatchObject(issueCreatedBody)); - return true; - }) - .reply(200); - - // Receive a webhook event - await probot.receive({ name: "issues", payload }); - - expect(mock.pendingMocks()).toStrictEqual([]); - }); - - afterEach(() => { - nock.cleanAll(); - nock.enableNetConnect(); - }); -}); - -// For more information about testing with Jest see: -// https://facebook.github.io/jest/ - -// For more information about using TypeScript in your tests, Jest recommends: -// https://github.com/kulshekhar/ts-jest - -// For more information about testing with Nock see: -// https://github.com/nock/nock diff --git a/test/testUtils.ts b/test/testUtils.ts deleted file mode 100644 index dd255ef..0000000 --- a/test/testUtils.ts +++ /dev/null @@ -1,40 +0,0 @@ -import nock from "nock"; -// Requiring our app implementation -import myProbotApp from "../src"; -import { Probot, ProbotOctokit } from "probot"; -// Requiring our fixtures -import fs from "fs"; -import path from "path"; - -const privateKey = fs.readFileSync( - path.join(__dirname, "fixtures/mock-cert.pem"), - "utf-8" -); - -export class TestUtils { - static setupTestApp = (probot: any, enableNetConnect: boolean = false) => { - beforeEach(() => { - if(!enableNetConnect) { - nock.disableNetConnect(); - } - probot = new Probot({ - appId: 123, - privateKey, - // disable request throttling and retries for testing - Octokit: ProbotOctokit.defaults({ - retry: { enabled: false }, - throttle: { enabled: false }, - }), - }); - // Load our app into probot - probot.load(myProbotApp); - }); - } - - static cleanupMocks = () => { - afterEach(() => { - nock.cleanAll(); - nock.enableNetConnect(); - }); - } -} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index bd91bba..f6e7cb5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,74 +1,12 @@ { "compilerOptions": { - /* Basic Options */ - "incremental": true /* Enable incremental compilation */, - "target": "es5" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, - "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, - "lib": [ - "es2015", - "es2017" - ] /* Specify library files to be included in the compilation. */, - "allowJs": true /* Allow javascript files to be compiled. */, - "checkJs": true /* Report errors in .js files. */, - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - "declaration": true /* Generates corresponding '.d.ts' file. */, - // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ - "sourceMap": true /* Generates corresponding '.map' file. */, - // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "./lib" /* Redirect output structure to the directory. */, - // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./" /* Specify file to store incremental compilation information */, - // "removeComments": true, /* Do not emit comments to output. */ - // "noEmit": true, /* Do not emit outputs. */ - // "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true /* Enable all strict type-checking options. */, - // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* Enable strict null checks. */ - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ - - /* Additional Checks */ - "noUnusedLocals": false /* Report errors on unused locals. */, - "noUnusedParameters": true /* Report errors on unused parameters. */, - "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, - "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, - - /* Module Resolution Options */ - "moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */, - // "baseUrl": "./src" /* Base directory to resolve non-absolute module names. */, - // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - // "types": [], /* Type declaration files to be included in compilation. */ - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - - /* Experimental Options */ - // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - - /* Advanced Options */ - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */, - "resolveJsonModule": true, - "pretty": false, - "skipLibCheck": true + "target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ + "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ + "outDir": "./lib", /* Redirect output structure to the directory. */ + "rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ + "strict": true, /* Enable all strict type-checking options. */ + "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ }, - "include": ["src/"], - "compileOnSave": false + "exclude": ["node_modules", "**/*.test.ts"] } From 7da29a72d35bff52014e3239aa0f14477025f36b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Sep 2021 03:32:30 +0000 Subject: [PATCH 03/17] Bump @typescript-eslint/parser from 4.28.3 to 4.30.0 Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.28.3 to 4.30.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.30.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 99 ++++++++++++++++++++++++++++++++++++++++++++--- package.json | 2 +- 2 files changed, 94 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 738b4aa..80823d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1528,17 +1528,58 @@ } }, "@typescript-eslint/parser": { - "version": "4.28.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.3.tgz", - "integrity": "sha512-ZyWEn34bJexn/JNYvLQab0Mo5e+qqQNhknxmc8azgNd4XqspVYR5oHq9O11fLwdZMRcj4by15ghSlIEq+H5ltQ==", + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.30.0.tgz", + "integrity": "sha512-HJ0XuluSZSxeboLU7Q2VQ6eLlCwXPBOGnA7CqgBnz2Db3JRQYyBDJgQnop6TZ+rsbSx5gEdWhw4rE4mDa1FnZg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.28.3", - "@typescript-eslint/types": "4.28.3", - "@typescript-eslint/typescript-estree": "4.28.3", + "@typescript-eslint/scope-manager": "4.30.0", + "@typescript-eslint/types": "4.30.0", + "@typescript-eslint/typescript-estree": "4.30.0", "debug": "^4.3.1" }, "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.30.0.tgz", + "integrity": "sha512-VJ/jAXovxNh7rIXCQbYhkyV2Y3Ac/0cVHP/FruTJSAUUm4Oacmn/nkN5zfWmWFEanN4ggP0vJSHOeajtHq3f8A==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.30.0", + "@typescript-eslint/visitor-keys": "4.30.0" + } + }, + "@typescript-eslint/types": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.30.0.tgz", + "integrity": "sha512-YKldqbNU9K4WpTNwBqtAerQKLLW/X2A/j4yw92e3ZJYLx+BpKLeheyzoPfzIXHfM8BXfoleTdiYwpsvVPvHrDw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.30.0.tgz", + "integrity": "sha512-6WN7UFYvykr/U0Qgy4kz48iGPWILvYL34xXJxvDQeiRE018B7POspNRVtAZscWntEPZpFCx4hcz/XBT+erenfg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.30.0", + "@typescript-eslint/visitor-keys": "4.30.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.30.0.tgz", + "integrity": "sha512-pNaaxDt/Ol/+JZwzP7MqWc8PJQTUhZwoee/PVlQ+iYoYhagccvoHnC9e4l+C/krQYYkENxznhVSDwClIbZVxRw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.30.0", + "eslint-visitor-keys": "^2.0.0" + } + }, "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", @@ -1547,6 +1588,30 @@ "requires": { "ms": "2.1.2" } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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" + } } } }, @@ -3231,6 +3296,28 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, + "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" + }, + "dependencies": { + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + } + } + }, "graceful-fs": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", diff --git a/package.json b/package.json index 5646a47..407d76a 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ }, "devDependencies": { "@types/node": "^16.3.3", - "@typescript-eslint/parser": "^4.28.3", + "@typescript-eslint/parser": "^4.30.0", "@vercel/ncc": "^0.29.0", "eslint": "^7.31.0", "eslint-plugin-github": "^4.1.1", From 3b263946d9626a5bd4cc5d6eda1a86f8bd8e0054 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Sep 2021 03:32:46 +0000 Subject: [PATCH 04/17] Bump eslint from 7.31.0 to 7.32.0 Bumps [eslint](https://github.com/eslint/eslint) from 7.31.0 to 7.32.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v7.31.0...v7.32.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 30 +++++++++++++++--------------- package.json | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 738b4aa..1123d86 100644 --- a/package-lock.json +++ b/package-lock.json @@ -505,9 +505,9 @@ } }, "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -2448,9 +2448,9 @@ } }, "eslint": { - "version": "7.31.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.31.0.tgz", - "integrity": "sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA==", + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", @@ -2514,9 +2514,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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", @@ -2578,9 +2578,9 @@ } }, "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -3122,9 +3122,9 @@ } }, "flatted": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", - "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", "dev": true }, "form-data": { diff --git a/package.json b/package.json index 5646a47..805bf2e 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@types/node": "^16.3.3", "@typescript-eslint/parser": "^4.28.3", "@vercel/ncc": "^0.29.0", - "eslint": "^7.31.0", + "eslint": "^7.32.0", "eslint-plugin-github": "^4.1.1", "eslint-plugin-jest": "^24.3.6", "jest": "^27.0.6", From d53ffca7e6f30db134c15cc8a94e049fa8a45261 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Sep 2021 07:39:29 +0000 Subject: [PATCH 05/17] Bump @actions/core from 1.4.0 to 1.5.0 Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.4.0 to 1.5.0. - [Release notes](https://github.com/actions/toolkit/releases) - [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md) - [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core) --- updated-dependencies: - dependency-name: "@actions/core" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index b589fa6..ea8eb8c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,9 @@ "requires": true, "dependencies": { "@actions/core": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.4.0.tgz", - "integrity": "sha512-CGx2ilGq5i7zSLgiiGUtBCxhRRxibJYU6Fim0Q1Wg2aQL2LTnF27zbqZOrxfvFQ55eSBW0L8uVStgtKMpa0Qlg==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.5.0.tgz", + "integrity": "sha512-eDOLH1Nq9zh+PJlYLqEMkS/jLQxhksPNmUGNBHfa4G+tQmnIhzpctxmchETtVGyBOvXgOVVpYuE40+eS4cUnwQ==" }, "@actions/github": { "version": "5.0.0", diff --git a/package.json b/package.json index fd8e061..d9f420a 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "url": "git+https://github.com/philip-gai/github-ado-chatops.git" }, "dependencies": { - "@actions/core": "^1.4.0", + "@actions/core": "^1.5.0", "@actions/github": "^5.0.0", "@octokit/rest": "^18.10.0", "@octokit/webhooks-definitions": "^3.67.3", From 39d1f6e73fe17753698e00ad14cd60ba919a8b2b Mon Sep 17 00:00:00 2001 From: Philip Gai Date: Mon, 6 Sep 2021 03:01:19 +0000 Subject: [PATCH 06/17] Add permissions to workflows --- .github/workflows/ci.yml | 3 +++ .github/workflows/github-ado-chatops-local.yml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 70df022..b0fb8d2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,6 +8,9 @@ on: - develop - "releases/*" +permissions: + issues: write + jobs: build: runs-on: ubuntu-latest diff --git a/.github/workflows/github-ado-chatops-local.yml b/.github/workflows/github-ado-chatops-local.yml index cd9a577..068f78d 100644 --- a/.github/workflows/github-ado-chatops-local.yml +++ b/.github/workflows/github-ado-chatops-local.yml @@ -4,6 +4,9 @@ on: issue_comment: types: [created] +permissions: + issues: write + jobs: run-github-ado-chatops: runs-on: ubuntu-latest From 8a032f5bccf129e3e04112ce6d2f539925d52973 Mon Sep 17 00:00:00 2001 From: Philip Gai Date: Mon, 6 Sep 2021 03:49:23 +0000 Subject: [PATCH 07/17] Cleanup naming --- .github/workflows/ci.yml | 2 +- ...thub-ado-chatops-local.yml => github-ado-chatops-source.yml} | 2 +- action.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename .github/workflows/{github-ado-chatops-local.yml => github-ado-chatops-source.yml} (89%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b0fb8d2..d3458a3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: "CI: GitHub <> Azure DevOps ChatOps" +name: "CI - Azure DevOps ChatOps" on: pull_request: diff --git a/.github/workflows/github-ado-chatops-local.yml b/.github/workflows/github-ado-chatops-source.yml similarity index 89% rename from .github/workflows/github-ado-chatops-local.yml rename to .github/workflows/github-ado-chatops-source.yml index 068f78d..c96fa64 100644 --- a/.github/workflows/github-ado-chatops-local.yml +++ b/.github/workflows/github-ado-chatops-source.yml @@ -1,4 +1,4 @@ -name: "Source: Run GitHub <> Azure DevOps ChatOps" +name: "Run Azure DevOps ChatOps from Source" on: issue_comment: diff --git a/action.yml b/action.yml index 15ec54b..9bf1b3c 100644 --- a/action.yml +++ b/action.yml @@ -1,4 +1,4 @@ -name: "GitHub <> Azure DevOps ChatOps" +name: "Azure DevOps ChatOps" description: "Integrate GitHub with Azure DevOps via ChatOps" author: "philip-gai" inputs: From 3f473ed9dee46c98241209703e0733bda2e3120c Mon Sep 17 00:00:00 2001 From: Philip Gai Date: Mon, 6 Sep 2021 03:49:32 +0000 Subject: [PATCH 08/17] Create example .yml --- github-ado-chatops-example.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 github-ado-chatops-example.yml diff --git a/github-ado-chatops-example.yml b/github-ado-chatops-example.yml new file mode 100644 index 0000000..9d5d264 --- /dev/null +++ b/github-ado-chatops-example.yml @@ -0,0 +1,21 @@ +name: "Run Azure DevOps ChatOps" + +on: + issue_comment: + types: [created] + +permissions: + issues: write + +jobs: + run-github-ado-chatops: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: philip-gai/github-ado-chatops + with: + ado_org: philip-gai + ado_project: github-ado-chatops + ado_repo: github-ado-chatops + ado_pat: ${{ secrets.ADO_PAT }} + github_token: ${{ secrets.GITHUB_TOKEN }} From 7d6da0f23c9e956872843e426938b77d2ca54d9f Mon Sep 17 00:00:00 2001 From: Philip Gai Date: Mon, 6 Sep 2021 03:49:47 +0000 Subject: [PATCH 09/17] Begin updating README --- README.md | 107 +++--------------------------------------------------- 1 file changed, 6 insertions(+), 101 deletions(-) diff --git a/README.md b/README.md index 68d5d07..2dac2c3 100644 --- a/README.md +++ b/README.md @@ -1,105 +1,10 @@ -

- typescript-action status -

+# Azure DevOps ChatOps - GitHub Action -# Create a JavaScript Action using TypeScript +Integrate GitHub with Azure DevOps via ChatOps. -Use this template to bootstrap the creation of a TypeScript action.:rocket: -This template includes compilation support, tests, a validation workflow, publishing, and versioning guidance. +## ChatOp Commands -If you are new, there's also a simpler introduction. See the [Hello World JavaScript Action](https://github.com/actions/hello-world-javascript-action) - -## Create an action from this template - -Click the `Use this Template` and provide the new repo details for your action - -## Code in Main - -> First, you'll need to have a reasonably modern version of `node` handy. This won't work with versions older than 9, for instance. - -Install the dependencies -```bash -$ npm install -``` - -Build the typescript and package it for distribution -```bash -$ npm run build && npm run package -``` - -Run the tests :heavy_check_mark: -```bash -$ npm test - - PASS ./index.test.js - ✓ throws invalid number (3ms) - ✓ wait 500 ms (504ms) - ✓ test runs (95ms) - -... -``` - -## Change action.yml - -The action.yml contains defines the inputs and output for your action. - -Update the action.yml with your name, description, inputs and outputs for your action. - -See the [documentation](https://help.github.com/en/articles/metadata-syntax-for-github-actions) - -## Change the Code - -Most toolkit and CI/CD operations involve async operations so the action is run in an async function. - -```javascript -import * as core from '@actions/core'; -... - -async function run() { - try { - ... - } - catch (error) { - core.setFailed(error.message); - } -} - -run() -``` - -See the [toolkit documentation](https://github.com/actions/toolkit/blob/master/README.md#packages) for the various packages. - -## Publish to a distribution branch - -Actions are run from GitHub repos so we will checkin the packed dist folder. - -Then run [ncc](https://github.com/zeit/ncc) and push the results: -```bash -$ npm run package -$ git add dist -$ git commit -a -m "prod dependencies" -$ git push origin releases/v1 -``` - -Note: We recommend using the `--license` option for ncc, which will create a license file for all of the production node modules used in your project. - -Your action is now published! :rocket: - -See the [versioning documentation](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) - -## Validate - -You can now validate the action by referencing `./` in a workflow in your repo (see [test.yml](.github/workflows/test.yml)) - -```yaml -uses: ./ -with: - milliseconds: 1000 -``` - -See the [actions tab](https://github.com/actions/typescript-action/actions) for runs of this action! :rocket: - -## Usage: - -After testing you can [create a v1 tag](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md) to reference the stable and latest V1 action +| Command | Aliases | Description | Options | Context | +| ------------- | ------------- | ------------- | ------------- | ------------- | +| `/cb-ado` | `/create-branch-ado` | Creates a branch in Azure DevOps using information from the issue.
Default: `users/{githubUsername}/{issueNumber}-{issueName}-{issueTitle}`. |
  • `-username`: The username to use in your branch name.
    Default: GitHub username
  • `-branch`: The branch to branch from.
    Default: The default branch set in ADO
| Issues | From f85dacf11e8851b4cc699281fc1397f4b3c549b6 Mon Sep 17 00:00:00 2001 From: Philip Gai Date: Sun, 5 Sep 2021 23:11:02 -0500 Subject: [PATCH 10/17] Update README.md --- README.md | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2dac2c3..60f983f 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,47 @@ # Azure DevOps ChatOps - GitHub Action -Integrate GitHub with Azure DevOps via ChatOps. +Integrate GitHub with Azure DevOps via ChatOps. 🚀 +https://user-images.githubusercontent.com/17363579/132158303-25ba1283-7ffa-49b5-a7ab-f93643f45a9d.mov ## ChatOp Commands | Command | Aliases | Description | Options | Context | | ------------- | ------------- | ------------- | ------------- | ------------- | | `/cb-ado` | `/create-branch-ado` | Creates a branch in Azure DevOps using information from the issue.
Default: `users/{githubUsername}/{issueNumber}-{issueName}-{issueTitle}`. |
  • `-username`: The username to use in your branch name.
    Default: GitHub username
  • `-branch`: The branch to branch from.
    Default: The default branch set in ADO
| Issues | + +## Getting Started + +### Prerequisites +1. An Azure DevOps account and repository ([Start one for free](https://azure.microsoft.com/en-us/services/devops/)) + +### Usage +1. Create a personal access token (PAT) for your ADO repository ([Use personal access tokens](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?toc=%2Fazure%2Fdevops%2Forganizations%2Ftoc.json&bc=%2Fazure%2Fdevops%2Forganizations%2Fbreadcrumb%2Ftoc.json&view=azure-devops&tabs=preview-page)) +2. Create an encrypted secret named `ADO_PAT` in your GitHub repository with the ADO PAT token value ([Creating encrypted secrets for a repository](https://docs.github.com/en/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository)). +3. Create a workflow file in your GitHub repo with the path `.github/workflows/github-ado-chatops.yml` with the following: +``` +name: "Run Azure DevOps ChatOps" + +on: + issue_comment: + types: [created] + +permissions: + issues: write + +jobs: + run-github-ado-chatops: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: philip-gai/github-ado-chatops + with: + ado_org: philip-gai + ado_project: github-ado-chatops + ado_repo: github-ado-chatops + ado_pat: ${{ secrets.ADO_PAT }} + github_token: ${{ secrets.GITHUB_TOKEN }} +``` +4. You can now use ADO ChatOps in your GitHub repo! 🎉🎉🎉 + +## Feature Requests and Feedback From c9ce6c66665d0e3195a4e7a9e1f80080aeaccd16 Mon Sep 17 00:00:00 2001 From: Philip Gai Date: Sun, 5 Sep 2021 23:29:59 -0500 Subject: [PATCH 11/17] Update README.md --- README.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 60f983f..5a2d408 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # Azure DevOps ChatOps - GitHub Action -Integrate GitHub with Azure DevOps via ChatOps. 🚀 +Integrate GitHub with Azure DevOps via ChatOps! 🚀 -https://user-images.githubusercontent.com/17363579/132158303-25ba1283-7ffa-49b5-a7ab-f93643f45a9d.mov +https://user-images.githubusercontent.com/17363579/132159736-93355b49-f446-427e-a9fc-fb78c6b54938.mov ## ChatOp Commands @@ -45,3 +45,18 @@ jobs: 4. You can now use ADO ChatOps in your GitHub repo! 🎉🎉🎉 ## Feature Requests and Feedback +I would love to hear your feedback. Let me know if you've run into any bugs, or have any feature requests. + +### Feature Requests +1. [View enhancements and feature requests already in the backlog](https://github.com/philip-gai/github-ado-chatops/issues?q=is%3Aopen+is%3Aissue+label%3A%22feature+request%22%2Cenhancement) +2. [Create a feature request](https://github.com/philip-gai/github-ado-chatops/issues/new?assignees=&labels=feature+request&template=feature_request.md&title=) + +### Bugs +1. [View known issues](https://github.com/philip-gai/github-ado-chatops/issues?q=is%3Aopen+is%3Aissue+label%3Abug) +2. [Report a bug](https://github.com/philip-gai/github-ado-chatops/issues/new?assignees=&labels=bug&template=bug_report.md&title=) + +### Questions / Conversations +Do you have any questions? Want to just talk and ask me stuff? + +1. [View Discussions](https://github.com/philip-gai/github-ado-chatops/discussions) +2. [Start a new discussion!](https://github.com/philip-gai/github-ado-chatops/discussions/new) From a1e1c22bd8c0b22e8783c1065d434b52833bc28c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Sep 2021 04:51:13 +0000 Subject: [PATCH 12/17] Bump eslint-plugin-jest from 24.3.6 to 24.4.0 Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 24.3.6 to 24.4.0. - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v24.3.6...v24.4.0) --- updated-dependencies: - dependency-name: eslint-plugin-jest dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 144 +++++++++++++++++++++++++++++++++++++--------- package.json | 4 +- 2 files changed, 119 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index b589fa6..ebae19b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -505,9 +505,9 @@ } }, "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -1469,25 +1469,75 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.28.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.3.tgz", - "integrity": "sha512-zZYl9TnrxwEPi3FbyeX0ZnE8Hp7j3OCR+ELoUfbwGHGxWnHg9+OqSmkw2MoCVpZksPCZYpQzC559Ee9pJNHTQw==", + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.30.0.tgz", + "integrity": "sha512-K8RNIX9GnBsv5v4TjtwkKtqMSzYpjqAQg/oSphtxf3xxdt6T0owqnpojztjjTcatSteH3hLj3t/kklKx87NPqw==", "dev": true, "requires": { "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.28.3", - "@typescript-eslint/types": "4.28.3", - "@typescript-eslint/typescript-estree": "4.28.3", + "@typescript-eslint/scope-manager": "4.30.0", + "@typescript-eslint/types": "4.30.0", + "@typescript-eslint/typescript-estree": "4.30.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, "dependencies": { "@types/json-schema": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", - "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, + "@typescript-eslint/scope-manager": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.30.0.tgz", + "integrity": "sha512-VJ/jAXovxNh7rIXCQbYhkyV2Y3Ac/0cVHP/FruTJSAUUm4Oacmn/nkN5zfWmWFEanN4ggP0vJSHOeajtHq3f8A==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.30.0", + "@typescript-eslint/visitor-keys": "4.30.0" + } + }, + "@typescript-eslint/types": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.30.0.tgz", + "integrity": "sha512-YKldqbNU9K4WpTNwBqtAerQKLLW/X2A/j4yw92e3ZJYLx+BpKLeheyzoPfzIXHfM8BXfoleTdiYwpsvVPvHrDw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.30.0.tgz", + "integrity": "sha512-6WN7UFYvykr/U0Qgy4kz48iGPWILvYL34xXJxvDQeiRE018B7POspNRVtAZscWntEPZpFCx4hcz/XBT+erenfg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.30.0", + "@typescript-eslint/visitor-keys": "4.30.0", + "debug": "^4.3.1", + "globby": "^11.0.3", + "is-glob": "^4.0.1", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.30.0.tgz", + "integrity": "sha512-pNaaxDt/Ol/+JZwzP7MqWc8PJQTUhZwoee/PVlQ+iYoYhagccvoHnC9e4l+C/krQYYkENxznhVSDwClIbZVxRw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.30.0", + "eslint-visitor-keys": "^2.0.0" + } + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -1529,6 +1579,24 @@ "dev": true } } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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" + } } } }, @@ -2453,9 +2521,9 @@ } }, "eslint": { - "version": "7.31.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.31.0.tgz", - "integrity": "sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA==", + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", @@ -2519,9 +2587,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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", @@ -2583,9 +2651,9 @@ } }, "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -2832,9 +2900,9 @@ } }, "eslint-plugin-jest": { - "version": "24.3.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.3.6.tgz", - "integrity": "sha512-WOVH4TIaBLIeCX576rLcOgjNXqP+jNlCiEmRgFTfQtJ52DpwnIQKAVGlGPAN7CZ33bW6eNfHD6s8ZbEUTQubJg==", + "version": "24.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.4.0.tgz", + "integrity": "sha512-8qnt/hgtZ94E9dA6viqfViKBfkJwFHXgJmTWlMGDgunw1XJEGqm3eiPjDsTanM3/u/3Az82nyQM9GX7PM/QGmg==", "dev": true, "requires": { "@typescript-eslint/experimental-utils": "^4.0.1" @@ -3127,9 +3195,9 @@ } }, "flatted": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", - "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", "dev": true }, "form-data": { @@ -3236,6 +3304,28 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, + "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" + }, + "dependencies": { + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + } + } + }, "graceful-fs": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", diff --git a/package.json b/package.json index fd8e061..12294d6 100644 --- a/package.json +++ b/package.json @@ -36,9 +36,9 @@ "@types/node": "^16.3.3", "@typescript-eslint/parser": "^4.28.3", "@vercel/ncc": "^0.29.0", - "eslint": "^7.31.0", + "eslint": "^7.32.0", "eslint-plugin-github": "^4.1.1", - "eslint-plugin-jest": "^24.3.6", + "eslint-plugin-jest": "^24.4.0", "jest": "^27.0.6", "js-yaml": "^4.1.0", "prettier": "2.2.1", From cd2b4da2bc5d3e477ccf6d3b6218bf24674ecc6e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Sep 2021 04:51:28 +0000 Subject: [PATCH 13/17] Bump eslint-plugin-github from 4.1.1 to 4.2.0 Bumps [eslint-plugin-github](https://github.com/github/eslint-plugin-github) from 4.1.1 to 4.2.0. - [Release notes](https://github.com/github/eslint-plugin-github/releases) - [Commits](https://github.com/github/eslint-plugin-github/compare/v4.1.1...v4.2.0) --- updated-dependencies: - dependency-name: eslint-plugin-github dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 919 +++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 492 insertions(+), 429 deletions(-) diff --git a/package-lock.json b/package-lock.json index 249e862..b80b39b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1358,9 +1358,9 @@ } }, "@types/json-schema": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.3.tgz", - "integrity": "sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "@types/json5": { @@ -1403,68 +1403,107 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.7.0.tgz", - "integrity": "sha512-4OEcPON3QIx0ntsuiuFP/TkldmBGXf0uKxPQlGtS/W2F3ndYm8Vgdpj/woPJkzUc65gd3iR+qi3K8SDQP/obFg==", + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.30.0.tgz", + "integrity": "sha512-NgAnqk55RQ/SD+tZFD9aPwNSeHmDHHe5rtUyhIq0ZeCWZEvo4DK9rYz7v9HDuQZFvn320Ot+AikaCKMFKLlD0g==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "3.7.0", - "debug": "^4.1.1", + "@typescript-eslint/experimental-utils": "4.30.0", + "@typescript-eslint/scope-manager": "4.30.0", + "debug": "^4.3.1", "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "regexpp": "^3.1.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" }, "dependencies": { "@typescript-eslint/experimental-utils": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.7.0.tgz", - "integrity": "sha512-xpfXXAfZqhhqs5RPQBfAFrWDHoNxD5+sVB5A46TF58Bq1hRfVROrWHcQHHUM9aCBdy9+cwATcvCbRg8aIRbaHQ==", + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.30.0.tgz", + "integrity": "sha512-K8RNIX9GnBsv5v4TjtwkKtqMSzYpjqAQg/oSphtxf3xxdt6T0owqnpojztjjTcatSteH3hLj3t/kklKx87NPqw==", "dev": true, "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/types": "3.7.0", - "@typescript-eslint/typescript-estree": "3.7.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "@types/json-schema": "^7.0.7", + "@typescript-eslint/scope-manager": "4.30.0", + "@typescript-eslint/types": "4.30.0", + "@typescript-eslint/typescript-estree": "4.30.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.30.0.tgz", + "integrity": "sha512-VJ/jAXovxNh7rIXCQbYhkyV2Y3Ac/0cVHP/FruTJSAUUm4Oacmn/nkN5zfWmWFEanN4ggP0vJSHOeajtHq3f8A==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.30.0", + "@typescript-eslint/visitor-keys": "4.30.0" } }, "@typescript-eslint/types": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.7.0.tgz", - "integrity": "sha512-reCaK+hyKkKF+itoylAnLzFeNYAEktB0XVfSQvf0gcVgpz1l49Lt6Vo9x4MVCCxiDydA0iLAjTF/ODH0pbfnpg==", + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.30.0.tgz", + "integrity": "sha512-YKldqbNU9K4WpTNwBqtAerQKLLW/X2A/j4yw92e3ZJYLx+BpKLeheyzoPfzIXHfM8BXfoleTdiYwpsvVPvHrDw==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.7.0.tgz", - "integrity": "sha512-xr5oobkYRebejlACGr1TJ0Z/r0a2/HUf0SXqPvlgUMwiMqOCu/J+/Dr9U3T0IxpE5oLFSkqMx1FE/dKaZ8KsOQ==", + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.30.0.tgz", + "integrity": "sha512-6WN7UFYvykr/U0Qgy4kz48iGPWILvYL34xXJxvDQeiRE018B7POspNRVtAZscWntEPZpFCx4hcz/XBT+erenfg==", "dev": true, "requires": { - "@typescript-eslint/types": "3.7.0", - "@typescript-eslint/visitor-keys": "3.7.0", - "debug": "^4.1.1", - "glob": "^7.1.6", + "@typescript-eslint/types": "4.30.0", + "@typescript-eslint/visitor-keys": "4.30.0", + "debug": "^4.3.1", + "globby": "^11.0.3", "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "semver": "^7.3.5", + "tsutils": "^3.21.0" } }, "@typescript-eslint/visitor-keys": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.7.0.tgz", - "integrity": "sha512-k5PiZdB4vklUpUX4NBncn5RBKty8G3ihTY+hqJsCdMuD0v4jofI5xuqwnVcWxfv6iTm2P/dfEa2wMUnsUY8ODw==", + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.30.0.tgz", + "integrity": "sha512-pNaaxDt/Ol/+JZwzP7MqWc8PJQTUhZwoee/PVlQ+iYoYhagccvoHnC9e4l+C/krQYYkENxznhVSDwClIbZVxRw==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "@typescript-eslint/types": "4.30.0", + "eslint-visitor-keys": "^2.0.0" } }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } } } }, @@ -1834,50 +1873,16 @@ "dev": true }, "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", "is-string": "^1.0.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", - "dev": true - }, - "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - } } }, "array-union": { @@ -1887,49 +1892,14 @@ "dev": true }, "array.prototype.flat": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", "dev": true, "requires": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", - "dev": true - }, - "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - } + "es-abstract": "^1.18.0-next.1" } }, "astral-regex": { @@ -2269,12 +2239,6 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, "convert-source-map": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", @@ -2473,6 +2437,39 @@ "is-arrayish": "^0.2.1" } }, + "es-abstract": { + "version": "1.18.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", + "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -2732,65 +2729,50 @@ } }, "eslint-config-prettier": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz", - "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==", - "dev": true, - "requires": { - "get-stdin": "^6.0.0" - } + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", + "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", + "dev": true }, "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" + "debug": "^3.2.7", + "resolve": "^1.20.0" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", + "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", "dev": true, "requires": { - "debug": "^2.6.9", + "debug": "^3.2.7", "pkg-dir": "^2.0.0" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, @@ -2812,42 +2794,65 @@ } } }, - "eslint-plugin-github": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-github/-/eslint-plugin-github-4.1.1.tgz", - "integrity": "sha512-MzCh4P4zVvR/13AHtumzZ3znq0cbUE7lXehyBEpFURD/EHdx/+7qW+0c+ySTrteImpX9LGLJFTYNtu10BifkbQ==", + "eslint-plugin-filenames": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-filenames/-/eslint-plugin-filenames-1.3.2.tgz", + "integrity": "sha512-tqxJTiEM5a0JmRCUYQmxw23vtTxrb2+a3Q2mMOPhFxvt7ZQQJmdiuMby9B/vUAuVMghyP7oET+nIf6EO6CBd/w==", "dev": true, "requires": { - "@typescript-eslint/eslint-plugin": ">=2.25.0", - "@typescript-eslint/parser": ">=2.25.0", - "eslint-config-prettier": ">=6.10.1", - "eslint-plugin-eslint-comments": ">=3.0.1", - "eslint-plugin-import": ">=2.20.1", - "eslint-plugin-prettier": ">=3.1.2", + "lodash.camelcase": "4.3.0", + "lodash.kebabcase": "4.1.1", + "lodash.snakecase": "4.1.1", + "lodash.upperfirst": "4.3.1" + } + }, + "eslint-plugin-github": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-github/-/eslint-plugin-github-4.2.0.tgz", + "integrity": "sha512-YAzCgSKFpZK7e3YVBKNmsVqHG5+/+cFWXKx8gi2zj96vlFA665mHRhHAMTNuPQmY22Lx4c5Xq26KIRiVLQMmqQ==", + "dev": true, + "requires": { + "@typescript-eslint/eslint-plugin": "^4.20.0", + "@typescript-eslint/parser": "^4.20.0", + "eslint-config-prettier": ">=8.0.0", + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-filenames": "^1.3.2", + "eslint-plugin-i18n-text": "^1.0.1", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-no-only-tests": "^2.6.0", + "eslint-plugin-prettier": "^3.3.1", "eslint-rule-documentation": ">=1.0.0", - "prettier": ">=1.12.0", - "svg-element-attributes": ">=1.3.1" + "prettier": "^2.2.1", + "svg-element-attributes": "^1.3.1" } }, + "eslint-plugin-i18n-text": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-i18n-text/-/eslint-plugin-i18n-text-1.0.1.tgz", + "integrity": "sha512-3G3UetST6rdqhqW9SfcfzNYMpQXS7wNkJvp6dsXnjzGiku6Iu5hl3B0kmk6lIcFPwYjhQIY+tXVRtK9TlGT7RA==", + "dev": true + }, "eslint-plugin-import": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz", - "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==", + "version": "2.24.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", + "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", "dev": true, "requires": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.3", - "eslint-module-utils": "^2.6.0", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.6.2", + "find-up": "^2.0.0", "has": "^1.0.3", + "is-core-module": "^2.6.0", "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", - "tsconfig-paths": "^3.9.0" + "object.values": "^1.1.4", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" }, "dependencies": { "debug": { @@ -2860,13 +2865,21 @@ } }, "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "esutils": "^2.0.2" + } + }, + "is-core-module": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", + "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "dev": true, + "requires": { + "has": "^1.0.3" } }, "ms": { @@ -2874,25 +2887,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } } } }, @@ -2905,10 +2899,16 @@ "@typescript-eslint/experimental-utils": "^4.0.1" } }, + "eslint-plugin-no-only-tests": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-2.6.0.tgz", + "integrity": "sha512-T9SmE/g6UV1uZo1oHAqOvL86XWl7Pl2EpRpnLI8g/bkJu+h7XBCB+1LnubRZ2CUQXj805vh4/CYZdnqtVaEo2Q==", + "dev": true + }, "eslint-plugin-prettier": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz", - "integrity": "sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", + "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", "dev": true, "requires": { "prettier-linter-helpers": "^1.0.0" @@ -2921,12 +2921,12 @@ "dev": true }, "eslint-scope": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", - "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, @@ -2988,12 +2988,20 @@ } }, "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } } }, "estraverse": { @@ -3260,12 +3268,6 @@ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true - }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -3324,9 +3326,9 @@ } }, "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "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": { @@ -3337,6 +3339,12 @@ "function-bind": "^1.1.1" } }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -3348,6 +3356,23 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -3513,16 +3538,46 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, "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-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, "is-ci": { @@ -3544,10 +3599,13 @@ } }, "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-extglob": { "version": "2.1.1", @@ -3576,12 +3634,27 @@ "is-extglob": "^2.1.1" } }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "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-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -3593,6 +3666,16 @@ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", @@ -3600,18 +3683,29 @@ "dev": true }, "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } } }, "is-typedarray": { @@ -3620,12 +3714,6 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -5144,6 +5232,12 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "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-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -5188,14 +5282,14 @@ } }, "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", + "parse-json": "^4.0.0", + "pify": "^3.0.0", "strip-bom": "^3.0.0" } }, @@ -5215,24 +5309,48 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, "lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", + "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.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=", + "dev": true + }, "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, + "lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984=", + "dev": true + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -5415,9 +5533,9 @@ "dev": true }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", "dev": true }, "object-keys": { @@ -5427,63 +5545,26 @@ "dev": true }, "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", - "dev": true - }, - "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - } + "es-abstract": "^1.18.2" } }, "once": { @@ -5557,12 +5638,13 @@ } }, "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "parse5": { @@ -5596,12 +5678,12 @@ "dev": true }, "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^2.0.0" + "pify": "^3.0.0" } }, "picomatch": { @@ -5611,9 +5693,9 @@ "dev": true }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "pirates": { @@ -5634,6 +5716,15 @@ "find-up": "^2.1.0" } }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -5718,14 +5809,24 @@ "dev": true }, "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^2.0.0", + "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" } }, "regexpp": { @@ -5747,11 +5848,12 @@ "dev": true }, "resolve": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", - "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } }, @@ -5930,9 +6032,9 @@ } }, "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "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", @@ -5940,15 +6042,15 @@ } }, "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "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.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "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", @@ -5956,9 +6058,9 @@ } }, "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", + "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", "dev": true }, "sprintf-js": { @@ -6006,95 +6108,23 @@ } }, "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", - "dev": true - }, - "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - } + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", - "dev": true - }, - "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - } + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "strip-ansi": { @@ -6318,9 +6348,9 @@ } }, "tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz", + "integrity": "sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==", "dev": true, "requires": { "@types/json5": "^0.0.29", @@ -6347,9 +6377,9 @@ "dev": true }, "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "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" @@ -6406,6 +6436,26 @@ "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + } + } + }, "underscore": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", @@ -6534,6 +6584,19 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", diff --git a/package.json b/package.json index 669e706..2b4ed37 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "@typescript-eslint/parser": "^4.30.0", "@vercel/ncc": "^0.29.0", "eslint": "^7.32.0", - "eslint-plugin-github": "^4.1.1", + "eslint-plugin-github": "^4.2.0", "eslint-plugin-jest": "^24.3.6", "jest": "^27.0.6", "js-yaml": "^4.1.0", From 3613859a6851bac4f1b5945f3557a4fcac889008 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Sep 2021 04:51:30 +0000 Subject: [PATCH 14/17] Bump prettier from 2.2.1 to 2.3.2 Bumps [prettier](https://github.com/prettier/prettier) from 2.2.1 to 2.3.2. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/2.2.1...2.3.2) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 36 ++++++++++++++++++------------------ package.json | 4 ++-- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index b589fa6..d8f84a5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -505,9 +505,9 @@ } }, "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -2453,9 +2453,9 @@ } }, "eslint": { - "version": "7.31.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.31.0.tgz", - "integrity": "sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA==", + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", @@ -2519,9 +2519,9 @@ } }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "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", @@ -2583,9 +2583,9 @@ } }, "globals": { - "version": "13.10.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", - "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", + "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -3127,9 +3127,9 @@ } }, "flatted": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.1.tgz", - "integrity": "sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", + "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", "dev": true }, "form-data": { @@ -5554,9 +5554,9 @@ "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", "dev": true }, "prettier-linter-helpers": { diff --git a/package.json b/package.json index fd8e061..9b3302a 100644 --- a/package.json +++ b/package.json @@ -36,12 +36,12 @@ "@types/node": "^16.3.3", "@typescript-eslint/parser": "^4.28.3", "@vercel/ncc": "^0.29.0", - "eslint": "^7.31.0", + "eslint": "^7.32.0", "eslint-plugin-github": "^4.1.1", "eslint-plugin-jest": "^24.3.6", "jest": "^27.0.6", "js-yaml": "^4.1.0", - "prettier": "2.2.1", + "prettier": "2.3.2", "ts-jest": "^27.0.3", "typescript": "^4.1.3" } From fe40a8624e9c723b248332a2779a8bbf4412f571 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Sep 2021 04:51:30 +0000 Subject: [PATCH 15/17] Bump @types/node from 16.3.3 to 16.7.10 Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 16.3.3 to 16.7.10. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 249e862..0946d73 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1370,9 +1370,9 @@ "dev": true }, "@types/node": { - "version": "16.3.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.3.tgz", - "integrity": "sha512-8h7k1YgQKxKXWckzFCMfsIwn0Y61UK6tlD6y2lOb3hTOIMlK3t9/QwHOhc81TwU+RMf0As5fj7NPjroERCnejQ==", + "version": "16.7.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", + "integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==", "dev": true }, "@types/prettier": { diff --git a/package.json b/package.json index 669e706..fea5834 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "azure-devops-node-api": "^11.0.1" }, "devDependencies": { - "@types/node": "^16.3.3", + "@types/node": "^16.7.10", "@typescript-eslint/parser": "^4.30.0", "@vercel/ncc": "^0.29.0", "eslint": "^7.32.0", From 26b9048eabc8e62e8249990163cf371e13ff9e4a Mon Sep 17 00:00:00 2001 From: Philip Gai Date: Mon, 6 Sep 2021 05:39:31 +0000 Subject: [PATCH 16/17] Fix linting after dependabot updates --- .eslintrc.json | 11 ++- dist/index.js | 94 +++++++++++++++--------- dist/index.js.map | 2 +- package-lock.json | 98 -------------------------- package.json | 1 + src/{ActionEvent.ts => actionEvent.ts} | 0 src/azureDevOpsClient.ts | 8 +-- src/azureDevOpsService.ts | 2 +- src/chatOpService.ts | 2 +- src/{ChatOps.ts => chatOps.ts} | 1 - src/main.ts | 11 +-- 11 files changed, 84 insertions(+), 146 deletions(-) rename src/{ActionEvent.ts => actionEvent.ts} (100%) rename src/{ChatOps.ts => chatOps.ts} (90%) diff --git a/.eslintrc.json b/.eslintrc.json index c5a5485..84292b0 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,5 +1,5 @@ { - "plugins": ["jest", "@typescript-eslint"], + "plugins": ["jest", "@typescript-eslint", "filenames", "i18n-text"], "extends": ["plugin:github/recommended"], "parser": "@typescript-eslint/parser", "parserOptions": { @@ -43,11 +43,16 @@ "@typescript-eslint/restrict-plus-operands": "error", "semi": 2, "@typescript-eslint/type-annotation-spacing": "error", - "@typescript-eslint/unbound-method": "error" + "@typescript-eslint/unbound-method": "error", + "filenames/match-regex": 0, + "filenames/match-exported": 2, + "filenames/no-index": 2, + "i18n-text/no-en": 0 }, "env": { "node": true, "es6": true, "jest/globals": true } - } \ No newline at end of file + } + \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index feefc2c..277ef8a 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,25 +1,6 @@ require('./sourcemap-register.js');/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ -/***/ 4275: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.chatOps = exports.chatOpInfo = void 0; -const createBranchChatOpInfo = { - commands: ['/cb-ado', '/create-branch-ado'], - params: ['-branch', '-username'] -}; -const chatOpInfo = [createBranchChatOpInfo]; -exports.chatOpInfo = chatOpInfo; -const chatOps = createBranchChatOpInfo.commands; -exports.chatOps = chatOps; - - -/***/ }), - /***/ 7743: /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { @@ -55,8 +36,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.AzureDevOpsClient = void 0; -const core = __importStar(__nccwpck_require__(2186)); const azdev = __importStar(__nccwpck_require__(7967)); +const core = __importStar(__nccwpck_require__(2186)); const configService_1 = __nccwpck_require__(5460); class AzureDevOpsClient { constructor(appConfig, azDevClient) { @@ -259,7 +240,7 @@ exports.AzureDevOpsService = AzureDevOpsService; Object.defineProperty(exports, "__esModule", ({ value: true })); exports.ChatOpService = void 0; -const ChatOps_1 = __nccwpck_require__(4275); +const chatOps_1 = __nccwpck_require__(7118); class ChatOpService { constructor() { } static build() { @@ -267,11 +248,11 @@ class ChatOpService { } getChatOpCommand(comment) { const command = this.getCommandString(comment); - return ChatOps_1.chatOps.find(op => op === command) || 'None'; + return chatOps_1.chatOps.find(op => op === command) || 'None'; } getParameterValues(command, comment) { var _a; - const possibleParams = ((_a = ChatOps_1.chatOpInfo.find(info => info.commands.includes(command))) === null || _a === void 0 ? void 0 : _a.params) || []; + const possibleParams = ((_a = chatOps_1.chatOpInfo.find(info => info.commands.includes(command))) === null || _a === void 0 ? void 0 : _a.params) || []; if (possibleParams.length === 0) return {}; const paramValueMap = {}; @@ -298,6 +279,25 @@ class ChatOpService { exports.ChatOpService = ChatOpService; +/***/ }), + +/***/ 7118: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.chatOps = exports.chatOpInfo = void 0; +const createBranchChatOpInfo = { + commands: ['/cb-ado', '/create-branch-ado'], + params: ['-branch', '-username'] +}; +const chatOpInfo = [createBranchChatOpInfo]; +exports.chatOpInfo = chatOpInfo; +const chatOps = createBranchChatOpInfo.commands; +exports.chatOps = chatOps; + + /***/ }), /***/ 5460: @@ -454,10 +454,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge Object.defineProperty(exports, "__esModule", ({ value: true })); const core = __importStar(__nccwpck_require__(2186)); const github = __importStar(__nccwpck_require__(5438)); -const utils_1 = __nccwpck_require__(3030); -const chatOpService_1 = __nccwpck_require__(2842); const azureDevOpsService_1 = __nccwpck_require__(5054); +const chatOpService_1 = __nccwpck_require__(2842); const configService_1 = __nccwpck_require__(5460); +const utils_1 = __nccwpck_require__(3030); function run() { return __awaiter(this, void 0, void 0, function* () { try { @@ -658,7 +658,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }); }; Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0; +exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0; const command_1 = __nccwpck_require__(7351); const file_command_1 = __nccwpck_require__(717); const utils_1 = __nccwpck_require__(5278); @@ -836,19 +836,30 @@ exports.debug = debug; /** * Adds an error issue * @param message error issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. */ -function error(message) { - command_1.issue('error', message instanceof Error ? message.toString() : message); +function error(message, properties = {}) { + command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); } exports.error = error; /** - * Adds an warning issue + * Adds a warning issue * @param message warning issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. */ -function warning(message) { - command_1.issue('warning', message instanceof Error ? message.toString() : message); +function warning(message, properties = {}) { + command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); } exports.warning = warning; +/** + * Adds a notice issue + * @param message notice issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +function notice(message, properties = {}) { + command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +exports.notice = notice; /** * Writes info to log with console.log. * @param message info message @@ -982,7 +993,7 @@ exports.issueCommand = issueCommand; // We use any as a valid input type /* eslint-disable @typescript-eslint/no-explicit-any */ Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toCommandValue = void 0; +exports.toCommandProperties = exports.toCommandValue = void 0; /** * Sanitizes an input into a string so it can be passed into issueCommand safely * @param input input to sanitize into a string @@ -997,6 +1008,25 @@ function toCommandValue(input) { return JSON.stringify(input); } exports.toCommandValue = toCommandValue; +/** + * + * @param annotationProperties + * @returns The command properties to send with the actual annotation command + * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646 + */ +function toCommandProperties(annotationProperties) { + if (!Object.keys(annotationProperties).length) { + return {}; + } + return { + title: annotationProperties.title, + line: annotationProperties.startLine, + endLine: annotationProperties.endLine, + col: annotationProperties.startColumn, + endColumn: annotationProperties.endColumn + }; +} +exports.toCommandProperties = toCommandProperties; //# sourceMappingURL=utils.js.map /***/ }), diff --git a/dist/index.js.map b/dist/index.js.map index 04bd0dd..6055bc9 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../webpack://github-ado-chatops/./lib/ChatOps.js","../webpack://github-ado-chatops/./lib/azureDevOpsClient.js","../webpack://github-ado-chatops/./lib/azureDevOpsService.js","../webpack://github-ado-chatops/./lib/chatOpService.js","../webpack://github-ado-chatops/./lib/configService.js","../webpack://github-ado-chatops/./lib/main.js","../webpack://github-ado-chatops/./node_modules/@actions/core/lib/command.js","../webpack://github-ado-chatops/./node_modules/@actions/core/lib/core.js","../webpack://github-ado-chatops/./node_modules/@actions/core/lib/file-command.js","../webpack://github-ado-chatops/./node_modules/@actions/core/lib/utils.js","../webpack://github-ado-chatops/./node_modules/@actions/github/lib/context.js","../webpack://github-ado-chatops/./node_modules/@actions/github/lib/github.js","../webpack://github-ado-chatops/./node_modules/@actions/github/lib/internal/utils.js","../webpack://github-ado-chatops/./node_modules/@actions/github/lib/utils.js","../webpack://github-ado-chatops/./node_modules/@actions/http-client/index.js","../webpack://github-ado-chatops/./node_modules/@actions/http-client/proxy.js","../webpack://github-ado-chatops/./node_modules/@octokit/auth-token/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/core/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/endpoint/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/graphql/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/plugin-paginate-rest/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/request-error/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/request/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/BuildApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/ClientApiBases.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/CoreApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/DashboardApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/ExtensionManagementApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/FeatureManagementApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/FileContainerApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/FileContainerApiBase.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/GalleryApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/GalleryCompatHttpClientBase.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/GitApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/LocationsApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/NotificationApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/PolicyApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/ProfileApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/ProjectAnalysisApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/ReleaseApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/SecurityRolesApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/Serialization.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/TaskAgentApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/TaskAgentApiBase.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/TaskApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/TestApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/TfvcApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/VsoClient.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WebApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WikiApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WorkApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WorkItemTrackingApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WorkItemTrackingProcessApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WorkItemTrackingProcessDefinitionsApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/handlers/basiccreds.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/handlers/bearertoken.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/handlers/ntlm.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/handlers/personalaccesstoken.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/BuildInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/CommentsInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/CoreInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/DashboardInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/ExtensionManagementInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/FeatureManagementInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/FileContainerInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/GalleryInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/GitInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/LocationsInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/NotificationInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/PolicyInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/ProfileInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/ProjectAnalysisInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/ReleaseInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/SecurityRolesInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/TaskAgentInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/TestInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/TfvcInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/WikiInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/WorkInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/WorkItemTrackingInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/WorkItemTrackingProcessDefinitionsInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/WorkItemTrackingProcessInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/common/FormInputInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/common/OperationsInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/common/System.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/common/SystemDataInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/common/VSSInterfaces.js","../webpack://github-ado-chatops/./node_modules/before-after-hook/index.js","../webpack://github-ado-chatops/./node_modules/before-after-hook/lib/add.js","../webpack://github-ado-chatops/./node_modules/before-after-hook/lib/register.js","../webpack://github-ado-chatops/./node_modules/before-after-hook/lib/remove.js","../webpack://github-ado-chatops/./node_modules/call-bind/callBound.js","../webpack://github-ado-chatops/./node_modules/call-bind/index.js","../webpack://github-ado-chatops/./node_modules/deprecation/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/function-bind/implementation.js","../webpack://github-ado-chatops/./node_modules/function-bind/index.js","../webpack://github-ado-chatops/./node_modules/get-intrinsic/index.js","../webpack://github-ado-chatops/./node_modules/has-symbols/index.js","../webpack://github-ado-chatops/./node_modules/has-symbols/shams.js","../webpack://github-ado-chatops/./node_modules/has/src/index.js","../webpack://github-ado-chatops/./node_modules/is-plain-object/dist/is-plain-object.js","../webpack://github-ado-chatops/./node_modules/node-fetch/lib/index.js","../webpack://github-ado-chatops/./node_modules/once/once.js","../webpack://github-ado-chatops/./node_modules/qs/lib/formats.js","../webpack://github-ado-chatops/./node_modules/qs/lib/index.js","../webpack://github-ado-chatops/./node_modules/qs/lib/parse.js","../webpack://github-ado-chatops/./node_modules/qs/lib/stringify.js","../webpack://github-ado-chatops/./node_modules/qs/lib/utils.js","../webpack://github-ado-chatops/./node_modules/side-channel/index.js","../webpack://github-ado-chatops/./node_modules/side-channel/node_modules/object-inspect/index.js","../webpack://github-ado-chatops/./node_modules/side-channel/node_modules/object-inspect/util.inspect.js","../webpack://github-ado-chatops/./node_modules/tunnel/index.js","../webpack://github-ado-chatops/./node_modules/tunnel/lib/tunnel.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/Handlers.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/HttpClient.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/RestClient.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/Util.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/handlers/basiccreds.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/handlers/bearertoken.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/handlers/ntlm.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/handlers/personalaccesstoken.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/opensource/Node-SMB/lib/common.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/opensource/Node-SMB/lib/ntlm.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/opensource/Node-SMB/lib/smbhash.js","../webpack://github-ado-chatops/./node_modules/universal-user-agent/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/wrappy/wrappy.js","../webpack://github-ado-chatops/./node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../webpack://github-ado-chatops/./node_modules/underscore/underscore-node-f.cjs","../webpack://github-ado-chatops/./node_modules/underscore/underscore-node.cjs","../webpack://github-ado-chatops/external \"assert\"","../webpack://github-ado-chatops/external \"crypto\"","../webpack://github-ado-chatops/external \"events\"","../webpack://github-ado-chatops/external \"fs\"","../webpack://github-ado-chatops/external \"http\"","../webpack://github-ado-chatops/external \"https\"","../webpack://github-ado-chatops/external \"net\"","../webpack://github-ado-chatops/external \"os\"","../webpack://github-ado-chatops/external \"path\"","../webpack://github-ado-chatops/external \"stream\"","../webpack://github-ado-chatops/external \"tls\"","../webpack://github-ado-chatops/external \"url\"","../webpack://github-ado-chatops/external \"util\"","../webpack://github-ado-chatops/external \"zlib\"","../webpack://github-ado-chatops/webpack/bootstrap","../webpack://github-ado-chatops/webpack/runtime/compat","../webpack://github-ado-chatops/webpack/startup"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.chatOps = exports.chatOpInfo = void 0;\nconst createBranchChatOpInfo = {\n commands: ['/cb-ado', '/create-branch-ado'],\n params: ['-branch', '-username']\n};\nconst chatOpInfo = [createBranchChatOpInfo];\nexports.chatOpInfo = chatOpInfo;\nconst chatOps = createBranchChatOpInfo.commands;\nexports.chatOps = chatOps;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AzureDevOpsClient = void 0;\nconst core = __importStar(require(\"@actions/core\"));\nconst azdev = __importStar(require(\"azure-devops-node-api\"));\nconst configService_1 = require(\"./configService\");\nclass AzureDevOpsClient {\n constructor(appConfig, azDevClient) {\n this._appConfig = configService_1.ConfigService.defaultAppConfig;\n this._appConfig = appConfig;\n this._azDevClient = azDevClient;\n }\n static build(configService) {\n return __awaiter(this, void 0, void 0, function* () {\n const appConfig = configService.appConfig;\n const orgUrl = `https://${appConfig.ado_domain}/${appConfig.ado_org}`;\n const authHandler = azdev.getPersonalAccessTokenHandler(appConfig.ado_pat);\n const azDevClient = new azdev.WebApi(orgUrl, authHandler);\n return new AzureDevOpsClient(appConfig, azDevClient);\n });\n }\n createBranch(branchName, options) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n core.info('Getting the ADO git API...');\n const gitClient = yield this._azDevClient.getGitApi();\n core.info('Got it.');\n core.info('Getting the repo...');\n const repo = yield this.getRepo(gitClient);\n core.info('Got it.');\n let sourceBranch = options.sourceBranch;\n if (!sourceBranch) {\n core.info('Getting the default branch in ADO...');\n sourceBranch = this.getDefaultBranch(repo);\n core.info('Got it.');\n }\n const result = yield this.createBranchInner(branchName, options, gitClient, repo);\n return result;\n }\n catch (error) {\n core.error(`Failed to create branch: ${branchName}`);\n throw new Error(`Failed to create branch: ${branchName}`);\n }\n });\n }\n deleteBranch(refName, refObjectId) {\n return __awaiter(this, void 0, void 0, function* () {\n const gitClient = yield this._azDevClient.getGitApi();\n const gitRefUpdates = [\n {\n oldObjectId: refObjectId,\n newObjectId: new Array(41).join('0'),\n name: refName\n }\n ];\n // create a new branch from the source\n const updateResults = yield gitClient.updateRefs(gitRefUpdates, this._appConfig.ado_repo, this._appConfig.ado_project);\n const refDeleteResult = updateResults[0];\n return refDeleteResult;\n });\n }\n createBranchInner(branchName, options, gitClient, repo) {\n return __awaiter(this, void 0, void 0, function* () {\n core.debug(`Creating branch from ${options.sourceBranch}.`);\n core.debug(`Getting ${options.sourceBranch} refs...`);\n const gitRefs = yield gitClient.getRefs(repo.id, this._appConfig.ado_project, options.sourceBranch);\n const sourceRef = gitRefs[0];\n core.debug(\"Got 'em.\");\n const gitRefUpdates = [\n {\n oldObjectId: new Array(41).join('0'),\n newObjectId: sourceRef.objectId,\n name: `refs/heads/${branchName}`\n }\n ];\n // create a new branch from the source\n core.debug('Creating the new branch...');\n const updateResults = yield gitClient.updateRefs(gitRefUpdates, this._appConfig.ado_repo, this._appConfig.ado_project);\n const refCreateResult = updateResults[0];\n return refCreateResult;\n });\n }\n getDefaultBranch(repo) {\n var _a;\n const defaultBranch = (_a = repo.defaultBranch) === null || _a === void 0 ? void 0 : _a.replace('refs/', '');\n if (!defaultBranch) {\n core.error(`${defaultBranch} does not exist`);\n throw new Error(`${defaultBranch} does not exist`);\n }\n return defaultBranch;\n }\n getRepo(gitClient) {\n return __awaiter(this, void 0, void 0, function* () {\n const repo = yield gitClient.getRepository(this._appConfig.ado_repo, this._appConfig.ado_project);\n if (!repo.id) {\n core.error(`Repo ${this._appConfig.ado_repo} does not exist in project ${this._appConfig.ado_project}`);\n throw new Error(`Repo ${this._appConfig.ado_repo} does not exist in project ${this._appConfig.ado_project}`);\n }\n return repo;\n });\n }\n}\nexports.AzureDevOpsClient = AzureDevOpsClient;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AzureDevOpsService = void 0;\nconst core = __importStar(require(\"@actions/core\"));\nconst azureDevOpsClient_1 = require(\"./azureDevOpsClient\");\nclass AzureDevOpsService {\n constructor(appConfig, adoClient) {\n // Maximum number of bytes in a git branch is 250\n // Therefore, trim branch name to 62 characters (assuming 32-bit/4-byte Unicode) => 238 bytes\n // (https://stackoverflow.com/questions/60045157/what-is-the-maximum-length-of-a-github-branch-name)\n this.maxNumOfChars = 62;\n this._appConfig = appConfig;\n this._adoClient = adoClient;\n }\n static build(configService) {\n return __awaiter(this, void 0, void 0, function* () {\n const appConfig = configService.appConfig;\n const adoClient = yield azureDevOpsClient_1.AzureDevOpsClient.build(configService);\n return new AzureDevOpsService(appConfig, adoClient);\n });\n }\n createBranch(options) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // Build the branch name from the issue title\n core.info('Building branch name...');\n const branchName = this.buildBranchName(options);\n core.info(`Branch name: ${branchName}`);\n this._adoClient.createBranch(branchName, options);\n // Create a comment with a link to the newly created branch\n const successMessage = `Branch [${branchName}](${this.getBranchUrl(branchName)}) has been created in Azure DevOps`;\n return successMessage;\n }\n catch (e) {\n const errorMessage = `Failed creating the branch in ADO: ${e}`;\n core.error(errorMessage);\n return errorMessage;\n }\n });\n }\n getBranchUrl(branchName) {\n const uriEncodedBranchName = encodeURIComponent(branchName);\n return `https://${this._appConfig.ado_domain}/${this._appConfig.ado_org}/${this._appConfig.ado_project}/_git/${this._appConfig.ado_repo}?version=GB${uriEncodedBranchName}`;\n }\n buildBranchName(options) {\n const issueInfo = `${options.issueNumber}-${options.issueTitle.toLowerCase()}`;\n const branchName = `users/${this.makeGitSafe(options.username)}/${this.makeGitSafe(issueInfo)}`;\n return branchName.substr(0, this.maxNumOfChars);\n }\n makeGitSafe(s) {\n const replacementChar = '-';\n const regexp = /(?![-/])[\\W]+/g;\n const result = s.replace(regexp, replacementChar).replace(/[/]+$/, '');\n return result;\n }\n}\nexports.AzureDevOpsService = AzureDevOpsService;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChatOpService = void 0;\nconst ChatOps_1 = require(\"./ChatOps\");\nclass ChatOpService {\n constructor() { }\n static build() {\n return new ChatOpService();\n }\n getChatOpCommand(comment) {\n const command = this.getCommandString(comment);\n return ChatOps_1.chatOps.find(op => op === command) || 'None';\n }\n getParameterValues(command, comment) {\n var _a;\n const possibleParams = ((_a = ChatOps_1.chatOpInfo.find(info => info.commands.includes(command))) === null || _a === void 0 ? void 0 : _a.params) || [];\n if (possibleParams.length === 0)\n return {};\n const paramValueMap = {};\n for (const pp of possibleParams) {\n paramValueMap[pp] = this.getParamValue(pp, comment);\n }\n return paramValueMap;\n }\n getCommandString(comment) {\n const commentTrim = comment.trim();\n if (!commentTrim.startsWith('/'))\n return '';\n const command = commentTrim.split(' ')[0];\n return command;\n }\n getParamValue(param, comment) {\n const splitResult = comment.split(param);\n if (splitResult.length < 2)\n return '';\n const theRest = splitResult[1].trim();\n return theRest.split(' ')[0];\n }\n}\nexports.ChatOpService = ChatOpService;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigService = void 0;\nconst core = __importStar(require(\"@actions/core\"));\nclass ConfigService {\n constructor(appConfig) {\n this.appConfig = ConfigService.defaultAppConfig;\n this.appConfig = appConfig;\n }\n static build() {\n return __awaiter(this, void 0, void 0, function* () {\n const loadedConfig = this.loadConfig();\n const config = ConfigService.mergeDefaults(loadedConfig);\n const errorMessages = ConfigService.validateConfig(config);\n if (errorMessages.length > 0) {\n const errorStr = errorMessages.join('\\n');\n core.error(errorStr);\n throw new Error(errorStr);\n }\n return new ConfigService(config);\n });\n }\n static mergeDefaults(loadedConfig) {\n return {\n ado_domain: loadedConfig.ado_domain || ConfigService.defaultAppConfig.ado_domain,\n ado_org: loadedConfig.ado_org,\n ado_pat: loadedConfig.ado_pat,\n ado_project: loadedConfig.ado_project,\n ado_repo: loadedConfig.ado_repo,\n github_token: loadedConfig.github_token\n };\n }\n static validateConfig(config) {\n const errorMessages = [];\n // There are better ways to do this but I'm being lazy\n if (!config.ado_domain)\n errorMessages.push('No ado_org was found. Check your inputs');\n if (!config.ado_org)\n errorMessages.push('No ado_org was found. Check your inputs');\n if (!config.ado_pat)\n errorMessages.push('No ado_pat was found. Check your inputs');\n if (!config.ado_project)\n errorMessages.push('No ado_project was found. Check your inputs');\n if (!config.ado_repo)\n errorMessages.push('No ado_repo was found. Check your inputs');\n if (!config.github_token)\n errorMessages.push('No github_token was found. Check your inputs');\n return errorMessages;\n }\n}\nexports.ConfigService = ConfigService;\nConfigService.defaultAppConfig = {\n ado_domain: 'dev.azure.com',\n ado_org: '',\n ado_pat: '',\n ado_project: '',\n ado_repo: '',\n github_token: ''\n};\nConfigService.loadConfig = () => {\n const ado_domain = core.getInput('ado_domain');\n const ado_org = core.getInput('ado_org');\n const ado_project = core.getInput('ado_project');\n const ado_repo = core.getInput('ado_repo');\n const ado_pat = core.getInput('ado_pat');\n const github_token = core.getInput('github_token');\n // debug is only output if you set the secret `ACTIONS_RUNNER_DEBUG` to true\n core.info(`ado_domain: ${ado_domain}!`);\n core.info(`ado_org: ${ado_org}!`);\n core.info(`ado_project: ${ado_project}!`);\n core.info(`ado_repo: ${ado_repo}!`);\n core.info(`ado_pat: ${ado_pat != null ? '*******' : ''}!`);\n core.info(`github_token: ${github_token != null ? '*******' : ''}!`);\n return {\n ado_domain,\n ado_org,\n ado_project,\n ado_repo,\n ado_pat,\n github_token\n };\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst utils_1 = require(\"@actions/github/lib/utils\");\nconst chatOpService_1 = require(\"./chatOpService\");\nconst azureDevOpsService_1 = require(\"./azureDevOpsService\");\nconst configService_1 = require(\"./configService\");\nfunction run() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n core.info('Running GitHub <> ADO ChatOps...');\n core.info(`Event: ${utils_1.context.eventName}`);\n core.info(`Action: ${utils_1.context.payload.action || 'Unknown'}`);\n core.info('Initializaing services...');\n const configService = yield configService_1.ConfigService.build();\n // This should be a token with access to your repository scoped in as a secret.\n // The YML workflow will need to set myToken with the GitHub Secret Token\n // github_token: ${{ secrets.GITHUB_TOKEN }}\n // https://help.github.com/en/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token#about-the-github_token-secret\n const octokit = github.getOctokit(configService.appConfig.github_token);\n const chatOpService = chatOpService_1.ChatOpService.build();\n const azureDevOpsService = yield azureDevOpsService_1.AzureDevOpsService.build(configService);\n core.info('Done.');\n let resultMessage = '';\n if (utils_1.context.eventName === 'issue_comment') {\n const issueCommentPayload = utils_1.context.payload;\n if (issueCommentPayload.action === 'created') {\n const comment = issueCommentPayload.comment.body;\n core.info(`Comment: ${comment}`);\n const chatOpCommand = getChatOpCommand(chatOpService, comment);\n if (chatOpCommand === 'None')\n return core.info('Done.');\n const params = getParameters(chatOpService, chatOpCommand, comment);\n resultMessage = yield azureDevOpsService.createBranch({\n issueNumber: issueCommentPayload.issue.number,\n issueTitle: issueCommentPayload.issue.title,\n username: params['-username'] || issueCommentPayload.sender.login,\n sourceBranch: params['-branch']\n });\n yield octokit.rest.issues.createComment({\n owner: utils_1.context.issue.owner,\n repo: utils_1.context.issue.repo,\n issue_number: utils_1.context.issue.number,\n body: resultMessage || 'There was nothing to do!'\n });\n }\n }\n core.info(resultMessage);\n }\n catch (error) {\n core.setFailed((error === null || error === void 0 ? void 0 : error.message) || error || `An unknown error has occurred: ${error}`);\n }\n });\n}\nfunction getChatOpCommand(chatOpService, comment) {\n core.info('Checking for ChatOp command...');\n const chatOpCommand = chatOpService.getChatOpCommand(comment);\n core.info(`Found ChatOp: ${chatOpCommand}`);\n return chatOpCommand;\n}\nfunction getParameters(chatOpService, chatOpCommand, comment) {\n core.info('Getting parameters...');\n const paramValues = chatOpService.getParameterValues(chatOpCommand, comment);\n for (const key of Object.keys(paramValues)) {\n const value = paramValues[key];\n core.info(`Found ${key} ${value}`);\n }\n return paramValues;\n}\nrun();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n const delimiter = '_GitHubActionsFileCommandDelimeter_';\n const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;\n file_command_1.issueCommand('ENV', commandValue);\n }\n else {\n command_1.issueCommand('set-env', { name }, convertedVal);\n }\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n return inputs;\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, value);\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n */\nfunction error(message) {\n command_1.issue('error', message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds an warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n */\nfunction warning(message) {\n command_1.issue('warning', message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n command_1.issueCommand('save-state', { name }, value);\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issueCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueCommand = issueCommand;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options) {\n return new utils_1.GitHub(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nconst defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }),\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nasync function auth(token) {\n const tokenType = token.split(/\\./).length === 3 ? \"app\" : /^v\\d+\\./.test(token) ? \"installation\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.5.1\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.16.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /user/{username}/packages\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createContentAttachment: [\"POST /content_references/{content_reference_id}/attachments\", {\n mediaType: {\n previews: [\"corsair\"]\n }\n }],\n createContentAttachmentForRepo: [\"POST /repos/{owner}/{repo}/content_references/{content_reference_id}/attachments\", {\n mediaType: {\n previews: [\"corsair\"]\n }\n }],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/community/code_of_conduct\", {\n mediaType: {\n previews: [\"scarlet-witch\"]\n }\n }]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", {\n mediaType: {\n previews: [\"mockingbird\"]\n }\n }],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listForAuthenticatedUser: [\"GET /user/migrations\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listForOrg: [\"GET /orgs/{org}/migrations\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /user/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createCard: [\"POST /projects/columns/{column_id}/cards\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createColumn: [\"POST /projects/{project_id}/columns\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createForAuthenticatedUser: [\"POST /user/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createForOrg: [\"POST /orgs/{org}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n delete: [\"DELETE /projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n get: [\"GET /projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n getCard: [\"GET /projects/columns/cards/{card_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n getColumn: [\"GET /projects/columns/{column_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listCards: [\"GET /projects/columns/{column_id}/cards\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listColumns: [\"GET /projects/{project_id}/columns\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listForOrg: [\"GET /orgs/{org}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listForUser: [\"GET /users/{username}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n update: [\"PATCH /projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n updateColumn: [\"PATCH /projects/columns/{column_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\", {\n mediaType: {\n previews: [\"lydian\"]\n }\n }],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteLegacy: [\"DELETE /reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }, {\n deprecated: \"octokit.rest.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy\"\n }],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\", {\n mediaType: {\n previews: [\"dorian\"]\n }\n }],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\", {\n mediaType: {\n previews: [\"zzzax\"]\n }\n }],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\", {\n mediaType: {\n previews: [\"switcheroo\"]\n }\n }],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\", {\n mediaType: {\n previews: [\"baptiste\"]\n }\n }],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\", {\n mediaType: {\n previews: [\"zzzax\"]\n }\n }],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\", {\n mediaType: {\n previews: [\"switcheroo\"]\n }\n }],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\", {\n mediaType: {\n previews: [\"london\"]\n }\n }],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\", {\n mediaType: {\n previews: [\"dorian\"]\n }\n }],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\", {\n mediaType: {\n previews: [\"london\"]\n }\n }],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\", {\n mediaType: {\n previews: [\"dorian\"]\n }\n }],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\", {\n mediaType: {\n previews: [\"mercy\"]\n }\n }],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\", {\n mediaType: {\n previews: [\"zzzax\"]\n }\n }],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", {\n mediaType: {\n previews: [\"groot\"]\n }\n }],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", {\n mediaType: {\n previews: [\"groot\"]\n }\n }],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\", {\n mediaType: {\n previews: [\"mercy\"]\n }\n }],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\", {\n mediaType: {\n previews: [\"cloak\"]\n }\n }],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\", {\n mediaType: {\n previews: [\"mercy\"]\n }\n }],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.10.0\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.1\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst BuildInterfaces = require(\"./interfaces/BuildInterfaces\");\r\nclass BuildApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Build-api', options);\r\n }\r\n /**\r\n * Associates an artifact with a build.\r\n *\r\n * @param {BuildInterfaces.BuildArtifact} artifact - The artifact.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n createArtifact(artifact, project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.5\", \"build\", \"1db06c96-014e-44e1-ac91-90b2d4b3e984\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, artifact, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a specific artifact for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} artifactName - The name of the artifact.\r\n */\r\n getArtifact(project, buildId, artifactName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactName == null) {\r\n throw new TypeError('artifactName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n artifactName: artifactName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.5\", \"build\", \"1db06c96-014e-44e1-ac91-90b2d4b3e984\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a specific artifact for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} artifactName - The name of the artifact.\r\n */\r\n getArtifactContentZip(project, buildId, artifactName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactName == null) {\r\n throw new TypeError('artifactName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n artifactName: artifactName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.5\", \"build\", \"1db06c96-014e-44e1-ac91-90b2d4b3e984\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all artifacts for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n getArtifacts(project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.5\", \"build\", \"1db06c96-014e-44e1-ac91-90b2d4b3e984\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a file from the build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} artifactName - The name of the artifact.\r\n * @param {string} fileId - The primary key for the file.\r\n * @param {string} fileName - The name that the file will be set to.\r\n */\r\n getFile(project, buildId, artifactName, fileId, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactName == null) {\r\n throw new TypeError('artifactName can not be null or undefined');\r\n }\r\n if (fileId == null) {\r\n throw new TypeError('fileId can not be null or undefined');\r\n }\r\n if (fileName == null) {\r\n throw new TypeError('fileName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n artifactName: artifactName,\r\n fileId: fileId,\r\n fileName: fileName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.5\", \"build\", \"1db06c96-014e-44e1-ac91-90b2d4b3e984\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the list of attachments of a specific type that are associated with a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} type - The type of attachment.\r\n */\r\n getAttachments(project, buildId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"f2192269-89fa-4f94-baf6-8fb128c55159\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a specific attachment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} timelineId - The ID of the timeline.\r\n * @param {string} recordId - The ID of the timeline record.\r\n * @param {string} type - The type of the attachment.\r\n * @param {string} name - The name of the attachment.\r\n */\r\n getAttachment(project, buildId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"af5122d3-3438-485e-a25a-2dbbfde84ee6\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {BuildInterfaces.DefinitionResourceReference[]} resources\r\n * @param {string} project - Project ID or project name\r\n */\r\n authorizeProjectResources(resources, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"398c85bc-81aa-4822-947c-a194a05f0fef\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, resources, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type\r\n * @param {string} id\r\n */\r\n getProjectResources(project, type, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n type: type,\r\n id: id,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"398c85bc-81aa-4822-947c-a194a05f0fef\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that indicates the status of the most recent build for a definition. Note that this API is deprecated. Prefer StatusBadgeController.GetStatusBadge.\r\n *\r\n * @param {string} project - The project ID or name.\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {string} branchName - The name of the branch.\r\n */\r\n getBadge(project, definitionId, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n branchName: branchName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"de6a4df8-22cd-44ee-af2d-39f6aa7a4261\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of branches for the given source code repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - The vendor-specific identifier or the name of the repository to get branches. Can only be omitted for providers that do not support multiple repositories.\r\n * @param {string} branchName - If supplied, the name of the branch to check for specifically.\r\n */\r\n listBranches(project, providerName, serviceEndpointId, repository, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n branchName: branchName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"e05d4403-9b81-4244-8763-20fde28d1976\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that indicates the status of the most recent build for the specified branch.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repoType - The repository type.\r\n * @param {string} repoId - The repository ID.\r\n * @param {string} branchName - The branch name.\r\n */\r\n getBuildBadge(project, repoType, repoId, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repoType: repoType\r\n };\r\n let queryValues = {\r\n repoId: repoId,\r\n branchName: branchName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"21b3b9ce-fad5-4567-9ad0-80679794e003\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that indicates the status of the most recent build for the specified branch.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repoType - The repository type.\r\n * @param {string} repoId - The repository ID.\r\n * @param {string} branchName - The branch name.\r\n */\r\n getBuildBadgeData(project, repoType, repoId, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repoType: repoType\r\n };\r\n let queryValues = {\r\n repoId: repoId,\r\n branchName: branchName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"21b3b9ce-fad5-4567-9ad0-80679794e003\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n deleteBuild(project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a build\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} propertyFilters\r\n */\r\n getBuild(project, buildId, propertyFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n propertyFilters: propertyFilters,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of builds.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number[]} definitions - A comma-delimited list of definition IDs. If specified, filters to builds for these definitions.\r\n * @param {number[]} queues - A comma-delimited list of queue IDs. If specified, filters to builds that ran against these queues.\r\n * @param {string} buildNumber - If specified, filters to builds that match this build number. Append * to do a prefix search.\r\n * @param {Date} minTime - If specified, filters to builds that finished/started/queued after this date based on the queryOrder specified.\r\n * @param {Date} maxTime - If specified, filters to builds that finished/started/queued before this date based on the queryOrder specified.\r\n * @param {string} requestedFor - If specified, filters to builds requested for the specified user.\r\n * @param {BuildInterfaces.BuildReason} reasonFilter - If specified, filters to builds that match this reason.\r\n * @param {BuildInterfaces.BuildStatus} statusFilter - If specified, filters to builds that match this status.\r\n * @param {BuildInterfaces.BuildResult} resultFilter - If specified, filters to builds that match this result.\r\n * @param {string[]} tagFilters - A comma-delimited list of tags. If specified, filters to builds that have the specified tags.\r\n * @param {string[]} properties - A comma-delimited list of properties to retrieve.\r\n * @param {number} top - The maximum number of builds to return.\r\n * @param {string} continuationToken - A continuation token, returned by a previous call to this method, that can be used to return the next set of builds.\r\n * @param {number} maxBuildsPerDefinition - The maximum number of builds to return per definition.\r\n * @param {BuildInterfaces.QueryDeletedOption} deletedFilter - Indicates whether to exclude, include, or only return deleted builds.\r\n * @param {BuildInterfaces.BuildQueryOrder} queryOrder - The order in which builds should be returned.\r\n * @param {string} branchName - If specified, filters to builds that built branches that built this branch.\r\n * @param {number[]} buildIds - A comma-delimited list that specifies the IDs of builds to retrieve.\r\n * @param {string} repositoryId - If specified, filters to builds that built from this repository.\r\n * @param {string} repositoryType - If specified, filters to builds that built from repositories of this type.\r\n */\r\n getBuilds(project, definitions, queues, buildNumber, minTime, maxTime, requestedFor, reasonFilter, statusFilter, resultFilter, tagFilters, properties, top, continuationToken, maxBuildsPerDefinition, deletedFilter, queryOrder, branchName, buildIds, repositoryId, repositoryType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n definitions: definitions && definitions.join(\",\"),\r\n queues: queues && queues.join(\",\"),\r\n buildNumber: buildNumber,\r\n minTime: minTime,\r\n maxTime: maxTime,\r\n requestedFor: requestedFor,\r\n reasonFilter: reasonFilter,\r\n statusFilter: statusFilter,\r\n resultFilter: resultFilter,\r\n tagFilters: tagFilters && tagFilters.join(\",\"),\r\n properties: properties && properties.join(\",\"),\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n maxBuildsPerDefinition: maxBuildsPerDefinition,\r\n deletedFilter: deletedFilter,\r\n queryOrder: queryOrder,\r\n branchName: branchName,\r\n buildIds: buildIds && buildIds.join(\",\"),\r\n repositoryId: repositoryId,\r\n repositoryType: repositoryType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Queues a build\r\n *\r\n * @param {BuildInterfaces.Build} build\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} ignoreWarnings\r\n * @param {string} checkInTicket\r\n * @param {number} sourceBuildId\r\n * @param {number} definitionId - Optional definition id to queue a build without a body. Ignored if there's a valid body\r\n */\r\n queueBuild(build, project, ignoreWarnings, checkInTicket, sourceBuildId, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ignoreWarnings: ignoreWarnings,\r\n checkInTicket: checkInTicket,\r\n sourceBuildId: sourceBuildId,\r\n definitionId: definitionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, build, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a build.\r\n *\r\n * @param {BuildInterfaces.Build} build - The build.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {boolean} retry\r\n */\r\n updateBuild(build, project, buildId, retry) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n retry: retry,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, build, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates multiple builds.\r\n *\r\n * @param {BuildInterfaces.Build[]} builds - The builds to update.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateBuilds(builds, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, builds, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the changes associated with a build\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} continuationToken\r\n * @param {number} top - The maximum number of changes to return\r\n * @param {boolean} includeSourceChange\r\n */\r\n getBuildChanges(project, buildId, continuationToken, top, includeSourceChange) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n includeSourceChange: includeSourceChange,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"54572c7b-bbd3-45d4-80dc-28be08941620\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Change, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the changes made to the repository between two given builds.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} fromBuildId - The ID of the first build.\r\n * @param {number} toBuildId - The ID of the last build.\r\n * @param {number} top - The maximum number of changes to return.\r\n */\r\n getChangesBetweenBuilds(project, fromBuildId, toBuildId, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fromBuildId: fromBuildId,\r\n toBuildId: toBuildId,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"f10f0ea5-18a1-43ec-a8fb-2042c7be9b43\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Change, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a controller\r\n *\r\n * @param {number} controllerId\r\n */\r\n getBuildController(controllerId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n controllerId: controllerId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"fcac1932-2ee1-437f-9b6f-7f696be858f6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildController, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets controller, optionally filtered by name\r\n *\r\n * @param {string} name\r\n */\r\n getBuildControllers(name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n name: name,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"fcac1932-2ee1-437f-9b6f-7f696be858f6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildController, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new definition.\r\n *\r\n * @param {BuildInterfaces.BuildDefinition} definition - The definition.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionToCloneId\r\n * @param {number} definitionToCloneRevision\r\n */\r\n createDefinition(definition, project, definitionToCloneId, definitionToCloneRevision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n definitionToCloneId: definitionToCloneId,\r\n definitionToCloneRevision: definitionToCloneRevision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, definition, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a definition and all associated builds.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n */\r\n deleteDefinition(project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a definition, optionally at a specific revision.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {number} revision - The revision number to retrieve. If this is not specified, the latest version will be returned.\r\n * @param {Date} minMetricsTime - If specified, indicates the date from which metrics should be included.\r\n * @param {string[]} propertyFilters - A comma-delimited list of properties to include in the results.\r\n * @param {boolean} includeLatestBuilds\r\n */\r\n getDefinition(project, definitionId, revision, minMetricsTime, propertyFilters, includeLatestBuilds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n minMetricsTime: minMetricsTime,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n includeLatestBuilds: includeLatestBuilds,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of definitions.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} name - If specified, filters to definitions whose names match this pattern.\r\n * @param {string} repositoryId - A repository ID. If specified, filters to definitions that use this repository.\r\n * @param {string} repositoryType - If specified, filters to definitions that have a repository of this type.\r\n * @param {BuildInterfaces.DefinitionQueryOrder} queryOrder - Indicates the order in which definitions should be returned.\r\n * @param {number} top - The maximum number of definitions to return.\r\n * @param {string} continuationToken - A continuation token, returned by a previous call to this method, that can be used to return the next set of definitions.\r\n * @param {Date} minMetricsTime - If specified, indicates the date from which metrics should be included.\r\n * @param {number[]} definitionIds - A comma-delimited list that specifies the IDs of definitions to retrieve.\r\n * @param {string} path - If specified, filters to definitions under this folder.\r\n * @param {Date} builtAfter - If specified, filters to definitions that have builds after this date.\r\n * @param {Date} notBuiltAfter - If specified, filters to definitions that do not have builds after this date.\r\n * @param {boolean} includeAllProperties - Indicates whether the full definitions should be returned. By default, shallow representations of the definitions are returned.\r\n * @param {boolean} includeLatestBuilds - Indicates whether to return the latest and latest completed builds for this definition.\r\n * @param {string} taskIdFilter - If specified, filters to definitions that use the specified task.\r\n * @param {number} processType - If specified, filters to definitions with the given process type.\r\n * @param {string} yamlFilename - If specified, filters to YAML definitions that match the given filename.\r\n */\r\n getDefinitions(project, name, repositoryId, repositoryType, queryOrder, top, continuationToken, minMetricsTime, definitionIds, path, builtAfter, notBuiltAfter, includeAllProperties, includeLatestBuilds, taskIdFilter, processType, yamlFilename) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n name: name,\r\n repositoryId: repositoryId,\r\n repositoryType: repositoryType,\r\n queryOrder: queryOrder,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n minMetricsTime: minMetricsTime,\r\n definitionIds: definitionIds && definitionIds.join(\",\"),\r\n path: path,\r\n builtAfter: builtAfter,\r\n notBuiltAfter: notBuiltAfter,\r\n includeAllProperties: includeAllProperties,\r\n includeLatestBuilds: includeLatestBuilds,\r\n taskIdFilter: taskIdFilter,\r\n processType: processType,\r\n yamlFilename: yamlFilename,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionReference, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Restores a deleted definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The identifier of the definition to restore.\r\n * @param {boolean} deleted - When false, restores a deleted definition.\r\n */\r\n restoreDefinition(project, definitionId, deleted) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (deleted == null) {\r\n throw new TypeError('deleted can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n deleted: deleted,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing build definition. In order for this operation to succeed, the value of the \"Revision\" property of the request body must match the existing build definition's. It is recommended that you obtain the existing build definition by using GET, modify the build definition as necessary, and then submit the modified definition with PUT.\r\n *\r\n * @param {BuildInterfaces.BuildDefinition} definition - The new version of the definition. Its \"Revision\" property must match the existing definition for the update to be accepted.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {number} secretsSourceDefinitionId\r\n * @param {number} secretsSourceDefinitionRevision\r\n */\r\n updateDefinition(definition, project, definitionId, secretsSourceDefinitionId, secretsSourceDefinitionRevision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n secretsSourceDefinitionId: secretsSourceDefinitionId,\r\n secretsSourceDefinitionRevision: secretsSourceDefinitionRevision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, definition, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the contents of a file in the given source code repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get branches. Can only be omitted for providers that do not support multiple repositories.\r\n * @param {string} commitOrBranch - The identifier of the commit or branch from which a file's contents are retrieved.\r\n * @param {string} path - The path to the file to retrieve, relative to the root of the repository.\r\n */\r\n getFileContents(project, providerName, serviceEndpointId, repository, commitOrBranch, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n commitOrBranch: commitOrBranch,\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"29d12225-b1d9-425f-b668-6c594a981313\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new folder.\r\n *\r\n * @param {BuildInterfaces.Folder} folder - The folder.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - The full path of the folder.\r\n */\r\n createFolder(folder, project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"a906531b-d2da-4f55-bda7-f3e676cc50d9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, folder, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Folder, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a definition folder. Definitions and their corresponding builds will also be deleted.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - The full path to the folder.\r\n */\r\n deleteFolder(project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"a906531b-d2da-4f55-bda7-f3e676cc50d9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of build definition folders.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - The path to start with.\r\n * @param {BuildInterfaces.FolderQueryOrder} queryOrder - The order in which folders should be returned.\r\n */\r\n getFolders(project, path, queryOrder) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n path: path\r\n };\r\n let queryValues = {\r\n queryOrder: queryOrder,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"a906531b-d2da-4f55-bda7-f3e676cc50d9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Folder, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing folder at given existing path\r\n *\r\n * @param {BuildInterfaces.Folder} folder - The new version of the folder.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - The full path to the folder.\r\n */\r\n updateFolder(folder, project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"a906531b-d2da-4f55-bda7-f3e676cc50d9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, folder, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Folder, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets pipeline general settings.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getBuildGeneralSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"c4aefd19-30ff-405b-80ad-aca021e7242a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates pipeline general settings.\r\n *\r\n * @param {BuildInterfaces.PipelineGeneralSettings} newSettings\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateBuildGeneralSettings(newSettings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"c4aefd19-30ff-405b-80ad-aca021e7242a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, newSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the retention history for the project collection. This includes pipelines that have custom retention rules that may prevent the retention job from cleaning them up, runs per pipeline with retention type, files associated with pipelines owned by the collection with retention type, and the number of files per pipeline.\r\n *\r\n * @param {number} daysToLookback\r\n */\r\n getRetentionHistory(daysToLookback) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n daysToLookback: daysToLookback,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"1a9c48be-0ef5-4ec2-b94f-f053bdd2d3bf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildRetentionHistory, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the latest build for a definition, optionally scoped to a specific branch.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} definition - definition name with optional leading folder path, or the definition id\r\n * @param {string} branchName - optional parameter that indicates the specific branch to use. If not specified, the default branch is used.\r\n */\r\n getLatestBuild(project, definition, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definition: definition\r\n };\r\n let queryValues = {\r\n branchName: branchName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"54481611-01f4-47f3-998f-160da0f0c229\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds new leases for pipeline runs.\r\n *\r\n * @param {BuildInterfaces.NewRetentionLease[]} newLeases\r\n * @param {string} project - Project ID or project name\r\n */\r\n addRetentionLeases(newLeases, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, newLeases, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes specific retention leases.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number[]} ids\r\n */\r\n deleteRetentionLeasesById(project, ids) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the details of the retention lease given a lease id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} leaseId\r\n */\r\n getRetentionLease(project, leaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n leaseId: leaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns any leases matching the specified MinimalRetentionLeases\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {BuildInterfaces.MinimalRetentionLease[]} leasesToFetch - List of JSON-serialized MinimalRetentionLeases separated by '|'\r\n */\r\n getRetentionLeasesByMinimalRetentionLeases(project, leasesToFetch) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (leasesToFetch == null) {\r\n throw new TypeError('leasesToFetch can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n leasesToFetch: leasesToFetch && leasesToFetch.join(\"|\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns any leases owned by the specified entity, optionally scoped to a single pipeline definition and run.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} ownerId\r\n * @param {number} definitionId - An optional parameter to limit the search to a specific pipeline definition.\r\n * @param {number} runId - An optional parameter to limit the search to a single pipeline run. Requires definitionId.\r\n */\r\n getRetentionLeasesByOwnerId(project, ownerId, definitionId, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ownerId: ownerId,\r\n definitionId: definitionId,\r\n runId: runId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns any leases owned by the specified user, optionally scoped to a single pipeline definition and run.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} userOwnerId - The user id to search for.\r\n * @param {number} definitionId - An optional parameter to limit the search to a specific pipeline definition.\r\n * @param {number} runId - An optional parameter to limit the search to a single pipeline run. Requires definitionId.\r\n */\r\n getRetentionLeasesByUserId(project, userOwnerId, definitionId, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (userOwnerId == null) {\r\n throw new TypeError('userOwnerId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n userOwnerId: userOwnerId,\r\n definitionId: definitionId,\r\n runId: runId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets an individual log file for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {number} logId - The ID of the log file.\r\n * @param {number} startLine - The start line.\r\n * @param {number} endLine - The end line.\r\n */\r\n getBuildLog(project, buildId, logId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n logId: logId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"35a80daf-7f30-45fc-86e8-6b813d9c90df\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets an individual log file for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {number} logId - The ID of the log file.\r\n * @param {number} startLine - The start line.\r\n * @param {number} endLine - The end line.\r\n */\r\n getBuildLogLines(project, buildId, logId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n logId: logId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"35a80daf-7f30-45fc-86e8-6b813d9c90df\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the logs for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n getBuildLogs(project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"35a80daf-7f30-45fc-86e8-6b813d9c90df\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildLog, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the logs for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n getBuildLogsZip(project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"35a80daf-7f30-45fc-86e8-6b813d9c90df\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets an individual log file for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {number} logId - The ID of the log file.\r\n * @param {number} startLine - The start line.\r\n * @param {number} endLine - The end line.\r\n */\r\n getBuildLogZip(project, buildId, logId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n logId: logId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"35a80daf-7f30-45fc-86e8-6b813d9c90df\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets build metrics for a project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} metricAggregationType - The aggregation type to use (hourly, daily).\r\n * @param {Date} minMetricsTime - The date from which to calculate metrics.\r\n */\r\n getProjectMetrics(project, metricAggregationType, minMetricsTime) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n metricAggregationType: metricAggregationType\r\n };\r\n let queryValues = {\r\n minMetricsTime: minMetricsTime,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"7433fae7-a6bc-41dc-a6e2-eef9005ce41a\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildMetric, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets build metrics for a definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {Date} minMetricsTime - The date from which to calculate metrics.\r\n */\r\n getDefinitionMetrics(project, definitionId, minMetricsTime) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n minMetricsTime: minMetricsTime,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"d973b939-0ce0-4fec-91d8-da3940fa1827\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildMetric, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all build definition options supported by the system.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getBuildOptionDefinitions(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"591cb5a4-2d46-4f3a-a697-5cd42b6bd332\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildOptionDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the contents of a directory in the given source code repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get branches. Can only be omitted for providers that do not support multiple repositories.\r\n * @param {string} commitOrBranch - The identifier of the commit or branch from which a file's contents are retrieved.\r\n * @param {string} path - The path contents to list, relative to the root of the repository.\r\n */\r\n getPathContents(project, providerName, serviceEndpointId, repository, commitOrBranch, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n commitOrBranch: commitOrBranch,\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"7944d6fb-df01-4709-920a-7a189aa34037\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets properties for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string[]} filter - A comma-delimited list of properties. If specified, filters to these specific properties.\r\n */\r\n getBuildProperties(project, buildId, filter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n filter: filter && filter.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"0a6312e9-0627-49b7-8083-7d74a64849c9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates properties for a build.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} document - A json-patch document describing the properties to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n updateBuildProperties(customHeaders, document, project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"0a6312e9-0627-49b7-8083-7d74a64849c9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, document, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets properties for a definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {string[]} filter - A comma-delimited list of properties. If specified, filters to these specific properties.\r\n */\r\n getDefinitionProperties(project, definitionId, filter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n filter: filter && filter.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"d9826ad7-2a68-46a9-a6e9-677698777895\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates properties for a definition.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} document - A json-patch document describing the properties to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n */\r\n updateDefinitionProperties(customHeaders, document, project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"d9826ad7-2a68-46a9-a6e9-677698777895\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, document, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a pull request object from source provider.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} pullRequestId - Vendor-specific id of the pull request.\r\n * @param {string} repositoryId - Vendor-specific identifier or the name of the repository that contains the pull request.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n */\r\n getPullRequest(project, providerName, pullRequestId, repositoryId, serviceEndpointId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n repositoryId: repositoryId,\r\n serviceEndpointId: serviceEndpointId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"d8763ec7-9ff0-4fb4-b2b2-9d757906ff14\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a build report.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} type\r\n */\r\n getBuildReport(project, buildId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n type: type,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"45bcaa88-67e1-4042-a035-56d3b4a7d44c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a build report.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} type\r\n */\r\n getBuildReportHtmlContent(project, buildId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n type: type,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"45bcaa88-67e1-4042-a035-56d3b4a7d44c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/html\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of source code repositories.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - If specified, the vendor-specific identifier or the name of a single repository to get.\r\n * @param {BuildInterfaces.ResultSet} resultSet - 'top' for the repositories most relevant for the endpoint. If not set, all repositories are returned. Ignored if 'repository' is set.\r\n * @param {boolean} pageResults - If set to true, this will limit the set of results and will return a continuation token to continue the query.\r\n * @param {string} continuationToken - When paging results, this is a continuation token, returned by a previous call to this method, that can be used to return the next set of repositories.\r\n */\r\n listRepositories(project, providerName, serviceEndpointId, repository, resultSet, pageResults, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n resultSet: resultSet,\r\n pageResults: pageResults,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"d44d1680-f978-4834-9b93-8c6e132329c9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {BuildInterfaces.DefinitionResourceReference[]} resources\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId\r\n */\r\n authorizeDefinitionResources(resources, project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"ea623316-1967-45eb-89ab-e9e6110cf2d6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, resources, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId\r\n */\r\n getDefinitionResources(project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"ea623316-1967-45eb-89ab-e9e6110cf2d6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets information about build resources in the system.\r\n *\r\n */\r\n getResourceUsage() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"3813d06c-9e36-4ea1-aac3-61a485d60e3d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the project's retention settings.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRetentionSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"dadb46e7-5851-4c72-820e-ae8abb82f59f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the project's retention settings.\r\n *\r\n * @param {BuildInterfaces.UpdateProjectRetentionSettingModel} updateModel\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateRetentionSettings(updateModel, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"dadb46e7-5851-4c72-820e-ae8abb82f59f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all revisions of a definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n */\r\n getDefinitionRevisions(project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"7c116775-52e5-453e-8c5d-914d9762d8c4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionRevision, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the build settings.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getBuildSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"aa8c1c9c-ef8b-474a-b8c4-785c7b191d0d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the build settings.\r\n *\r\n * @param {BuildInterfaces.BuildSettings} settings - The new settings.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateBuildSettings(settings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"aa8c1c9c-ef8b-474a-b8c4-785c7b191d0d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, settings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of source providers and their capabilities.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n listSourceProviders(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"3ce81729-954f-423d-a581-9fea01d25186\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.SourceProviderAttributes, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a build stage\r\n *\r\n * @param {BuildInterfaces.UpdateStageParameters} updateParameters\r\n * @param {number} buildId\r\n * @param {string} stageRefName\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateStage(updateParameters, buildId, stageRefName, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n stageRefName: stageRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"b8aac6c9-744b-46e1-88fc-3550969f9313\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n *

Gets the build status for a definition, optionally scoped to a specific branch, stage, job, and configuration.

If there are more than one, then it is required to pass in a stageName value when specifying a jobName, and the same rule then applies for both if passing a configuration parameter.

\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} definition - Either the definition name with optional leading folder path, or the definition id.\r\n * @param {string} branchName - Only consider the most recent build for this branch. If not specified, the default branch is used.\r\n * @param {string} stageName - Use this stage within the pipeline to render the status.\r\n * @param {string} jobName - Use this job within a stage of the pipeline to render the status.\r\n * @param {string} configuration - Use this job configuration to render the status\r\n * @param {string} label - Replaces the default text on the left side of the badge.\r\n */\r\n getStatusBadge(project, definition, branchName, stageName, jobName, configuration, label) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definition: definition\r\n };\r\n let queryValues = {\r\n branchName: branchName,\r\n stageName: stageName,\r\n jobName: jobName,\r\n configuration: configuration,\r\n label: label,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"07acfdce-4757-4439-b422-ddd13a2fcc10\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a tag to a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} tag - The tag to add.\r\n */\r\n addBuildTag(project, buildId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"6e6114b2-8161-44c8-8f6c-c5505782427f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds tags to a build.\r\n *\r\n * @param {string[]} tags - The tags to add.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n addBuildTags(tags, project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"6e6114b2-8161-44c8-8f6c-c5505782427f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, tags, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a tag from a build. NOTE: This API will not work for tags with special characters. To remove tags with special characters, use the PATCH method instead (in 6.0+)\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} tag - The tag to remove.\r\n */\r\n deleteBuildTag(project, buildId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"6e6114b2-8161-44c8-8f6c-c5505782427f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the tags for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n getBuildTags(project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"6e6114b2-8161-44c8-8f6c-c5505782427f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds/Removes tags from a build.\r\n *\r\n * @param {BuildInterfaces.UpdateTagParameters} updateParameters - The tags to add/remove.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n updateBuildTags(updateParameters, project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"6e6114b2-8161-44c8-8f6c-c5505782427f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a tag to a definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {string} tag - The tag to add.\r\n */\r\n addDefinitionTag(project, definitionId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"cb894432-134a-4d31-a839-83beceaace4b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds multiple tags to a definition.\r\n *\r\n * @param {string[]} tags - The tags to add.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n */\r\n addDefinitionTags(tags, project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"cb894432-134a-4d31-a839-83beceaace4b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, tags, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a tag from a definition. NOTE: This API will not work for tags with special characters. To remove tags with special characters, use the PATCH method instead (in 6.0+)\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {string} tag - The tag to remove.\r\n */\r\n deleteDefinitionTag(project, definitionId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"cb894432-134a-4d31-a839-83beceaace4b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the tags for a definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {number} revision - The definition revision number. If not specified, uses the latest revision of the definition.\r\n */\r\n getDefinitionTags(project, definitionId, revision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"cb894432-134a-4d31-a839-83beceaace4b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds/Removes tags from a definition.\r\n *\r\n * @param {BuildInterfaces.UpdateTagParameters} updateParameters - The tags to add/remove.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n */\r\n updateDefinitionTags(updateParameters, project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"cb894432-134a-4d31-a839-83beceaace4b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a tag from builds, definitions, and from the tag store\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} tag - The tag to remove.\r\n */\r\n deleteTag(project, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"d84ac5c6-edc7-43d5-adc9-1b34be5dea09\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of all build tags in the project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getTags(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"d84ac5c6-edc7-43d5-adc9-1b34be5dea09\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a build definition template.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - The ID of the template.\r\n */\r\n deleteTemplate(project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"e884571e-7f92-4d6a-9274-3f5649900835\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a specific build definition template.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - The ID of the requested template.\r\n */\r\n getTemplate(project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"e884571e-7f92-4d6a-9274-3f5649900835\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionTemplate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all definition templates.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getTemplates(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"e884571e-7f92-4d6a-9274-3f5649900835\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionTemplate, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing build definition template.\r\n *\r\n * @param {BuildInterfaces.BuildDefinitionTemplate} template - The new version of the template.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - The ID of the template.\r\n */\r\n saveTemplate(template, project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"e884571e-7f92-4d6a-9274-3f5649900835\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, template, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionTemplate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets details for a build\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} timelineId\r\n * @param {number} changeId\r\n * @param {string} planId\r\n */\r\n getBuildTimeline(project, buildId, timelineId, changeId, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n timelineId: timelineId\r\n };\r\n let queryValues = {\r\n changeId: changeId,\r\n planId: planId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"8baac422-4c6e-4de5-8532-db96d92acffa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Timeline, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Recreates the webhooks for the specified triggers in the given source code repository.\r\n *\r\n * @param {BuildInterfaces.DefinitionTriggerType[]} triggerTypes - The types of triggers to restore webhooks for.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get webhooks. Can only be omitted for providers that do not support multiple repositories.\r\n */\r\n restoreWebhooks(triggerTypes, project, providerName, serviceEndpointId, repository) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"793bceb8-9736-4030-bd2f-fb3ce6d6b478\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, triggerTypes, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of webhooks installed in the given source code repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get webhooks. Can only be omitted for providers that do not support multiple repositories.\r\n */\r\n listWebhooks(project, providerName, serviceEndpointId, repository) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"8f20ff82-9498-4812-9f6e-9c01bdc50e99\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RepositoryWebhook, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the work items associated with a build. Only work items in the same project are returned.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {number} top - The maximum number of work items to return.\r\n */\r\n getBuildWorkItemsRefs(project, buildId, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"5a21f5d2-5642-47e4-a0bd-1356e6731bee\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the work items associated with a build, filtered to specific commits.\r\n *\r\n * @param {string[]} commitIds - A comma-delimited list of commit IDs.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {number} top - The maximum number of work items to return, or the number of commits to consider if no commit IDs are specified.\r\n */\r\n getBuildWorkItemsRefsFromCommits(commitIds, project, buildId, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"5a21f5d2-5642-47e4-a0bd-1356e6731bee\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, commitIds, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all the work items between two builds.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} fromBuildId - The ID of the first build.\r\n * @param {number} toBuildId - The ID of the last build.\r\n * @param {number} top - The maximum number of work items to return.\r\n */\r\n getWorkItemsBetweenBuilds(project, fromBuildId, toBuildId, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (fromBuildId == null) {\r\n throw new TypeError('fromBuildId can not be null or undefined');\r\n }\r\n if (toBuildId == null) {\r\n throw new TypeError('toBuildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fromBuildId: fromBuildId,\r\n toBuildId: toBuildId,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"52ba8915-5518-42e3-a4bb-b0182d159e2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Converts a definition to YAML, optionally at a specific revision.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {number} revision - The revision number to retrieve. If this is not specified, the latest version will be returned.\r\n * @param {Date} minMetricsTime - If specified, indicates the date from which metrics should be included.\r\n * @param {string[]} propertyFilters - A comma-delimited list of properties to include in the results.\r\n * @param {boolean} includeLatestBuilds\r\n */\r\n getDefinitionYaml(project, definitionId, revision, minMetricsTime, propertyFilters, includeLatestBuilds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n minMetricsTime: minMetricsTime,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n includeLatestBuilds: includeLatestBuilds,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"7c3df3a1-7e51-4150-8cf7-540347f8697f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nBuildApi.RESOURCE_AREA_ID = \"965220d5-5bb9-42cf-8d67-9b146df2a5a4\";\r\nexports.BuildApi = BuildApi;\r\n","\"use strict\";\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst vsom = require(\"./VsoClient\");\r\nconst serm = require(\"./Serialization\");\r\nconst rm = require(\"typed-rest-client/RestClient\");\r\nconst hm = require(\"typed-rest-client/HttpClient\");\r\nclass ClientApiBase {\r\n constructor(baseUrl, handlers, userAgent, options) {\r\n this.baseUrl = baseUrl;\r\n this.http = new hm.HttpClient(userAgent, handlers, options);\r\n this.rest = new rm.RestClient(userAgent, null, handlers, options);\r\n this.vsoClient = new vsom.VsoClient(baseUrl, this.rest);\r\n this.userAgent = userAgent;\r\n }\r\n createAcceptHeader(type, apiVersion) {\r\n return type + (apiVersion ? (';api-version=' + apiVersion) : '');\r\n }\r\n createRequestOptions(type, apiVersion) {\r\n let options = {};\r\n options.acceptHeader = this.createAcceptHeader(type, apiVersion);\r\n return options;\r\n }\r\n formatResponse(data, responseTypeMetadata, isCollection) {\r\n let serializationData = {\r\n responseTypeMetadata: responseTypeMetadata,\r\n responseIsCollection: isCollection\r\n };\r\n let deserializedResult = serm.ContractSerializer.deserialize(data, serializationData.responseTypeMetadata, false, serializationData.responseIsCollection);\r\n return deserializedResult;\r\n }\r\n}\r\nexports.ClientApiBase = ClientApiBase;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst CoreInterfaces = require(\"./interfaces/CoreInterfaces\");\r\nconst OperationsInterfaces = require(\"./interfaces/common/OperationsInterfaces\");\r\nclass CoreApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Core-api', options);\r\n }\r\n /**\r\n * Removes the avatar for the project.\r\n *\r\n * @param {string} projectId - The ID or name of the project.\r\n */\r\n removeProjectAvatar(projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"54b2a2a0-859b-4d05-827c-ec4c862f641a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Sets the avatar for the project.\r\n *\r\n * @param {CoreInterfaces.ProjectAvatar} avatarBlob - The avatar blob data object to upload.\r\n * @param {string} projectId - The ID or name of the project.\r\n */\r\n setProjectAvatar(avatarBlob, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"54b2a2a0-859b-4d05-827c-ec4c862f641a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, avatarBlob, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {CoreInterfaces.WebApiConnectedServiceDetails} connectedServiceCreationData\r\n * @param {string} projectId\r\n */\r\n createConnectedService(connectedServiceCreationData, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"b4f70219-e18b-42c5-abe3-98b07d35525e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, connectedServiceCreationData, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.WebApiConnectedService, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} projectId\r\n * @param {string} name\r\n */\r\n getConnectedServiceDetails(projectId, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"b4f70219-e18b-42c5-abe3-98b07d35525e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.WebApiConnectedServiceDetails, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} projectId\r\n * @param {CoreInterfaces.ConnectedServiceKind} kind\r\n */\r\n getConnectedServices(projectId, kind) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n let queryValues = {\r\n kind: kind,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"b4f70219-e18b-42c5-abe3-98b07d35525e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.WebApiConnectedService, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {CoreInterfaces.IdentityData} mruData\r\n * @param {string} mruName\r\n */\r\n createIdentityMru(mruData, mruName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n mruName: mruName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"5ead0b70-2572-4697-97e9-f341069a783a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, mruData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {CoreInterfaces.IdentityData} mruData\r\n * @param {string} mruName\r\n */\r\n deleteIdentityMru(mruData, mruName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n mruName: mruName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"5ead0b70-2572-4697-97e9-f341069a783a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} mruName\r\n */\r\n getIdentityMru(mruName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n mruName: mruName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"5ead0b70-2572-4697-97e9-f341069a783a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {CoreInterfaces.IdentityData} mruData\r\n * @param {string} mruName\r\n */\r\n updateIdentityMru(mruData, mruName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n mruName: mruName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"5ead0b70-2572-4697-97e9-f341069a783a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, mruData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of members for a specific team.\r\n *\r\n * @param {string} projectId - The name or ID (GUID) of the team project the team belongs to.\r\n * @param {string} teamId - The name or ID (GUID) of the team .\r\n * @param {number} top\r\n * @param {number} skip\r\n */\r\n getTeamMembersWithExtendedProperties(projectId, teamId, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n teamId: teamId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"294c494c-2600-4d7e-b76c-3dd50c3c95be\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a process by ID.\r\n *\r\n * @param {string} processId - ID for a process.\r\n */\r\n getProcessById(processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"93878975-88c5-4e6a-8abb-7ddd77a8a7d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.Process, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of processes.\r\n *\r\n */\r\n getProcesses() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"93878975-88c5-4e6a-8abb-7ddd77a8a7d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.Process, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get project collection with the specified id or name.\r\n *\r\n * @param {string} collectionId\r\n */\r\n getProjectCollection(collectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n collectionId: collectionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"8031090f-ef1d-4af6-85fc-698cd75d42bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.TeamProjectCollection, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get project collection references for this application.\r\n *\r\n * @param {number} top\r\n * @param {number} skip\r\n */\r\n getProjectCollections(top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"8031090f-ef1d-4af6-85fc-698cd75d42bf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the history of changes to the project.\r\n *\r\n * @param {number} minRevision - The minimum revision number to return in the history.\r\n */\r\n getProjectHistoryEntries(minRevision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n minRevision: minRevision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"6488a877-4749-4954-82ea-7340d36be9f2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.ProjectInfo, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get project with the specified id or name, optionally including capabilities.\r\n *\r\n * @param {string} projectId\r\n * @param {boolean} includeCapabilities - Include capabilities (such as source control) in the team project result (default: false).\r\n * @param {boolean} includeHistory - Search within renamed projects (that had such name in the past).\r\n */\r\n getProject(projectId, includeCapabilities, includeHistory) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n let queryValues = {\r\n includeCapabilities: includeCapabilities,\r\n includeHistory: includeHistory,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"core\", \"603fe2ac-9723-48b9-88ad-09305aa6c6e1\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.TeamProject, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all projects in the organization that the authenticated user has access to.\r\n *\r\n * @param {any} stateFilter - Filter on team projects in a specific team project state (default: WellFormed).\r\n * @param {number} top\r\n * @param {number} skip\r\n * @param {string} continuationToken\r\n * @param {boolean} getDefaultTeamImageUrl\r\n */\r\n getProjects(stateFilter, top, skip, continuationToken, getDefaultTeamImageUrl) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n stateFilter: stateFilter,\r\n '$top': top,\r\n '$skip': skip,\r\n continuationToken: continuationToken,\r\n getDefaultTeamImageUrl: getDefaultTeamImageUrl,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"core\", \"603fe2ac-9723-48b9-88ad-09305aa6c6e1\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.TeamProjectReference, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Queues a project to be created. Use the [GetOperation](../../operations/operations/get) to periodically check for create project status.\r\n *\r\n * @param {CoreInterfaces.TeamProject} projectToCreate - The project to create.\r\n */\r\n queueCreateProject(projectToCreate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"core\", \"603fe2ac-9723-48b9-88ad-09305aa6c6e1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, projectToCreate, options);\r\n let ret = this.formatResponse(res.result, OperationsInterfaces.TypeInfo.OperationReference, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Queues a project to be deleted. Use the [GetOperation](../../operations/operations/get) to periodically check for delete project status.\r\n *\r\n * @param {string} projectId - The project id of the project to delete.\r\n */\r\n queueDeleteProject(projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"core\", \"603fe2ac-9723-48b9-88ad-09305aa6c6e1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, OperationsInterfaces.TypeInfo.OperationReference, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update an existing project's name, abbreviation, description, or restore a project.\r\n *\r\n * @param {CoreInterfaces.TeamProject} projectUpdate - The updates for the project. The state must be set to wellFormed to restore the project.\r\n * @param {string} projectId - The project id of the project to update.\r\n */\r\n updateProject(projectUpdate, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"core\", \"603fe2ac-9723-48b9-88ad-09305aa6c6e1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, projectUpdate, options);\r\n let ret = this.formatResponse(res.result, OperationsInterfaces.TypeInfo.OperationReference, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a collection of team project properties for multiple projects.\r\n *\r\n * @param {string[]} projectIds - A comma-delimited string of team project IDs\r\n * @param {string[]} properties\r\n */\r\n getProjectsProperties(projectIds, properties) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (projectIds == null) {\r\n throw new TypeError('projectIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n projectIds: projectIds && projectIds.join(\",\"),\r\n properties: properties && properties.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"0a3ffdfc-fe94-47a6-bb27-79bf3f762eac\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a collection of team project properties.\r\n *\r\n * @param {string} projectId - The team project ID.\r\n * @param {string[]} keys - A comma-delimited string of team project property names. Wildcard characters (\"?\" and \"*\") are supported. If no key is specified, all properties will be returned.\r\n */\r\n getProjectProperties(projectId, keys) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n let queryValues = {\r\n keys: keys && keys.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"4976a71a-4487-49aa-8aab-a1eda469037a\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create, update, and delete team project properties.\r\n *\r\n * @param {string} projectId - The team project ID.\r\n * @param {VSSInterfaces.JsonPatchDocument} patchDocument - A JSON Patch document that represents an array of property operations. See RFC 6902 for more details on JSON Patch. The accepted operation verbs are Add and Remove, where Add is used for both creating and updating properties. The path consists of a forward slash and a property name.\r\n */\r\n setProjectProperties(customHeaders, projectId, patchDocument) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"4976a71a-4487-49aa-8aab-a1eda469037a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, patchDocument, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {CoreInterfaces.Proxy} proxy\r\n */\r\n createOrUpdateProxy(proxy) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"ec1f4311-f2b4-4c15-b2b8-8990b80d2908\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, proxy, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} proxyUrl\r\n * @param {string} site\r\n */\r\n deleteProxy(proxyUrl, site) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (proxyUrl == null) {\r\n throw new TypeError('proxyUrl can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n proxyUrl: proxyUrl,\r\n site: site,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"ec1f4311-f2b4-4c15-b2b8-8990b80d2908\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} proxyUrl\r\n */\r\n getProxies(proxyUrl) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n proxyUrl: proxyUrl,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"ec1f4311-f2b4-4c15-b2b8-8990b80d2908\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of all teams.\r\n *\r\n * @param {boolean} mine - If true, then return all teams requesting user is member. Otherwise return all teams user has read access.\r\n * @param {number} top - Maximum number of teams to return.\r\n * @param {number} skip - Number of teams to skip.\r\n * @param {boolean} expandIdentity - A value indicating whether or not to expand Identity information in the result WebApiTeam object.\r\n */\r\n getAllTeams(mine, top, skip, expandIdentity) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n '$mine': mine,\r\n '$top': top,\r\n '$skip': skip,\r\n '$expandIdentity': expandIdentity,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"7a4d9ee9-3433-4347-b47a-7a80f1cf307e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a team in a team project.\r\n *\r\n * @param {CoreInterfaces.WebApiTeam} team - The team data used to create the team.\r\n * @param {string} projectId - The name or ID (GUID) of the team project in which to create the team.\r\n */\r\n createTeam(team, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"d30a3dd1-f8ba-442a-b86a-bd0c0c383e59\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, team, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a team.\r\n *\r\n * @param {string} projectId - The name or ID (GUID) of the team project containing the team to delete.\r\n * @param {string} teamId - The name or ID of the team to delete.\r\n */\r\n deleteTeam(projectId, teamId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n teamId: teamId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"d30a3dd1-f8ba-442a-b86a-bd0c0c383e59\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a specific team.\r\n *\r\n * @param {string} projectId - The name or ID (GUID) of the team project containing the team.\r\n * @param {string} teamId - The name or ID (GUID) of the team.\r\n * @param {boolean} expandIdentity - A value indicating whether or not to expand Identity information in the result WebApiTeam object.\r\n */\r\n getTeam(projectId, teamId, expandIdentity) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n teamId: teamId\r\n };\r\n let queryValues = {\r\n '$expandIdentity': expandIdentity,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"d30a3dd1-f8ba-442a-b86a-bd0c0c383e59\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of teams.\r\n *\r\n * @param {string} projectId\r\n * @param {boolean} mine - If true return all the teams requesting user is member, otherwise return all the teams user has read access.\r\n * @param {number} top - Maximum number of teams to return.\r\n * @param {number} skip - Number of teams to skip.\r\n * @param {boolean} expandIdentity - A value indicating whether or not to expand Identity information in the result WebApiTeam object.\r\n */\r\n getTeams(projectId, mine, top, skip, expandIdentity) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n let queryValues = {\r\n '$mine': mine,\r\n '$top': top,\r\n '$skip': skip,\r\n '$expandIdentity': expandIdentity,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"d30a3dd1-f8ba-442a-b86a-bd0c0c383e59\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a team's name and/or description.\r\n *\r\n * @param {CoreInterfaces.WebApiTeam} teamData\r\n * @param {string} projectId - The name or ID (GUID) of the team project containing the team to update.\r\n * @param {string} teamId - The name of ID of the team to update.\r\n */\r\n updateTeam(teamData, projectId, teamId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n teamId: teamId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"d30a3dd1-f8ba-442a-b86a-bd0c0c383e59\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, teamData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nCoreApi.RESOURCE_AREA_ID = \"79134c72-4a58-4b42-976c-04e7115f32bf\";\r\nexports.CoreApi = CoreApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst DashboardInterfaces = require(\"./interfaces/DashboardInterfaces\");\r\nclass DashboardApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Dashboard-api', options);\r\n }\r\n /**\r\n * Create the supplied dashboard.\r\n *\r\n * @param {DashboardInterfaces.Dashboard} dashboard - The initial state of the dashboard\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n createDashboard(dashboard, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, dashboard, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a dashboard given its ID. This also deletes the widgets associated with this dashboard.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard to delete.\r\n */\r\n deleteDashboard(teamContext, dashboardId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a dashboard by its ID.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId\r\n */\r\n getDashboard(teamContext, dashboardId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of dashboards under a project.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getDashboardsByProject(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replace configuration for the specified dashboard. Replaces Widget list on Dashboard, only if property is supplied.\r\n *\r\n * @param {DashboardInterfaces.Dashboard} dashboard - The Configuration of the dashboard to replace.\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard to replace.\r\n */\r\n replaceDashboard(dashboard, teamContext, dashboardId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, dashboard, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the name and position of dashboards in the supplied group, and remove omitted dashboards. Does not modify dashboard content.\r\n *\r\n * @param {DashboardInterfaces.DashboardGroup} group\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n replaceDashboards(group, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, group, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.DashboardGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a widget on the specified dashboard.\r\n *\r\n * @param {DashboardInterfaces.Widget} widget - State of the widget to add\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of dashboard the widget will be added to.\r\n */\r\n createWidget(widget, teamContext, dashboardId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Dashboard\", \"bdcff53a-8355-4172-a00a-40497ea23afc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, widget, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete the specified widget.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard containing the widget.\r\n * @param {string} widgetId - ID of the widget to update.\r\n */\r\n deleteWidget(teamContext, dashboardId, widgetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId,\r\n widgetId: widgetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Dashboard\", \"bdcff53a-8355-4172-a00a-40497ea23afc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the current state of the specified widget.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard containing the widget.\r\n * @param {string} widgetId - ID of the widget to read.\r\n */\r\n getWidget(teamContext, dashboardId, widgetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId,\r\n widgetId: widgetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Dashboard\", \"bdcff53a-8355-4172-a00a-40497ea23afc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Override the state of the specified widget.\r\n *\r\n * @param {DashboardInterfaces.Widget} widget - State to be written for the widget.\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard containing the widget.\r\n * @param {string} widgetId - ID of the widget to update.\r\n */\r\n replaceWidget(widget, teamContext, dashboardId, widgetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId,\r\n widgetId: widgetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Dashboard\", \"bdcff53a-8355-4172-a00a-40497ea23afc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, widget, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Perform a partial update of the specified widget.\r\n *\r\n * @param {DashboardInterfaces.Widget} widget - Description of the widget changes to apply. All non-null fields will be replaced.\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard containing the widget.\r\n * @param {string} widgetId - ID of the widget to update.\r\n */\r\n updateWidget(widget, teamContext, dashboardId, widgetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId,\r\n widgetId: widgetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Dashboard\", \"bdcff53a-8355-4172-a00a-40497ea23afc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, widget, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the widget metadata satisfying the specified contribution ID.\r\n *\r\n * @param {string} contributionId - The ID of Contribution for the Widget\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWidgetMetadata(contributionId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n contributionId: contributionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Dashboard\", \"6b3628d3-e96f-4fc7-b176-50240b03b515\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.WidgetMetadataResponse, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all available widget metadata in alphabetical order, including widgets marked with isVisibleFromCatalog == false.\r\n *\r\n * @param {DashboardInterfaces.WidgetScope} scope\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWidgetTypes(scope, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (scope == null) {\r\n throw new TypeError('scope can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$scope': scope,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Dashboard\", \"6b3628d3-e96f-4fc7-b176-50240b03b515\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.WidgetTypesResponse, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nDashboardApi.RESOURCE_AREA_ID = \"31c84e0a-3ece-48fd-a29d-100849af99ba\";\r\nexports.DashboardApi = DashboardApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst ExtensionManagementInterfaces = require(\"./interfaces/ExtensionManagementInterfaces\");\r\nconst GalleryInterfaces = require(\"./interfaces/GalleryInterfaces\");\r\nclass ExtensionManagementApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-ExtensionManagement-api', options);\r\n }\r\n /**\r\n * @param {string} itemId\r\n * @param {boolean} testCommerce\r\n * @param {boolean} isFreeOrTrialInstall\r\n * @param {boolean} isAccountOwner\r\n * @param {boolean} isLinked\r\n * @param {boolean} isConnectedServer\r\n * @param {boolean} isBuyOperationValid\r\n */\r\n getAcquisitionOptions(itemId, testCommerce, isFreeOrTrialInstall, isAccountOwner, isLinked, isConnectedServer, isBuyOperationValid) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (itemId == null) {\r\n throw new TypeError('itemId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n itemId: itemId,\r\n testCommerce: testCommerce,\r\n isFreeOrTrialInstall: isFreeOrTrialInstall,\r\n isAccountOwner: isAccountOwner,\r\n isLinked: isLinked,\r\n isConnectedServer: isConnectedServer,\r\n isBuyOperationValid: isBuyOperationValid,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"288dff58-d13b-468e-9671-0fb754e9398c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.AcquisitionOptions, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ExtensionManagementInterfaces.ExtensionAcquisitionRequest} acquisitionRequest\r\n */\r\n requestAcquisition(acquisitionRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"da616457-eed3-4672-92d7-18d21f5c1658\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, acquisitionRequest, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.ExtensionAcquisitionRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n getAuditLog(publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"23a312e0-562d-42fb-a505-5a046b5635db\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.ExtensionAuditLog, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} registrationId\r\n */\r\n registerAuthorization(publisherName, extensionName, registrationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n registrationId: registrationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"f21cfc80-d2d2-4248-98bb-7820c74c4606\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} doc\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n */\r\n createDocumentByName(doc, publisherName, extensionName, scopeType, scopeValue, collectionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, doc, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n * @param {string} documentId\r\n */\r\n deleteDocumentByName(publisherName, extensionName, scopeType, scopeValue, collectionName, documentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName,\r\n documentId: documentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n * @param {string} documentId\r\n */\r\n getDocumentByName(publisherName, extensionName, scopeType, scopeValue, collectionName, documentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName,\r\n documentId: documentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n */\r\n getDocumentsByName(publisherName, extensionName, scopeType, scopeValue, collectionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} doc\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n */\r\n setDocumentByName(doc, publisherName, extensionName, scopeType, scopeValue, collectionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, doc, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} doc\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n */\r\n updateDocumentByName(doc, publisherName, extensionName, scopeType, scopeValue, collectionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, doc, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Query for one or more data collections for the specified extension. Note: the token used for authorization must have been issued on behalf of the specified extension.\r\n *\r\n * @param {ExtensionManagementInterfaces.ExtensionDataCollectionQuery} collectionQuery\r\n * @param {string} publisherName - Name of the publisher. Example: \"fabrikam\".\r\n * @param {string} extensionName - Name of the extension. Example: \"ops-tools\".\r\n */\r\n queryCollectionsByName(collectionQuery, publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"56c331f1-ce53-4318-adfd-4db5c52a7a2e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, collectionQuery, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List state and version information for all installed extensions.\r\n *\r\n * @param {boolean} includeDisabled - If true (the default), include disabled extensions in the results.\r\n * @param {boolean} includeErrors - If true, include installed extensions in an error state in the results.\r\n * @param {boolean} includeInstallationIssues\r\n * @param {boolean} forceRefresh\r\n */\r\n getStates(includeDisabled, includeErrors, includeInstallationIssues, forceRefresh) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n includeDisabled: includeDisabled,\r\n includeErrors: includeErrors,\r\n includeInstallationIssues: includeInstallationIssues,\r\n forceRefresh: forceRefresh,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"92755d3d-9a8a-42b3-8a4d-87359fe5aa93\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.ExtensionState, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ExtensionManagementInterfaces.InstalledExtensionQuery} query\r\n */\r\n queryExtensions(query) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"046c980f-1345-4ce2-bf85-b46d10ff4cfd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List the installed extensions in the account / project collection.\r\n *\r\n * @param {boolean} includeDisabledExtensions - If true (the default), include disabled extensions in the results.\r\n * @param {boolean} includeErrors - If true, include installed extensions with errors.\r\n * @param {string[]} assetTypes\r\n * @param {boolean} includeInstallationIssues\r\n */\r\n getInstalledExtensions(includeDisabledExtensions, includeErrors, assetTypes, includeInstallationIssues) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n includeDisabledExtensions: includeDisabledExtensions,\r\n includeErrors: includeErrors,\r\n assetTypes: assetTypes && assetTypes.join(\":\"),\r\n includeInstallationIssues: includeInstallationIssues,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"275424d0-c844-4fe2-bda6-04933a1357d8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update an installed extension. Typically this API is used to enable or disable an extension.\r\n *\r\n * @param {ExtensionManagementInterfaces.InstalledExtension} extension\r\n */\r\n updateInstalledExtension(extension) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"275424d0-c844-4fe2-bda6-04933a1357d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, extension, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get an installed extension by its publisher and extension name.\r\n *\r\n * @param {string} publisherName - Name of the publisher. Example: \"fabrikam\".\r\n * @param {string} extensionName - Name of the extension. Example: \"ops-tools\".\r\n * @param {string[]} assetTypes\r\n */\r\n getInstalledExtensionByName(publisherName, extensionName, assetTypes) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n assetTypes: assetTypes && assetTypes.join(\":\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"fb0da285-f23e-4b56-8b53-3ef5f9f6de66\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Install the specified extension into the account / project collection.\r\n *\r\n * @param {string} publisherName - Name of the publisher. Example: \"fabrikam\".\r\n * @param {string} extensionName - Name of the extension. Example: \"ops-tools\".\r\n * @param {string} version\r\n */\r\n installExtensionByName(publisherName, extensionName, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"fb0da285-f23e-4b56-8b53-3ef5f9f6de66\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Uninstall the specified extension from the account / project collection.\r\n *\r\n * @param {string} publisherName - Name of the publisher. Example: \"fabrikam\".\r\n * @param {string} extensionName - Name of the extension. Example: \"ops-tools\".\r\n * @param {string} reason\r\n * @param {string} reasonCode\r\n */\r\n uninstallExtensionByName(publisherName, extensionName, reason, reasonCode) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n reason: reason,\r\n reasonCode: reasonCode,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"fb0da285-f23e-4b56-8b53-3ef5f9f6de66\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} userId\r\n */\r\n getPolicies(userId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n userId: userId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"e5cc8c09-407b-4867-8319-2ae3338cbf6f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.UserExtensionPolicy, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} rejectMessage\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} requesterId\r\n * @param {ExtensionManagementInterfaces.ExtensionRequestState} state\r\n */\r\n resolveRequest(rejectMessage, publisherName, extensionName, requesterId, state) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (state == null) {\r\n throw new TypeError('state can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n requesterId: requesterId\r\n };\r\n let queryValues = {\r\n state: state,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"aa93e1f3-511c-4364-8b9c-eb98818f2e0b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, rejectMessage, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getRequests() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"216b978f-b164-424e-ada2-b77561e842b7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.RequestedExtension, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} rejectMessage\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {ExtensionManagementInterfaces.ExtensionRequestState} state\r\n */\r\n resolveAllRequests(rejectMessage, publisherName, extensionName, state) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (state == null) {\r\n throw new TypeError('state can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n state: state,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"ba93e1f3-511c-4364-8b9c-eb98818f2e0b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, rejectMessage, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n deleteRequest(publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"f5afca1e-a728-4294-aa2d-4af0173431b5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} requestMessage\r\n */\r\n requestExtension(publisherName, extensionName, requestMessage) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"f5afca1e-a728-4294-aa2d-4af0173431b5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, requestMessage, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.RequestedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getToken() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"3a2e24ed-1d6f-4cb2-9f3b-45a96bbfaf50\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nExtensionManagementApi.RESOURCE_AREA_ID = \"6c2b0933-3600-42ae-bf8b-93d4f7e83594\";\r\nexports.ExtensionManagementApi = ExtensionManagementApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst FeatureManagementInterfaces = require(\"./interfaces/FeatureManagementInterfaces\");\r\nclass FeatureManagementApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-FeatureManagement-api', options);\r\n }\r\n /**\r\n * Get a specific feature by its id\r\n *\r\n * @param {string} featureId - The contribution id of the feature\r\n */\r\n getFeature(featureId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n featureId: featureId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"c4209f25-7a27-41dd-9f04-06080c7b6afd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of all defined features\r\n *\r\n * @param {string} targetContributionId - Optional target contribution. If null/empty, return all features. If specified include the features that target the specified contribution.\r\n */\r\n getFeatures(targetContributionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n targetContributionId: targetContributionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"c4209f25-7a27-41dd-9f04-06080c7b6afd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the state of the specified feature for the given user/all-users scope\r\n *\r\n * @param {string} featureId - Contribution id of the feature\r\n * @param {string} userScope - User-Scope at which to get the value. Should be \"me\" for the current user or \"host\" for all users.\r\n */\r\n getFeatureState(featureId, userScope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n featureId: featureId,\r\n userScope: userScope\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"98911314-3f9b-4eaf-80e8-83900d8e85d9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Set the state of a feature\r\n *\r\n * @param {FeatureManagementInterfaces.ContributedFeatureState} feature - Posted feature state object. Should specify the effective value.\r\n * @param {string} featureId - Contribution id of the feature\r\n * @param {string} userScope - User-Scope at which to set the value. Should be \"me\" for the current user or \"host\" for all users.\r\n * @param {string} reason - Reason for changing the state\r\n * @param {string} reasonCode - Short reason code\r\n */\r\n setFeatureState(feature, featureId, userScope, reason, reasonCode) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n featureId: featureId,\r\n userScope: userScope\r\n };\r\n let queryValues = {\r\n reason: reason,\r\n reasonCode: reasonCode,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"98911314-3f9b-4eaf-80e8-83900d8e85d9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, feature, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the state of the specified feature for the given named scope\r\n *\r\n * @param {string} featureId - Contribution id of the feature\r\n * @param {string} userScope - User-Scope at which to get the value. Should be \"me\" for the current user or \"host\" for all users.\r\n * @param {string} scopeName - Scope at which to get the feature setting for (e.g. \"project\" or \"team\")\r\n * @param {string} scopeValue - Value of the scope (e.g. the project or team id)\r\n */\r\n getFeatureStateForScope(featureId, userScope, scopeName, scopeValue) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n featureId: featureId,\r\n userScope: userScope,\r\n scopeName: scopeName,\r\n scopeValue: scopeValue\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"dd291e43-aa9f-4cee-8465-a93c78e414a4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Set the state of a feature at a specific scope\r\n *\r\n * @param {FeatureManagementInterfaces.ContributedFeatureState} feature - Posted feature state object. Should specify the effective value.\r\n * @param {string} featureId - Contribution id of the feature\r\n * @param {string} userScope - User-Scope at which to set the value. Should be \"me\" for the current user or \"host\" for all users.\r\n * @param {string} scopeName - Scope at which to get the feature setting for (e.g. \"project\" or \"team\")\r\n * @param {string} scopeValue - Value of the scope (e.g. the project or team id)\r\n * @param {string} reason - Reason for changing the state\r\n * @param {string} reasonCode - Short reason code\r\n */\r\n setFeatureStateForScope(feature, featureId, userScope, scopeName, scopeValue, reason, reasonCode) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n featureId: featureId,\r\n userScope: userScope,\r\n scopeName: scopeName,\r\n scopeValue: scopeValue\r\n };\r\n let queryValues = {\r\n reason: reason,\r\n reasonCode: reasonCode,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"dd291e43-aa9f-4cee-8465-a93c78e414a4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, feature, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the effective state for a list of feature ids\r\n *\r\n * @param {FeatureManagementInterfaces.ContributedFeatureStateQuery} query - Features to query along with current scope values\r\n */\r\n queryFeatureStates(query) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"2b4486ad-122b-400c-ae65-17b6672c1f9d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureStateQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the states of the specified features for the default scope\r\n *\r\n * @param {FeatureManagementInterfaces.ContributedFeatureStateQuery} query - Query describing the features to query.\r\n * @param {string} userScope\r\n */\r\n queryFeatureStatesForDefaultScope(query, userScope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n userScope: userScope\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"3f810f28-03e2-4239-b0bc-788add3005e5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureStateQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the states of the specified features for the specific named scope\r\n *\r\n * @param {FeatureManagementInterfaces.ContributedFeatureStateQuery} query - Query describing the features to query.\r\n * @param {string} userScope\r\n * @param {string} scopeName\r\n * @param {string} scopeValue\r\n */\r\n queryFeatureStatesForNamedScope(query, userScope, scopeName, scopeValue) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n userScope: userScope,\r\n scopeName: scopeName,\r\n scopeValue: scopeValue\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"f29e997b-c2da-4d15-8380-765788a1a74c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureStateQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.FeatureManagementApi = FeatureManagementApi;\r\n","\"use strict\";\r\n/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nconst stream = require(\"stream\");\r\nconst zlib = require(\"zlib\");\r\nconst httpm = require(\"typed-rest-client/HttpClient\");\r\nconst FileContainerApiBase = require(\"./FileContainerApiBase\");\r\nconst FileContainerInterfaces = require(\"./interfaces/FileContainerInterfaces\");\r\nclass FileContainerApi extends FileContainerApiBase.FileContainerApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, options);\r\n }\r\n /**\r\n * @param {number} containerId\r\n * @param {string} scope\r\n * @param {string} itemPath\r\n * @param {string} downloadFileName\r\n */\r\n getItem(containerId, scope, itemPath, downloadFileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n containerId: containerId\r\n };\r\n let queryValues = {\r\n scope: scope,\r\n itemPath: itemPath,\r\n '$format': \"OctetStream\",\r\n downloadFileName: downloadFileName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"4.0-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/octet-stream', verData.apiVersion);\r\n let res = yield this.http.get(url);\r\n let rres = {};\r\n let statusCode = res.message.statusCode;\r\n rres.statusCode = statusCode;\r\n // not found leads to null obj returned\r\n if (statusCode == httpm.HttpCodes.NotFound) {\r\n resolve(rres);\r\n }\r\n if (statusCode > 299) {\r\n let msg;\r\n // if exception/error in body, attempt to get better error\r\n let contents = yield res.readBody();\r\n let obj;\r\n if (contents && contents.length > 0) {\r\n obj = JSON.parse(contents);\r\n if (options && options.responseProcessor) {\r\n rres.result = options.responseProcessor(obj);\r\n }\r\n else {\r\n rres.result = obj;\r\n }\r\n }\r\n if (obj && obj.message) {\r\n msg = obj.message;\r\n }\r\n else {\r\n msg = \"Failed request: (\" + statusCode + \") \" + res.message.url;\r\n }\r\n reject(new Error(msg));\r\n }\r\n else {\r\n // if the response is gzipped, unzip it\r\n if (res.message.headers[\"content-encoding\"] === \"gzip\") {\r\n let unzipStream = zlib.createGunzip();\r\n res.message.pipe(unzipStream);\r\n rres.result = unzipStream;\r\n }\r\n else {\r\n rres.result = res.message;\r\n }\r\n resolve(rres);\r\n }\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n createItem(contentStream, uncompressedLength, containerId, itemPath, scope, options) {\r\n return new Promise((resolve, reject) => {\r\n let chunkStream = new ChunkStream(this, uncompressedLength, containerId, itemPath, scope, options);\r\n chunkStream.on('finish', () => {\r\n resolve(chunkStream.getItem());\r\n });\r\n contentStream.pipe(chunkStream);\r\n });\r\n }\r\n // used by ChunkStream\r\n _createItem(customHeaders, contentStream, containerId, itemPath, scope, onResult) {\r\n var routeValues = {\r\n containerId: containerId\r\n };\r\n var queryValues = {\r\n itemPath: itemPath,\r\n scope: scope,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"\";\r\n this.vsoClient.getVersioningData(\"4.0-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues)\r\n .then((versioningData) => {\r\n var url = versioningData.requestUrl;\r\n var serializationData = { responseTypeMetadata: FileContainerInterfaces.TypeInfo.FileContainerItem, responseIsCollection: false };\r\n let options = this.createRequestOptions('application/octet-stream', versioningData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n this.rest.uploadStream('PUT', url, contentStream, options)\r\n .then((res) => {\r\n let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainerItem, false);\r\n onResult(null, res.statusCode, ret);\r\n })\r\n .catch((err) => {\r\n onResult(err, err.statusCode, null);\r\n });\r\n }, (error) => {\r\n onResult(error, error.statusCode, null);\r\n });\r\n }\r\n}\r\nexports.FileContainerApi = FileContainerApi;\r\nclass ChunkStream extends stream.Writable {\r\n constructor(api, uncompressedLength, containerId, itemPath, scope, options) {\r\n super();\r\n this._buffer = new Buffer(ChunkStream.ChunkSize);\r\n this._length = 0;\r\n this._startRange = 0;\r\n this._bytesToSend = 0;\r\n this._totalReceived = 0;\r\n this._api = api;\r\n this._options = options || {};\r\n this._uncompressedLength = uncompressedLength;\r\n this._containerId = containerId;\r\n this._itemPath = itemPath;\r\n this._scope = scope;\r\n this._bytesToSend = this._options.isGzipped ? this._options.compressedLength : uncompressedLength;\r\n }\r\n _write(data, encoding, callback) {\r\n let chunk = data;\r\n if (!chunk) {\r\n if (this._length == 0) {\r\n callback();\r\n }\r\n else {\r\n // last chunk\r\n this._sendChunk(callback);\r\n }\r\n return;\r\n }\r\n let newBuffer = null;\r\n if (this._length + chunk.length > ChunkStream.ChunkSize) {\r\n // overflow\r\n let overflowPosition = chunk.length - (ChunkStream.ChunkSize - this._length);\r\n chunk.copy(this._buffer, this._length, 0, overflowPosition);\r\n this._length += overflowPosition;\r\n newBuffer = chunk.slice(overflowPosition);\r\n }\r\n else {\r\n chunk.copy(this._buffer, this._length, 0, chunk.length);\r\n this._length += chunk.length;\r\n }\r\n this._totalReceived += chunk.length;\r\n if (this._length >= ChunkStream.ChunkSize || this._totalReceived >= this._bytesToSend) {\r\n this._sendChunk(callback, newBuffer);\r\n }\r\n else {\r\n callback();\r\n }\r\n }\r\n _sendChunk(callback, newBuffer) {\r\n let endRange = this._startRange + this._length;\r\n let headers = {\r\n \"Content-Range\": \"bytes \" + this._startRange + \"-\" + (endRange - 1) + \"/\" + this._bytesToSend,\r\n \"Content-Length\": this._length\r\n };\r\n if (this._options.isGzipped) {\r\n headers[\"Accept-Encoding\"] = \"gzip\";\r\n headers[\"Content-Encoding\"] = \"gzip\";\r\n headers[\"x-tfs-filelength\"] = this._uncompressedLength;\r\n }\r\n this._startRange = endRange;\r\n this._api._createItem(headers, new BufferStream(this._buffer, this._length), this._containerId, this._itemPath, this._scope, (err, statusCode, item) => {\r\n if (newBuffer) {\r\n this._length = newBuffer.length;\r\n newBuffer.copy(this._buffer);\r\n }\r\n else {\r\n this._length = 0;\r\n }\r\n this._item = item;\r\n callback(err);\r\n });\r\n }\r\n getItem() {\r\n return this._item;\r\n }\r\n}\r\nChunkStream.ChunkSize = (16 * 1024 * 1024);\r\nclass BufferStream extends stream.Readable {\r\n constructor(buffer, length) {\r\n super();\r\n this._position = 0;\r\n this._length = 0;\r\n this._buffer = buffer;\r\n this._length = length;\r\n }\r\n _read(size) {\r\n if (this._position >= this._length) {\r\n this.push(null);\r\n return;\r\n }\r\n let end = Math.min(this._position + size, this._length);\r\n this.push(this._buffer.slice(this._position, end));\r\n this._position = end;\r\n }\r\n}\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst FileContainerInterfaces = require(\"./interfaces/FileContainerInterfaces\");\r\nclass FileContainerApiBase extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-FileContainer-api', options);\r\n }\r\n /**\r\n * Creates the specified items in in the referenced container.\r\n *\r\n * @param {VSSInterfaces.VssJsonCollectionWrapperV} items\r\n * @param {number} containerId\r\n * @param {string} scope - A guid representing the scope of the container. This is often the project id.\r\n */\r\n createItems(items, containerId, scope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n containerId: containerId\r\n };\r\n let queryValues = {\r\n scope: scope,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, items, options);\r\n let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainerItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the specified items in a container.\r\n *\r\n * @param {number} containerId - Container Id.\r\n * @param {string} itemPath - Path to delete.\r\n * @param {string} scope - A guid representing the scope of the container. This is often the project id.\r\n */\r\n deleteItem(containerId, itemPath, scope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (itemPath == null) {\r\n throw new TypeError('itemPath can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n containerId: containerId\r\n };\r\n let queryValues = {\r\n itemPath: itemPath,\r\n scope: scope,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets containers filtered by a comma separated list of artifact uris within the same scope, if not specified returns all containers\r\n *\r\n * @param {string} scope - A guid representing the scope of the container. This is often the project id.\r\n * @param {string} artifactUris\r\n */\r\n getContainers(scope, artifactUris) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n scope: scope,\r\n artifactUris: artifactUris,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainer, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} containerId\r\n * @param {string} scope\r\n * @param {string} itemPath\r\n * @param {boolean} metadata\r\n * @param {string} format\r\n * @param {string} downloadFileName\r\n * @param {boolean} includeDownloadTickets\r\n * @param {boolean} isShallow\r\n * @param {boolean} ignoreRequestedMediaType\r\n * @param {boolean} includeBlobMetadata\r\n * @param {boolean} saveAbsolutePath\r\n */\r\n getItems(containerId, scope, itemPath, metadata, format, downloadFileName, includeDownloadTickets, isShallow, ignoreRequestedMediaType, includeBlobMetadata, saveAbsolutePath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n containerId: containerId\r\n };\r\n let queryValues = {\r\n scope: scope,\r\n itemPath: itemPath,\r\n metadata: metadata,\r\n '$format': format,\r\n downloadFileName: downloadFileName,\r\n includeDownloadTickets: includeDownloadTickets,\r\n isShallow: isShallow,\r\n ignoreRequestedMediaType: ignoreRequestedMediaType,\r\n includeBlobMetadata: includeBlobMetadata,\r\n saveAbsolutePath: saveAbsolutePath,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainerItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.FileContainerApiBase = FileContainerApiBase;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst compatBase = require(\"././GalleryCompatHttpClientBase\");\r\nconst GalleryInterfaces = require(\"./interfaces/GalleryInterfaces\");\r\nclass GalleryApi extends compatBase.GalleryCompatHttpClientBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Gallery-api', options);\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} accountName\r\n */\r\n shareExtensionById(extensionId, accountName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId,\r\n accountName: accountName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"1f19631b-a0b4-4a03-89c2-d79785d24360\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} accountName\r\n */\r\n unshareExtensionById(extensionId, accountName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId,\r\n accountName: accountName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"1f19631b-a0b4-4a03-89c2-d79785d24360\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} accountName\r\n */\r\n shareExtension(publisherName, extensionName, accountName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n accountName: accountName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"a1e66d8f-f5de-4d16-8309-91a4e015ee46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} accountName\r\n */\r\n unshareExtension(publisherName, extensionName, accountName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n accountName: accountName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"a1e66d8f-f5de-4d16-8309-91a4e015ee46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} itemId\r\n * @param {string} installationTarget\r\n * @param {boolean} testCommerce\r\n * @param {boolean} isFreeOrTrialInstall\r\n */\r\n getAcquisitionOptions(itemId, installationTarget, testCommerce, isFreeOrTrialInstall) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (installationTarget == null) {\r\n throw new TypeError('installationTarget can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n itemId: itemId\r\n };\r\n let queryValues = {\r\n installationTarget: installationTarget,\r\n testCommerce: testCommerce,\r\n isFreeOrTrialInstall: isFreeOrTrialInstall,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"9d0a0105-075e-4760-aa15-8bcf54d1bd7d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.AcquisitionOptions, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionAcquisitionRequest} acquisitionRequest\r\n */\r\n requestAcquisition(acquisitionRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"3adb1f2d-e328-446e-be73-9f6d98071c45\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, acquisitionRequest, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionAcquisitionRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n * @param {string} assetType\r\n * @param {string} accountToken\r\n * @param {boolean} acceptDefault\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getAssetByName(customHeaders, publisherName, extensionName, version, assetType, accountToken, acceptDefault, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version,\r\n assetType: assetType\r\n };\r\n let queryValues = {\r\n accountToken: accountToken,\r\n acceptDefault: acceptDefault,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"7529171f-a002-4180-93ba-685f358a0482\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} version\r\n * @param {string} assetType\r\n * @param {string} accountToken\r\n * @param {boolean} acceptDefault\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getAsset(customHeaders, extensionId, version, assetType, accountToken, acceptDefault, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId,\r\n version: version,\r\n assetType: assetType\r\n };\r\n let queryValues = {\r\n accountToken: accountToken,\r\n acceptDefault: acceptDefault,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"5d545f3d-ef47-488b-8be3-f5ee1517856c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n * @param {string} assetType\r\n * @param {string} accountToken\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getAssetAuthenticated(customHeaders, publisherName, extensionName, version, assetType, accountToken, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version,\r\n assetType: assetType\r\n };\r\n let queryValues = {\r\n accountToken: accountToken,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"506aff36-2622-4f70-8063-77cce6366d20\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} azurePublisherId\r\n */\r\n associateAzurePublisher(publisherName, azurePublisherId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (azurePublisherId == null) {\r\n throw new TypeError('azurePublisherId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n azurePublisherId: azurePublisherId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"efd202a6-9d87-4ebc-9229-d2b8ae2fdb6d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n */\r\n queryAssociatedAzurePublisher(publisherName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"efd202a6-9d87-4ebc-9229-d2b8ae2fdb6d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} languages\r\n */\r\n getCategories(languages) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n languages: languages,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"e0a5a71e-3ac3-43a0-ae7d-0bb5c3046a2a\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} categoryName\r\n * @param {string} languages\r\n * @param {string} product\r\n */\r\n getCategoryDetails(categoryName, languages, product) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n categoryName: categoryName\r\n };\r\n let queryValues = {\r\n languages: languages,\r\n product: product,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"75d3c04d-84d2-4973-acd2-22627587dabc\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} product\r\n * @param {string} categoryId\r\n * @param {number} lcid\r\n * @param {string} source\r\n * @param {string} productVersion\r\n * @param {string} skus\r\n * @param {string} subSkus\r\n */\r\n getCategoryTree(product, categoryId, lcid, source, productVersion, skus, subSkus) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n product: product,\r\n categoryId: categoryId\r\n };\r\n let queryValues = {\r\n lcid: lcid,\r\n source: source,\r\n productVersion: productVersion,\r\n skus: skus,\r\n subSkus: subSkus,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"1102bb42-82b0-4955-8d8a-435d6b4cedd3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} product\r\n * @param {number} lcid\r\n * @param {string} source\r\n * @param {string} productVersion\r\n * @param {string} skus\r\n * @param {string} subSkus\r\n */\r\n getRootCategories(product, lcid, source, productVersion, skus, subSkus) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n product: product\r\n };\r\n let queryValues = {\r\n lcid: lcid,\r\n source: source,\r\n productVersion: productVersion,\r\n skus: skus,\r\n subSkus: subSkus,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"31fba831-35b2-46f6-a641-d05de5a877d8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n */\r\n getCertificate(publisherName, extensionName, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"e905ad6a-3f1f-4d08-9f6d-7d357ff8b7d0\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n getContentVerificationLog(publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"c0f1c7c4-3557-4ffb-b774-1e48c4865e99\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.CustomerSupportRequest} customerSupportRequest\r\n */\r\n createSupportRequest(customerSupportRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"8eded385-026a-4c15-b810-b8eb402771f1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, customerSupportRequest, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n createDraftForEditExtension(publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"02b33873-4e61-496e-83a2-59d1df46b7d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionDraftPatch} draftPatch\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} draftId\r\n */\r\n performEditExtensionDraftOperation(draftPatch, publisherName, extensionName, draftId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n draftId: draftId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"02b33873-4e61-496e-83a2-59d1df46b7d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, draftPatch, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} draftId\r\n * @param {String} fileName - Header to pass the filename of the uploaded data\r\n */\r\n updatePayloadInDraftForEditExtension(customHeaders, contentStream, publisherName, extensionName, draftId, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n draftId: draftId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n customHeaders[\"X-Market-UploadFileName\"] = \"fileName\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"02b33873-4e61-496e-83a2-59d1df46b7d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} draftId\r\n * @param {string} assetType\r\n */\r\n addAssetForEditExtensionDraft(customHeaders, contentStream, publisherName, extensionName, draftId, assetType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n draftId: draftId,\r\n assetType: assetType\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"f1db9c47-6619-4998-a7e5-d7f9f41a4617\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {String} product - Header to pass the product type of the payload file\r\n * @param {String} fileName - Header to pass the filename of the uploaded data\r\n */\r\n createDraftForNewExtension(customHeaders, contentStream, publisherName, product, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n customHeaders[\"X-Market-UploadFileProduct\"] = \"product\";\r\n customHeaders[\"X-Market-UploadFileName\"] = \"fileName\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"b3ab127d-ebb9-4d22-b611-4e09593c8d79\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionDraftPatch} draftPatch\r\n * @param {string} publisherName\r\n * @param {string} draftId\r\n */\r\n performNewExtensionDraftOperation(draftPatch, publisherName, draftId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n draftId: draftId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"b3ab127d-ebb9-4d22-b611-4e09593c8d79\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, draftPatch, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {string} draftId\r\n * @param {String} fileName - Header to pass the filename of the uploaded data\r\n */\r\n updatePayloadInDraftForNewExtension(customHeaders, contentStream, publisherName, draftId, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n draftId: draftId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n customHeaders[\"X-Market-UploadFileName\"] = \"fileName\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"b3ab127d-ebb9-4d22-b611-4e09593c8d79\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {string} draftId\r\n * @param {string} assetType\r\n */\r\n addAssetForNewExtensionDraft(customHeaders, contentStream, publisherName, draftId, assetType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n draftId: draftId,\r\n assetType: assetType\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"88c0b1c8-b4f1-498a-9b2a-8446ef9f32e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} draftId\r\n * @param {string} assetType\r\n * @param {string} extensionName\r\n */\r\n getAssetFromEditExtensionDraft(publisherName, draftId, assetType, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (extensionName == null) {\r\n throw new TypeError('extensionName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n draftId: draftId,\r\n assetType: assetType\r\n };\r\n let queryValues = {\r\n extensionName: extensionName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"88c0b1c8-b4f1-498a-9b2a-8446ef9f32e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} draftId\r\n * @param {string} assetType\r\n */\r\n getAssetFromNewExtensionDraft(publisherName, draftId, assetType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n draftId: draftId,\r\n assetType: assetType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"88c0b1c8-b4f1-498a-9b2a-8446ef9f32e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get install/uninstall events of an extension. If both count and afterDate parameters are specified, count takes precedence.\r\n *\r\n * @param {string} publisherName - Name of the publisher\r\n * @param {string} extensionName - Name of the extension\r\n * @param {number} count - Count of events to fetch, applies to each event type.\r\n * @param {Date} afterDate - Fetch events that occurred on or after this date\r\n * @param {string} include - Filter options. Supported values: install, uninstall, review, acquisition, sales. Default is to fetch all types of events\r\n * @param {string} includeProperty - Event properties to include. Currently only 'lastContactDetails' is supported for uninstall events\r\n */\r\n getExtensionEvents(publisherName, extensionName, count, afterDate, include, includeProperty) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n count: count,\r\n afterDate: afterDate,\r\n include: include,\r\n includeProperty: includeProperty,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"3d13c499-2168-4d06-bef4-14aba185dcd5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionEvents, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * API endpoint to publish extension install/uninstall events. This is meant to be invoked by EMS only for sending us data related to install/uninstall of an extension.\r\n *\r\n * @param {GalleryInterfaces.ExtensionEvents[]} extensionEvents\r\n */\r\n publishExtensionEvents(extensionEvents) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"0bf2bd3a-70e0-4d5d-8bf7-bd4a9c2ab6e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, extensionEvents, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionQuery} extensionQuery\r\n * @param {string} accountToken\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n queryExtensions(customHeaders, extensionQuery, accountToken, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n accountToken: accountToken,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"eb9d5ee1-6d43-456b-b80e-8a96fbc014b6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.create(url, extensionQuery, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} extensionType\r\n * @param {string} reCaptchaToken\r\n */\r\n createExtension(customHeaders, contentStream, extensionType, reCaptchaToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n extensionType: extensionType,\r\n reCaptchaToken: reCaptchaToken,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} version\r\n */\r\n deleteExtensionById(extensionId, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId\r\n };\r\n let queryValues = {\r\n version: version,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} version\r\n * @param {GalleryInterfaces.ExtensionQueryFlags} flags\r\n */\r\n getExtensionById(extensionId, version, flags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId\r\n };\r\n let queryValues = {\r\n version: version,\r\n flags: flags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} reCaptchaToken\r\n */\r\n updateExtensionById(extensionId, reCaptchaToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId\r\n };\r\n let queryValues = {\r\n reCaptchaToken: reCaptchaToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {string} extensionType\r\n * @param {string} reCaptchaToken\r\n */\r\n createExtensionWithPublisher(customHeaders, contentStream, publisherName, extensionType, reCaptchaToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n extensionType: extensionType,\r\n reCaptchaToken: reCaptchaToken,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n */\r\n deleteExtension(publisherName, extensionName, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n version: version,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n * @param {GalleryInterfaces.ExtensionQueryFlags} flags\r\n * @param {string} accountToken\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getExtension(customHeaders, publisherName, extensionName, version, flags, accountToken, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n version: version,\r\n flags: flags,\r\n accountToken: accountToken,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * REST endpoint to update an extension.\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName - Name of the publisher\r\n * @param {string} extensionName - Name of the extension\r\n * @param {string} extensionType\r\n * @param {string} reCaptchaToken\r\n * @param {boolean} bypassScopeCheck - This parameter decides if the scope change check needs to be invoked or not\r\n */\r\n updateExtension(customHeaders, contentStream, publisherName, extensionName, extensionType, reCaptchaToken, bypassScopeCheck) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n extensionType: extensionType,\r\n reCaptchaToken: reCaptchaToken,\r\n bypassScopeCheck: bypassScopeCheck,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {GalleryInterfaces.PublishedExtensionFlags} flags\r\n */\r\n updateExtensionProperties(publisherName, extensionName, flags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (flags == null) {\r\n throw new TypeError('flags can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n flags: flags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} hostType\r\n * @param {string} hostName\r\n */\r\n shareExtensionWithHost(publisherName, extensionName, hostType, hostName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n hostType: hostType,\r\n hostName: hostName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"328a3af8-d124-46e9-9483-01690cd415b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} hostType\r\n * @param {string} hostName\r\n */\r\n unshareExtensionWithHost(publisherName, extensionName, hostType, hostName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n hostType: hostType,\r\n hostName: hostName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"328a3af8-d124-46e9-9483-01690cd415b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.AzureRestApiRequestModel} azureRestApiRequestModel\r\n */\r\n extensionValidator(azureRestApiRequestModel) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"05e8a5e1-8c59-4c2c-8856-0ff087d1a844\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, azureRestApiRequestModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Send Notification\r\n *\r\n * @param {GalleryInterfaces.NotificationsData} notificationData - Denoting the data needed to send notification\r\n */\r\n sendNotifications(notificationData) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"eab39817-413c-4602-a49f-07ad00844980\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, notificationData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * This endpoint gets hit when you download a VSTS extension from the Web UI\r\n *\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n * @param {string} accountToken\r\n * @param {boolean} acceptDefault\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getPackage(customHeaders, publisherName, extensionName, version, accountToken, acceptDefault, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n let queryValues = {\r\n accountToken: accountToken,\r\n acceptDefault: acceptDefault,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"7cb576f8-1cae-4c4b-b7b1-e4af5759e965\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n * @param {string} assetType\r\n * @param {string} assetToken\r\n * @param {string} accountToken\r\n * @param {boolean} acceptDefault\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getAssetWithToken(customHeaders, publisherName, extensionName, version, assetType, assetToken, accountToken, acceptDefault, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version,\r\n assetType: assetType,\r\n assetToken: assetToken\r\n };\r\n let queryValues = {\r\n accountToken: accountToken,\r\n acceptDefault: acceptDefault,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"364415a1-0077-4a41-a7a0-06edd4497492\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete publisher asset like logo\r\n *\r\n * @param {string} publisherName - Internal name of the publisher\r\n * @param {string} assetType - Type of asset. Default value is 'logo'.\r\n */\r\n deletePublisherAsset(publisherName, assetType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n assetType: assetType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"21143299-34f9-4c62-8ca8-53da691192f9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get publisher asset like logo as a stream\r\n *\r\n * @param {string} publisherName - Internal name of the publisher\r\n * @param {string} assetType - Type of asset. Default value is 'logo'.\r\n */\r\n getPublisherAsset(publisherName, assetType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n assetType: assetType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"21143299-34f9-4c62-8ca8-53da691192f9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update publisher asset like logo. It accepts asset file as an octet stream and file name is passed in header values.\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName - Internal name of the publisher\r\n * @param {string} assetType - Type of asset. Default value is 'logo'.\r\n * @param {String} fileName - Header to pass the filename of the uploaded data\r\n */\r\n updatePublisherAsset(customHeaders, contentStream, publisherName, assetType, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n assetType: assetType,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n customHeaders[\"X-Market-UploadFileName\"] = \"fileName\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"21143299-34f9-4c62-8ca8-53da691192f9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.PublisherQuery} publisherQuery\r\n */\r\n queryPublishers(publisherQuery) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"2ad6ee0a-b53f-4034-9d1d-d009fda1212e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, publisherQuery, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublisherQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.Publisher} publisher\r\n */\r\n createPublisher(publisher) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4ddec66a-e4f6-4f5d-999e-9e77710d7ff4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, publisher, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Publisher, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n */\r\n deletePublisher(publisherName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4ddec66a-e4f6-4f5d-999e-9e77710d7ff4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {number} flags\r\n */\r\n getPublisher(publisherName, flags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n flags: flags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4ddec66a-e4f6-4f5d-999e-9e77710d7ff4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Publisher, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.Publisher} publisher\r\n * @param {string} publisherName\r\n */\r\n updatePublisher(publisher, publisherName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4ddec66a-e4f6-4f5d-999e-9e77710d7ff4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, publisher, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Publisher, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Endpoint to add/modify publisher membership. Currently Supports only addition/modification of 1 user at a time Works only for adding members of same tenant.\r\n *\r\n * @param {GalleryInterfaces.PublisherUserRoleAssignmentRef[]} roleAssignments - List of user identifiers(email address) and role to be added. Currently only one entry is supported.\r\n * @param {string} publisherName - The name/id of publisher to which users have to be added\r\n * @param {boolean} limitToCallerIdentityDomain - Should cross tenant addtions be allowed or not.\r\n */\r\n updatePublisherMembers(roleAssignments, publisherName, limitToCallerIdentityDomain) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n limitToCallerIdentityDomain: limitToCallerIdentityDomain,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4ddec66a-e4f6-4f5d-999e-9e77710d7ff4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, roleAssignments, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublisherRoleAssignment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of questions with their responses associated with an extension.\r\n *\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} count - Number of questions to retrieve (defaults to 10).\r\n * @param {number} page - Page number from which set of questions are to be retrieved.\r\n * @param {Date} afterDate - If provided, results questions are returned which were posted after this date\r\n */\r\n getQuestions(publisherName, extensionName, count, page, afterDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n count: count,\r\n page: page,\r\n afterDate: afterDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"c010d03d-812c-4ade-ae07-c1862475eda5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.QuestionsResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Flags a concern with an existing question for an extension.\r\n *\r\n * @param {GalleryInterfaces.Concern} concern - User reported concern with a question for the extension.\r\n * @param {string} pubName - Name of the publisher who published the extension.\r\n * @param {string} extName - Name of the extension.\r\n * @param {number} questionId - Identifier of the question to be updated for the extension.\r\n */\r\n reportQuestion(concern, pubName, extName, questionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n pubName: pubName,\r\n extName: extName,\r\n questionId: questionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"784910cd-254a-494d-898b-0728549b2f10\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, concern, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Concern, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new question for an extension.\r\n *\r\n * @param {GalleryInterfaces.Question} question - Question to be created for the extension.\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n */\r\n createQuestion(question, publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"6d1d9741-eca8-4701-a3a5-235afc82dfa4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, question, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Question, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes an existing question and all its associated responses for an extension. (soft delete)\r\n *\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} questionId - Identifier of the question to be deleted for the extension.\r\n */\r\n deleteQuestion(publisherName, extensionName, questionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n questionId: questionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"6d1d9741-eca8-4701-a3a5-235afc82dfa4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing question for an extension.\r\n *\r\n * @param {GalleryInterfaces.Question} question - Updated question to be set for the extension.\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} questionId - Identifier of the question to be updated for the extension.\r\n */\r\n updateQuestion(question, publisherName, extensionName, questionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n questionId: questionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"6d1d9741-eca8-4701-a3a5-235afc82dfa4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, question, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Question, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new response for a given question for an extension.\r\n *\r\n * @param {GalleryInterfaces.Response} response - Response to be created for the extension.\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} questionId - Identifier of the question for which response is to be created for the extension.\r\n */\r\n createResponse(response, publisherName, extensionName, questionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n questionId: questionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"7f8ae5e0-46b0-438f-b2e8-13e8513517bd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, response, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Response, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a response for an extension. (soft delete)\r\n *\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} questionId - Identifies the question whose response is to be deleted.\r\n * @param {number} responseId - Identifies the response to be deleted.\r\n */\r\n deleteResponse(publisherName, extensionName, questionId, responseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n questionId: questionId,\r\n responseId: responseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"7f8ae5e0-46b0-438f-b2e8-13e8513517bd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing response for a given question for an extension.\r\n *\r\n * @param {GalleryInterfaces.Response} response - Updated response to be set for the extension.\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} questionId - Identifier of the question for which response is to be updated for the extension.\r\n * @param {number} responseId - Identifier of the response which has to be updated.\r\n */\r\n updateResponse(response, publisherName, extensionName, questionId, responseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n questionId: questionId,\r\n responseId: responseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"7f8ae5e0-46b0-438f-b2e8-13e8513517bd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, response, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Response, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns extension reports\r\n *\r\n * @param {string} publisherName - Name of the publisher who published the extension\r\n * @param {string} extensionName - Name of the extension\r\n * @param {number} days - Last n days report. If afterDate and days are specified, days will take priority\r\n * @param {number} count - Number of events to be returned\r\n * @param {Date} afterDate - Use if you want to fetch events newer than the specified date\r\n */\r\n getExtensionReports(publisherName, extensionName, days, count, afterDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n days: days,\r\n count: count,\r\n afterDate: afterDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"79e0c74f-157f-437e-845f-74fbb4121d4c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of reviews associated with an extension\r\n *\r\n * @param {string} publisherName - Name of the publisher who published the extension\r\n * @param {string} extensionName - Name of the extension\r\n * @param {number} count - Number of reviews to retrieve (defaults to 5)\r\n * @param {GalleryInterfaces.ReviewFilterOptions} filterOptions - FilterOptions to filter out empty reviews etcetera, defaults to none\r\n * @param {Date} beforeDate - Use if you want to fetch reviews older than the specified date, defaults to null\r\n * @param {Date} afterDate - Use if you want to fetch reviews newer than the specified date, defaults to null\r\n */\r\n getReviews(publisherName, extensionName, count, filterOptions, beforeDate, afterDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n count: count,\r\n filterOptions: filterOptions,\r\n beforeDate: beforeDate,\r\n afterDate: afterDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"5b3f819f-f247-42ad-8c00-dd9ab9ab246d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ReviewsResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a summary of the reviews\r\n *\r\n * @param {string} pubName - Name of the publisher who published the extension\r\n * @param {string} extName - Name of the extension\r\n * @param {Date} beforeDate - Use if you want to fetch summary of reviews older than the specified date, defaults to null\r\n * @param {Date} afterDate - Use if you want to fetch summary of reviews newer than the specified date, defaults to null\r\n */\r\n getReviewsSummary(pubName, extName, beforeDate, afterDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n pubName: pubName,\r\n extName: extName\r\n };\r\n let queryValues = {\r\n beforeDate: beforeDate,\r\n afterDate: afterDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"b7b44e21-209e-48f0-ae78-04727fc37d77\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new review for an extension\r\n *\r\n * @param {GalleryInterfaces.Review} review - Review to be created for the extension\r\n * @param {string} pubName - Name of the publisher who published the extension\r\n * @param {string} extName - Name of the extension\r\n */\r\n createReview(review, pubName, extName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n pubName: pubName,\r\n extName: extName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"e6e85b9d-aa70-40e6-aa28-d0fbf40b91a3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, review, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Review, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a review\r\n *\r\n * @param {string} pubName - Name of the publisher who published the extension\r\n * @param {string} extName - Name of the extension\r\n * @param {number} reviewId - Id of the review which needs to be updated\r\n */\r\n deleteReview(pubName, extName, reviewId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n pubName: pubName,\r\n extName: extName,\r\n reviewId: reviewId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"e6e85b9d-aa70-40e6-aa28-d0fbf40b91a3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates or Flags a review\r\n *\r\n * @param {GalleryInterfaces.ReviewPatch} reviewPatch - ReviewPatch object which contains the changes to be applied to the review\r\n * @param {string} pubName - Name of the publisher who published the extension\r\n * @param {string} extName - Name of the extension\r\n * @param {number} reviewId - Id of the review which needs to be updated\r\n */\r\n updateReview(reviewPatch, pubName, extName, reviewId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n pubName: pubName,\r\n extName: extName,\r\n reviewId: reviewId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"e6e85b9d-aa70-40e6-aa28-d0fbf40b91a3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, reviewPatch, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ReviewPatch, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionCategory} category\r\n */\r\n createCategory(category) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"476531a3-7024-4516-a76a-ed64d3008ad6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, category, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all setting entries for the given user/all-users scope\r\n *\r\n * @param {string} userScope - User-Scope at which to get the value. Should be \"me\" for the current user or \"host\" for all users.\r\n * @param {string} key - Optional key under which to filter all the entries\r\n */\r\n getGalleryUserSettings(userScope, key) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n userScope: userScope,\r\n key: key\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"9b75ece3-7960-401c-848b-148ac01ca350\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Set all setting entries for the given user/all-users scope\r\n *\r\n * @param {{ [key: string] : any; }} entries - A key-value pair of all settings that need to be set\r\n * @param {string} userScope - User-Scope at which to get the value. Should be \"me\" for the current user or \"host\" for all users.\r\n */\r\n setGalleryUserSettings(entries, userScope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n userScope: userScope\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"9b75ece3-7960-401c-848b-148ac01ca350\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, entries, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} keyType\r\n * @param {number} expireCurrentSeconds\r\n */\r\n generateKey(keyType, expireCurrentSeconds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n keyType: keyType\r\n };\r\n let queryValues = {\r\n expireCurrentSeconds: expireCurrentSeconds,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"92ed5cf4-c38b-465a-9059-2f2fb7c624b5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} keyType\r\n */\r\n getSigningKey(keyType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n keyType: keyType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"92ed5cf4-c38b-465a-9059-2f2fb7c624b5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionStatisticUpdate} extensionStatisticsUpdate\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n updateExtensionStatistics(extensionStatisticsUpdate, publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"a0ea3204-11e9-422d-a9ca-45851cc41400\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, extensionStatisticsUpdate, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {number} days\r\n * @param {GalleryInterfaces.ExtensionStatsAggregateType} aggregate\r\n * @param {Date} afterDate\r\n */\r\n getExtensionDailyStats(publisherName, extensionName, days, aggregate, afterDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n days: days,\r\n aggregate: aggregate,\r\n afterDate: afterDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"ae06047e-51c5-4fb4-ab65-7be488544416\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDailyStats, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * This route/location id only supports HTTP POST anonymously, so that the page view daily stat can be incremented from Marketplace client. Trying to call GET on this route should result in an exception. Without this explicit implementation, calling GET on this public route invokes the above GET implementation GetExtensionDailyStats.\r\n *\r\n * @param {string} publisherName - Name of the publisher\r\n * @param {string} extensionName - Name of the extension\r\n * @param {string} version - Version of the extension\r\n */\r\n getExtensionDailyStatsAnonymous(publisherName, extensionName, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4fa7adb6-ca65-4075-a232-5f28323288ea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDailyStats, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Increments a daily statistic associated with the extension\r\n *\r\n * @param {string} publisherName - Name of the publisher\r\n * @param {string} extensionName - Name of the extension\r\n * @param {string} version - Version of the extension\r\n * @param {string} statType - Type of stat to increment\r\n */\r\n incrementExtensionDailyStat(publisherName, extensionName, version, statType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (statType == null) {\r\n throw new TypeError('statType can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n let queryValues = {\r\n statType: statType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4fa7adb6-ca65-4075-a232-5f28323288ea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n */\r\n getVerificationLog(publisherName, extensionName, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"c5523abe-b843-437f-875b-5833064efe4d\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nGalleryApi.RESOURCE_AREA_ID = \"69d21c00-f135-441b-b5ce-3626378e0819\";\r\nexports.GalleryApi = GalleryApi;\r\n","\"use strict\";\r\n/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst GalleryInterfaces = require(\"./interfaces/GalleryInterfaces\");\r\nclass GalleryCompatHttpClientBase extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, userAgent, options) {\r\n super(baseUrl, handlers, userAgent, options);\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionPackage} extensionPackage\r\n */\r\n createExtensionJson(extensionPackage) {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.1-preview.1\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, extensionPackage, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionPackage} extensionPackage\r\n * @param {string} extensionId\r\n */\r\n updateExtensionByIdJson(extensionPackage, extensionId) {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.1-preview.1\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, extensionPackage, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionPackage} extensionPackage\r\n * @param {string} publisherName\r\n */\r\n createExtensionWithPublisherJson(extensionPackage, publisherName) {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.1-preview.1\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, extensionPackage, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionPackage} extensionPackage\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n updateExtensionJson(extensionPackage, publisherName, extensionName) {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.1-preview.1\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, extensionPackage, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n }\r\n}\r\nexports.GalleryCompatHttpClientBase = GalleryCompatHttpClientBase;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst GitInterfaces = require(\"./interfaces/GitInterfaces\");\r\nclass GitApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Git-api', options);\r\n }\r\n /**\r\n * Create an annotated tag.\r\n *\r\n * @param {GitInterfaces.GitAnnotatedTag} tagObject - Object containing details of tag to be created.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID or name of the repository.\r\n */\r\n createAnnotatedTag(tagObject, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5e8a8081-3851-4626-b677-9891cc04102e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, tagObject, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitAnnotatedTag, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get an annotated tag.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {string} objectId - ObjectId (Sha1Id) of tag to get.\r\n */\r\n getAnnotatedTag(project, repositoryId, objectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n objectId: objectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5e8a8081-3851-4626-b677-9891cc04102e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitAnnotatedTag, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single blob.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} sha1 - SHA1 hash of the file. You can get the SHA1 of a file using the \"Git/Items/Get Item\" endpoint.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} download - If true, prompt for a download rather than rendering in a browser. Note: this value defaults to true if $format is zip\r\n * @param {string} fileName - Provide a fileName to use for a download.\r\n * @param {boolean} resolveLfs - If true, try to resolve a blob to its LFS contents, if it's an LFS pointer file. Only compatible with octet-stream Accept headers or $format types\r\n */\r\n getBlob(repositoryId, sha1, project, download, fileName, resolveLfs) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n sha1: sha1\r\n };\r\n let queryValues = {\r\n download: download,\r\n fileName: fileName,\r\n resolveLfs: resolveLfs,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"7b28e929-2c99-405d-9c5c-6167a06e6816\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single blob.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} sha1 - SHA1 hash of the file. You can get the SHA1 of a file using the \"Git/Items/Get Item\" endpoint.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} download - If true, prompt for a download rather than rendering in a browser. Note: this value defaults to true if $format is zip\r\n * @param {string} fileName - Provide a fileName to use for a download.\r\n * @param {boolean} resolveLfs - If true, try to resolve a blob to its LFS contents, if it's an LFS pointer file. Only compatible with octet-stream Accept headers or $format types\r\n */\r\n getBlobContent(repositoryId, sha1, project, download, fileName, resolveLfs) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n sha1: sha1\r\n };\r\n let queryValues = {\r\n download: download,\r\n fileName: fileName,\r\n resolveLfs: resolveLfs,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"7b28e929-2c99-405d-9c5c-6167a06e6816\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets one or more blobs in a zip file download.\r\n *\r\n * @param {string[]} blobIds - Blob IDs (SHA1 hashes) to be returned in the zip file.\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} filename\r\n */\r\n getBlobsZip(blobIds, repositoryId, project, filename) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n filename: filename,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"7b28e929-2c99-405d-9c5c-6167a06e6816\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single blob.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} sha1 - SHA1 hash of the file. You can get the SHA1 of a file using the \"Git/Items/Get Item\" endpoint.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} download - If true, prompt for a download rather than rendering in a browser. Note: this value defaults to true if $format is zip\r\n * @param {string} fileName - Provide a fileName to use for a download.\r\n * @param {boolean} resolveLfs - If true, try to resolve a blob to its LFS contents, if it's an LFS pointer file. Only compatible with octet-stream Accept headers or $format types\r\n */\r\n getBlobZip(repositoryId, sha1, project, download, fileName, resolveLfs) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n sha1: sha1\r\n };\r\n let queryValues = {\r\n download: download,\r\n fileName: fileName,\r\n resolveLfs: resolveLfs,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"7b28e929-2c99-405d-9c5c-6167a06e6816\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve statistics about a single branch.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} name - Name of the branch.\r\n * @param {string} project - Project ID or project name\r\n * @param {GitInterfaces.GitVersionDescriptor} baseVersionDescriptor - Identifies the commit or branch to use as the base.\r\n */\r\n getBranch(repositoryId, name, project, baseVersionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (name == null) {\r\n throw new TypeError('name can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n name: name,\r\n baseVersionDescriptor: baseVersionDescriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d5b216de-d8d5-4d32-ae76-51df755b16d3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitBranchStats, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve statistics about all branches within a repository.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {GitInterfaces.GitVersionDescriptor} baseVersionDescriptor - Identifies the commit or branch to use as the base.\r\n */\r\n getBranches(repositoryId, project, baseVersionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n baseVersionDescriptor: baseVersionDescriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d5b216de-d8d5-4d32-ae76-51df755b16d3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitBranchStats, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GitInterfaces.GitQueryBranchStatsCriteria} searchCriteria\r\n * @param {string} repositoryId\r\n * @param {string} project - Project ID or project name\r\n */\r\n getBranchStatsBatch(searchCriteria, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d5b216de-d8d5-4d32-ae76-51df755b16d3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, searchCriteria, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitBranchStats, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve changes for a particular commit.\r\n *\r\n * @param {string} commitId - The id of the commit.\r\n * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - The maximum number of changes to return.\r\n * @param {number} skip - The number of changes to skip.\r\n */\r\n getChanges(commitId, repositoryId, project, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n commitId: commitId,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n top: top,\r\n skip: skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5bf884f5-3e07-42e9-afb8-1b872267bf16\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitChanges, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve one conflict for a cherry pick by ID\r\n *\r\n * @param {string} repositoryId\r\n * @param {number} cherryPickId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n getCherryPickConflict(repositoryId, cherryPickId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n cherryPickId: cherryPickId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1fe5aab2-d4c0-4b2f-a030-f3831e7aca26\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all conflicts for a cherry pick\r\n *\r\n * @param {string} repositoryId\r\n * @param {number} cherryPickId\r\n * @param {string} project - Project ID or project name\r\n * @param {string} continuationToken\r\n * @param {number} top\r\n * @param {boolean} excludeResolved\r\n * @param {boolean} onlyResolved\r\n * @param {boolean} includeObsolete\r\n */\r\n getCherryPickConflicts(repositoryId, cherryPickId, project, continuationToken, top, excludeResolved, onlyResolved, includeObsolete) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n cherryPickId: cherryPickId\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n excludeResolved: excludeResolved,\r\n onlyResolved: onlyResolved,\r\n includeObsolete: includeObsolete,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1fe5aab2-d4c0-4b2f-a030-f3831e7aca26\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update merge conflict resolution\r\n *\r\n * @param {GitInterfaces.GitConflict} conflict\r\n * @param {string} repositoryId\r\n * @param {number} cherryPickId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateCherryPickConflict(conflict, repositoryId, cherryPickId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n cherryPickId: cherryPickId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1fe5aab2-d4c0-4b2f-a030-f3831e7aca26\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflict, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update multiple merge conflict resolutions\r\n *\r\n * @param {GitInterfaces.GitConflict[]} conflictUpdates\r\n * @param {string} repositoryId\r\n * @param {number} cherryPickId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateCherryPickConflicts(conflictUpdates, repositoryId, cherryPickId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n cherryPickId: cherryPickId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1fe5aab2-d4c0-4b2f-a030-f3831e7aca26\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflictUpdates, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflictUpdateResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Given a commitId, returns a list of commits that are in the same cherry-pick family.\r\n *\r\n * @param {string} repositoryNameOrId\r\n * @param {string} commitId\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeLinks\r\n */\r\n getCherryPickRelationships(repositoryNameOrId, commitId, project, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId,\r\n commitId: commitId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"8af142a4-27c2-4168-9e82-46b8629aaa0d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Cherry pick a specific commit or commits that are associated to a pull request into a new branch.\r\n *\r\n * @param {GitInterfaces.GitAsyncRefOperationParameters} cherryPickToCreate\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID of the repository.\r\n */\r\n createCherryPick(cherryPickToCreate, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"033bad68-9a14-43d1-90e0-59cb8856fef6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, cherryPickToCreate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCherryPick, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve information about a cherry pick operation by cherry pick Id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} cherryPickId - ID of the cherry pick.\r\n * @param {string} repositoryId - ID of the repository.\r\n */\r\n getCherryPick(project, cherryPickId, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n cherryPickId: cherryPickId,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"033bad68-9a14-43d1-90e0-59cb8856fef6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCherryPick, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve information about a cherry pick operation for a specific branch. This operation is expensive due to the underlying object structure, so this API only looks at the 1000 most recent cherry pick operations.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID of the repository.\r\n * @param {string} refName - The GitAsyncRefOperationParameters generatedRefName used for the cherry pick operation.\r\n */\r\n getCherryPickForRefName(project, repositoryId, refName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (refName == null) {\r\n throw new TypeError('refName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n refName: refName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"033bad68-9a14-43d1-90e0-59cb8856fef6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCherryPick, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Find the closest common commit (the merge base) between base and target commits, and get the diff between either the base and target commits or common and target commits.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} diffCommonCommit - If true, diff between common and target commits. If false, diff between base and target commits.\r\n * @param {number} top - Maximum number of changes to return. Defaults to 100.\r\n * @param {number} skip - Number of changes to skip\r\n * @param {GitInterfaces.GitBaseVersionDescriptor} baseVersionDescriptor - Descriptor for base commit.\r\n * @param {GitInterfaces.GitTargetVersionDescriptor} targetVersionDescriptor - Descriptor for target commit.\r\n */\r\n getCommitDiffs(repositoryId, project, diffCommonCommit, top, skip, baseVersionDescriptor, targetVersionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n diffCommonCommit: diffCommonCommit,\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n if (baseVersionDescriptor) {\r\n queryValues.baseVersionType = baseVersionDescriptor.versionType;\r\n queryValues.baseVersion = baseVersionDescriptor.version;\r\n queryValues.baseVersionOptions = baseVersionDescriptor.versionOptions;\r\n }\r\n if (targetVersionDescriptor) {\r\n queryValues.targetVersionType = targetVersionDescriptor.versionType;\r\n queryValues.targetVersion = targetVersionDescriptor.version;\r\n queryValues.targetVersionOptions = targetVersionDescriptor.versionOptions;\r\n }\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"615588d5-c0c7-4b88-88f8-e625306446e8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitDiffs, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a particular commit.\r\n *\r\n * @param {string} commitId - The id of the commit.\r\n * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} changeCount - The number of changes to include in the result.\r\n */\r\n getCommit(commitId, repositoryId, project, changeCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n commitId: commitId,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n changeCount: changeCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"c2570c3b-5b3f-41b8-98bf-5407bfde8d58\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommit, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve git commits for a project\r\n *\r\n * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified.\r\n * @param {GitInterfaces.GitQueryCommitsCriteria} searchCriteria\r\n * @param {string} project - Project ID or project name\r\n * @param {number} skip\r\n * @param {number} top\r\n */\r\n getCommits(repositoryId, searchCriteria, project, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (searchCriteria == null) {\r\n throw new TypeError('searchCriteria can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n searchCriteria: searchCriteria,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"c2570c3b-5b3f-41b8-98bf-5407bfde8d58\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a list of commits associated with a particular push.\r\n *\r\n * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified.\r\n * @param {number} pushId - The id of the push.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - The maximum number of commits to return (\"get the top x commits\").\r\n * @param {number} skip - The number of commits to skip.\r\n * @param {boolean} includeLinks - Set to false to avoid including REST Url links for resources. Defaults to true.\r\n */\r\n getPushCommits(repositoryId, pushId, project, top, skip, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (pushId == null) {\r\n throw new TypeError('pushId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n pushId: pushId,\r\n top: top,\r\n skip: skip,\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"c2570c3b-5b3f-41b8-98bf-5407bfde8d58\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve git commits for a project matching the search criteria\r\n *\r\n * @param {GitInterfaces.GitQueryCommitsCriteria} searchCriteria - Search options\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} skip - Number of commits to skip.\r\n * @param {number} top - Maximum number of commits to return.\r\n * @param {boolean} includeStatuses - True to include additional commit status information.\r\n */\r\n getCommitsBatch(searchCriteria, repositoryId, project, skip, top, includeStatuses) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n '$skip': skip,\r\n '$top': top,\r\n includeStatuses: includeStatuses,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"6400dfb2-0bcb-462b-b992-5a57f8f1416c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, searchCriteria, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve deleted git repositories.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getDeletedRepositories(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"2b6869c4-cb25-42b5-b7a3-0d3e6be0a11a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitDeletedRepository, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the file diffs for each of the specified files\r\n *\r\n * @param {GitInterfaces.FileDiffsCriteria} fileDiffsCriteria - List of file parameters objects\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The name or ID of the repository\r\n */\r\n getFileDiffs(fileDiffsCriteria, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"c4c5a7e6-e9f3-4730-a92b-84baacff694b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, fileDiffsCriteria, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.FileDiff, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all forks of a repository in the collection.\r\n *\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {string} collectionId - Team project collection ID.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeLinks - True to include links.\r\n */\r\n getForks(repositoryNameOrId, collectionId, project, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId,\r\n collectionId: collectionId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"158c0340-bf6f-489c-9625-d572a1480d57\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepositoryRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Request that another repository's refs be fetched into this one. It syncs two existing forks. To create a fork, please see the repositories endpoint\r\n *\r\n * @param {GitInterfaces.GitForkSyncRequestParameters} syncParams - Source repository and ref mapping.\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeLinks - True to include links\r\n */\r\n createForkSyncRequest(syncParams, repositoryNameOrId, project, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1703f858-b9d1-46af-ab62-483e9e1055b5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, syncParams, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitForkSyncRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a specific fork sync operation's details.\r\n *\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {number} forkSyncOperationId - OperationId of the sync request.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeLinks - True to include links.\r\n */\r\n getForkSyncRequest(repositoryNameOrId, forkSyncOperationId, project, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId,\r\n forkSyncOperationId: forkSyncOperationId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1703f858-b9d1-46af-ab62-483e9e1055b5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitForkSyncRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all requested fork sync operations on this repository.\r\n *\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeAbandoned - True to include abandoned requests.\r\n * @param {boolean} includeLinks - True to include links.\r\n */\r\n getForkSyncRequests(repositoryNameOrId, project, includeAbandoned, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId\r\n };\r\n let queryValues = {\r\n includeAbandoned: includeAbandoned,\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1703f858-b9d1-46af-ab62-483e9e1055b5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitForkSyncRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create an import request.\r\n *\r\n * @param {GitInterfaces.GitImportRequest} importRequest - The import request to create.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n */\r\n createImportRequest(importRequest, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"01828ddc-3600-4a41-8633-99b3a73a0eb3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, importRequest, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a particular import request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {number} importRequestId - The unique identifier for the import request.\r\n */\r\n getImportRequest(project, repositoryId, importRequestId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n importRequestId: importRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"01828ddc-3600-4a41-8633-99b3a73a0eb3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve import requests for a repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {boolean} includeAbandoned - True to include abandoned import requests in the results.\r\n */\r\n queryImportRequests(project, repositoryId, includeAbandoned) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n includeAbandoned: includeAbandoned,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"01828ddc-3600-4a41-8633-99b3a73a0eb3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retry or abandon a failed import request.\r\n *\r\n * @param {GitInterfaces.GitImportRequest} importRequestToUpdate - The updated version of the import request. Currently, the only change allowed is setting the Status to Queued or Abandoned.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {number} importRequestId - The unique identifier for the import request to update.\r\n */\r\n updateImportRequest(importRequestToUpdate, project, repositoryId, importRequestId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n importRequestId: importRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"01828ddc-3600-4a41-8633-99b3a73a0eb3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, importRequestToUpdate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} path - The item path.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - The path scope. The default is null.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion.\r\n * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false.\r\n * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false.\r\n * @param {boolean} download - Set to true to download the response as a file. Default is false.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false.\r\n * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false.\r\n */\r\n getItem(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n path: path,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeContentMetadata: includeContentMetadata,\r\n latestProcessedChange: latestProcessedChange,\r\n download: download,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n resolveLfs: resolveLfs,\r\n sanitize: sanitize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"fb93c0db-47ed-4a31-8c20-47552878fb44\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitItem, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} path - The item path.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - The path scope. The default is null.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion.\r\n * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false.\r\n * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false.\r\n * @param {boolean} download - Set to true to download the response as a file. Default is false.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false.\r\n * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false.\r\n */\r\n getItemContent(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n path: path,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeContentMetadata: includeContentMetadata,\r\n latestProcessedChange: latestProcessedChange,\r\n download: download,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n resolveLfs: resolveLfs,\r\n sanitize: sanitize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"fb93c0db-47ed-4a31-8c20-47552878fb44\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a collection of items. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - The path scope. The default is null.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion.\r\n * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false.\r\n * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false.\r\n * @param {boolean} download - Set to true to download the response as a file. Default is false.\r\n * @param {boolean} includeLinks - Set to true to include links to items. Default is false.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository.\r\n */\r\n getItems(repositoryId, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, includeLinks, versionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeContentMetadata: includeContentMetadata,\r\n latestProcessedChange: latestProcessedChange,\r\n download: download,\r\n includeLinks: includeLinks,\r\n versionDescriptor: versionDescriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"fb93c0db-47ed-4a31-8c20-47552878fb44\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} path - The item path.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - The path scope. The default is null.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion.\r\n * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false.\r\n * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false.\r\n * @param {boolean} download - Set to true to download the response as a file. Default is false.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false.\r\n * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false.\r\n */\r\n getItemText(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n path: path,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeContentMetadata: includeContentMetadata,\r\n latestProcessedChange: latestProcessedChange,\r\n download: download,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n resolveLfs: resolveLfs,\r\n sanitize: sanitize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"fb93c0db-47ed-4a31-8c20-47552878fb44\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} path - The item path.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - The path scope. The default is null.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion.\r\n * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false.\r\n * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false.\r\n * @param {boolean} download - Set to true to download the response as a file. Default is false.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false.\r\n * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false.\r\n */\r\n getItemZip(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n path: path,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeContentMetadata: includeContentMetadata,\r\n latestProcessedChange: latestProcessedChange,\r\n download: download,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n resolveLfs: resolveLfs,\r\n sanitize: sanitize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"fb93c0db-47ed-4a31-8c20-47552878fb44\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Post for retrieving a creating a batch out of a set of items in a repo / project given a list of paths or a long path\r\n *\r\n * @param {GitInterfaces.GitItemRequestData} requestData - Request data attributes: ItemDescriptors, IncludeContentMetadata, LatestProcessedChange, IncludeLinks. ItemDescriptors: Collection of items to fetch, including path, version, and recursion level. IncludeContentMetadata: Whether to include metadata for all items LatestProcessedChange: Whether to include shallow ref to commit that last changed each item. IncludeLinks: Whether to include the _links field on the shallow references.\r\n * @param {string} repositoryId - The name or ID of the repository\r\n * @param {string} project - Project ID or project name\r\n */\r\n getItemsBatch(requestData, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"630fd2e4-fb88-4f85-ad21-13f3fd1fbca9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, requestData, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Find the merge bases of two commits, optionally across forks. If otherRepositoryId is not specified, the merge bases will only be calculated within the context of the local repositoryNameOrId.\r\n *\r\n * @param {string} repositoryNameOrId - ID or name of the local repository.\r\n * @param {string} commitId - First commit, usually the tip of the target branch of the potential merge.\r\n * @param {string} otherCommitId - Other commit, usually the tip of the source branch of the potential merge.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} otherCollectionId - The collection ID where otherCommitId lives.\r\n * @param {string} otherRepositoryId - The repository ID where otherCommitId lives.\r\n */\r\n getMergeBases(repositoryNameOrId, commitId, otherCommitId, project, otherCollectionId, otherRepositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (otherCommitId == null) {\r\n throw new TypeError('otherCommitId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId,\r\n commitId: commitId\r\n };\r\n let queryValues = {\r\n otherCommitId: otherCommitId,\r\n otherCollectionId: otherCollectionId,\r\n otherRepositoryId: otherRepositoryId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"7cf2abb6-c964-4f7e-9872-f78c66e72e9c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Request a git merge operation. Currently we support merging only 2 commits.\r\n *\r\n * @param {GitInterfaces.GitMergeParameters} mergeParameters - Parents commitIds and merge commit messsage.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {boolean} includeLinks - True to include links\r\n */\r\n createMergeRequest(mergeParameters, project, repositoryNameOrId, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"985f7ae9-844f-4906-9897-7ef41516c0e2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, mergeParameters, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitMerge, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a specific merge operation's details.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {number} mergeOperationId - OperationId of the merge request.\r\n * @param {boolean} includeLinks - True to include links\r\n */\r\n getMergeRequest(project, repositoryNameOrId, mergeOperationId, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId,\r\n mergeOperationId: mergeOperationId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"985f7ae9-844f-4906-9897-7ef41516c0e2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitMerge, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Attach a new file to a pull request.\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} fileName - The name of the file.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createAttachment(customHeaders, contentStream, fileName, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fileName: fileName,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965d9361-878b-413b-a494-45d5b5fd8ab7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Attachment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a pull request attachment.\r\n *\r\n * @param {string} fileName - The name of the attachment to delete.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteAttachment(fileName, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fileName: fileName,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965d9361-878b-413b-a494-45d5b5fd8ab7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the file content of a pull request attachment.\r\n *\r\n * @param {string} fileName - The name of the attachment.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getAttachmentContent(fileName, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fileName: fileName,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965d9361-878b-413b-a494-45d5b5fd8ab7\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of files attached to a given pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getAttachments(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965d9361-878b-413b-a494-45d5b5fd8ab7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Attachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the file content of a pull request attachment.\r\n *\r\n * @param {string} fileName - The name of the attachment.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getAttachmentZip(fileName, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fileName: fileName,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965d9361-878b-413b-a494-45d5b5fd8ab7\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a like on a comment.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - The ID of the thread that contains the comment.\r\n * @param {number} commentId - The ID of the comment.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createLike(repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5f2e2851-1389-425b-a00b-fb2adb3ef31b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a like on a comment.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - The ID of the thread that contains the comment.\r\n * @param {number} commentId - The ID of the comment.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteLike(repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5f2e2851-1389-425b-a00b-fb2adb3ef31b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get likes for a comment.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - The ID of the thread that contains the comment.\r\n * @param {number} commentId - The ID of the comment.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getLikes(repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5f2e2851-1389-425b-a00b-fb2adb3ef31b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the commits for the specified iteration of a pull request.\r\n *\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the iteration from which to get the commits.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - Maximum number of commits to return. The maximum number of commits that can be returned per batch is 500.\r\n * @param {number} skip - Number of commits to skip.\r\n */\r\n getPullRequestIterationCommits(repositoryId, pullRequestId, iterationId, project, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n let queryValues = {\r\n top: top,\r\n skip: skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"e7ea0883-095f-4926-b5fb-f24691c26fb9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the commits for the specified pull request.\r\n *\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestCommits(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"52823034-34a8-4576-922c-8d8b77e9e4c4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve one conflict for a pull request by ID\r\n *\r\n * @param {string} repositoryId\r\n * @param {number} pullRequestId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestConflict(repositoryId, pullRequestId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d840fb74-bbef-42d3-b250-564604c054a4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all conflicts for a pull request\r\n *\r\n * @param {string} repositoryId - The repository of the Pull Request.\r\n * @param {number} pullRequestId - The pull request ID.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} skip - Conflicts to skip.\r\n * @param {number} top - Conflicts to return after skip.\r\n * @param {boolean} includeObsolete - Includes obsolete conflicts.\r\n * @param {boolean} excludeResolved - Excludes conflicts already resolved.\r\n * @param {boolean} onlyResolved - Returns only the conflicts that are resolved.\r\n */\r\n getPullRequestConflicts(repositoryId, pullRequestId, project, skip, top, includeObsolete, excludeResolved, onlyResolved) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n '$skip': skip,\r\n '$top': top,\r\n includeObsolete: includeObsolete,\r\n excludeResolved: excludeResolved,\r\n onlyResolved: onlyResolved,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d840fb74-bbef-42d3-b250-564604c054a4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update merge conflict resolution\r\n *\r\n * @param {GitInterfaces.GitConflict} conflict\r\n * @param {string} repositoryId\r\n * @param {number} pullRequestId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestConflict(conflict, repositoryId, pullRequestId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d840fb74-bbef-42d3-b250-564604c054a4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflict, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update multiple merge conflict resolutions\r\n *\r\n * @param {GitInterfaces.GitConflict[]} conflictUpdates\r\n * @param {string} repositoryId\r\n * @param {number} pullRequestId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestConflicts(conflictUpdates, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d840fb74-bbef-42d3-b250-564604c054a4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflictUpdates, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflictUpdateResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve the changes made in a pull request between two iterations.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.
Iteration one is the head of the source branch at the time the pull request is created and subsequent iterations are created when there are pushes to the source branch. Allowed values are between 1 and the maximum iteration on this pull request.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - Optional. The number of changes to retrieve. The default value is 100 and the maximum value is 2000.\r\n * @param {number} skip - Optional. The number of changes to ignore. For example, to retrieve changes 101-150, set top 50 and skip to 100.\r\n * @param {number} compareTo - ID of the pull request iteration to compare against. The default value is zero which indicates the comparison is made against the common commit between the source and target branches\r\n */\r\n getPullRequestIterationChanges(repositoryId, pullRequestId, iterationId, project, top, skip, compareTo) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n '$compareTo': compareTo,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4216bdcf-b6b1-4d59-8b82-c34cc183fc8b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestIterationChanges, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the specified iteration for a pull request.\r\n *\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration to return.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestIteration(repositoryId, pullRequestId, iterationId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d43911ee-6958-46b0-a42b-8445b8a0d004\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestIteration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the list of iterations for the specified pull request.\r\n *\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeCommits - If true, include the commits associated with each iteration in the response.\r\n */\r\n getPullRequestIterations(repositoryId, pullRequestId, project, includeCommits) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n includeCommits: includeCommits,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d43911ee-6958-46b0-a42b-8445b8a0d004\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestIteration, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a pull request status on the iteration. This operation will have the same result as Create status on pull request with specified iteration ID in the request body.\r\n *\r\n * @param {GitInterfaces.GitPullRequestStatus} status - Pull request status to create.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPullRequestIterationStatus(status, repositoryId, pullRequestId, iterationId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"75cf11c5-979f-4038-a76e-058a06adf2bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, status, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete pull request iteration status.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.\r\n * @param {number} statusId - ID of the pull request status.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deletePullRequestIterationStatus(repositoryId, pullRequestId, iterationId, statusId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId,\r\n statusId: statusId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"75cf11c5-979f-4038-a76e-058a06adf2bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the specific pull request iteration status by ID. The status ID is unique within the pull request across all iterations.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.\r\n * @param {number} statusId - ID of the pull request status.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestIterationStatus(repositoryId, pullRequestId, iterationId, statusId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId,\r\n statusId: statusId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"75cf11c5-979f-4038-a76e-058a06adf2bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all the statuses associated with a pull request iteration.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestIterationStatuses(repositoryId, pullRequestId, iterationId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"75cf11c5-979f-4038-a76e-058a06adf2bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update pull request iteration statuses collection. The only supported operation type is `remove`.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} patchDocument - Operations to apply to the pull request statuses in JSON Patch format.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestIterationStatuses(customHeaders, patchDocument, repositoryId, pullRequestId, iterationId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"75cf11c5-979f-4038-a76e-058a06adf2bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, patchDocument, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a label for a specified pull request. The only required field is the name of the new label.\r\n *\r\n * @param {TfsCoreInterfaces.WebApiCreateTagRequestData} label - Label to assign to the pull request.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project ID or project name.\r\n */\r\n createPullRequestLabel(label, repositoryId, pullRequestId, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"f22387e3-984e-4c52-9c6d-fbb8f14c812d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, label, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a label from the set of those assigned to the pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} labelIdOrName - The name or ID of the label requested.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project ID or project name.\r\n */\r\n deletePullRequestLabels(repositoryId, pullRequestId, labelIdOrName, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n labelIdOrName: labelIdOrName\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"f22387e3-984e-4c52-9c6d-fbb8f14c812d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves a single label that has been assigned to a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} labelIdOrName - The name or ID of the label requested.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project ID or project name.\r\n */\r\n getPullRequestLabel(repositoryId, pullRequestId, labelIdOrName, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n labelIdOrName: labelIdOrName\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"f22387e3-984e-4c52-9c6d-fbb8f14c812d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all the labels assigned to a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project ID or project name.\r\n */\r\n getPullRequestLabels(repositoryId, pullRequestId, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"f22387e3-984e-4c52-9c6d-fbb8f14c812d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get external properties of the pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestProperties(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"48a52185-5b9e-4736-9dc1-bb1e2feac80b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create or update pull request external properties. The patch operation can be `add`, `replace` or `remove`. For `add` operation, the path can be empty. If the path is empty, the value must be a list of key value pairs. For `replace` operation, the path cannot be empty. If the path does not exist, the property will be added to the collection. For `remove` operation, the path cannot be empty. If the path does not exist, no action will be performed.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} patchDocument - Properties to add, replace or remove in JSON Patch format.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestProperties(customHeaders, patchDocument, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"48a52185-5b9e-4736-9dc1-bb1e2feac80b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, patchDocument, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * This API is used to find what pull requests are related to a given commit. It can be used to either find the pull request that created a particular merge commit or it can be used to find all pull requests that have ever merged a particular commit. The input is a list of queries which each contain a list of commits. For each commit that you search against, you will get back a dictionary of commit -> pull requests.\r\n *\r\n * @param {GitInterfaces.GitPullRequestQuery} queries - The list of queries to perform.\r\n * @param {string} repositoryId - ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestQuery(queries, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b3a6eebe-9cf0-49ea-b6cb-1a4c5f5007b0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, queries, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a reviewer to a pull request or cast a vote.\r\n *\r\n * @param {GitInterfaces.IdentityRefWithVote} reviewer - Reviewer's vote.
If the reviewer's ID is included here, it must match the reviewerID parameter.
Reviewers can set their own vote with this method. When adding other reviewers, vote must be set to zero.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} reviewerId - ID of the reviewer.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPullRequestReviewer(reviewer, repositoryId, pullRequestId, reviewerId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n reviewerId: reviewerId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, reviewer, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add reviewers to a pull request.\r\n *\r\n * @param {VSSInterfaces.IdentityRef[]} reviewers - Reviewers to add to the pull request.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPullRequestReviewers(reviewers, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, reviewers, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add an unmaterialized identity to the reviewers of a pull request.\r\n *\r\n * @param {GitInterfaces.IdentityRefWithVote} reviewer - Reviewer to add to the pull request.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createUnmaterializedPullRequestReviewer(reviewer, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, reviewer, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Remove a reviewer from a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} reviewerId - ID of the reviewer to remove.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deletePullRequestReviewer(repositoryId, pullRequestId, reviewerId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n reviewerId: reviewerId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve information about a particular reviewer on a pull request\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} reviewerId - ID of the reviewer.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestReviewer(repositoryId, pullRequestId, reviewerId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n reviewerId: reviewerId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve the reviewers for a pull request\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestReviewers(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Edit a reviewer entry. These fields are patchable: isFlagged, hasDeclined\r\n *\r\n * @param {GitInterfaces.IdentityRefWithVote} reviewer - Reviewer data.
If the reviewer's ID is included here, it must match the reviewerID parameter.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} reviewerId - ID of the reviewer.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestReviewer(reviewer, repositoryId, pullRequestId, reviewerId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n reviewerId: reviewerId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, reviewer, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Reset the votes of multiple reviewers on a pull request. NOTE: This endpoint only supports updating votes, but does not support updating required reviewers (use policy) or display names.\r\n *\r\n * @param {GitInterfaces.IdentityRefWithVote[]} patchVotes - IDs of the reviewers whose votes will be reset to zero\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestReviewers(patchVotes, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, patchVotes, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a pull request.\r\n *\r\n * @param {number} pullRequestId - The ID of the pull request to retrieve.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestById(pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"01a46dea-7d46-4d40-bc84-319e7c260d99\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all pull requests matching a specified criteria.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {GitInterfaces.GitPullRequestSearchCriteria} searchCriteria - Pull requests will be returned that match this search criteria.\r\n * @param {number} maxCommentLength - Not used.\r\n * @param {number} skip - The number of pull requests to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100.\r\n * @param {number} top - The number of pull requests to retrieve.\r\n */\r\n getPullRequestsByProject(project, searchCriteria, maxCommentLength, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (searchCriteria == null) {\r\n throw new TypeError('searchCriteria can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n searchCriteria: searchCriteria,\r\n maxCommentLength: maxCommentLength,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"a5d28130-9cd2-40fa-9f08-902e7daa9efb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a pull request.\r\n *\r\n * @param {GitInterfaces.GitPullRequest} gitPullRequestToCreate - The pull request to create.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} supportsIterations - If true, subsequent pushes to the pull request will be individually reviewable. Set this to false for large pull requests for performance reasons if this functionality is not needed.\r\n */\r\n createPullRequest(gitPullRequestToCreate, repositoryId, project, supportsIterations) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n supportsIterations: supportsIterations,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"9946fd70-0d40-406e-b686-b4744cbbcc37\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, gitPullRequestToCreate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - The ID of the pull request to retrieve.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} maxCommentLength - Not used.\r\n * @param {number} skip - Not used.\r\n * @param {number} top - Not used.\r\n * @param {boolean} includeCommits - If true, the pull request will be returned with the associated commits.\r\n * @param {boolean} includeWorkItemRefs - If true, the pull request will be returned with the associated work item references.\r\n */\r\n getPullRequest(repositoryId, pullRequestId, project, maxCommentLength, skip, top, includeCommits, includeWorkItemRefs) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n maxCommentLength: maxCommentLength,\r\n '$skip': skip,\r\n '$top': top,\r\n includeCommits: includeCommits,\r\n includeWorkItemRefs: includeWorkItemRefs,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"9946fd70-0d40-406e-b686-b4744cbbcc37\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all pull requests matching a specified criteria.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {GitInterfaces.GitPullRequestSearchCriteria} searchCriteria - Pull requests will be returned that match this search criteria.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} maxCommentLength - Not used.\r\n * @param {number} skip - The number of pull requests to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100.\r\n * @param {number} top - The number of pull requests to retrieve.\r\n */\r\n getPullRequests(repositoryId, searchCriteria, project, maxCommentLength, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (searchCriteria == null) {\r\n throw new TypeError('searchCriteria can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n searchCriteria: searchCriteria,\r\n maxCommentLength: maxCommentLength,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"9946fd70-0d40-406e-b686-b4744cbbcc37\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a pull request\r\n *\r\n * @param {GitInterfaces.GitPullRequest} gitPullRequestToUpdate - The pull request content that should be updated.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request to update.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequest(gitPullRequestToUpdate, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"9946fd70-0d40-406e-b686-b4744cbbcc37\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, gitPullRequestToUpdate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Sends an e-mail notification about a specific pull request to a set of recipients\r\n *\r\n * @param {GitInterfaces.ShareNotificationContext} userMessage\r\n * @param {string} repositoryId - ID of the git repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n sharePullRequest(userMessage, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"696f3a82-47c9-487f-9117-b9d00972ca84\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, userMessage, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a pull request status.\r\n *\r\n * @param {GitInterfaces.GitPullRequestStatus} status - Pull request status to create.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPullRequestStatus(status, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, status, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete pull request status.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} statusId - ID of the pull request status.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deletePullRequestStatus(repositoryId, pullRequestId, statusId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n statusId: statusId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the specific pull request status by ID. The status ID is unique within the pull request across all iterations.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} statusId - ID of the pull request status.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestStatus(repositoryId, pullRequestId, statusId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n statusId: statusId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all the statuses associated with a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestStatuses(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update pull request statuses collection. The only supported operation type is `remove`.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} patchDocument - Operations to apply to the pull request statuses in JSON Patch format.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestStatuses(customHeaders, patchDocument, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, patchDocument, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a comment on a specific thread in a pull request (up to 500 comments can be created per thread).\r\n *\r\n * @param {GitInterfaces.Comment} comment - The comment to create. Comments can be up to 150,000 characters.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread that the desired comment is in.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createComment(comment, repositoryId, pullRequestId, threadId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, comment, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a comment associated with a specific thread in a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread that the desired comment is in.\r\n * @param {number} commentId - ID of the comment.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteComment(repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a comment associated with a specific thread in a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread that the desired comment is in.\r\n * @param {number} commentId - ID of the comment.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getComment(repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all comments associated with a specific thread in a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getComments(repositoryId, pullRequestId, threadId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a comment associated with a specific thread in a pull request.\r\n *\r\n * @param {GitInterfaces.Comment} comment - The comment content that should be updated. Comments can be up to 150,000 characters.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread that the desired comment is in.\r\n * @param {number} commentId - ID of the comment to update.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateComment(comment, repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, comment, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a thread in a pull request.\r\n *\r\n * @param {GitInterfaces.GitPullRequestCommentThread} commentThread - The thread to create. Thread must contain at least one comment.\r\n * @param {string} repositoryId - Repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createThread(commentThread, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"ab6e2e5d-a0b7-4153-b64a-a4efe0d49449\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, commentThread, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a thread in a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} iteration - If specified, thread position will be tracked using this iteration as the right side of the diff.\r\n * @param {number} baseIteration - If specified, thread position will be tracked using this iteration as the left side of the diff.\r\n */\r\n getPullRequestThread(repositoryId, pullRequestId, threadId, project, iteration, baseIteration) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId\r\n };\r\n let queryValues = {\r\n '$iteration': iteration,\r\n '$baseIteration': baseIteration,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"ab6e2e5d-a0b7-4153-b64a-a4efe0d49449\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all threads in a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} iteration - If specified, thread positions will be tracked using this iteration as the right side of the diff.\r\n * @param {number} baseIteration - If specified, thread positions will be tracked using this iteration as the left side of the diff.\r\n */\r\n getThreads(repositoryId, pullRequestId, project, iteration, baseIteration) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n '$iteration': iteration,\r\n '$baseIteration': baseIteration,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"ab6e2e5d-a0b7-4153-b64a-a4efe0d49449\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a thread in a pull request.\r\n *\r\n * @param {GitInterfaces.GitPullRequestCommentThread} commentThread - The thread content that should be updated.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread to update.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateThread(commentThread, repositoryId, pullRequestId, threadId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"ab6e2e5d-a0b7-4153-b64a-a4efe0d49449\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, commentThread, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a list of work items associated with a pull request.\r\n *\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestWorkItemRefs(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"0a637fcc-5370-4ce8-b0e8-98091f5f9482\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Push changes to the repository.\r\n *\r\n * @param {GitInterfaces.GitPush} push\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPush(push, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"git\", \"ea98d07b-3c87-4971-8ede-a613694ffb55\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, push, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPush, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves a particular push.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {number} pushId - ID of the push.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} includeCommits - The number of commits to include in the result.\r\n * @param {boolean} includeRefUpdates - If true, include the list of refs that were updated by the push.\r\n */\r\n getPush(repositoryId, pushId, project, includeCommits, includeRefUpdates) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pushId: pushId\r\n };\r\n let queryValues = {\r\n includeCommits: includeCommits,\r\n includeRefUpdates: includeRefUpdates,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"git\", \"ea98d07b-3c87-4971-8ede-a613694ffb55\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPush, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves pushes associated with the specified repository.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} skip - Number of pushes to skip.\r\n * @param {number} top - Number of pushes to return.\r\n * @param {GitInterfaces.GitPushSearchCriteria} searchCriteria - Search criteria attributes: fromDate, toDate, pusherId, refName, includeRefUpdates or includeLinks. fromDate: Start date to search from. toDate: End date to search to. pusherId: Identity of the person who submitted the push. refName: Branch name to consider. includeRefUpdates: If true, include the list of refs that were updated by the push. includeLinks: Whether to include the _links field on the shallow references.\r\n */\r\n getPushes(repositoryId, project, skip, top, searchCriteria) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n '$skip': skip,\r\n '$top': top,\r\n searchCriteria: searchCriteria,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"git\", \"ea98d07b-3c87-4971-8ede-a613694ffb55\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPush, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Destroy (hard delete) a soft-deleted Git repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The ID of the repository.\r\n */\r\n deleteRepositoryFromRecycleBin(project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"a663da97-81db-4eb3-8b83-287670f63073\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve soft-deleted git repositories from the recycle bin.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRecycleBinRepositories(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"a663da97-81db-4eb3-8b83-287670f63073\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitDeletedRepository, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Recover a soft-deleted Git repository. Recently deleted repositories go into a soft-delete state for a period of time before they are hard deleted and become unrecoverable.\r\n *\r\n * @param {GitInterfaces.GitRecycleBinRepositoryDetails} repositoryDetails\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The ID of the repository.\r\n */\r\n restoreRepositoryFromRecycleBin(repositoryDetails, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"a663da97-81db-4eb3-8b83-287670f63073\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, repositoryDetails, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Queries the provided repository for its refs and returns them.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} filter - [optional] A filter to apply to the refs (starts with).\r\n * @param {boolean} includeLinks - [optional] Specifies if referenceLinks should be included in the result. default is false.\r\n * @param {boolean} includeStatuses - [optional] Includes up to the first 1000 commit statuses for each ref. The default value is false.\r\n * @param {boolean} includeMyBranches - [optional] Includes only branches that the user owns, the branches the user favorites, and the default branch. The default value is false. Cannot be combined with the filter parameter.\r\n * @param {boolean} latestStatusesOnly - [optional] True to include only the tip commit status for each ref. This option requires `includeStatuses` to be true. The default value is false.\r\n * @param {boolean} peelTags - [optional] Annotated tags will populate the PeeledObjectId property. default is false.\r\n * @param {string} filterContains - [optional] A filter to apply to the refs (contains).\r\n */\r\n getRefs(repositoryId, project, filter, includeLinks, includeStatuses, includeMyBranches, latestStatusesOnly, peelTags, filterContains) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n filter: filter,\r\n includeLinks: includeLinks,\r\n includeStatuses: includeStatuses,\r\n includeMyBranches: includeMyBranches,\r\n latestStatusesOnly: latestStatusesOnly,\r\n peelTags: peelTags,\r\n filterContains: filterContains,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"2d874a60-a811-4f62-9c9f-963a6ea0a55b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Lock or Unlock a branch.\r\n *\r\n * @param {GitInterfaces.GitRefUpdate} newRefInfo - The ref update action (lock/unlock) to perform\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} filter - The name of the branch to lock/unlock\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - ID or name of the team project. Optional if specifying an ID for repository.\r\n */\r\n updateRef(newRefInfo, repositoryId, filter, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (filter == null) {\r\n throw new TypeError('filter can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n filter: filter,\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"2d874a60-a811-4f62-9c9f-963a6ea0a55b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, newRefInfo, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRef, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creating, updating, or deleting refs(branches).\r\n *\r\n * @param {GitInterfaces.GitRefUpdate[]} refUpdates - List of ref updates to attempt to perform\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - ID or name of the team project. Optional if specifying an ID for repository.\r\n */\r\n updateRefs(refUpdates, repositoryId, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"2d874a60-a811-4f62-9c9f-963a6ea0a55b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, refUpdates, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefUpdateResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a ref favorite\r\n *\r\n * @param {GitInterfaces.GitRefFavorite} favorite - The ref favorite to create.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createFavorite(favorite, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"876f70af-5792-485a-a1c7-d0a7b2f42bbb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, favorite, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefFavorite, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the refs favorite specified\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} favoriteId - The Id of the ref favorite to delete.\r\n */\r\n deleteRefFavorite(project, favoriteId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n favoriteId: favoriteId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"876f70af-5792-485a-a1c7-d0a7b2f42bbb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the refs favorite for a favorite Id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} favoriteId - The Id of the requested ref favorite.\r\n */\r\n getRefFavorite(project, favoriteId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n favoriteId: favoriteId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"876f70af-5792-485a-a1c7-d0a7b2f42bbb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefFavorite, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the refs favorites for a repo and an identity.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The id of the repository.\r\n * @param {string} identityId - The id of the identity whose favorites are to be retrieved. If null, the requesting identity is used.\r\n */\r\n getRefFavorites(project, repositoryId, identityId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n repositoryId: repositoryId,\r\n identityId: identityId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"876f70af-5792-485a-a1c7-d0a7b2f42bbb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefFavorite, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a git repository in a team project.\r\n *\r\n * @param {GitInterfaces.GitRepositoryCreateOptions} gitRepositoryToCreate - Specify the repo name, team project and/or parent repository. Team project information can be omitted from gitRepositoryToCreate if the request is project-scoped (i.e., includes project Id).\r\n * @param {string} project - Project ID or project name\r\n * @param {string} sourceRef - [optional] Specify the source refs to use while creating a fork repo\r\n */\r\n createRepository(gitRepositoryToCreate, project, sourceRef) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n sourceRef: sourceRef,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, gitRepositoryToCreate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a git repository\r\n *\r\n * @param {string} repositoryId - The ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteRepository(repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve git repositories.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeLinks - [optional] True to include reference links. The default value is false.\r\n * @param {boolean} includeAllUrls - [optional] True to include all remote URLs. The default value is false.\r\n * @param {boolean} includeHidden - [optional] True to include hidden repositories. The default value is false.\r\n */\r\n getRepositories(project, includeLinks, includeAllUrls, includeHidden) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n includeAllUrls: includeAllUrls,\r\n includeHidden: includeHidden,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a git repository.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRepository(repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a git repository.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {boolean} includeParent - True to include parent repository. Only available in authenticated calls.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRepositoryWithParent(repositoryId, includeParent, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (includeParent == null) {\r\n throw new TypeError('includeParent can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n includeParent: includeParent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the Git repository with either a new repo name or a new default branch.\r\n *\r\n * @param {GitInterfaces.GitRepository} newRepositoryInfo - Specify a new repo name or a new default branch of the repository\r\n * @param {string} repositoryId - The ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateRepository(newRepositoryInfo, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, newRepositoryInfo, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve one conflict for a revert by ID\r\n *\r\n * @param {string} repositoryId\r\n * @param {number} revertId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRevertConflict(repositoryId, revertId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n revertId: revertId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"10d7ae6d-1050-446d-852a-bd5d99f834bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all conflicts for a revert\r\n *\r\n * @param {string} repositoryId\r\n * @param {number} revertId\r\n * @param {string} project - Project ID or project name\r\n * @param {string} continuationToken\r\n * @param {number} top\r\n * @param {boolean} excludeResolved\r\n * @param {boolean} onlyResolved\r\n * @param {boolean} includeObsolete\r\n */\r\n getRevertConflicts(repositoryId, revertId, project, continuationToken, top, excludeResolved, onlyResolved, includeObsolete) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n revertId: revertId\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n excludeResolved: excludeResolved,\r\n onlyResolved: onlyResolved,\r\n includeObsolete: includeObsolete,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"10d7ae6d-1050-446d-852a-bd5d99f834bf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update merge conflict resolution\r\n *\r\n * @param {GitInterfaces.GitConflict} conflict\r\n * @param {string} repositoryId\r\n * @param {number} revertId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateRevertConflict(conflict, repositoryId, revertId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n revertId: revertId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"10d7ae6d-1050-446d-852a-bd5d99f834bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflict, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update multiple merge conflict resolutions\r\n *\r\n * @param {GitInterfaces.GitConflict[]} conflictUpdates\r\n * @param {string} repositoryId\r\n * @param {number} revertId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateRevertConflicts(conflictUpdates, repositoryId, revertId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n revertId: revertId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"10d7ae6d-1050-446d-852a-bd5d99f834bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflictUpdates, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflictUpdateResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Starts the operation to create a new branch which reverts changes introduced by either a specific commit or commits that are associated to a pull request.\r\n *\r\n * @param {GitInterfaces.GitAsyncRefOperationParameters} revertToCreate\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID of the repository.\r\n */\r\n createRevert(revertToCreate, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"bc866058-5449-4715-9cf1-a510b6ff193c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, revertToCreate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRevert, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve information about a revert operation by revert Id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} revertId - ID of the revert operation.\r\n * @param {string} repositoryId - ID of the repository.\r\n */\r\n getRevert(project, revertId, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n revertId: revertId,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"bc866058-5449-4715-9cf1-a510b6ff193c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRevert, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve information about a revert operation for a specific branch.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID of the repository.\r\n * @param {string} refName - The GitAsyncRefOperationParameters generatedRefName used for the revert operation.\r\n */\r\n getRevertForRefName(project, repositoryId, refName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (refName == null) {\r\n throw new TypeError('refName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n refName: refName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"bc866058-5449-4715-9cf1-a510b6ff193c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRevert, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create Git commit status.\r\n *\r\n * @param {GitInterfaces.GitStatus} gitCommitStatusToCreate - Git commit status object to create.\r\n * @param {string} commitId - ID of the Git commit.\r\n * @param {string} repositoryId - ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createCommitStatus(gitCommitStatusToCreate, commitId, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n commitId: commitId,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"428dd4fb-fda5-4722-af02-9313b80305da\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, gitCommitStatusToCreate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitStatus, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get statuses associated with the Git commit.\r\n *\r\n * @param {string} commitId - ID of the Git commit.\r\n * @param {string} repositoryId - ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - Optional. The number of statuses to retrieve. Default is 1000.\r\n * @param {number} skip - Optional. The number of statuses to ignore. Default is 0. For example, to retrieve results 101-150, set top to 50 and skip to 100.\r\n * @param {boolean} latestOnly - The flag indicates whether to get only latest statuses grouped by `Context.Name` and `Context.Genre`.\r\n */\r\n getStatuses(commitId, repositoryId, project, top, skip, latestOnly) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n commitId: commitId,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n top: top,\r\n skip: skip,\r\n latestOnly: latestOnly,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"428dd4fb-fda5-4722-af02-9313b80305da\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitStatus, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a pull request suggestion for a particular repository or team project.\r\n *\r\n * @param {string} repositoryId - ID of the git repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getSuggestions(repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"9393b4fb-4445-4919-972b-9ad16f442d83\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * The Tree endpoint returns the collection of objects underneath the specified tree. Trees are folders in a Git repository.\r\n *\r\n * @param {string} repositoryId - Repository Id.\r\n * @param {string} sha1 - SHA1 hash of the tree object.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project Id.\r\n * @param {boolean} recursive - Search recursively. Include trees underneath this tree. Default is false.\r\n * @param {string} fileName - Name to use if a .zip file is returned. Default is the object ID.\r\n */\r\n getTree(repositoryId, sha1, project, projectId, recursive, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n sha1: sha1\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n recursive: recursive,\r\n fileName: fileName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"729f6437-6f92-44ec-8bee-273a7111063c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitTreeRef, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * The Tree endpoint returns the collection of objects underneath the specified tree. Trees are folders in a Git repository.\r\n *\r\n * @param {string} repositoryId - Repository Id.\r\n * @param {string} sha1 - SHA1 hash of the tree object.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project Id.\r\n * @param {boolean} recursive - Search recursively. Include trees underneath this tree. Default is false.\r\n * @param {string} fileName - Name to use if a .zip file is returned. Default is the object ID.\r\n */\r\n getTreeZip(repositoryId, sha1, project, projectId, recursive, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n sha1: sha1\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n recursive: recursive,\r\n fileName: fileName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"729f6437-6f92-44ec-8bee-273a7111063c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nGitApi.RESOURCE_AREA_ID = \"4e080c62-fa21-4fbc-8fef-2a10a2b38049\";\r\nexports.GitApi = GitApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst LocationsInterfaces = require(\"./interfaces/LocationsInterfaces\");\r\nclass LocationsApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Locations-api', options);\r\n }\r\n /**\r\n * This was copied and adapted from TeamFoundationConnectionService.Connect()\r\n *\r\n * @param {VSSInterfaces.ConnectOptions} connectOptions\r\n * @param {number} lastChangeId - Obsolete 32-bit LastChangeId\r\n * @param {number} lastChangeId64 - Non-truncated 64-bit LastChangeId\r\n */\r\n getConnectionData(connectOptions, lastChangeId, lastChangeId64) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n connectOptions: connectOptions,\r\n lastChangeId: lastChangeId,\r\n lastChangeId64: lastChangeId64,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"00d9565f-ed9c-4a06-9a50-00e7896ccab4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, LocationsInterfaces.TypeInfo.ConnectionData, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} areaId\r\n * @param {string} enterpriseName\r\n * @param {string} organizationName\r\n */\r\n getResourceArea(areaId, enterpriseName, organizationName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n areaId: areaId\r\n };\r\n let queryValues = {\r\n enterpriseName: enterpriseName,\r\n organizationName: organizationName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"e81700f7-3be2-46de-8624-2eb35882fcaa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} areaId\r\n * @param {string} hostId\r\n */\r\n getResourceAreaByHost(areaId, hostId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (hostId == null) {\r\n throw new TypeError('hostId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n areaId: areaId\r\n };\r\n let queryValues = {\r\n hostId: hostId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"e81700f7-3be2-46de-8624-2eb35882fcaa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} enterpriseName\r\n * @param {string} organizationName\r\n */\r\n getResourceAreas(enterpriseName, organizationName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n enterpriseName: enterpriseName,\r\n organizationName: organizationName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"e81700f7-3be2-46de-8624-2eb35882fcaa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} hostId\r\n */\r\n getResourceAreasByHost(hostId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (hostId == null) {\r\n throw new TypeError('hostId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n hostId: hostId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"e81700f7-3be2-46de-8624-2eb35882fcaa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} serviceType\r\n * @param {string} identifier\r\n */\r\n deleteServiceDefinition(serviceType, identifier) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n serviceType: serviceType,\r\n identifier: identifier\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"d810a47d-f4f4-4a62-a03f-fa1860585c4c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Finds a given service definition.\r\n *\r\n * @param {string} serviceType\r\n * @param {string} identifier\r\n * @param {boolean} allowFaultIn - If true, we will attempt to fault in a host instance mapping if in SPS.\r\n * @param {boolean} previewFaultIn - If true, we will calculate and return a host instance mapping, but not persist it.\r\n */\r\n getServiceDefinition(serviceType, identifier, allowFaultIn, previewFaultIn) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n serviceType: serviceType,\r\n identifier: identifier\r\n };\r\n let queryValues = {\r\n allowFaultIn: allowFaultIn,\r\n previewFaultIn: previewFaultIn,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"d810a47d-f4f4-4a62-a03f-fa1860585c4c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, LocationsInterfaces.TypeInfo.ServiceDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} serviceType\r\n */\r\n getServiceDefinitions(serviceType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n serviceType: serviceType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"d810a47d-f4f4-4a62-a03f-fa1860585c4c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, LocationsInterfaces.TypeInfo.ServiceDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {VSSInterfaces.VssJsonCollectionWrapperV} serviceDefinitions\r\n */\r\n updateServiceDefinitions(serviceDefinitions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"d810a47d-f4f4-4a62-a03f-fa1860585c4c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, serviceDefinitions, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.LocationsApi = LocationsApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst NotificationInterfaces = require(\"./interfaces/NotificationInterfaces\");\r\nconst VSSInterfaces = require(\"./interfaces/common/VSSInterfaces\");\r\nclass NotificationApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Notification-api', options);\r\n }\r\n /**\r\n * @param {NotificationInterfaces.BatchNotificationOperation} operation\r\n */\r\n performBatchNotificationOperations(operation) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"8f3c6ab2-5bae-4537-b16e-f84e0955599e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, operation, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of diagnostic logs for this service.\r\n *\r\n * @param {string} source - ID specifying which type of logs to check diagnostics for.\r\n * @param {string} entryId - The ID of the specific log to query for.\r\n * @param {Date} startTime - Start time for the time range to query in.\r\n * @param {Date} endTime - End time for the time range to query in.\r\n */\r\n listLogs(source, entryId, startTime, endTime) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n source: source,\r\n entryId: entryId\r\n };\r\n let queryValues = {\r\n startTime: startTime,\r\n endTime: endTime,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"991842f3-eb16-4aea-ac81-81353ef2b75c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.INotificationDiagnosticLog, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the diagnostics settings for a subscription.\r\n *\r\n * @param {string} subscriptionId - The id of the notifications subscription.\r\n */\r\n getSubscriptionDiagnostics(subscriptionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"20f1929d-4be7-4c2e-a74e-d47640ff3418\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.SubscriptionDiagnostics, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the diagnostics settings for a subscription.\r\n *\r\n * @param {NotificationInterfaces.UpdateSubscripitonDiagnosticsParameters} updateParameters\r\n * @param {string} subscriptionId - The id of the notifications subscription.\r\n */\r\n updateSubscriptionDiagnostics(updateParameters, subscriptionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"20f1929d-4be7-4c2e-a74e-d47640ff3418\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.SubscriptionDiagnostics, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Publish an event. This request must be directed to the service \"extmgmt\".\r\n *\r\n * @param {VSSInterfaces.VssNotificationEvent} notificationEvent\r\n */\r\n publishEvent(notificationEvent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"14c57b7a-c0e6-4555-9f51-e067188fdd8e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, notificationEvent, options);\r\n let ret = this.formatResponse(res.result, VSSInterfaces.TypeInfo.VssNotificationEvent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Tranform a notification event.\r\n *\r\n * @param {NotificationInterfaces.EventTransformRequest} transformRequest - Object to be transformed.\r\n */\r\n transformEvent(transformRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"9463a800-1b44-450e-9083-f948ea174b45\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, transformRequest, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NotificationInterfaces.FieldValuesQuery} inputValuesQuery\r\n * @param {string} eventType\r\n */\r\n queryEventTypes(inputValuesQuery, eventType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n eventType: eventType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"b5bbdd21-c178-4398-b6db-0166d910028a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, inputValuesQuery, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationEventField, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a specific event type.\r\n *\r\n * @param {string} eventType - The ID of the event type.\r\n */\r\n getEventType(eventType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n eventType: eventType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"cc84fb5f-6247-4c7a-aeae-e5a3c3fddb21\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationEventType, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List available event types for this service. Optionally filter by only event types for the specified publisher.\r\n *\r\n * @param {string} publisherId - Limit to event types for this publisher\r\n */\r\n listEventTypes(publisherId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n publisherId: publisherId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"cc84fb5f-6247-4c7a-aeae-e5a3c3fddb21\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationEventType, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} notificationId\r\n */\r\n getNotificationReasons(notificationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n notificationId: notificationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"19824fa9-1c76-40e6-9cce-cf0b9ca1cb60\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationReason, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} notificationIds\r\n */\r\n listNotificationReasons(notificationIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n notificationIds: notificationIds,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"19824fa9-1c76-40e6-9cce-cf0b9ca1cb60\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationReason, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getSettings() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"cbe076d8-2803-45ff-8d8d-44653686ea2a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationAdminSettings, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NotificationInterfaces.NotificationAdminSettingsUpdateParameters} updateParameters\r\n */\r\n updateSettings(updateParameters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"cbe076d8-2803-45ff-8d8d-44653686ea2a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationAdminSettings, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get delivery preferences of a notifications subscriber.\r\n *\r\n * @param {string} subscriberId - ID of the user or group.\r\n */\r\n getSubscriber(subscriberId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriberId: subscriberId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"4d5caff1-25ba-430b-b808-7a1f352cc197\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscriber, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update delivery preferences of a notifications subscriber.\r\n *\r\n * @param {NotificationInterfaces.NotificationSubscriberUpdateParameters} updateParameters\r\n * @param {string} subscriberId - ID of the user or group.\r\n */\r\n updateSubscriber(updateParameters, subscriberId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriberId: subscriberId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"4d5caff1-25ba-430b-b808-7a1f352cc197\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscriber, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Query for subscriptions. A subscription is returned if it matches one or more of the specified conditions.\r\n *\r\n * @param {NotificationInterfaces.SubscriptionQuery} subscriptionQuery\r\n */\r\n querySubscriptions(subscriptionQuery) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"6864db85-08c0-4006-8e8e-cc1bebe31675\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, subscriptionQuery, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a new subscription.\r\n *\r\n * @param {NotificationInterfaces.NotificationSubscriptionCreateParameters} createParameters\r\n */\r\n createSubscription(createParameters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"70f911d6-abac-488c-85b3-a206bf57e165\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, createParameters, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a subscription.\r\n *\r\n * @param {string} subscriptionId\r\n */\r\n deleteSubscription(subscriptionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"70f911d6-abac-488c-85b3-a206bf57e165\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a notification subscription by its ID.\r\n *\r\n * @param {string} subscriptionId\r\n * @param {NotificationInterfaces.SubscriptionQueryFlags} queryFlags\r\n */\r\n getSubscription(subscriptionId, queryFlags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId\r\n };\r\n let queryValues = {\r\n queryFlags: queryFlags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"70f911d6-abac-488c-85b3-a206bf57e165\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of notification subscriptions, either by subscription IDs or by all subscriptions for a given user or group.\r\n *\r\n * @param {string} targetId - User or Group ID\r\n * @param {string[]} ids - List of subscription IDs\r\n * @param {NotificationInterfaces.SubscriptionQueryFlags} queryFlags\r\n */\r\n listSubscriptions(targetId, ids, queryFlags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n targetId: targetId,\r\n ids: ids && ids.join(\",\"),\r\n queryFlags: queryFlags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"70f911d6-abac-488c-85b3-a206bf57e165\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update an existing subscription. Depending on the type of subscription and permissions, the caller can update the description, filter settings, channel (delivery) settings and more.\r\n *\r\n * @param {NotificationInterfaces.NotificationSubscriptionUpdateParameters} updateParameters\r\n * @param {string} subscriptionId\r\n */\r\n updateSubscription(updateParameters, subscriptionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"70f911d6-abac-488c-85b3-a206bf57e165\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get available subscription templates.\r\n *\r\n */\r\n getSubscriptionTemplates() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"fa5d24ba-7484-4f3d-888d-4ec6b1974082\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscriptionTemplate, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the specified user's settings for the specified subscription. This API is typically used to opt in or out of a shared subscription. User settings can only be applied to shared subscriptions, like team subscriptions or default subscriptions.\r\n *\r\n * @param {NotificationInterfaces.SubscriptionUserSettings} userSettings\r\n * @param {string} subscriptionId\r\n * @param {string} userId - ID of the user\r\n */\r\n updateSubscriptionUserSettings(userSettings, subscriptionId, userId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId,\r\n userId: userId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"ed5a3dff-aeb5-41b1-b4f7-89e66e58b62e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, userSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.NotificationApi = NotificationApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst PolicyInterfaces = require(\"./interfaces/PolicyInterfaces\");\r\nclass PolicyApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Policy-api', options);\r\n }\r\n /**\r\n * Create a policy configuration of a given policy type.\r\n *\r\n * @param {PolicyInterfaces.PolicyConfiguration} configuration - The policy configuration to create.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId\r\n */\r\n createPolicyConfiguration(configuration, project, configurationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"dad91cbe-d183-45f8-9c6e-9c1164472121\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, configuration, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a policy configuration by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId - ID of the policy configuration to delete.\r\n */\r\n deletePolicyConfiguration(project, configurationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"dad91cbe-d183-45f8-9c6e-9c1164472121\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a policy configuration by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId - ID of the policy configuration\r\n */\r\n getPolicyConfiguration(project, configurationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"dad91cbe-d183-45f8-9c6e-9c1164472121\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of policy configurations in a project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scope - [Provided for legacy reasons] The scope on which a subset of policies is defined.\r\n * @param {string} policyType - Filter returned policies to only this type\r\n */\r\n getPolicyConfigurations(project, scope, policyType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n scope: scope,\r\n policyType: policyType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"dad91cbe-d183-45f8-9c6e-9c1164472121\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a policy configuration by its ID.\r\n *\r\n * @param {PolicyInterfaces.PolicyConfiguration} configuration - The policy configuration to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId - ID of the existing policy configuration to be updated.\r\n */\r\n updatePolicyConfiguration(configuration, project, configurationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"dad91cbe-d183-45f8-9c6e-9c1164472121\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, configuration, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the present evaluation state of a policy.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} evaluationId - ID of the policy evaluation to be retrieved.\r\n */\r\n getPolicyEvaluation(project, evaluationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n evaluationId: evaluationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"46aecb7a-5d2c-4647-897b-0209505a9fe4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyEvaluationRecord, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Requeue the policy evaluation.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} evaluationId - ID of the policy evaluation to be retrieved.\r\n */\r\n requeuePolicyEvaluation(project, evaluationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n evaluationId: evaluationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"46aecb7a-5d2c-4647-897b-0209505a9fe4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyEvaluationRecord, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves a list of all the policy evaluation statuses for a specific pull request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} artifactId - A string which uniquely identifies the target of a policy evaluation.\r\n * @param {boolean} includeNotApplicable - Some policies might determine that they do not apply to a specific pull request. Setting this parameter to true will return evaluation records even for policies which don't apply to this pull request.\r\n * @param {number} top - The number of policy evaluation records to retrieve.\r\n * @param {number} skip - The number of policy evaluation records to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100.\r\n */\r\n getPolicyEvaluations(project, artifactId, includeNotApplicable, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactId == null) {\r\n throw new TypeError('artifactId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n artifactId: artifactId,\r\n includeNotApplicable: includeNotApplicable,\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"c23ddff5-229c-4d04-a80b-0fdce9f360c8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyEvaluationRecord, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a specific revision of a given policy by ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId - The policy configuration ID.\r\n * @param {number} revisionId - The revision ID.\r\n */\r\n getPolicyConfigurationRevision(project, configurationId, revisionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId,\r\n revisionId: revisionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"fe1e68a2-60d3-43cb-855b-85e41ae97c95\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all revisions for a given policy.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId - The policy configuration ID.\r\n * @param {number} top - The number of revisions to retrieve.\r\n * @param {number} skip - The number of revisions to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100.\r\n */\r\n getPolicyConfigurationRevisions(project, configurationId, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"fe1e68a2-60d3-43cb-855b-85e41ae97c95\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a specific policy type by ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} typeId - The policy ID.\r\n */\r\n getPolicyType(project, typeId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n typeId: typeId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"44096322-2d3d-466a-bb30-d1b7de69f61f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all available policy types.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPolicyTypes(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"44096322-2d3d-466a-bb30-d1b7de69f61f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nPolicyApi.RESOURCE_AREA_ID = \"fb13a388-40dd-4a04-b530-013a739c72ef\";\r\nexports.PolicyApi = PolicyApi;\r\n","\"use strict\";\r\n/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst ProfileInterfaces = require(\"./interfaces/ProfileInterfaces\");\r\nclass ProfileApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Profile-api', options);\r\n }\r\n /**\r\n * @param {string} id\r\n * @param {string} descriptor\r\n */\r\n deleteProfileAttribute(id, descriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n descriptor: descriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.2\", \"Profile\", \"1392b6ac-d511-492e-af5b-2263e5545a5d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n * @param {string} descriptor\r\n */\r\n getProfileAttribute(id, descriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n descriptor: descriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.2\", \"Profile\", \"1392b6ac-d511-492e-af5b-2263e5545a5d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.ProfileAttribute, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n * @param {string} partition\r\n * @param {string} modifiedSince\r\n * @param {string} modifiedAfterRevision\r\n * @param {boolean} withCoreAttributes\r\n * @param {string} coreAttributes\r\n */\r\n getProfileAttributes(id, partition, modifiedSince, modifiedAfterRevision, withCoreAttributes, coreAttributes) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n partition: partition,\r\n modifiedSince: modifiedSince,\r\n modifiedAfterRevision: modifiedAfterRevision,\r\n withCoreAttributes: withCoreAttributes,\r\n coreAttributes: coreAttributes,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.2\", \"Profile\", \"1392b6ac-d511-492e-af5b-2263e5545a5d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.ProfileAttribute, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} container\r\n * @param {string} id\r\n * @param {string} descriptor\r\n */\r\n setProfileAttribute(container, id, descriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n descriptor: descriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.2\", \"Profile\", \"1392b6ac-d511-492e-af5b-2263e5545a5d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, container, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {VSSInterfaces.VssJsonCollectionWrapperV[]>} attributesCollection\r\n * @param {string} id\r\n */\r\n setProfileAttributes(attributesCollection, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.2\", \"Profile\", \"1392b6ac-d511-492e-af5b-2263e5545a5d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, attributesCollection, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n * @param {string} size\r\n * @param {string} format\r\n */\r\n getAvatar(id, size, format) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n size: size,\r\n format: format,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"67436615-b382-462a-b659-5367a492fb3c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Avatar, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} container\r\n * @param {string} id\r\n * @param {string} size\r\n * @param {string} format\r\n * @param {string} displayName\r\n */\r\n getAvatarPreview(container, id, size, format, displayName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n size: size,\r\n format: format,\r\n displayName: displayName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"67436615-b382-462a-b659-5367a492fb3c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, container, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Avatar, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n */\r\n resetAvatar(id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"67436615-b382-462a-b659-5367a492fb3c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} container\r\n * @param {string} id\r\n */\r\n setAvatar(container, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"67436615-b382-462a-b659-5367a492fb3c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, container, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Lookup up country/region based on provided IPv4, null if using the remote IPv4 address.\r\n *\r\n * @param {string} ipaddress - IPv4 address to be used for reverse lookup, null if using RemoteIPAddress in request context\r\n */\r\n getGeoRegion(ipaddress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n ipaddress: ipaddress,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"3bcda9c0-3078-48a5-a1e0-83bd05931ad0\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create profile\r\n *\r\n * @param {ProfileInterfaces.CreateProfileContext} createProfileContext - Context for profile creation\r\n * @param {boolean} autoCreate - Create profile automatically\r\n */\r\n createProfile(createProfileContext, autoCreate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n autoCreate: autoCreate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.3\", \"Profile\", \"f83735dc-483f-4238-a291-d45f6080a9af\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, createProfileContext, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n * @param {boolean} details\r\n * @param {boolean} withAttributes\r\n * @param {string} partition\r\n * @param {string} coreAttributes\r\n * @param {boolean} forceRefresh\r\n */\r\n getProfile(id, details, withAttributes, partition, coreAttributes, forceRefresh) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n details: details,\r\n withAttributes: withAttributes,\r\n partition: partition,\r\n coreAttributes: coreAttributes,\r\n forceRefresh: forceRefresh,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.3\", \"Profile\", \"f83735dc-483f-4238-a291-d45f6080a9af\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update profile\r\n *\r\n * @param {ProfileInterfaces.Profile} profile - Update profile\r\n * @param {string} id - Profile ID\r\n */\r\n updateProfile(profile, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.3\", \"Profile\", \"f83735dc-483f-4238-a291-d45f6080a9af\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, profile, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getRegions() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"92d8d1c9-26b8-4774-a929-d640a73da524\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getSupportedLcids() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"d5bd1aa6-c269-4bcd-ad32-75fa17475584\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {boolean} includeAvatar\r\n */\r\n getUserDefaults(includeAvatar) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n includeAvatar: includeAvatar,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"b583a356-1da7-4237-9f4c-1deb2edbc7e8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n */\r\n refreshUserDefaults(id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"b583a356-1da7-4237-9f4c-1deb2edbc7e8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.ProfileApi = ProfileApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst ProjectAnalysisInterfaces = require(\"./interfaces/ProjectAnalysisInterfaces\");\r\nclass ProjectAnalysisApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-ProjectAnalysis-api', options);\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n */\r\n getProjectLanguageAnalytics(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"projectanalysis\", \"5b02a779-1867-433f-90b7-d23ed5e33e57\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.ProjectLanguageAnalytics, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {Date} fromDate\r\n * @param {ProjectAnalysisInterfaces.AggregationType} aggregationType\r\n */\r\n getProjectActivityMetrics(project, fromDate, aggregationType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (fromDate == null) {\r\n throw new TypeError('fromDate can not be null or undefined');\r\n }\r\n if (aggregationType == null) {\r\n throw new TypeError('aggregationType can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fromDate: fromDate,\r\n aggregationType: aggregationType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"projectanalysis\", \"e40ae584-9ea6-4f06-a7c7-6284651b466b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.ProjectActivityMetrics, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves git activity metrics for repositories matching a specified criteria.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {Date} fromDate - Date from which, the trends are to be fetched.\r\n * @param {ProjectAnalysisInterfaces.AggregationType} aggregationType - Bucket size on which, trends are to be aggregated.\r\n * @param {number} skip - The number of repositories to ignore.\r\n * @param {number} top - The number of repositories for which activity metrics are to be retrieved.\r\n */\r\n getGitRepositoriesActivityMetrics(project, fromDate, aggregationType, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (fromDate == null) {\r\n throw new TypeError('fromDate can not be null or undefined');\r\n }\r\n if (aggregationType == null) {\r\n throw new TypeError('aggregationType can not be null or undefined');\r\n }\r\n if (skip == null) {\r\n throw new TypeError('skip can not be null or undefined');\r\n }\r\n if (top == null) {\r\n throw new TypeError('top can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fromDate: fromDate,\r\n aggregationType: aggregationType,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"projectanalysis\", \"df7fbbca-630a-40e3-8aa3-7a3faf66947e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.RepositoryActivityMetrics, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId\r\n * @param {Date} fromDate\r\n * @param {ProjectAnalysisInterfaces.AggregationType} aggregationType\r\n */\r\n getRepositoryActivityMetrics(project, repositoryId, fromDate, aggregationType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (fromDate == null) {\r\n throw new TypeError('fromDate can not be null or undefined');\r\n }\r\n if (aggregationType == null) {\r\n throw new TypeError('aggregationType can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n fromDate: fromDate,\r\n aggregationType: aggregationType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"projectanalysis\", \"df7fbbca-630a-40e3-8aa3-7a3faf66947e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.RepositoryActivityMetrics, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nProjectAnalysisApi.RESOURCE_AREA_ID = \"7658fa33-b1bf-4580-990f-fac5896773d3\";\r\nexports.ProjectAnalysisApi = ProjectAnalysisApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst ReleaseInterfaces = require(\"./interfaces/ReleaseInterfaces\");\r\nclass ReleaseApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Release-api', options);\r\n }\r\n /**\r\n * Returns the artifact details that automation agent requires\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n getAgentArtifactDefinitions(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"f2571c27-bf50-4938-b396-32d109ddef26\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.AgentArtifactDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of approvals\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} assignedToFilter - Approvals assigned to this user.\r\n * @param {ReleaseInterfaces.ApprovalStatus} statusFilter - Approvals with this status. Default is 'pending'.\r\n * @param {number[]} releaseIdsFilter - Approvals for release id(s) mentioned in the filter. Multiple releases can be mentioned by separating them with ',' e.g. releaseIdsFilter=1,2,3,4.\r\n * @param {ReleaseInterfaces.ApprovalType} typeFilter - Approval with this type.\r\n * @param {number} top - Number of approvals to get. Default is 50.\r\n * @param {number} continuationToken - Gets the approvals after the continuation token provided.\r\n * @param {ReleaseInterfaces.ReleaseQueryOrder} queryOrder - Gets the results in the defined order of created approvals. Default is 'descending'.\r\n * @param {boolean} includeMyGroupApprovals - 'true' to include my group approvals. Default is 'false'.\r\n */\r\n getApprovals(project, assignedToFilter, statusFilter, releaseIdsFilter, typeFilter, top, continuationToken, queryOrder, includeMyGroupApprovals) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n assignedToFilter: assignedToFilter,\r\n statusFilter: statusFilter,\r\n releaseIdsFilter: releaseIdsFilter && releaseIdsFilter.join(\",\"),\r\n typeFilter: typeFilter,\r\n top: top,\r\n continuationToken: continuationToken,\r\n queryOrder: queryOrder,\r\n includeMyGroupApprovals: includeMyGroupApprovals,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Release\", \"b47c6458-e73b-47cb-a770-4df1e8813a91\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get approval history.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} approvalStepId - Id of the approval.\r\n */\r\n getApprovalHistory(project, approvalStepId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n approvalStepId: approvalStepId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Release\", \"250c7158-852e-4130-a00f-a0cce9b72d05\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get an approval.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} approvalId - Id of the approval.\r\n * @param {boolean} includeHistory - 'true' to include history of the approval. Default is 'false'.\r\n */\r\n getApproval(project, approvalId, includeHistory) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n approvalId: approvalId\r\n };\r\n let queryValues = {\r\n includeHistory: includeHistory,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Release\", \"9328e074-59fb-465a-89d9-b09c82ee5109\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update status of an approval\r\n *\r\n * @param {ReleaseInterfaces.ReleaseApproval} approval - ReleaseApproval object having status, approver and comments.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} approvalId - Id of the approval.\r\n */\r\n updateReleaseApproval(approval, project, approvalId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n approvalId: approvalId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Release\", \"9328e074-59fb-465a-89d9-b09c82ee5109\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, approval, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ReleaseInterfaces.ReleaseApproval[]} approvals\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateReleaseApprovals(approvals, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Release\", \"c957584a-82aa-4131-8222-6d47f78bfa7a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, approvals, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a task attachment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of the release environment.\r\n * @param {number} attemptId - Attempt number of deployment.\r\n * @param {string} timelineId - Timeline Id of the task.\r\n * @param {string} recordId - Record Id of attachment.\r\n * @param {string} type - Type of the attachment.\r\n * @param {string} name - Name of the attachment.\r\n */\r\n getTaskAttachmentContent(project, releaseId, environmentId, attemptId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c4071f6d-3697-46ca-858e-8b10ff09e52f\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a release task attachment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of the release environment.\r\n * @param {number} attemptId - Attempt number of deployment.\r\n * @param {string} planId - Plan Id of the deploy phase.\r\n * @param {string} timelineId - Timeline Id of the task.\r\n * @param {string} recordId - Record Id of attachment.\r\n * @param {string} type - Type of the attachment.\r\n * @param {string} name - Name of the attachment.\r\n */\r\n getReleaseTaskAttachmentContent(project, releaseId, environmentId, attemptId, planId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"60b86efb-7b8c-4853-8f9f-aa142b77b479\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the task attachments.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of the release environment.\r\n * @param {number} attemptId - Attempt number of deployment.\r\n * @param {string} timelineId - Timeline Id of the task.\r\n * @param {string} type - Type of the attachment.\r\n */\r\n getTaskAttachments(project, releaseId, environmentId, attemptId, timelineId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n timelineId: timelineId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"214111ee-2415-4df2-8ed2-74417f7d61f9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTaskAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the release task attachments.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of the release environment.\r\n * @param {number} attemptId - Attempt number of deployment.\r\n * @param {string} planId - Plan Id of the deploy phase.\r\n * @param {string} type - Type of the attachment.\r\n */\r\n getReleaseTaskAttachments(project, releaseId, environmentId, attemptId, planId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n planId: planId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"a4d06688-0dfa-4895-82a5-f43ec9452306\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTaskAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} artifactType\r\n * @param {string} sourceId\r\n * @param {string} artifactVersionId\r\n * @param {string} project - Project ID or project name\r\n */\r\n getAutoTriggerIssues(artifactType, sourceId, artifactVersionId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactType == null) {\r\n throw new TypeError('artifactType can not be null or undefined');\r\n }\r\n if (sourceId == null) {\r\n throw new TypeError('sourceId can not be null or undefined');\r\n }\r\n if (artifactVersionId == null) {\r\n throw new TypeError('artifactVersionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n artifactType: artifactType,\r\n sourceId: sourceId,\r\n artifactVersionId: artifactVersionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c1a68497-69da-40fb-9423-cab19cfeeca9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.AutoTriggerIssue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that indicates the status of the most recent deployment for an environment.\r\n *\r\n * @param {string} projectId - The ID of the Project.\r\n * @param {number} releaseDefinitionId - The ID of the Release Definition.\r\n * @param {number} environmentId - The ID of the Environment.\r\n * @param {string} branchName - The name of the branch.\r\n */\r\n getDeploymentBadge(projectId, releaseDefinitionId, environmentId, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n releaseDefinitionId: releaseDefinitionId,\r\n environmentId: environmentId,\r\n branchName: branchName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"1a60a35d-b8c9-45fb-bf67-da0829711147\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} baseReleaseId\r\n * @param {number} top\r\n * @param {string} artifactAlias\r\n */\r\n getReleaseChanges(project, releaseId, baseReleaseId, top, artifactAlias) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n baseReleaseId: baseReleaseId,\r\n '$top': top,\r\n artifactAlias: artifactAlias,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"8dcf9fe9-ca37-4113-8ee1-37928e98407c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Change, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId\r\n * @param {string[]} propertyFilters\r\n */\r\n getDefinitionEnvironments(project, taskGroupId, propertyFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n taskGroupId: taskGroupId,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"12b5d21a-f54c-430e-a8c1-7515d196890e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a release definition\r\n *\r\n * @param {ReleaseInterfaces.ReleaseDefinition} releaseDefinition - release definition object to create.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createReleaseDefinition(releaseDefinition, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, releaseDefinition, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a release definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the release definition.\r\n * @param {string} comment - Comment for deleting a release definition.\r\n * @param {boolean} forceDelete - 'true' to automatically cancel any in-progress release deployments and proceed with release definition deletion . Default is 'false'.\r\n */\r\n deleteReleaseDefinition(project, definitionId, comment, forceDelete) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n comment: comment,\r\n forceDelete: forceDelete,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a release definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the release definition.\r\n * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Release Definition will contain values for the specified property Ids (if they exist). If not set, properties will not be included.\r\n */\r\n getReleaseDefinition(project, definitionId, propertyFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get release definition of a given revision.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the release definition.\r\n * @param {number} revision - Revision number of the release definition.\r\n */\r\n getReleaseDefinitionRevision(project, definitionId, revision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (revision == null) {\r\n throw new TypeError('revision can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of release definitions.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} searchText - Get release definitions with names containing searchText.\r\n * @param {ReleaseInterfaces.ReleaseDefinitionExpands} expand - The properties that should be expanded in the list of Release definitions.\r\n * @param {string} artifactType - Release definitions with given artifactType will be returned. Values can be Build, Jenkins, GitHub, Nuget, Team Build (external), ExternalTFSBuild, Git, TFVC, ExternalTfsXamlBuild.\r\n * @param {string} artifactSourceId - Release definitions with given artifactSourceId will be returned. e.g. For build it would be {projectGuid}:{BuildDefinitionId}, for Jenkins it would be {JenkinsConnectionId}:{JenkinsDefinitionId}, for TfsOnPrem it would be {TfsOnPremConnectionId}:{ProjectName}:{TfsOnPremDefinitionId}. For third-party artifacts e.g. TeamCity, BitBucket you may refer 'uniqueSourceIdentifier' inside vss-extension.json at https://github.com/Microsoft/vsts-rm-extensions/blob/master/Extensions.\r\n * @param {number} top - Number of release definitions to get.\r\n * @param {string} continuationToken - Gets the release definitions after the continuation token provided.\r\n * @param {ReleaseInterfaces.ReleaseDefinitionQueryOrder} queryOrder - Gets the results in the defined order. Default is 'IdAscending'.\r\n * @param {string} path - Gets the release definitions under the specified path.\r\n * @param {boolean} isExactNameMatch - 'true'to gets the release definitions with exact match as specified in searchText. Default is 'false'.\r\n * @param {string[]} tagFilter - A comma-delimited list of tags. Only release definitions with these tags will be returned.\r\n * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Release Definitions will contain values for the specified property Ids (if they exist). If not set, properties will not be included. Note that this will not filter out any Release Definition from results irrespective of whether it has property set or not.\r\n * @param {string[]} definitionIdFilter - A comma-delimited list of release definitions to retrieve.\r\n * @param {boolean} isDeleted - 'true' to get release definitions that has been deleted. Default is 'false'\r\n * @param {boolean} searchTextContainsFolderName - 'true' to get the release definitions under the folder with name as specified in searchText. Default is 'false'.\r\n */\r\n getReleaseDefinitions(project, searchText, expand, artifactType, artifactSourceId, top, continuationToken, queryOrder, path, isExactNameMatch, tagFilter, propertyFilters, definitionIdFilter, isDeleted, searchTextContainsFolderName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n searchText: searchText,\r\n '$expand': expand,\r\n artifactType: artifactType,\r\n artifactSourceId: artifactSourceId,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n queryOrder: queryOrder,\r\n path: path,\r\n isExactNameMatch: isExactNameMatch,\r\n tagFilter: tagFilter && tagFilter.join(\",\"),\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n definitionIdFilter: definitionIdFilter && definitionIdFilter.join(\",\"),\r\n isDeleted: isDeleted,\r\n searchTextContainsFolderName: searchTextContainsFolderName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Undelete a release definition.\r\n *\r\n * @param {ReleaseInterfaces.ReleaseDefinitionUndeleteParameter} releaseDefinitionUndeleteParameter - Object for undelete release definition.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the release definition to be undeleted\r\n */\r\n undeleteReleaseDefinition(releaseDefinitionUndeleteParameter, project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, releaseDefinitionUndeleteParameter, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a release definition.\r\n *\r\n * @param {ReleaseInterfaces.ReleaseDefinition} releaseDefinition - Release definition object to update.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateReleaseDefinition(releaseDefinition, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, releaseDefinition, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId\r\n * @param {number} definitionEnvironmentId\r\n * @param {string} createdBy\r\n * @param {Date} minModifiedTime\r\n * @param {Date} maxModifiedTime\r\n * @param {ReleaseInterfaces.DeploymentStatus} deploymentStatus\r\n * @param {ReleaseInterfaces.DeploymentOperationStatus} operationStatus\r\n * @param {boolean} latestAttemptsOnly\r\n * @param {ReleaseInterfaces.ReleaseQueryOrder} queryOrder\r\n * @param {number} top\r\n * @param {number} continuationToken\r\n * @param {string} createdFor\r\n * @param {Date} minStartedTime\r\n * @param {Date} maxStartedTime\r\n * @param {string} sourceBranch\r\n */\r\n getDeployments(project, definitionId, definitionEnvironmentId, createdBy, minModifiedTime, maxModifiedTime, deploymentStatus, operationStatus, latestAttemptsOnly, queryOrder, top, continuationToken, createdFor, minStartedTime, maxStartedTime, sourceBranch) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n definitionId: definitionId,\r\n definitionEnvironmentId: definitionEnvironmentId,\r\n createdBy: createdBy,\r\n minModifiedTime: minModifiedTime,\r\n maxModifiedTime: maxModifiedTime,\r\n deploymentStatus: deploymentStatus,\r\n operationStatus: operationStatus,\r\n latestAttemptsOnly: latestAttemptsOnly,\r\n queryOrder: queryOrder,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n createdFor: createdFor,\r\n minStartedTime: minStartedTime,\r\n maxStartedTime: maxStartedTime,\r\n sourceBranch: sourceBranch,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"b005ef73-cddc-448e-9ba2-5193bf36b19f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Deployment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ReleaseInterfaces.DeploymentQueryParameters} queryParameters\r\n * @param {string} project - Project ID or project name\r\n */\r\n getDeploymentsForMultipleEnvironments(queryParameters, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"b005ef73-cddc-448e-9ba2-5193bf36b19f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, queryParameters, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Deployment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a release environment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of the release environment.\r\n * @param {ReleaseInterfaces.ReleaseEnvironmentExpands} expand - A property that should be expanded in the environment.\r\n */\r\n getReleaseEnvironment(project, releaseId, environmentId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"Release\", \"a7e426b1-03dc-48af-9dfe-c98bac612dcb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseEnvironment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the status of a release environment\r\n *\r\n * @param {ReleaseInterfaces.ReleaseEnvironmentUpdateMetadata} environmentUpdateData - Environment update meta data.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of release environment.\r\n */\r\n updateReleaseEnvironment(environmentUpdateData, project, releaseId, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"Release\", \"a7e426b1-03dc-48af-9dfe-c98bac612dcb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, environmentUpdateData, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseEnvironment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a definition environment template\r\n *\r\n * @param {ReleaseInterfaces.ReleaseDefinitionEnvironmentTemplate} template - Definition environment template to create\r\n * @param {string} project - Project ID or project name\r\n */\r\n createDefinitionEnvironmentTemplate(template, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"6b03b696-824e-4479-8eb2-6644a51aba89\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, template, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a definition environment template\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - Id of the definition environment template\r\n */\r\n deleteDefinitionEnvironmentTemplate(project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (templateId == null) {\r\n throw new TypeError('templateId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n templateId: templateId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"6b03b696-824e-4479-8eb2-6644a51aba89\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a definition environment template\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - Id of the definition environment template\r\n */\r\n getDefinitionEnvironmentTemplate(project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (templateId == null) {\r\n throw new TypeError('templateId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n templateId: templateId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"6b03b696-824e-4479-8eb2-6644a51aba89\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of definition environment templates\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} isDeleted - 'true' to get definition environment templates that have been deleted. Default is 'false'\r\n */\r\n listDefinitionEnvironmentTemplates(project, isDeleted) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n isDeleted: isDeleted,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"6b03b696-824e-4479-8eb2-6644a51aba89\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Undelete a release definition environment template.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - Id of the definition environment template to be undeleted\r\n */\r\n undeleteReleaseDefinitionEnvironmentTemplate(project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (templateId == null) {\r\n throw new TypeError('templateId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n templateId: templateId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"6b03b696-824e-4479-8eb2-6644a51aba89\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ReleaseInterfaces.FavoriteItem[]} favoriteItems\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scope\r\n * @param {string} identityId\r\n */\r\n createFavorites(favoriteItems, project, scope, identityId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n scope: scope\r\n };\r\n let queryValues = {\r\n identityId: identityId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"938f7222-9acb-48fe-b8a3-4eda04597171\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, favoriteItems, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scope\r\n * @param {string} identityId\r\n * @param {string} favoriteItemIds\r\n */\r\n deleteFavorites(project, scope, identityId, favoriteItemIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n scope: scope\r\n };\r\n let queryValues = {\r\n identityId: identityId,\r\n favoriteItemIds: favoriteItemIds,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"938f7222-9acb-48fe-b8a3-4eda04597171\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scope\r\n * @param {string} identityId\r\n */\r\n getFavorites(project, scope, identityId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n scope: scope\r\n };\r\n let queryValues = {\r\n identityId: identityId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"938f7222-9acb-48fe-b8a3-4eda04597171\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} flightName\r\n */\r\n getFlightAssignments(flightName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n flightName: flightName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"409d301f-3046-46f3-beb9-4357fbce0a8c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new folder.\r\n *\r\n * @param {ReleaseInterfaces.Folder} folder - folder.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - Path of the folder.\r\n */\r\n createFolder(folder, project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n path: path\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"f7ddf76d-ce0c-4d68-94ff-becaec5d9dea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, folder, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Folder, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a definition folder for given folder name and path and all it's existing definitions.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - Path of the folder to delete.\r\n */\r\n deleteFolder(project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n path: path\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"f7ddf76d-ce0c-4d68-94ff-becaec5d9dea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets folders.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - Path of the folder.\r\n * @param {ReleaseInterfaces.FolderPathQueryOrder} queryOrder - Gets the results in the defined order. Default is 'None'.\r\n */\r\n getFolders(project, path, queryOrder) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n path: path\r\n };\r\n let queryValues = {\r\n queryOrder: queryOrder,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"f7ddf76d-ce0c-4d68-94ff-becaec5d9dea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Folder, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing folder at given existing path.\r\n *\r\n * @param {ReleaseInterfaces.Folder} folder - folder.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - Path of the folder to update.\r\n */\r\n updateFolder(folder, project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n path: path\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"f7ddf76d-ce0c-4d68-94ff-becaec5d9dea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, folder, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Folder, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the gate for a deployment.\r\n *\r\n * @param {ReleaseInterfaces.GateUpdateMetadata} gateUpdateMetadata - Metadata to patch the Release Gates.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} gateStepId - Gate step Id.\r\n */\r\n updateGates(gateUpdateMetadata, project, gateStepId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n gateStepId: gateStepId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"2666a539-2001-4f80-bcc7-0379956749d4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, gateUpdateMetadata, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseGates, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n getReleaseHistory(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"23f461c8-629a-4144-a076-3054fa5f268a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseRevision, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {FormInputInterfaces.InputValuesQuery} query\r\n * @param {string} project - Project ID or project name\r\n */\r\n getInputValues(query, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"71dd499b-317d-45ea-9134-140ea1932b5e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} sourceId\r\n */\r\n getIssues(project, buildId, sourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n sourceId: sourceId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"cd42261a-f5c6-41c8-9259-f078989b9f25\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.AutoTriggerIssue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets gate logs\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of release environment.\r\n * @param {number} gateId - Id of the gate.\r\n * @param {number} taskId - ReleaseTask Id for the log.\r\n */\r\n getGateLog(project, releaseId, environmentId, gateId, taskId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n gateId: gateId,\r\n taskId: taskId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"dec7ca5a-7f7f-4797-8bf1-8efc0dc93b28\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get logs for a release Id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n */\r\n getLogs(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"c37fbab5-214b-48e4-a55b-cb6b4f6e4038\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets logs\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of release environment.\r\n * @param {number} taskId - ReleaseTask Id for the log.\r\n * @param {number} attemptId - Id of the attempt.\r\n */\r\n getLog(project, releaseId, environmentId, taskId, attemptId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n taskId: taskId\r\n };\r\n let queryValues = {\r\n attemptId: attemptId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"e71ba1ed-c0a4-4a28-a61f-2dd5f68cf3fd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the task log of a release as a plain text file.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of release environment.\r\n * @param {number} attemptId\r\n * @param {string} timelineId\r\n * @param {number} taskId - ReleaseTask Id for the log.\r\n * @param {number} startLine - Starting line number for logs\r\n * @param {number} endLine - Ending line number for logs\r\n */\r\n getTaskLog2(project, releaseId, environmentId, attemptId, timelineId, taskId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n timelineId: timelineId,\r\n taskId: taskId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"2577e6c3-6999-4400-bc69-fe1d837755fe\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the task log of a release as a plain text file.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of release environment.\r\n * @param {number} releaseDeployPhaseId - Release deploy phase Id.\r\n * @param {number} taskId - ReleaseTask Id for the log.\r\n * @param {number} startLine - Starting line number for logs\r\n * @param {number} endLine - Ending line number for logs\r\n */\r\n getTaskLog(project, releaseId, environmentId, releaseDeployPhaseId, taskId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n releaseDeployPhaseId: releaseDeployPhaseId,\r\n taskId: taskId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"17c91af7-09fd-4256-bff1-c24ee4f73bc0\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get manual intervention for a given release and manual intervention id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} manualInterventionId - Id of the manual intervention.\r\n */\r\n getManualIntervention(project, releaseId, manualInterventionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n manualInterventionId: manualInterventionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"616c46e4-f370-4456-adaa-fbaf79c7b79e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ManualIntervention, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List all manual interventions for a given release.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n */\r\n getManualInterventions(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"616c46e4-f370-4456-adaa-fbaf79c7b79e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ManualIntervention, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update manual intervention.\r\n *\r\n * @param {ReleaseInterfaces.ManualInterventionUpdateMetadata} manualInterventionUpdateMetadata - Meta data to update manual intervention.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} manualInterventionId - Id of the manual intervention.\r\n */\r\n updateManualIntervention(manualInterventionUpdateMetadata, project, releaseId, manualInterventionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n manualInterventionId: manualInterventionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"616c46e4-f370-4456-adaa-fbaf79c7b79e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, manualInterventionUpdateMetadata, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ManualIntervention, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {Date} minMetricsTime\r\n */\r\n getMetrics(project, minMetricsTime) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n minMetricsTime: minMetricsTime,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"cd1502bb-3c73-4e11-80a6-d11308dceae5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets Org pipeline release settings\r\n *\r\n */\r\n getOrgPipelineReleaseSettings() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"d156c759-ca4e-492b-90d4-db03971796ea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates Org pipeline release settings\r\n *\r\n * @param {ReleaseInterfaces.OrgPipelineReleaseSettingsUpdateParameters} newSettings\r\n */\r\n updateOrgPipelineReleaseSettings(newSettings) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"d156c759-ca4e-492b-90d4-db03971796ea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, newSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets pipeline release settings\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPipelineReleaseSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"e816b9f4-f9fe-46ba-bdcc-a9af6abf3144\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates pipeline release settings\r\n *\r\n * @param {ReleaseInterfaces.ProjectPipelineReleaseSettingsUpdateParameters} newSettings\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePipelineReleaseSettings(newSettings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"e816b9f4-f9fe-46ba-bdcc-a9af6abf3144\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, newSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} artifactType\r\n * @param {string} artifactSourceId\r\n */\r\n getReleaseProjects(artifactType, artifactSourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactType == null) {\r\n throw new TypeError('artifactType can not be null or undefined');\r\n }\r\n if (artifactSourceId == null) {\r\n throw new TypeError('artifactSourceId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n artifactType: artifactType,\r\n artifactSourceId: artifactSourceId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"917ace4a-79d1-45a7-987c-7be4db4268fa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of releases\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Releases from this release definition Id.\r\n * @param {number} definitionEnvironmentId\r\n * @param {string} searchText - Releases with names containing searchText.\r\n * @param {string} createdBy - Releases created by this user.\r\n * @param {ReleaseInterfaces.ReleaseStatus} statusFilter - Releases that have this status.\r\n * @param {number} environmentStatusFilter\r\n * @param {Date} minCreatedTime - Releases that were created after this time.\r\n * @param {Date} maxCreatedTime - Releases that were created before this time.\r\n * @param {ReleaseInterfaces.ReleaseQueryOrder} queryOrder - Gets the results in the defined order of created date for releases. Default is descending.\r\n * @param {number} top - Number of releases to get. Default is 50.\r\n * @param {number} continuationToken - Gets the releases after the continuation token provided.\r\n * @param {ReleaseInterfaces.ReleaseExpands} expand - The property that should be expanded in the list of releases.\r\n * @param {string} artifactTypeId - Releases with given artifactTypeId will be returned. Values can be Build, Jenkins, GitHub, Nuget, Team Build (external), ExternalTFSBuild, Git, TFVC, ExternalTfsXamlBuild.\r\n * @param {string} sourceId - Unique identifier of the artifact used. e.g. For build it would be {projectGuid}:{BuildDefinitionId}, for Jenkins it would be {JenkinsConnectionId}:{JenkinsDefinitionId}, for TfsOnPrem it would be {TfsOnPremConnectionId}:{ProjectName}:{TfsOnPremDefinitionId}. For third-party artifacts e.g. TeamCity, BitBucket you may refer 'uniqueSourceIdentifier' inside vss-extension.json https://github.com/Microsoft/vsts-rm-extensions/blob/master/Extensions.\r\n * @param {string} artifactVersionId - Releases with given artifactVersionId will be returned. E.g. in case of Build artifactType, it is buildId.\r\n * @param {string} sourceBranchFilter - Releases with given sourceBranchFilter will be returned.\r\n * @param {boolean} isDeleted - Gets the soft deleted releases, if true.\r\n * @param {string[]} tagFilter - A comma-delimited list of tags. Only releases with these tags will be returned.\r\n * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Releases will contain values for the specified property Ids (if they exist). If not set, properties will not be included. Note that this will not filter out any Release from results irrespective of whether it has property set or not.\r\n * @param {number[]} releaseIdFilter - A comma-delimited list of releases Ids. Only releases with these Ids will be returned.\r\n * @param {string} path - Releases under this folder path will be returned\r\n */\r\n getReleases(project, definitionId, definitionEnvironmentId, searchText, createdBy, statusFilter, environmentStatusFilter, minCreatedTime, maxCreatedTime, queryOrder, top, continuationToken, expand, artifactTypeId, sourceId, artifactVersionId, sourceBranchFilter, isDeleted, tagFilter, propertyFilters, releaseIdFilter, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n definitionId: definitionId,\r\n definitionEnvironmentId: definitionEnvironmentId,\r\n searchText: searchText,\r\n createdBy: createdBy,\r\n statusFilter: statusFilter,\r\n environmentStatusFilter: environmentStatusFilter,\r\n minCreatedTime: minCreatedTime,\r\n maxCreatedTime: maxCreatedTime,\r\n queryOrder: queryOrder,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n '$expand': expand,\r\n artifactTypeId: artifactTypeId,\r\n sourceId: sourceId,\r\n artifactVersionId: artifactVersionId,\r\n sourceBranchFilter: sourceBranchFilter,\r\n isDeleted: isDeleted,\r\n tagFilter: tagFilter && tagFilter.join(\",\"),\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n releaseIdFilter: releaseIdFilter && releaseIdFilter.join(\",\"),\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a release.\r\n *\r\n * @param {ReleaseInterfaces.ReleaseStartMetadata} releaseStartMetadata - Metadata to create a release.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createRelease(releaseStartMetadata, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, releaseStartMetadata, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Soft delete a release\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {string} comment - Comment for deleting a release.\r\n */\r\n deleteRelease(project, releaseId, comment) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n comment: comment,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a Release\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {ReleaseInterfaces.ApprovalFilters} approvalFilters - A filter which would allow fetching approval steps selectively based on whether it is automated, or manual. This would also decide whether we should fetch pre and post approval snapshots. Assumes All by default\r\n * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Release will contain values for the specified property Ids (if they exist). If not set, properties will not be included.\r\n * @param {ReleaseInterfaces.SingleReleaseExpands} expand - A property that should be expanded in the release.\r\n * @param {number} topGateRecords - Number of release gate records to get. Default is 5.\r\n */\r\n getRelease(project, releaseId, approvalFilters, propertyFilters, expand, topGateRecords) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n approvalFilters: approvalFilters,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n '$expand': expand,\r\n '$topGateRecords': topGateRecords,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get release summary of a given definition Id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the definition to get release summary.\r\n * @param {number} releaseCount - Count of releases to be included in summary.\r\n * @param {boolean} includeArtifact - Include artifact details.Default is 'false'.\r\n * @param {number[]} definitionEnvironmentIdsFilter\r\n */\r\n getReleaseDefinitionSummary(project, definitionId, releaseCount, includeArtifact, definitionEnvironmentIdsFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (definitionId == null) {\r\n throw new TypeError('definitionId can not be null or undefined');\r\n }\r\n if (releaseCount == null) {\r\n throw new TypeError('releaseCount can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n definitionId: definitionId,\r\n releaseCount: releaseCount,\r\n includeArtifact: includeArtifact,\r\n definitionEnvironmentIdsFilter: definitionEnvironmentIdsFilter && definitionEnvironmentIdsFilter.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionSummary, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get release for a given revision number.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} definitionSnapshotRevision - Definition snapshot revision number.\r\n */\r\n getReleaseRevision(project, releaseId, definitionSnapshotRevision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (definitionSnapshotRevision == null) {\r\n throw new TypeError('definitionSnapshotRevision can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n definitionSnapshotRevision: definitionSnapshotRevision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Undelete a soft deleted release.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of release to be undeleted.\r\n * @param {string} comment - Any comment for undeleting.\r\n */\r\n undeleteRelease(project, releaseId, comment) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (comment == null) {\r\n throw new TypeError('comment can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n comment: comment,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a complete release object.\r\n *\r\n * @param {ReleaseInterfaces.Release} release - Release object for update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release to update.\r\n */\r\n updateRelease(release, project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, release, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update few properties of a release.\r\n *\r\n * @param {ReleaseInterfaces.ReleaseUpdateMetadata} releaseUpdateMetadata - Properties of release to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release to update.\r\n */\r\n updateReleaseResource(releaseUpdateMetadata, project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, releaseUpdateMetadata, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the release settings\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getReleaseSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c63c3718-7cfd-41e0-b89b-81c1ca143437\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the release settings\r\n *\r\n * @param {ReleaseInterfaces.ReleaseSettings} releaseSettings\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateReleaseSettings(releaseSettings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c63c3718-7cfd-41e0-b89b-81c1ca143437\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, releaseSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get release definition for a given definitionId and revision\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the definition.\r\n * @param {number} revision - Id of the revision.\r\n */\r\n getDefinitionRevision(project, definitionId, revision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId,\r\n revision: revision\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"258b82e0-9d41-43f3-86d6-fef14ddd44bc\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get revision history for a release definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the definition.\r\n */\r\n getReleaseDefinitionHistory(project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"258b82e0-9d41-43f3-86d6-fef14ddd44bc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionRevision, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n getSummaryMailSections(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"224e92b2-8d13-4c14-b120-13d877c516f8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.SummaryMailSection, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ReleaseInterfaces.MailMessage} mailMessage\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n sendSummaryMail(mailMessage, project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"224e92b2-8d13-4c14-b120-13d877c516f8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, mailMessage, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId\r\n */\r\n getSourceBranches(project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"0e5def23-78b3-461f-8198-1558f25041c8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a tag to a definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseDefinitionId\r\n * @param {string} tag\r\n */\r\n addDefinitionTag(project, releaseDefinitionId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseDefinitionId: releaseDefinitionId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"3d21b4c8-c32e-45b2-a7cb-770a369012f4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds multiple tags to a definition\r\n *\r\n * @param {string[]} tags\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseDefinitionId\r\n */\r\n addDefinitionTags(tags, project, releaseDefinitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseDefinitionId: releaseDefinitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"3d21b4c8-c32e-45b2-a7cb-770a369012f4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, tags, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a tag from a definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseDefinitionId\r\n * @param {string} tag\r\n */\r\n deleteDefinitionTag(project, releaseDefinitionId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseDefinitionId: releaseDefinitionId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"3d21b4c8-c32e-45b2-a7cb-770a369012f4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the tags for a definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseDefinitionId\r\n */\r\n getDefinitionTags(project, releaseDefinitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseDefinitionId: releaseDefinitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"3d21b4c8-c32e-45b2-a7cb-770a369012f4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a tag to a releaseId\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {string} tag\r\n */\r\n addReleaseTag(project, releaseId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c5b602b6-d1b3-4363-8a51-94384f78068f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds tag to a release\r\n *\r\n * @param {string[]} tags\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n addReleaseTags(tags, project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c5b602b6-d1b3-4363-8a51-94384f78068f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, tags, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a tag from a release\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {string} tag\r\n */\r\n deleteReleaseTag(project, releaseId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c5b602b6-d1b3-4363-8a51-94384f78068f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the tags for a release\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n getReleaseTags(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c5b602b6-d1b3-4363-8a51-94384f78068f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n */\r\n getTags(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"86cee25a-68ba-4ba3-9171-8ad6ffc6df93\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} environmentId\r\n * @param {number} releaseDeployPhaseId\r\n */\r\n getTasksForTaskGroup(project, releaseId, environmentId, releaseDeployPhaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n releaseDeployPhaseId: releaseDeployPhaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"4259191d-4b0a-4409-9fb3-09f22ab9bc47\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTask, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} environmentId\r\n * @param {number} attemptId\r\n * @param {string} timelineId\r\n */\r\n getTasks2(project, releaseId, environmentId, attemptId, timelineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n timelineId: timelineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"4259291d-4b0a-4409-9fb3-04f22ab9bc47\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTask, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} environmentId\r\n * @param {number} attemptId\r\n */\r\n getTasks(project, releaseId, environmentId, attemptId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId\r\n };\r\n let queryValues = {\r\n attemptId: attemptId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"36b276e0-3c70-4320-a63c-1a2e1466a0d1\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTask, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n */\r\n getArtifactTypeDefinitions(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"8efc2a3c-1fc8-4f6d-9822-75e98cecb48f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ArtifactTypeDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseDefinitionId\r\n */\r\n getArtifactVersions(project, releaseDefinitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (releaseDefinitionId == null) {\r\n throw new TypeError('releaseDefinitionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n releaseDefinitionId: releaseDefinitionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"30fc787e-a9e0-4a07-9fbc-3e903aa051d2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ArtifactVersionQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ReleaseInterfaces.Artifact[]} artifacts\r\n * @param {string} project - Project ID or project name\r\n */\r\n getArtifactVersionsForSources(artifacts, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"30fc787e-a9e0-4a07-9fbc-3e903aa051d2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, artifacts, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ArtifactVersionQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} baseReleaseId\r\n * @param {number} top\r\n * @param {string} artifactAlias\r\n */\r\n getReleaseWorkItemsRefs(project, releaseId, baseReleaseId, top, artifactAlias) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n baseReleaseId: baseReleaseId,\r\n '$top': top,\r\n artifactAlias: artifactAlias,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"4f165cc0-875c-4768-b148-f12f78769fab\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nReleaseApi.RESOURCE_AREA_ID = \"efc2f575-36ef-48e9-b672-0c6fb4a48ac5\";\r\nexports.ReleaseApi = ReleaseApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst SecurityRolesInterfaces = require(\"./interfaces/SecurityRolesInterfaces\");\r\nclass SecurityRolesApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-SecurityRoles-api', options);\r\n }\r\n /**\r\n * @param {string} scopeId\r\n * @param {string} resourceId\r\n */\r\n getRoleAssignments(scopeId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"9461c234-c84c-4ed2-b918-2f0f92ad0a35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, SecurityRolesInterfaces.TypeInfo.RoleAssignment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeId\r\n * @param {string} resourceId\r\n * @param {string} identityId\r\n */\r\n removeRoleAssignment(scopeId, resourceId, identityId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId,\r\n resourceId: resourceId,\r\n identityId: identityId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"9461c234-c84c-4ed2-b918-2f0f92ad0a35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string[]} identityIds\r\n * @param {string} scopeId\r\n * @param {string} resourceId\r\n */\r\n removeRoleAssignments(identityIds, scopeId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"9461c234-c84c-4ed2-b918-2f0f92ad0a35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, identityIds, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {SecurityRolesInterfaces.UserRoleAssignmentRef} roleAssignment\r\n * @param {string} scopeId\r\n * @param {string} resourceId\r\n * @param {string} identityId\r\n */\r\n setRoleAssignment(roleAssignment, scopeId, resourceId, identityId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId,\r\n resourceId: resourceId,\r\n identityId: identityId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"9461c234-c84c-4ed2-b918-2f0f92ad0a35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, roleAssignment, options);\r\n let ret = this.formatResponse(res.result, SecurityRolesInterfaces.TypeInfo.RoleAssignment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {SecurityRolesInterfaces.UserRoleAssignmentRef[]} roleAssignments\r\n * @param {string} scopeId\r\n * @param {string} resourceId\r\n */\r\n setRoleAssignments(roleAssignments, scopeId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"9461c234-c84c-4ed2-b918-2f0f92ad0a35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, roleAssignments, options);\r\n let ret = this.formatResponse(res.result, SecurityRolesInterfaces.TypeInfo.RoleAssignment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeId\r\n */\r\n getRoleDefinitions(scopeId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"f4cc9a86-453c-48d2-b44d-d3bd5c105f4f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.SecurityRolesApi = SecurityRolesApi;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* Module for handling serialization and deserialization of data contracts\r\n* (contracts sent from the server using the VSO default REST api serialization settings)\r\n*/\r\nvar ContractSerializer;\r\n(function (ContractSerializer) {\r\n var _legacyDateRegExp;\r\n /**\r\n * Process a contract in its raw form (e.g. date fields are Dates, and Enums are numbers) and\r\n * return a pure JSON object that can be posted to REST endpoint.\r\n *\r\n * @param data The object to serialize\r\n * @param contractMetadata The type info/metadata for the contract type being serialized\r\n * @param preserveOriginal If true, don't modify the original object. False modifies the original object (the return value points to the data argument).\r\n */\r\n function serialize(data, contractMetadata, preserveOriginal) {\r\n if (data && contractMetadata) {\r\n if (Array.isArray(data)) {\r\n return _getTranslatedArray(data, contractMetadata, true, preserveOriginal);\r\n }\r\n else {\r\n return _getTranslatedObject(data, contractMetadata, true, preserveOriginal);\r\n }\r\n }\r\n else {\r\n return data;\r\n }\r\n }\r\n ContractSerializer.serialize = serialize;\r\n /**\r\n * Process a pure JSON object (e.g. that came from a REST call) and transform it into a JS object\r\n * where date strings are converted to Date objects and enum values are converted from strings into\r\n * their numerical value.\r\n *\r\n * @param data The object to deserialize\r\n * @param contractMetadata The type info/metadata for the contract type being deserialize\r\n * @param preserveOriginal If true, don't modify the original object. False modifies the original object (the return value points to the data argument).\r\n * @param unwrapWrappedCollections If true check for wrapped arrays (REST apis will not return arrays directly as the root result but will instead wrap them in a { values: [], count: 0 } object.\r\n */\r\n function deserialize(data, contractMetadata, preserveOriginal, unwrapWrappedCollections) {\r\n if (data) {\r\n if (unwrapWrappedCollections && Array.isArray(data.value)) {\r\n // Wrapped json array - unwrap it and send the array as the result\r\n data = data.value;\r\n }\r\n if (contractMetadata) {\r\n if (Array.isArray(data)) {\r\n data = _getTranslatedArray(data, contractMetadata, false, preserveOriginal);\r\n }\r\n else {\r\n data = _getTranslatedObject(data, contractMetadata, false, preserveOriginal);\r\n }\r\n }\r\n }\r\n return data;\r\n }\r\n ContractSerializer.deserialize = deserialize;\r\n function _getTranslatedArray(array, typeMetadata, serialize, preserveOriginal) {\r\n var resultArray = array;\r\n var arrayCopy = [];\r\n var i;\r\n for (i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n var processedItem;\r\n // handle arrays of arrays\r\n if (Array.isArray(item)) {\r\n processedItem = _getTranslatedArray(item, typeMetadata, serialize, preserveOriginal);\r\n }\r\n else {\r\n processedItem = _getTranslatedObject(item, typeMetadata, serialize, preserveOriginal);\r\n }\r\n if (preserveOriginal) {\r\n arrayCopy.push(processedItem);\r\n if (processedItem !== item) {\r\n resultArray = arrayCopy;\r\n }\r\n }\r\n else {\r\n array[i] = processedItem;\r\n }\r\n }\r\n return resultArray;\r\n }\r\n function _getTranslatedObject(typeObject, typeMetadata, serialize, preserveOriginal) {\r\n var processedItem = typeObject, copiedItem = false;\r\n if (typeObject && typeMetadata.fields) {\r\n for (var fieldName in typeMetadata.fields) {\r\n var fieldMetadata = typeMetadata.fields[fieldName];\r\n var fieldValue = typeObject[fieldName];\r\n var translatedValue = _getTranslatedField(fieldValue, fieldMetadata, serialize, preserveOriginal);\r\n if (fieldValue !== translatedValue) {\r\n if (preserveOriginal && !copiedItem) {\r\n processedItem = this._extend({}, typeObject);\r\n copiedItem = true;\r\n }\r\n processedItem[fieldName] = translatedValue;\r\n }\r\n }\r\n }\r\n return processedItem;\r\n }\r\n function _getTranslatedField(fieldValue, fieldMetadata, serialize, preserveOriginal) {\r\n if (!fieldValue) {\r\n return fieldValue;\r\n }\r\n if (fieldMetadata.isArray) {\r\n if (Array.isArray(fieldValue)) {\r\n var newArray = [], processedArray = fieldValue;\r\n for (var index = 0; index < fieldValue.length; index++) {\r\n var arrayValue = fieldValue[index];\r\n var processedValue = arrayValue;\r\n if (fieldMetadata.isDate) {\r\n processedValue = _getTranslatedDateValue(arrayValue, serialize);\r\n }\r\n else if (fieldMetadata.enumType) {\r\n processedValue = _getTranslatedEnumValue(fieldMetadata.enumType, arrayValue, serialize);\r\n }\r\n else if (fieldMetadata.typeInfo) {\r\n if (Array.isArray(arrayValue)) {\r\n processedValue = _getTranslatedArray(arrayValue, fieldMetadata.typeInfo, serialize, preserveOriginal);\r\n }\r\n else {\r\n processedValue = _getTranslatedObject(arrayValue, fieldMetadata.typeInfo, serialize, preserveOriginal);\r\n }\r\n }\r\n if (preserveOriginal) {\r\n newArray.push(processedValue);\r\n if (processedValue !== arrayValue) {\r\n processedArray = newArray;\r\n }\r\n }\r\n else {\r\n fieldValue[index] = processedValue;\r\n }\r\n }\r\n return processedArray;\r\n }\r\n else {\r\n return fieldValue;\r\n }\r\n }\r\n else if (fieldMetadata.isDictionary) {\r\n var dictionaryModified = false;\r\n var newDictionary = {};\r\n for (var key in fieldValue) {\r\n var dictionaryValue = fieldValue[key];\r\n var newKey = key, newValue = dictionaryValue;\r\n if (fieldMetadata.dictionaryKeyIsDate) {\r\n newKey = _getTranslatedDateValue(key, serialize);\r\n }\r\n else if (fieldMetadata.dictionaryKeyEnumType) {\r\n newKey = _getTranslatedEnumValue(fieldMetadata.dictionaryKeyEnumType, key, serialize);\r\n }\r\n if (fieldMetadata.dictionaryValueIsDate) {\r\n newValue = _getTranslatedDateValue(dictionaryValue, serialize);\r\n }\r\n else if (fieldMetadata.dictionaryValueEnumType) {\r\n newValue = _getTranslatedEnumValue(fieldMetadata.dictionaryValueEnumType, dictionaryValue, serialize);\r\n }\r\n else if (fieldMetadata.dictionaryValueTypeInfo) {\r\n newValue = _getTranslatedObject(newValue, fieldMetadata.dictionaryValueTypeInfo, serialize, preserveOriginal);\r\n }\r\n else if (fieldMetadata.dictionaryValueFieldInfo) {\r\n newValue = _getTranslatedField(dictionaryValue, fieldMetadata.dictionaryValueFieldInfo, serialize, preserveOriginal);\r\n }\r\n newDictionary[newKey] = newValue;\r\n if (key !== newKey || dictionaryValue !== newValue) {\r\n dictionaryModified = true;\r\n }\r\n }\r\n return dictionaryModified ? newDictionary : fieldValue;\r\n }\r\n else {\r\n if (fieldMetadata.isDate) {\r\n return _getTranslatedDateValue(fieldValue, serialize);\r\n }\r\n else if (fieldMetadata.enumType) {\r\n return _getTranslatedEnumValue(fieldMetadata.enumType, fieldValue, serialize);\r\n }\r\n else if (fieldMetadata.typeInfo) {\r\n return _getTranslatedObject(fieldValue, fieldMetadata.typeInfo, serialize, preserveOriginal);\r\n }\r\n else {\r\n return fieldValue;\r\n }\r\n }\r\n }\r\n function _getTranslatedEnumValue(enumType, valueToConvert, serialize) {\r\n if (serialize && typeof valueToConvert === \"number\") {\r\n // Serialize: number --> String\r\n // Because webapi handles the numerical value for enums, there is no need to convert to string.\r\n // Let this fall through to return the numerical value.\r\n }\r\n else if (!serialize && typeof valueToConvert === \"string\") {\r\n // Deserialize: String --> number\r\n var result = 0;\r\n if (valueToConvert) {\r\n var splitValue = valueToConvert.split(\",\");\r\n for (var i = 0; i < splitValue.length; i++) {\r\n var valuePart = splitValue[i];\r\n //equivalent to jquery trim\r\n //copied from https://github.com/HubSpot/youmightnotneedjquery/blob/ef987223c20e480fcbfb5924d96c11cd928e1226/comparisons/utils/trim/ie8.js\r\n var enumName = valuePart.replace(/^\\s+|\\s+$/g, '') || \"\";\r\n if (enumName) {\r\n var resultPart = enumType.enumValues[enumName];\r\n if (!resultPart) {\r\n // No matching enum value. Try again but case insensitive\r\n var lowerCaseEnumName = enumName.toLowerCase();\r\n if (lowerCaseEnumName !== enumName) {\r\n for (var name in enumType.enumValues) {\r\n var value = enumType.enumValues[name];\r\n if (name.toLowerCase() === lowerCaseEnumName) {\r\n resultPart = value;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (resultPart) {\r\n result |= resultPart;\r\n }\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n return valueToConvert;\r\n }\r\n function _getTranslatedDateValue(valueToConvert, serialize) {\r\n if (!serialize && typeof valueToConvert === \"string\") {\r\n // Deserialize: String --> Date\r\n var dateValue = new Date(valueToConvert);\r\n if (isNaN(dateValue) && navigator.userAgent && /msie/i.test(navigator.userAgent)) {\r\n dateValue = _convertLegacyIEDate(valueToConvert);\r\n }\r\n return dateValue;\r\n }\r\n return valueToConvert;\r\n }\r\n function _convertLegacyIEDate(dateStringValue) {\r\n // IE 8/9 does not handle parsing dates in ISO form like:\r\n // 2013-05-13T14:26:54.397Z\r\n var match;\r\n if (!_legacyDateRegExp) {\r\n _legacyDateRegExp = new RegExp(\"(\\\\d+)-(\\\\d+)-(\\\\d+)T(\\\\d+):(\\\\d+):(\\\\d+).(\\\\d+)Z\");\r\n }\r\n match = _legacyDateRegExp.exec(dateStringValue);\r\n if (match) {\r\n return new Date(Date.UTC(parseInt(match[1]), parseInt(match[2]) - 1, parseInt(match[3]), parseInt(match[4]), parseInt(match[5]), parseInt(match[6]), parseInt(match[7])));\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n // jquery extend method in native javascript (used to clone objects)\r\n // copied from https://github.com/HubSpot/youmightnotneedjquery/blob/ef987223c20e480fcbfb5924d96c11cd928e1226/comparisons/utils/extend/ie8.js\r\n var _extend = function (out) {\r\n out = out || {};\r\n for (var i = 1; i < arguments.length; i++) {\r\n if (!arguments[i])\r\n continue;\r\n for (var key in arguments[i]) {\r\n if (arguments[i].hasOwnProperty(key))\r\n out[key] = arguments[i][key];\r\n }\r\n }\r\n return out;\r\n };\r\n})(ContractSerializer = exports.ContractSerializer || (exports.ContractSerializer = {}));\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst taskagentbasem = require(\"./TaskAgentApiBase\");\r\nconst url = require(\"url\");\r\nclass TaskAgentApi extends taskagentbasem.TaskAgentApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, options);\r\n // hang on to the handlers in case we need to fall back to an account-level client\r\n this._handlers = handlers;\r\n this._options = options;\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param onResult callback function\r\n */\r\n deleteTaskDefinition(taskId) {\r\n let promise = this.vsoClient.beginGetLocation(\"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\")\r\n .then((location) => {\r\n if (location) {\r\n // the resource exists at the url we were given. go!\r\n return super.deleteTaskDefinition(taskId);\r\n }\r\n else {\r\n // this is the case when the server doesn't support collection-level task definitions\r\n var fallbackClient = this._getFallbackClient(this.baseUrl);\r\n if (!fallbackClient) {\r\n // couldn't convert\r\n throw new Error(\"Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\");\r\n }\r\n else {\r\n // use the fallback client \r\n return fallbackClient.deleteTaskDefinition(taskId);\r\n }\r\n }\r\n });\r\n return promise;\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string} versionString\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n * @param onResult callback function with the resulting ArrayBuffer\r\n */\r\n getTaskContentZip(taskId, versionString, visibility, scopeLocal) {\r\n let promise = this.vsoClient.beginGetLocation(\"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\")\r\n .then((location) => {\r\n if (location) {\r\n // the resource exists at the url we were given. go!\r\n return super.getTaskContentZip(taskId, versionString, visibility, scopeLocal);\r\n }\r\n else {\r\n // this is the case when the server doesn't support collection-level task definitions\r\n var fallbackClient = this._getFallbackClient(this.baseUrl);\r\n if (!fallbackClient) {\r\n // couldn't convert\r\n throw new Error(\"Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\");\r\n }\r\n else {\r\n // use the fallback client \r\n return fallbackClient.getTaskContentZip(taskId, versionString, visibility, scopeLocal);\r\n }\r\n }\r\n });\r\n return promise;\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string} versionString\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n * @param onResult callback function with the resulting TaskAgentInterfaces.TaskDefinition\r\n */\r\n getTaskDefinition(taskId, versionString, visibility, scopeLocal) {\r\n let promise = this.vsoClient.beginGetLocation(\"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\")\r\n .then((location) => {\r\n if (location) {\r\n // the resource exists at the url we were given. go!\r\n return super.getTaskDefinition(taskId, versionString, visibility, scopeLocal);\r\n }\r\n else {\r\n // this is the case when the server doesn't support collection-level task definitions\r\n var fallbackClient = this._getFallbackClient(this.baseUrl);\r\n if (!fallbackClient) {\r\n // couldn't convert\r\n throw new Error(\"Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\");\r\n }\r\n else {\r\n // use the fallback client \r\n return fallbackClient.getTaskDefinition(taskId, versionString, visibility, scopeLocal);\r\n }\r\n }\r\n });\r\n return promise;\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n * @param onResult callback function with the resulting TaskAgentInterfaces.TaskDefinition[]\r\n */\r\n getTaskDefinitions(taskId, visibility, scopeLocal) {\r\n let promise = this.vsoClient.beginGetLocation(\"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\")\r\n .then((location) => {\r\n if (location) {\r\n // the resource exists at the url we were given. go!\r\n return super.getTaskDefinitions(taskId, visibility, scopeLocal);\r\n }\r\n else {\r\n // this is the case when the server doesn't support collection-level task definitions\r\n var fallbackClient = this._getFallbackClient(this.baseUrl);\r\n if (!fallbackClient) {\r\n // couldn't convert\r\n throw new Error(\"Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\");\r\n }\r\n else {\r\n // use the fallback client \r\n return fallbackClient.getTaskDefinitions(taskId, visibility, scopeLocal);\r\n }\r\n }\r\n });\r\n return promise;\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream\r\n * @param {string} taskId\r\n * @param {boolean} overwrite\r\n * @param onResult callback function\r\n */\r\n uploadTaskDefinition(customHeaders, contentStream, taskId, overwrite) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n taskId: taskId\r\n };\r\n let queryValues = {\r\n overwrite: overwrite,\r\n };\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.0-preview.1\", \"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n resolve(res.result);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n _getFallbackClient(baseUrl) {\r\n if (!this._fallbackClient) {\r\n var accountUrl = this._getAccountUrl(baseUrl);\r\n if (accountUrl) {\r\n this._fallbackClient = new TaskAgentApi(accountUrl, this._handlers, this._options);\r\n }\r\n }\r\n return this._fallbackClient;\r\n }\r\n _getAccountUrl(collectionUrl) {\r\n // converts a collection URL to an account URL\r\n // returns null if the conversion can't be made\r\n var purl = url.parse(collectionUrl);\r\n if (!purl.protocol || !purl.host) {\r\n return null;\r\n }\r\n var accountUrl = purl.protocol + '//' + purl.host;\r\n // purl.path is something like /DefaultCollection or /tfs/DefaultCollection or /DefaultCollection/\r\n var splitPath = purl.path.split('/').slice(1);\r\n if (splitPath.length === 0 || (splitPath.length === 1 && splitPath[0] === '')) {\r\n return null;\r\n }\r\n // if the first segment of the path is tfs, the second is the collection. if the url ends in / there will be a third, empty entry\r\n if (splitPath[0] === 'tfs' && (splitPath.length === 2 || (splitPath.length === 3 && splitPath[2].length === 0))) {\r\n //on prem\r\n accountUrl += '/' + 'tfs';\r\n }\r\n else if (splitPath.length === 2 && splitPath[0] === '') {\r\n // /DefaultCollection/\r\n return accountUrl;\r\n }\r\n else if (splitPath.length > 1) {\r\n return null;\r\n }\r\n return accountUrl;\r\n }\r\n}\r\nexports.TaskAgentApi = TaskAgentApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst TaskAgentInterfaces = require(\"./interfaces/TaskAgentInterfaces\");\r\nclass TaskAgentApiBase extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-TaskAgent-api', options);\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentCloud} agentCloud\r\n */\r\n addAgentCloud(agentCloud) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bfa72b3d-0fc6-43fb-932b-a7f6559f93b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, agentCloud, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} agentCloudId\r\n */\r\n deleteAgentCloud(agentCloudId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n agentCloudId: agentCloudId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bfa72b3d-0fc6-43fb-932b-a7f6559f93b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} agentCloudId\r\n */\r\n getAgentCloud(agentCloudId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n agentCloudId: agentCloudId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bfa72b3d-0fc6-43fb-932b-a7f6559f93b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getAgentClouds() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bfa72b3d-0fc6-43fb-932b-a7f6559f93b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentCloud} updatedCloud\r\n * @param {number} agentCloudId\r\n */\r\n updateAgentCloud(updatedCloud, agentCloudId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n agentCloudId: agentCloudId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bfa72b3d-0fc6-43fb-932b-a7f6559f93b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updatedCloud, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get agent cloud types.\r\n *\r\n */\r\n getAgentCloudTypes() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"5932e193-f376-469d-9c3e-e5588ce12cb5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentCloudType, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} queueId\r\n * @param {number} top\r\n * @param {string} continuationToken\r\n */\r\n getAgentRequestsForQueue(project, queueId, top, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (top == null) {\r\n throw new TypeError('top can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n queueId: queueId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"f5f81ffb-f396-498d-85b1-5ada145e648a\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentJobRequest} request\r\n * @param {string} project - Project ID or project name\r\n * @param {number} queueId\r\n */\r\n queueAgentRequest(request, project, queueId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n queueId: queueId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"f5f81ffb-f396-498d-85b1-5ada145e648a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, request, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds an agent to a pool. You probably don't want to call this endpoint directly. Instead, [configure an agent](https://docs.microsoft.com/azure/devops/pipelines/agents/agents) using the agent download package.\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgent} agent - Details about the agent being added\r\n * @param {number} poolId - The agent pool in which to add the agent\r\n */\r\n addAgent(agent, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, agent, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete an agent. You probably don't want to call this endpoint directly. Instead, [use the agent configuration script](https://docs.microsoft.com/azure/devops/pipelines/agents/agents) to remove an agent from your organization.\r\n *\r\n * @param {number} poolId - The pool ID to remove the agent from\r\n * @param {number} agentId - The agent ID to remove\r\n */\r\n deleteAgent(poolId, agentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get information about an agent.\r\n *\r\n * @param {number} poolId - The agent pool containing the agent\r\n * @param {number} agentId - The agent ID to get information about\r\n * @param {boolean} includeCapabilities - Whether to include the agent's capabilities in the response\r\n * @param {boolean} includeAssignedRequest - Whether to include details about the agent's current work\r\n * @param {boolean} includeLastCompletedRequest - Whether to include details about the agents' most recent completed work\r\n * @param {string[]} propertyFilters - Filter which custom properties will be returned\r\n */\r\n getAgent(poolId, agentId, includeCapabilities, includeAssignedRequest, includeLastCompletedRequest, propertyFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n let queryValues = {\r\n includeCapabilities: includeCapabilities,\r\n includeAssignedRequest: includeAssignedRequest,\r\n includeLastCompletedRequest: includeLastCompletedRequest,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agents.\r\n *\r\n * @param {number} poolId - The agent pool containing the agents\r\n * @param {string} agentName - Filter on agent name\r\n * @param {boolean} includeCapabilities - Whether to include the agents' capabilities in the response\r\n * @param {boolean} includeAssignedRequest - Whether to include details about the agents' current work\r\n * @param {boolean} includeLastCompletedRequest - Whether to include details about the agents' most recent completed work\r\n * @param {string[]} propertyFilters - Filter which custom properties will be returned\r\n * @param {string[]} demands - Filter by demands the agents can satisfy\r\n */\r\n getAgents(poolId, agentName, includeCapabilities, includeAssignedRequest, includeLastCompletedRequest, propertyFilters, demands) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n agentName: agentName,\r\n includeCapabilities: includeCapabilities,\r\n includeAssignedRequest: includeAssignedRequest,\r\n includeLastCompletedRequest: includeLastCompletedRequest,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n demands: demands && demands.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replace an agent. You probably don't want to call this endpoint directly. Instead, [use the agent configuration script](https://docs.microsoft.com/azure/devops/pipelines/agents/agents) to remove and reconfigure an agent from your organization.\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgent} agent - Updated details about the replacing agent\r\n * @param {number} poolId - The agent pool to use\r\n * @param {number} agentId - The agent to replace\r\n */\r\n replaceAgent(agent, poolId, agentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, agent, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update agent details.\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgent} agent - Updated details about the agent\r\n * @param {number} poolId - The agent pool to use\r\n * @param {number} agentId - The agent to update\r\n */\r\n updateAgent(agent, poolId, agentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, agent, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns list of azure subscriptions\r\n *\r\n */\r\n getAzureManagementGroups() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"39fe3bf2-7ee0-4198-a469-4a29929afa9c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns list of azure subscriptions\r\n *\r\n */\r\n getAzureSubscriptions() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bcd6189c-0303-471f-a8e1-acb22b74d700\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * GET a PAT token for managing (configuring, removing, tagging) deployment targets in a deployment group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group in which deployment targets are managed.\r\n */\r\n generateDeploymentGroupAccessToken(project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"3d197ba2-c3e9-4253-882f-0ee2440f8174\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a deployment group.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentGroupCreateParameter} deploymentGroup - Deployment group to create.\r\n * @param {string} project - Project ID or project name\r\n */\r\n addDeploymentGroup(deploymentGroup, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"083c4d89-ab35-45af-aa11-7cf66895c53e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, deploymentGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a deployment group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group to be deleted.\r\n */\r\n deleteDeploymentGroup(project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"083c4d89-ab35-45af-aa11-7cf66895c53e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a deployment group by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group.\r\n * @param {TaskAgentInterfaces.DeploymentGroupActionFilter} actionFilter - Get the deployment group only if this action can be performed on it.\r\n * @param {TaskAgentInterfaces.DeploymentGroupExpands} expand - Include these additional details in the returned object.\r\n */\r\n getDeploymentGroup(project, deploymentGroupId, actionFilter, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n actionFilter: actionFilter,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"083c4d89-ab35-45af-aa11-7cf66895c53e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of deployment groups by name or IDs.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} name - Name of the deployment group.\r\n * @param {TaskAgentInterfaces.DeploymentGroupActionFilter} actionFilter - Get only deployment groups on which this action can be performed.\r\n * @param {TaskAgentInterfaces.DeploymentGroupExpands} expand - Include these additional details in the returned objects.\r\n * @param {string} continuationToken - Get deployment groups with names greater than this continuationToken lexicographically.\r\n * @param {number} top - Maximum number of deployment groups to return. Default is **1000**.\r\n * @param {number[]} ids - Comma separated list of IDs of the deployment groups.\r\n */\r\n getDeploymentGroups(project, name, actionFilter, expand, continuationToken, top, ids) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n name: name,\r\n actionFilter: actionFilter,\r\n '$expand': expand,\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n ids: ids && ids.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"083c4d89-ab35-45af-aa11-7cf66895c53e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a deployment group.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentGroupUpdateParameter} deploymentGroup - Deployment group to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group.\r\n */\r\n updateDeploymentGroup(deploymentGroup, project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"083c4d89-ab35-45af-aa11-7cf66895c53e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, deploymentGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of deployment group metrics.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} deploymentGroupName - Name of the deployment group.\r\n * @param {string} continuationToken - Get metrics for deployment groups with names greater than this continuationToken lexicographically.\r\n * @param {number} top - Maximum number of deployment group metrics to return. Default is **50**.\r\n */\r\n getDeploymentGroupsMetrics(project, deploymentGroupName, continuationToken, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n deploymentGroupName: deploymentGroupName,\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"281c6308-427a-49e1-b83a-dac0f4862189\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroupMetrics, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number} machineId\r\n * @param {number} completedRequestCount\r\n */\r\n getAgentRequestsForDeploymentMachine(project, deploymentGroupId, machineId, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (machineId == null) {\r\n throw new TypeError('machineId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n machineId: machineId,\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a3540e5b-f0dc-4668-963b-b752459be545\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number[]} machineIds\r\n * @param {number} completedRequestCount\r\n */\r\n getAgentRequestsForDeploymentMachines(project, deploymentGroupId, machineIds, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n machineIds: machineIds && machineIds.join(\",\"),\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a3540e5b-f0dc-4668-963b-b752459be545\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n */\r\n refreshDeploymentMachines(project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"91006ac4-0f68-4d82-a2bc-540676bd73ce\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * GET a PAT token for managing (configuring, removing, tagging) deployment agents in a deployment pool.\r\n *\r\n * @param {number} poolId - ID of the deployment pool in which deployment agents are managed.\r\n */\r\n generateDeploymentPoolAccessToken(poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e077ee4a-399b-420b-841f-c43fbc058e0b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of deployment pool summaries.\r\n *\r\n * @param {string} poolName - Name of the deployment pool.\r\n * @param {TaskAgentInterfaces.DeploymentPoolSummaryExpands} expands - Include these additional details in the returned objects.\r\n * @param {number[]} poolIds - List of deployment pool ids.\r\n */\r\n getDeploymentPoolsSummary(poolName, expands, poolIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n poolName: poolName,\r\n expands: expands,\r\n poolIds: poolIds && poolIds.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6525d6c6-258f-40e0-a1a9-8a24a3957625\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentPoolSummary, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get agent requests for a deployment target.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group to which the target belongs.\r\n * @param {number} targetId - ID of the deployment target.\r\n * @param {number} completedRequestCount - Maximum number of completed requests to return. Default is **50**\r\n */\r\n getAgentRequestsForDeploymentTarget(project, deploymentGroupId, targetId, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (targetId == null) {\r\n throw new TypeError('targetId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n targetId: targetId,\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2fac0be3-8c8f-4473-ab93-c1389b08a2c9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get agent requests for a list deployment targets.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group to which the targets belong.\r\n * @param {number[]} targetIds - Comma separated list of IDs of the deployment targets.\r\n * @param {number} ownerId - Id of owner of agent job request.\r\n * @param {Date} completedOn - Datetime to return request after this time.\r\n * @param {number} completedRequestCount - Maximum number of completed requests to return for each target. Default is **50**\r\n */\r\n getAgentRequestsForDeploymentTargets(project, deploymentGroupId, targetIds, ownerId, completedOn, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n targetIds: targetIds && targetIds.join(\",\"),\r\n ownerId: ownerId,\r\n completedOn: completedOn,\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2fac0be3-8c8f-4473-ab93-c1389b08a2c9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Upgrade the deployment targets in a deployment group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group.\r\n */\r\n refreshDeploymentTargets(project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"1c1a817f-f23d-41c6-bf8d-14b638f64152\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Proxy for a GET request defined by an 'endpoint'. The request is authorized using a service connection. The response is filtered using an XPath/Json based selector.\r\n *\r\n * @param {TaskAgentInterfaces.TaskDefinitionEndpoint} endpoint - Describes the URL to fetch.\r\n */\r\n queryEndpoint(endpoint) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"f223b809-8c33-4b7d-b53f-07232569b5d6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, endpoint, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get environment deployment execution history\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {string} continuationToken\r\n * @param {number} top\r\n */\r\n getEnvironmentDeploymentExecutionRecords(project, environmentId, continuationToken, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n top: top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"51bb5d21-4305-4ea6-9dbb-b7488af73334\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentDeploymentExecutionRecord, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create an environment.\r\n *\r\n * @param {TaskAgentInterfaces.EnvironmentCreateParameter} environmentCreateParameter - Environment to create.\r\n * @param {string} project - Project ID or project name\r\n */\r\n addEnvironment(environmentCreateParameter, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8572b1fc-2482-47fa-8f74-7e3ed53ee54b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, environmentCreateParameter, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete the specified environment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId - ID of the environment.\r\n */\r\n deleteEnvironment(project, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8572b1fc-2482-47fa-8f74-7e3ed53ee54b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get an environment by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId - ID of the environment.\r\n * @param {TaskAgentInterfaces.EnvironmentExpands} expands - Include these additional details in the returned objects.\r\n */\r\n getEnvironmentById(project, environmentId, expands) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n let queryValues = {\r\n expands: expands,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8572b1fc-2482-47fa-8f74-7e3ed53ee54b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all environments.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} name\r\n * @param {string} continuationToken\r\n * @param {number} top\r\n */\r\n getEnvironments(project, name, continuationToken, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n name: name,\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8572b1fc-2482-47fa-8f74-7e3ed53ee54b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the specified environment.\r\n *\r\n * @param {TaskAgentInterfaces.EnvironmentUpdateParameter} environmentUpdateParameter - Environment data to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId - ID of the environment.\r\n */\r\n updateEnvironment(environmentUpdateParameter, project, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8572b1fc-2482-47fa-8f74-7e3ed53ee54b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, environmentUpdateParameter, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} hubName\r\n * @param {boolean} includeEnterpriseUsersCount\r\n * @param {boolean} includeHostedAgentMinutesCount\r\n */\r\n getTaskHubLicenseDetails(hubName, includeEnterpriseUsersCount, includeHostedAgentMinutesCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n hubName: hubName\r\n };\r\n let queryValues = {\r\n includeEnterpriseUsersCount: includeEnterpriseUsersCount,\r\n includeHostedAgentMinutesCount: includeHostedAgentMinutesCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"distributedtask\", \"f9f0f436-b8a1-4475-9041-1ccdbf8f0128\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskHubLicenseDetails} taskHubLicenseDetails\r\n * @param {string} hubName\r\n */\r\n updateTaskHubLicenseDetails(taskHubLicenseDetails, hubName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n hubName: hubName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"distributedtask\", \"f9f0f436-b8a1-4475-9041-1ccdbf8f0128\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, taskHubLicenseDetails, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.InputValidationRequest} inputValidationRequest\r\n */\r\n validateInputs(inputValidationRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"58475b1e-adaf-4155-9bc1-e04bf1fff4c2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, inputValidationRequest, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} requestId\r\n * @param {string} lockToken\r\n * @param {TaskAgentInterfaces.TaskResult} result\r\n * @param {boolean} agentShuttingDown\r\n */\r\n deleteAgentRequest(poolId, requestId, lockToken, result, agentShuttingDown) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (lockToken == null) {\r\n throw new TypeError('lockToken can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n requestId: requestId\r\n };\r\n let queryValues = {\r\n lockToken: lockToken,\r\n result: result,\r\n agentShuttingDown: agentShuttingDown,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} requestId\r\n * @param {boolean} includeStatus\r\n */\r\n getAgentRequest(poolId, requestId, includeStatus) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n requestId: requestId\r\n };\r\n let queryValues = {\r\n includeStatus: includeStatus,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} top\r\n * @param {string} continuationToken\r\n */\r\n getAgentRequests(poolId, top, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (top == null) {\r\n throw new TypeError('top can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} agentId\r\n * @param {number} completedRequestCount\r\n */\r\n getAgentRequestsForAgent(poolId, agentId, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (agentId == null) {\r\n throw new TypeError('agentId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n agentId: agentId,\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number[]} agentIds\r\n * @param {number} completedRequestCount\r\n */\r\n getAgentRequestsForAgents(poolId, agentIds, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n agentIds: agentIds && agentIds.join(\",\"),\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {string} planId\r\n * @param {string} jobId\r\n */\r\n getAgentRequestsForPlan(poolId, planId, jobId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (planId == null) {\r\n throw new TypeError('planId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n planId: planId,\r\n jobId: jobId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentJobRequest} request\r\n * @param {number} poolId\r\n */\r\n queueAgentRequestByPool(request, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, request, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentJobRequest} request\r\n * @param {number} poolId\r\n * @param {number} requestId\r\n * @param {string} lockToken\r\n * @param {TaskAgentInterfaces.TaskAgentRequestUpdateOptions} updateOptions\r\n */\r\n updateAgentRequest(request, poolId, requestId, lockToken, updateOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (lockToken == null) {\r\n throw new TypeError('lockToken can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n requestId: requestId\r\n };\r\n let queryValues = {\r\n lockToken: lockToken,\r\n updateOptions: updateOptions,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, request, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.KubernetesResourceCreateParameters} createParameters\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n */\r\n addKubernetesResource(createParameters, project, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"73fba52f-15ab-42b3-a538-ce67a9223a04\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, createParameters, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.KubernetesResource, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n */\r\n deleteKubernetesResource(project, environmentId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"73fba52f-15ab-42b3-a538-ce67a9223a04\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n */\r\n getKubernetesResource(project, environmentId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"73fba52f-15ab-42b3-a538-ce67a9223a04\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.KubernetesResource, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n */\r\n generateDeploymentMachineGroupAccessToken(project, machineGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"f8c7c0de-ac0d-469b-9cb1-c21f72d67693\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachineGroup} machineGroup\r\n * @param {string} project - Project ID or project name\r\n */\r\n addDeploymentMachineGroup(machineGroup, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"d4adf50f-80c6-4ac8-9ca1-6e4e544286e9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, machineGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n */\r\n deleteDeploymentMachineGroup(project, machineGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"d4adf50f-80c6-4ac8-9ca1-6e4e544286e9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n * @param {TaskAgentInterfaces.MachineGroupActionFilter} actionFilter\r\n */\r\n getDeploymentMachineGroup(project, machineGroupId, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n let queryValues = {\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"d4adf50f-80c6-4ac8-9ca1-6e4e544286e9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} machineGroupName\r\n * @param {TaskAgentInterfaces.MachineGroupActionFilter} actionFilter\r\n */\r\n getDeploymentMachineGroups(project, machineGroupName, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n machineGroupName: machineGroupName,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"d4adf50f-80c6-4ac8-9ca1-6e4e544286e9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachineGroup} machineGroup\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n */\r\n updateDeploymentMachineGroup(machineGroup, project, machineGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"d4adf50f-80c6-4ac8-9ca1-6e4e544286e9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machineGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n * @param {string[]} tagFilters\r\n */\r\n getDeploymentMachineGroupMachines(project, machineGroupId, tagFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n let queryValues = {\r\n tagFilters: tagFilters && tagFilters.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"966c3874-c347-4b18-a90c-d509116717fd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachine[]} deploymentMachines\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n */\r\n updateDeploymentMachineGroupMachines(deploymentMachines, project, machineGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"966c3874-c347-4b18-a90c-d509116717fd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, deploymentMachines, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n */\r\n addDeploymentMachine(machine, project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number} machineId\r\n */\r\n deleteDeploymentMachine(project, deploymentGroupId, machineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n machineId: machineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number} machineId\r\n * @param {TaskAgentInterfaces.DeploymentMachineExpands} expand\r\n */\r\n getDeploymentMachine(project, deploymentGroupId, machineId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n machineId: machineId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {string[]} tags\r\n * @param {string} name\r\n * @param {TaskAgentInterfaces.DeploymentMachineExpands} expand\r\n */\r\n getDeploymentMachines(project, deploymentGroupId, tags, name, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n tags: tags && tags.join(\",\"),\r\n name: name,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number} machineId\r\n */\r\n replaceDeploymentMachine(machine, project, deploymentGroupId, machineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n machineId: machineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number} machineId\r\n */\r\n updateDeploymentMachine(machine, project, deploymentGroupId, machineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n machineId: machineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachine[]} machines\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n */\r\n updateDeploymentMachines(machines, project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machines, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceDefinition} definition\r\n * @param {number} poolId\r\n */\r\n createAgentPoolMaintenanceDefinition(definition, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"80572e16-58f0-4419-ac07-d19fde32195c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, definition, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} definitionId\r\n */\r\n deleteAgentPoolMaintenanceDefinition(poolId, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"80572e16-58f0-4419-ac07-d19fde32195c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} definitionId\r\n */\r\n getAgentPoolMaintenanceDefinition(poolId, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"80572e16-58f0-4419-ac07-d19fde32195c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n */\r\n getAgentPoolMaintenanceDefinitions(poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"80572e16-58f0-4419-ac07-d19fde32195c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceDefinition} definition\r\n * @param {number} poolId\r\n * @param {number} definitionId\r\n */\r\n updateAgentPoolMaintenanceDefinition(definition, poolId, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"80572e16-58f0-4419-ac07-d19fde32195c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, definition, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} jobId\r\n */\r\n deleteAgentPoolMaintenanceJob(poolId, jobId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n jobId: jobId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} jobId\r\n */\r\n getAgentPoolMaintenanceJob(poolId, jobId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n jobId: jobId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} jobId\r\n */\r\n getAgentPoolMaintenanceJobLogs(poolId, jobId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n jobId: jobId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} definitionId\r\n */\r\n getAgentPoolMaintenanceJobs(poolId, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n definitionId: definitionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceJob} job\r\n * @param {number} poolId\r\n */\r\n queueAgentPoolMaintenanceJob(job, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, job, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceJob} job\r\n * @param {number} poolId\r\n * @param {number} jobId\r\n */\r\n updateAgentPoolMaintenanceJob(job, poolId, jobId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n jobId: jobId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, job, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} messageId\r\n * @param {string} sessionId\r\n */\r\n deleteMessage(poolId, messageId, sessionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (sessionId == null) {\r\n throw new TypeError('sessionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n messageId: messageId\r\n };\r\n let queryValues = {\r\n sessionId: sessionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {string} sessionId\r\n * @param {number} lastMessageId\r\n */\r\n getMessage(poolId, sessionId, lastMessageId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (sessionId == null) {\r\n throw new TypeError('sessionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n sessionId: sessionId,\r\n lastMessageId: lastMessageId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} agentId\r\n */\r\n refreshAgent(poolId, agentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (agentId == null) {\r\n throw new TypeError('agentId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n agentId: agentId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n */\r\n refreshAgents(poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentMessage} message\r\n * @param {number} poolId\r\n * @param {number} requestId\r\n */\r\n sendMessage(message, poolId, requestId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (requestId == null) {\r\n throw new TypeError('requestId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n requestId: requestId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, message, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} packageType\r\n * @param {string} platform\r\n * @param {string} version\r\n */\r\n getPackage(packageType, platform, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n packageType: packageType,\r\n platform: platform,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"8ffcd551-079c-493a-9c02-54346299d144\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.PackageMetadata, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} packageType\r\n * @param {string} platform\r\n * @param {number} top\r\n */\r\n getPackages(packageType, platform, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n packageType: packageType,\r\n platform: platform\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"8ffcd551-079c-493a-9c02-54346299d144\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.PackageMetadata, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n */\r\n getAgentPoolMetadata(poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"0d62f887-9f53-48b9-9161-4c35d5735b0f\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} agentPoolMetadata\r\n * @param {number} poolId\r\n */\r\n setAgentPoolMetadata(customHeaders, agentPoolMetadata, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"0d62f887-9f53-48b9-9161-4c35d5735b0f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.replace(url, agentPoolMetadata, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create an agent pool.\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgentPool} pool - Details about the new agent pool\r\n */\r\n addAgentPool(pool) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, pool, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete an agent pool.\r\n *\r\n * @param {number} poolId - ID of the agent pool to delete\r\n */\r\n deleteAgentPool(poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get information about an agent pool.\r\n *\r\n * @param {number} poolId - An agent pool ID\r\n * @param {string[]} properties - Agent pool properties (comma-separated)\r\n * @param {TaskAgentInterfaces.TaskAgentPoolActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentPool(poolId, properties, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n properties: properties && properties.join(\",\"),\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent pools.\r\n *\r\n * @param {string} poolName - Filter by name\r\n * @param {string[]} properties - Filter by agent pool properties (comma-separated)\r\n * @param {TaskAgentInterfaces.TaskAgentPoolType} poolType - Filter by pool type\r\n * @param {TaskAgentInterfaces.TaskAgentPoolActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentPools(poolName, properties, poolType, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n poolName: poolName,\r\n properties: properties && properties.join(\",\"),\r\n poolType: poolType,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent pools.\r\n *\r\n * @param {number[]} poolIds - pool Ids to fetch\r\n * @param {TaskAgentInterfaces.TaskAgentPoolActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentPoolsByIds(poolIds, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (poolIds == null) {\r\n throw new TypeError('poolIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n poolIds: poolIds && poolIds.join(\",\"),\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update properties on an agent pool\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgentPool} pool - Updated agent pool details\r\n * @param {number} poolId - The agent pool to update\r\n */\r\n updateAgentPool(pool, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, pool, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a new agent queue to connect a project to an agent pool.\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgentQueue} queue - Details about the queue to create\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} authorizePipelines - Automatically authorize this queue when using YAML\r\n */\r\n addAgentQueue(queue, project, authorizePipelines) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n authorizePipelines: authorizePipelines,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, queue, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a new team project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n createTeamProject(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes an agent queue from a project.\r\n *\r\n * @param {number} queueId - The agent queue to remove\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteAgentQueue(queueId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n queueId: queueId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get information about an agent queue.\r\n *\r\n * @param {number} queueId - The agent queue to get information about\r\n * @param {string} project - Project ID or project name\r\n * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentQueue(queueId, project, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n queueId: queueId\r\n };\r\n let queryValues = {\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent queues.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} queueName - Filter on the agent queue name\r\n * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentQueues(project, queueName, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n queueName: queueName,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent queues by their IDs\r\n *\r\n * @param {number[]} queueIds - A comma-separated list of agent queue IDs to retrieve\r\n * @param {string} project - Project ID or project name\r\n * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentQueuesByIds(queueIds, project, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (queueIds == null) {\r\n throw new TypeError('queueIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n queueIds: queueIds && queueIds.join(\",\"),\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent queues by their names\r\n *\r\n * @param {string[]} queueNames - A comma-separated list of agent names to retrieve\r\n * @param {string} project - Project ID or project name\r\n * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentQueuesByNames(queueNames, project, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (queueNames == null) {\r\n throw new TypeError('queueNames can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n queueNames: queueNames && queueNames.join(\",\"),\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent queues by pool ids\r\n *\r\n * @param {number[]} poolIds - A comma-separated list of pool ids to get the corresponding queues for\r\n * @param {string} project - Project ID or project name\r\n * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentQueuesForPools(poolIds, project, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (poolIds == null) {\r\n throw new TypeError('poolIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n poolIds: poolIds && poolIds.join(\",\"),\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} agentCloudId\r\n */\r\n getAgentCloudRequests(agentCloudId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n agentCloudId: agentCloudId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"20189bd7-5134-49c2-b8e9-f9e856eea2b2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentCloudRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getResourceLimits() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"1f1f0557-c445-42a6-b4a0-0df605a3a0f8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} parallelismTag\r\n * @param {boolean} poolIsHosted\r\n * @param {boolean} includeRunningRequests\r\n */\r\n getResourceUsage(parallelismTag, poolIsHosted, includeRunningRequests) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n parallelismTag: parallelismTag,\r\n poolIsHosted: poolIsHosted,\r\n includeRunningRequests: includeRunningRequests,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"eae1d376-a8b1-4475-9041-1dfdbe8f0143\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.ResourceUsage, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId\r\n */\r\n getTaskGroupHistory(project, taskGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"100cc92a-b255-47fa-9ab3-e44a2985a3ac\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroupRevision, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a secure file\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} secureFileId - The unique secure file Id\r\n */\r\n deleteSecureFile(project, secureFileId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n secureFileId: secureFileId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a secure file by Id\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} secureFileId - The unique secure file Id\r\n * @param {string} ticket - A valid download ticket\r\n * @param {boolean} download - If download is true, the file is sent as attachement in the response body. If download is false, the response body contains the file stream.\r\n */\r\n downloadSecureFile(project, secureFileId, ticket, download) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ticket == null) {\r\n throw new TypeError('ticket can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n secureFileId: secureFileId\r\n };\r\n let queryValues = {\r\n ticket: ticket,\r\n download: download,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a secure file\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} secureFileId - The unique secure file Id\r\n * @param {boolean} includeDownloadTicket - If includeDownloadTicket is true and the caller has permissions, a download ticket is included in the response.\r\n * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter\r\n */\r\n getSecureFile(project, secureFileId, includeDownloadTicket, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n secureFileId: secureFileId\r\n };\r\n let queryValues = {\r\n includeDownloadTicket: includeDownloadTicket,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get secure files\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} namePattern - Name of the secure file to match. Can include wildcards to match multiple files.\r\n * @param {boolean} includeDownloadTickets - If includeDownloadTickets is true and the caller has permissions, a download ticket for each secure file is included in the response.\r\n * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter - Filter by secure file permissions for View, Manage or Use action. Defaults to View.\r\n */\r\n getSecureFiles(project, namePattern, includeDownloadTickets, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n namePattern: namePattern,\r\n includeDownloadTickets: includeDownloadTickets,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get secure files\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string[]} secureFileIds - A list of secure file Ids\r\n * @param {boolean} includeDownloadTickets - If includeDownloadTickets is true and the caller has permissions, a download ticket for each secure file is included in the response.\r\n * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter\r\n */\r\n getSecureFilesByIds(project, secureFileIds, includeDownloadTickets, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (secureFileIds == null) {\r\n throw new TypeError('secureFileIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n secureFileIds: secureFileIds && secureFileIds.join(\",\"),\r\n includeDownloadTickets: includeDownloadTickets,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get secure files\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string[]} secureFileNames - A list of secure file Ids\r\n * @param {boolean} includeDownloadTickets - If includeDownloadTickets is true and the caller has permissions, a download ticket for each secure file is included in the response.\r\n * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter\r\n */\r\n getSecureFilesByNames(project, secureFileNames, includeDownloadTickets, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (secureFileNames == null) {\r\n throw new TypeError('secureFileNames can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n secureFileNames: secureFileNames && secureFileNames.join(\",\"),\r\n includeDownloadTickets: includeDownloadTickets,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Query secure files using a name pattern and a condition on file properties.\r\n *\r\n * @param {string} condition - The main condition syntax is described [here](https://go.microsoft.com/fwlink/?linkid=842996). Use the *property('property-name')* function to access the value of the specified property of a secure file. It returns null if the property is not set. E.g. ``` and( eq( property('devices'), '2' ), in( property('provisioning profile type'), 'ad hoc', 'development' ) ) ```\r\n * @param {string} project - Project ID or project name\r\n * @param {string} namePattern - Name of the secure file to match. Can include wildcards to match multiple files.\r\n */\r\n querySecureFilesByProperties(condition, project, namePattern) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n namePattern: namePattern,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, condition, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the name or properties of an existing secure file\r\n *\r\n * @param {TaskAgentInterfaces.SecureFile} secureFile - The secure file with updated name and/or properties\r\n * @param {string} project - Project ID or project name\r\n * @param {string} secureFileId - The unique secure file Id\r\n */\r\n updateSecureFile(secureFile, project, secureFileId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n secureFileId: secureFileId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, secureFile, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update properties and/or names of a set of secure files. Files are identified by their IDs. Properties provided override the existing one entirely, i.e. do not merge.\r\n *\r\n * @param {TaskAgentInterfaces.SecureFile[]} secureFiles - A list of secure file objects. Only three field must be populated Id, Name, and Properties. The rest of fields in the object are ignored.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateSecureFiles(secureFiles, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, secureFiles, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Upload a secure file, include the file stream in the request body\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} project - Project ID or project name\r\n * @param {string} name - Name of the file to upload\r\n * @param {boolean} authorizePipelines - If authorizePipelines is true, then the secure file is authorized for use by all pipelines in the project.\r\n */\r\n uploadSecureFile(customHeaders, contentStream, project, name, authorizePipelines) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (name == null) {\r\n throw new TypeError('name can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n name: name,\r\n authorizePipelines: authorizePipelines,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentSession} session\r\n * @param {number} poolId\r\n */\r\n createAgentSession(session, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"134e239e-2df3-4794-a6f6-24f1f19ec8dc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, session, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentSession, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {string} sessionId\r\n */\r\n deleteAgentSession(poolId, sessionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n sessionId: sessionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"134e239e-2df3-4794-a6f6-24f1f19ec8dc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Register a deployment target to a deployment group. Generally this is called by agent configuration tool.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine - Deployment target to register.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group to which the deployment target is registered.\r\n */\r\n addDeploymentTarget(machine, project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a deployment target in a deployment group. This deletes the agent from associated deployment pool too.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group in which deployment target is deleted.\r\n * @param {number} targetId - ID of the deployment target to delete.\r\n */\r\n deleteDeploymentTarget(project, deploymentGroupId, targetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n targetId: targetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a deployment target by its ID in a deployment group\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group to which deployment target belongs.\r\n * @param {number} targetId - ID of the deployment target to return.\r\n * @param {TaskAgentInterfaces.DeploymentTargetExpands} expand - Include these additional details in the returned objects.\r\n */\r\n getDeploymentTarget(project, deploymentGroupId, targetId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n targetId: targetId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of deployment targets in a deployment group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group.\r\n * @param {string[]} tags - Get only the deployment targets that contain all these comma separted list of tags.\r\n * @param {string} name - Name pattern of the deployment targets to return.\r\n * @param {boolean} partialNameMatch - When set to true, treats **name** as pattern. Else treats it as absolute match. Default is **false**.\r\n * @param {TaskAgentInterfaces.DeploymentTargetExpands} expand - Include these additional details in the returned objects.\r\n * @param {TaskAgentInterfaces.TaskAgentStatusFilter} agentStatus - Get only deployment targets that have this status.\r\n * @param {TaskAgentInterfaces.TaskAgentJobResultFilter} agentJobResult - Get only deployment targets that have this last job result.\r\n * @param {string} continuationToken - Get deployment targets with names greater than this continuationToken lexicographically.\r\n * @param {number} top - Maximum number of deployment targets to return. Default is **1000**.\r\n * @param {boolean} enabled - Get only deployment targets that are enabled or disabled. Default is 'null' which returns all the targets.\r\n * @param {string[]} propertyFilters\r\n */\r\n getDeploymentTargets(project, deploymentGroupId, tags, name, partialNameMatch, expand, agentStatus, agentJobResult, continuationToken, top, enabled, propertyFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n tags: tags && tags.join(\",\"),\r\n name: name,\r\n partialNameMatch: partialNameMatch,\r\n '$expand': expand,\r\n agentStatus: agentStatus,\r\n agentJobResult: agentJobResult,\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n enabled: enabled,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replace a deployment target in a deployment group. Generally this is called by agent configuration tool.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine - New deployment target.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group in which deployment target is replaced.\r\n * @param {number} targetId - ID of the deployment target to replace.\r\n */\r\n replaceDeploymentTarget(machine, project, deploymentGroupId, targetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n targetId: targetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a deployment target and its agent properties in a deployment group. Generally this is called by agent configuration tool.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine - Deployment target to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group in which deployment target is updated.\r\n * @param {number} targetId - ID of the deployment target to update.\r\n */\r\n updateDeploymentTarget(machine, project, deploymentGroupId, targetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n targetId: targetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update tags of a list of deployment targets in a deployment group.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentTargetUpdateParameter[]} machines - Deployment targets with tags to udpdate.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group in which deployment targets are updated.\r\n */\r\n updateDeploymentTargets(machines, project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machines, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a task group.\r\n *\r\n * @param {TaskAgentInterfaces.TaskGroupCreateParameter} taskGroup - Task group object to create.\r\n * @param {string} project - Project ID or project name\r\n */\r\n addTaskGroup(taskGroup, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, taskGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a task group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId - Id of the task group to be deleted.\r\n * @param {string} comment - Comments to delete.\r\n */\r\n deleteTaskGroup(project, taskGroupId, comment) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n let queryValues = {\r\n comment: comment,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get task group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId - Id of the task group.\r\n * @param {string} versionSpec - version specification of the task group. examples: 1, 1.0.\r\n * @param {TaskAgentInterfaces.TaskGroupExpands} expand - The properties that should be expanded. example $expand=Tasks will expand nested task groups.\r\n */\r\n getTaskGroup(project, taskGroupId, versionSpec, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (versionSpec == null) {\r\n throw new TypeError('versionSpec can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n let queryValues = {\r\n versionSpec: versionSpec,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId\r\n * @param {number} revision\r\n */\r\n getTaskGroupRevision(project, taskGroupId, revision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (revision == null) {\r\n throw new TypeError('revision can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List task groups.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId - Id of the task group.\r\n * @param {boolean} expanded - 'true' to recursively expand task groups. Default is 'false'.\r\n * @param {string} taskIdFilter - Guid of the taskId to filter.\r\n * @param {boolean} deleted - 'true'to include deleted task groups. Default is 'false'.\r\n * @param {number} top - Number of task groups to get.\r\n * @param {Date} continuationToken - Gets the task groups after the continuation token provided.\r\n * @param {TaskAgentInterfaces.TaskGroupQueryOrder} queryOrder - Gets the results in the defined order. Default is 'CreatedOnDescending'.\r\n */\r\n getTaskGroups(project, taskGroupId, expanded, taskIdFilter, deleted, top, continuationToken, queryOrder) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n let queryValues = {\r\n expanded: expanded,\r\n taskIdFilter: taskIdFilter,\r\n deleted: deleted,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n queryOrder: queryOrder,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.PublishTaskGroupMetadata} taskGroupMetadata\r\n * @param {string} project - Project ID or project name\r\n * @param {string} parentTaskGroupId\r\n */\r\n publishTaskGroup(taskGroupMetadata, project, parentTaskGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (parentTaskGroupId == null) {\r\n throw new TypeError('parentTaskGroupId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n parentTaskGroupId: parentTaskGroupId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, taskGroupMetadata, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskGroup} taskGroup\r\n * @param {string} project - Project ID or project name\r\n */\r\n undeleteTaskGroup(taskGroup, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, taskGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a task group.\r\n *\r\n * @param {TaskAgentInterfaces.TaskGroupUpdateParameter} taskGroup - Task group to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId - Id of the task group to update.\r\n */\r\n updateTaskGroup(taskGroup, project, taskGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, taskGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskGroupUpdatePropertiesBase} taskGroupUpdateProperties\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId\r\n * @param {boolean} disablePriorVersions\r\n */\r\n updateTaskGroupProperties(taskGroupUpdateProperties, project, taskGroupId, disablePriorVersions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n let queryValues = {\r\n disablePriorVersions: disablePriorVersions,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, taskGroupUpdateProperties, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} taskId\r\n */\r\n deleteTaskDefinition(taskId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n taskId: taskId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string} versionString\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n */\r\n getTaskContentZip(taskId, versionString, visibility, scopeLocal) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n taskId: taskId,\r\n versionString: versionString\r\n };\r\n let queryValues = {\r\n visibility: visibility,\r\n scopeLocal: scopeLocal,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string} versionString\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n */\r\n getTaskDefinition(taskId, versionString, visibility, scopeLocal) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n taskId: taskId,\r\n versionString: versionString\r\n };\r\n let queryValues = {\r\n visibility: visibility,\r\n scopeLocal: scopeLocal,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n * @param {boolean} allVersions\r\n */\r\n getTaskDefinitions(taskId, visibility, scopeLocal, allVersions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n taskId: taskId\r\n };\r\n let queryValues = {\r\n visibility: visibility,\r\n scopeLocal: scopeLocal,\r\n allVersions: allVersions,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} agentId\r\n * @param {string} currentState\r\n */\r\n updateAgentUpdateState(poolId, agentId, currentState) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (currentState == null) {\r\n throw new TypeError('currentState can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n let queryValues = {\r\n currentState: currentState,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8cc1b02b-ae49-4516-b5ad-4f9b29967c30\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {{ [key: string] : string; }} userCapabilities\r\n * @param {number} poolId\r\n * @param {number} agentId\r\n */\r\n updateAgentUserCapabilities(userCapabilities, poolId, agentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"30ba3ada-fedf-4da8-bbb5-dacf2f82e176\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, userCapabilities, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a variable group.\r\n *\r\n * @param {TaskAgentInterfaces.VariableGroupParameters} variableGroupParameters\r\n */\r\n addVariableGroup(variableGroupParameters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, variableGroupParameters, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a variable group\r\n *\r\n * @param {number} groupId - Id of the variable group.\r\n * @param {string[]} projectIds\r\n */\r\n deleteVariableGroup(groupId, projectIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (projectIds == null) {\r\n throw new TypeError('projectIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n groupId: groupId\r\n };\r\n let queryValues = {\r\n projectIds: projectIds && projectIds.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a variable group.\r\n *\r\n * @param {TaskAgentInterfaces.VariableGroupProjectReference[]} variableGroupProjectReferences\r\n * @param {number} variableGroupId\r\n */\r\n shareVariableGroup(variableGroupProjectReferences, variableGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (variableGroupId == null) {\r\n throw new TypeError('variableGroupId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n variableGroupId: variableGroupId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, variableGroupProjectReferences, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a variable group.\r\n *\r\n * @param {TaskAgentInterfaces.VariableGroupParameters} variableGroupParameters\r\n * @param {number} groupId - Id of the variable group to update.\r\n */\r\n updateVariableGroup(variableGroupParameters, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, variableGroupParameters, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a variable group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} groupId - Id of the variable group.\r\n */\r\n getVariableGroup(project, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"f5b09dd5-9d54-45a1-8b5a-1c8287d634cc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get variable groups.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} groupName - Name of variable group.\r\n * @param {TaskAgentInterfaces.VariableGroupActionFilter} actionFilter - Action filter for the variable group. It specifies the action which can be performed on the variable groups.\r\n * @param {number} top - Number of variable groups to get.\r\n * @param {number} continuationToken - Gets the variable groups after the continuation token provided.\r\n * @param {TaskAgentInterfaces.VariableGroupQueryOrder} queryOrder - Gets the results in the defined order. Default is 'IdDescending'.\r\n */\r\n getVariableGroups(project, groupName, actionFilter, top, continuationToken, queryOrder) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n groupName: groupName,\r\n actionFilter: actionFilter,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n queryOrder: queryOrder,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"f5b09dd5-9d54-45a1-8b5a-1c8287d634cc\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get variable groups by ids.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number[]} groupIds - Comma separated list of Ids of variable groups.\r\n */\r\n getVariableGroupsById(project, groupIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (groupIds == null) {\r\n throw new TypeError('groupIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n groupIds: groupIds && groupIds.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"f5b09dd5-9d54-45a1-8b5a-1c8287d634cc\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.VirtualMachineGroupCreateParameters} createParameters\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n */\r\n addVirtualMachineGroup(createParameters, project, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9e597901-4af7-4cc3-8d92-47d54db8ebfb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, createParameters, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n */\r\n deleteVirtualMachineGroup(project, environmentId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9e597901-4af7-4cc3-8d92-47d54db8ebfb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n */\r\n getVirtualMachineGroup(project, environmentId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9e597901-4af7-4cc3-8d92-47d54db8ebfb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.VirtualMachineGroup} resource\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n */\r\n updateVirtualMachineGroup(resource, project, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9e597901-4af7-4cc3-8d92-47d54db8ebfb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, resource, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n * @param {string} continuationToken\r\n * @param {string} name\r\n * @param {boolean} partialNameMatch\r\n * @param {string[]} tags\r\n * @param {number} top\r\n */\r\n getVirtualMachines(project, environmentId, resourceId, continuationToken, name, partialNameMatch, tags, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n name: name,\r\n partialNameMatch: partialNameMatch,\r\n tags: tags && tags.join(\",\"),\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"48700676-2ba5-4282-8ec8-083280d169c7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.VirtualMachine[]} machines\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n */\r\n updateVirtualMachines(machines, project, environmentId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"48700676-2ba5-4282-8ec8-083280d169c7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machines, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.AadOauthTokenRequest} authenticationRequest\r\n */\r\n acquireAccessToken(authenticationRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9c63205e-3a0f-42a0-ad88-095200f13607\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, authenticationRequest, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} tenantId\r\n * @param {string} redirectUri\r\n * @param {TaskAgentInterfaces.AadLoginPromptOption} promptOption\r\n * @param {string} completeCallbackPayload\r\n * @param {boolean} completeCallbackByAuthCode\r\n */\r\n createAadOAuthRequest(tenantId, redirectUri, promptOption, completeCallbackPayload, completeCallbackByAuthCode) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (tenantId == null) {\r\n throw new TypeError('tenantId can not be null or undefined');\r\n }\r\n if (redirectUri == null) {\r\n throw new TypeError('redirectUri can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n tenantId: tenantId,\r\n redirectUri: redirectUri,\r\n promptOption: promptOption,\r\n completeCallbackPayload: completeCallbackPayload,\r\n completeCallbackByAuthCode: completeCallbackByAuthCode,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9c63205e-3a0f-42a0-ad88-095200f13607\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getVstsAadTenantId() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9c63205e-3a0f-42a0-ad88-095200f13607\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * GET the Yaml schema used for Yaml file validation.\r\n *\r\n * @param {boolean} validateTaskNames - Whether the schema should validate that tasks are actually installed (useful for offline tools where you don't want validation).\r\n */\r\n getYamlSchema(validateTaskNames) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n validateTaskNames: validateTaskNames,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"1f9990b9-1dba-441f-9c2e-6485888c42b6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nTaskAgentApiBase.RESOURCE_AREA_ID = \"a85b8835-c1a1-4aac-ae97-1c3d0ba72dbd\";\r\nexports.TaskAgentApiBase = TaskAgentApiBase;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst TaskAgentInterfaces = require(\"./interfaces/TaskAgentInterfaces\");\r\nclass TaskApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Task-api', options);\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} type\r\n */\r\n getPlanAttachments(scopeIdentifier, hubName, planId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"eb55e5d6-2f30-4295-b5ed-38da50b1fc52\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} type\r\n * @param {string} name\r\n */\r\n createAttachment(customHeaders, contentStream, scopeIdentifier, hubName, planId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"7898f959-9cdf-4096-b29e-7f293031629e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} type\r\n * @param {string} name\r\n * @param {string} artifactHash\r\n * @param {number} length\r\n */\r\n createAttachmentFromArtifact(scopeIdentifier, hubName, planId, timelineId, recordId, type, name, artifactHash, length) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactHash == null) {\r\n throw new TypeError('artifactHash can not be null or undefined');\r\n }\r\n if (length == null) {\r\n throw new TypeError('length can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n let queryValues = {\r\n artifactHash: artifactHash,\r\n length: length,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"7898f959-9cdf-4096-b29e-7f293031629e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} type\r\n * @param {string} name\r\n */\r\n getAttachment(scopeIdentifier, hubName, planId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"7898f959-9cdf-4096-b29e-7f293031629e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} type\r\n * @param {string} name\r\n */\r\n getAttachmentContent(scopeIdentifier, hubName, planId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"7898f959-9cdf-4096-b29e-7f293031629e\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} type\r\n */\r\n getAttachments(scopeIdentifier, hubName, planId, timelineId, recordId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"7898f959-9cdf-4096-b29e-7f293031629e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TimelineRecordFeedLinesWrapper} lines\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n */\r\n appendTimelineRecordFeed(lines, scopeIdentifier, hubName, planId, timelineId, recordId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"858983e4-19bd-4c5e-864c-507b59b58b12\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, lines, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} stepId\r\n * @param {number} endLine\r\n * @param {number} takeCount\r\n * @param {string} continuationToken\r\n */\r\n getLines(scopeIdentifier, hubName, planId, timelineId, recordId, stepId, endLine, takeCount, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (stepId == null) {\r\n throw new TypeError('stepId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId\r\n };\r\n let queryValues = {\r\n stepId: stepId,\r\n endLine: endLine,\r\n takeCount: takeCount,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"858983e4-19bd-4c5e-864c-507b59b58b12\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} orchestrationId\r\n */\r\n getJobInstance(scopeIdentifier, hubName, orchestrationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n orchestrationId: orchestrationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"0a1efd25-abda-43bd-9629-6c7bdd2e0d60\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJob, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {number} logId\r\n */\r\n appendLogContent(customHeaders, contentStream, scopeIdentifier, hubName, planId, logId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n logId: logId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"46f5667d-263a-4684-91b1-dff7fdcf64e2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {number} logId\r\n * @param {string} serializedBlobId\r\n * @param {number} lineCount\r\n */\r\n associateLog(scopeIdentifier, hubName, planId, logId, serializedBlobId, lineCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (serializedBlobId == null) {\r\n throw new TypeError('serializedBlobId can not be null or undefined');\r\n }\r\n if (lineCount == null) {\r\n throw new TypeError('lineCount can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n logId: logId\r\n };\r\n let queryValues = {\r\n serializedBlobId: serializedBlobId,\r\n lineCount: lineCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"46f5667d-263a-4684-91b1-dff7fdcf64e2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskLog} log\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n */\r\n createLog(log, scopeIdentifier, hubName, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"46f5667d-263a-4684-91b1-dff7fdcf64e2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, log, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {number} logId\r\n * @param {number} startLine\r\n * @param {number} endLine\r\n */\r\n getLog(scopeIdentifier, hubName, planId, logId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n logId: logId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"46f5667d-263a-4684-91b1-dff7fdcf64e2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n */\r\n getLogs(scopeIdentifier, hubName, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"46f5667d-263a-4684-91b1-dff7fdcf64e2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n */\r\n getPlanGroupsQueueMetrics(scopeIdentifier, hubName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"038fd4d5-cda7-44ca-92c0-935843fee1a7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationPlanGroupsQueueMetrics, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {TaskAgentInterfaces.PlanGroupStatus} statusFilter\r\n * @param {number} count\r\n */\r\n getQueuedPlanGroups(scopeIdentifier, hubName, statusFilter, count) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName\r\n };\r\n let queryValues = {\r\n statusFilter: statusFilter,\r\n count: count,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"0dd73091-3e36-4f43-b443-1b76dd426d84\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationQueuedPlanGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planGroup\r\n */\r\n getQueuedPlanGroup(scopeIdentifier, hubName, planGroup) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planGroup: planGroup\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"65fd0708-bc1e-447b-a731-0587c5464e5b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationQueuedPlanGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n */\r\n getPlan(scopeIdentifier, hubName, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"5cecd946-d704-471e-a45f-3b4064fcfaba\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationPlan, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {number} changeId\r\n */\r\n getRecords(scopeIdentifier, hubName, planId, timelineId, changeId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId\r\n };\r\n let queryValues = {\r\n changeId: changeId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8893bc5b-35b2-4be7-83cb-99e683551db4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TimelineRecord, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {VSSInterfaces.VssJsonCollectionWrapperV} records\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n */\r\n updateRecords(records, scopeIdentifier, hubName, planId, timelineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8893bc5b-35b2-4be7-83cb-99e683551db4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, records, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TimelineRecord, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.Timeline} timeline\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n */\r\n createTimeline(timeline, scopeIdentifier, hubName, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"83597576-cc2c-453c-bea6-2882ae6a1653\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, timeline, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.Timeline, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n */\r\n deleteTimeline(scopeIdentifier, hubName, planId, timelineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"83597576-cc2c-453c-bea6-2882ae6a1653\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {number} changeId\r\n * @param {boolean} includeRecords\r\n */\r\n getTimeline(scopeIdentifier, hubName, planId, timelineId, changeId, includeRecords) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId\r\n };\r\n let queryValues = {\r\n changeId: changeId,\r\n includeRecords: includeRecords,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"83597576-cc2c-453c-bea6-2882ae6a1653\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.Timeline, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n */\r\n getTimelines(scopeIdentifier, hubName, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"83597576-cc2c-453c-bea6-2882ae6a1653\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.Timeline, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.TaskApi = TaskApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst TestInterfaces = require(\"./interfaces/TestInterfaces\");\r\nclass TestApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Test-api', options);\r\n }\r\n /**\r\n * Attach a file to test step result\r\n *\r\n * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment details TestAttachmentRequestModel\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test result that contains the iteration\r\n * @param {number} iterationId - ID of the test result iteration.\r\n * @param {string} actionPath - Hex value of test result action path.\r\n */\r\n createTestIterationResultAttachment(attachmentRequestModel, project, runId, testCaseResultId, iterationId, actionPath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (iterationId == null) {\r\n throw new TypeError('iterationId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n let queryValues = {\r\n iterationId: iterationId,\r\n actionPath: actionPath,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, attachmentRequestModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Attach a file to a test result.\r\n *\r\n * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment details TestAttachmentRequestModel\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test result against which attachment has to be uploaded.\r\n */\r\n createTestResultAttachment(attachmentRequestModel, project, runId, testCaseResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, attachmentRequestModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Attach a file to a test result\r\n *\r\n * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment Request Model.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test results that contains sub result.\r\n * @param {number} testSubResultId - ID of the test sub results against which attachment has to be uploaded.\r\n */\r\n createTestSubResultAttachment(attachmentRequestModel, project, runId, testCaseResultId, testSubResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testSubResultId == null) {\r\n throw new TypeError('testSubResultId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n let queryValues = {\r\n testSubResultId: testSubResultId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, attachmentRequestModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test result attachment by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the testCaseResultId.\r\n * @param {number} testCaseResultId - ID of the test result whose attachment has to be downloaded.\r\n * @param {number} attachmentId - ID of the test result attachment to be downloaded.\r\n */\r\n getTestResultAttachmentContent(project, runId, testCaseResultId, attachmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId,\r\n attachmentId: attachmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get list of test result attachments reference.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test result.\r\n */\r\n getTestResultAttachments(project, runId, testCaseResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test result attachment by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the testCaseResultId.\r\n * @param {number} testCaseResultId - ID of the test result whose attachment has to be downloaded.\r\n * @param {number} attachmentId - ID of the test result attachment to be downloaded.\r\n */\r\n getTestResultAttachmentZip(project, runId, testCaseResultId, attachmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId,\r\n attachmentId: attachmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test sub result attachment\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test results that contains sub result.\r\n * @param {number} attachmentId - ID of the test result attachment to be downloaded\r\n * @param {number} testSubResultId - ID of the test sub result whose attachment has to be downloaded\r\n */\r\n getTestSubResultAttachmentContent(project, runId, testCaseResultId, attachmentId, testSubResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testSubResultId == null) {\r\n throw new TypeError('testSubResultId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId,\r\n attachmentId: attachmentId\r\n };\r\n let queryValues = {\r\n testSubResultId: testSubResultId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get list of test sub result attachments\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test results that contains sub result.\r\n * @param {number} testSubResultId - ID of the test sub result whose attachment has to be downloaded\r\n */\r\n getTestSubResultAttachments(project, runId, testCaseResultId, testSubResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testSubResultId == null) {\r\n throw new TypeError('testSubResultId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n let queryValues = {\r\n testSubResultId: testSubResultId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test sub result attachment\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test results that contains sub result.\r\n * @param {number} attachmentId - ID of the test result attachment to be downloaded\r\n * @param {number} testSubResultId - ID of the test sub result whose attachment has to be downloaded\r\n */\r\n getTestSubResultAttachmentZip(project, runId, testCaseResultId, attachmentId, testSubResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testSubResultId == null) {\r\n throw new TypeError('testSubResultId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId,\r\n attachmentId: attachmentId\r\n };\r\n let queryValues = {\r\n testSubResultId: testSubResultId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Attach a file to a test run.\r\n *\r\n * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment details TestAttachmentRequestModel\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run against which attachment has to be uploaded.\r\n */\r\n createTestRunAttachment(attachmentRequestModel, project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"4f004af4-a507-489c-9b13-cb62060beb11\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, attachmentRequestModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test run attachment by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run whose attachment has to be downloaded.\r\n * @param {number} attachmentId - ID of the test run attachment to be downloaded.\r\n */\r\n getTestRunAttachmentContent(project, runId, attachmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n attachmentId: attachmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"4f004af4-a507-489c-9b13-cb62060beb11\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get list of test run attachments reference.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run.\r\n */\r\n getTestRunAttachments(project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"4f004af4-a507-489c-9b13-cb62060beb11\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test run attachment by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run whose attachment has to be downloaded.\r\n * @param {number} attachmentId - ID of the test run attachment to be downloaded.\r\n */\r\n getTestRunAttachmentZip(project, runId, attachmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n attachmentId: attachmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"4f004af4-a507-489c-9b13-cb62060beb11\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId\r\n * @param {number} testCaseResultId\r\n */\r\n getBugsLinkedToTestResult(project, runId, testCaseResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"6de20ca2-67de-4faf-97fa-38c5d585eb00\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get code coverage data for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - ID of the build for which code coverage data needs to be fetched.\r\n * @param {number} flags - Value of flags determine the level of code coverage details to be fetched. Flags are additive. Expected Values are 1 for Modules, 2 for Functions, 4 for BlockData.\r\n */\r\n getBuildCodeCoverage(project, buildId, flags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n if (flags == null) {\r\n throw new TypeError('flags can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n flags: flags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"77560e8a-4e8c-4d59-894e-a5f264c24444\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.BuildCoverage, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Code Coverage Summary for Build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - ID of the build for which code coverage data needs to be fetched.\r\n * @param {number} deltaBuildId - Delta Build id (optional)\r\n */\r\n getCodeCoverageSummary(project, buildId, deltaBuildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n deltaBuildId: deltaBuildId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"77560e8a-4e8c-4d59-894e-a5f264c24444\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.CodeCoverageSummary, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * http://(tfsserver):8080/tfs/DefaultCollection/_apis/test/CodeCoverage?buildId=10 Request: Json of code coverage summary\r\n *\r\n * @param {TestInterfaces.CodeCoverageData} coverageData\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n */\r\n updateCodeCoverageSummary(coverageData, project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"77560e8a-4e8c-4d59-894e-a5f264c24444\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, coverageData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get code coverage data for a test run\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run for which code coverage data needs to be fetched.\r\n * @param {number} flags - Value of flags determine the level of code coverage details to be fetched. Flags are additive. Expected Values are 1 for Modules, 2 for Functions, 4 for BlockData.\r\n */\r\n getTestRunCodeCoverage(project, runId, flags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (flags == null) {\r\n throw new TypeError('flags can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n let queryValues = {\r\n flags: flags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"9629116f-3b89-4ed8-b358-d4694efda160\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.CustomTestFieldDefinition[]} newFields\r\n * @param {string} project - Project ID or project name\r\n */\r\n addCustomFields(newFields, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8ce1923b-f4c7-4e22-b93b-f6284e525ec2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, newFields, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.CustomTestFieldDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {TestInterfaces.CustomTestFieldScope} scopeFilter\r\n */\r\n queryCustomFields(project, scopeFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (scopeFilter == null) {\r\n throw new TypeError('scopeFilter can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n scopeFilter: scopeFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8ce1923b-f4c7-4e22-b93b-f6284e525ec2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.CustomTestFieldDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.ResultsFilter} filter\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryTestResultHistory(filter, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"234616f5-429c-4e7b-9192-affd76731dfd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, filter, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultHistory, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get iteration for a result\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test result that contains the iterations.\r\n * @param {number} iterationId - Id of the test results Iteration.\r\n * @param {boolean} includeActionResults - Include result details for each action performed in the test iteration. ActionResults refer to outcome (pass/fail) of test steps that are executed as part of a running a manual test. Including the ActionResults flag gets the outcome of test steps in the actionResults section and test parameters in the parameters section for each test iteration.\r\n */\r\n getTestIteration(project, runId, testCaseResultId, iterationId, includeActionResults) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId,\r\n iterationId: iterationId\r\n };\r\n let queryValues = {\r\n includeActionResults: includeActionResults,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"73eb9074-3446-4c44-8296-2f811950ff8d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestIterationDetailsModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get iterations for a result\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test result that contains the iterations.\r\n * @param {boolean} includeActionResults - Include result details for each action performed in the test iteration. ActionResults refer to outcome (pass/fail) of test steps that are executed as part of a running a manual test. Including the ActionResults flag gets the outcome of test steps in the actionResults section and test parameters in the parameters section for each test iteration.\r\n */\r\n getTestIterations(project, runId, testCaseResultId, includeActionResults) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n let queryValues = {\r\n includeActionResults: includeActionResults,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"73eb9074-3446-4c44-8296-2f811950ff8d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestIterationDetailsModel, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.LinkedWorkItemsQuery} workItemQuery\r\n * @param {string} project - Project ID or project name\r\n */\r\n getLinkedWorkItemsByQuery(workItemQuery, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"a4dcb25b-9878-49ea-abfd-e440bd9b1dcd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemQuery, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get test run message logs\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the run to get.\r\n */\r\n getTestRunLogs(project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"a1e55200-637e-42e9-a7c0-7e5bfdedb1b3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestMessageLogDetails, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a test point.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan.\r\n * @param {number} suiteId - ID of the suite that contains the point.\r\n * @param {number} pointIds - ID of the test point to get.\r\n * @param {string} witFields - Comma-separated list of work item field names.\r\n */\r\n getPoint(project, planId, suiteId, pointIds, witFields) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n pointIds: pointIds\r\n };\r\n let queryValues = {\r\n witFields: witFields,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"3bcfd5c8-be62-488e-b1da-b8289ce9299c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPoint, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of test points.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan.\r\n * @param {number} suiteId - ID of the suite that contains the points.\r\n * @param {string} witFields - Comma-separated list of work item field names.\r\n * @param {string} configurationId - Get test points for specific configuration.\r\n * @param {string} testCaseId - Get test points for a specific test case, valid when configurationId is not set.\r\n * @param {string} testPointIds - Get test points for comma-separated list of test point IDs, valid only when configurationId and testCaseId are not set.\r\n * @param {boolean} includePointDetails - Include all properties for the test point.\r\n * @param {number} skip - Number of test points to skip..\r\n * @param {number} top - Number of test points to return.\r\n */\r\n getPoints(project, planId, suiteId, witFields, configurationId, testCaseId, testPointIds, includePointDetails, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId\r\n };\r\n let queryValues = {\r\n witFields: witFields,\r\n configurationId: configurationId,\r\n testCaseId: testCaseId,\r\n testPointIds: testPointIds,\r\n includePointDetails: includePointDetails,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"3bcfd5c8-be62-488e-b1da-b8289ce9299c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPoint, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update test points.\r\n *\r\n * @param {TestInterfaces.PointUpdateModel} pointUpdateModel - Data to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan.\r\n * @param {number} suiteId - ID of the suite that contains the points.\r\n * @param {string} pointIds - ID of the test point to get. Use a comma-separated list of IDs to update multiple test points.\r\n */\r\n updateTestPoints(pointUpdateModel, project, planId, suiteId, pointIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n pointIds: pointIds\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"3bcfd5c8-be62-488e-b1da-b8289ce9299c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, pointUpdateModel, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPoint, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get test points using query.\r\n *\r\n * @param {TestInterfaces.TestPointsQuery} query - TestPointsQuery to get test points.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} skip - Number of test points to skip..\r\n * @param {number} top - Number of test points to return.\r\n */\r\n getPointsByQuery(query, project, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"b4264fd0-a5d1-43e2-82a5-b9c46b7da9ce\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPointsQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} publishContext\r\n * @param {string} groupBy\r\n * @param {string} filter\r\n * @param {string} orderby\r\n * @param {boolean} shouldIncludeResults\r\n * @param {boolean} queryRunSummaryForInProgress\r\n */\r\n getTestResultDetailsForBuild(project, buildId, publishContext, groupBy, filter, orderby, shouldIncludeResults, queryRunSummaryForInProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n publishContext: publishContext,\r\n groupBy: groupBy,\r\n '$filter': filter,\r\n '$orderby': orderby,\r\n shouldIncludeResults: shouldIncludeResults,\r\n queryRunSummaryForInProgress: queryRunSummaryForInProgress,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"efb387b0-10d5-42e7-be40-95e06ee9430f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultsDetails, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} releaseEnvId\r\n * @param {string} publishContext\r\n * @param {string} groupBy\r\n * @param {string} filter\r\n * @param {string} orderby\r\n * @param {boolean} shouldIncludeResults\r\n * @param {boolean} queryRunSummaryForInProgress\r\n */\r\n getTestResultDetailsForRelease(project, releaseId, releaseEnvId, publishContext, groupBy, filter, orderby, shouldIncludeResults, queryRunSummaryForInProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (releaseId == null) {\r\n throw new TypeError('releaseId can not be null or undefined');\r\n }\r\n if (releaseEnvId == null) {\r\n throw new TypeError('releaseEnvId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n releaseId: releaseId,\r\n releaseEnvId: releaseEnvId,\r\n publishContext: publishContext,\r\n groupBy: groupBy,\r\n '$filter': filter,\r\n '$orderby': orderby,\r\n shouldIncludeResults: shouldIncludeResults,\r\n queryRunSummaryForInProgress: queryRunSummaryForInProgress,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"b834ec7e-35bb-450f-a3c8-802e70ca40dd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultsDetails, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.TestResultDocument} document\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId\r\n */\r\n publishTestResultDocument(document, project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"370ca04b-8eec-4ca8-8ba3-d24dca228791\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, document, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} publishContext\r\n * @param {string[]} fields\r\n * @param {string} continuationToken\r\n */\r\n getResultGroupsByBuild(project, buildId, publishContext, fields, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n if (publishContext == null) {\r\n throw new TypeError('publishContext can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n publishContext: publishContext,\r\n fields: fields && fields.join(\",\"),\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"d279d052-c55a-4204-b913-42f733b52958\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {string} publishContext\r\n * @param {number} releaseEnvId\r\n * @param {string[]} fields\r\n * @param {string} continuationToken\r\n */\r\n getResultGroupsByRelease(project, releaseId, publishContext, releaseEnvId, fields, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (releaseId == null) {\r\n throw new TypeError('releaseId can not be null or undefined');\r\n }\r\n if (publishContext == null) {\r\n throw new TypeError('publishContext can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n releaseId: releaseId,\r\n publishContext: publishContext,\r\n releaseEnvId: releaseEnvId,\r\n fields: fields && fields.join(\",\"),\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"ef5ce5d4-a4e5-47ee-804c-354518f8d03f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get list of test Result meta data details for corresponding testcasereferenceId\r\n *\r\n * @param {string[]} testReferenceIds - TestCaseReference Ids of the test Result to be queried, comma separated list of valid ids (limit no. of ids 200).\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryTestResultsMetaData(testReferenceIds, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"afa7830e-67a7-4336-8090-2b448ca80295\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, testReferenceIds, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get test result retention settings\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getResultRetentionSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"a3206d9e-fa8d-42d3-88cb-f75c51e69cde\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.ResultRetentionSettings, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update test result retention settings\r\n *\r\n * @param {TestInterfaces.ResultRetentionSettings} retentionSettings - Test result retention settings details to be updated\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateResultRetentionSettings(retentionSettings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"a3206d9e-fa8d-42d3-88cb-f75c51e69cde\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, retentionSettings, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.ResultRetentionSettings, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add test results to a test run.\r\n *\r\n * @param {TestInterfaces.TestCaseResult[]} results - List of test results to add.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - Test run ID into which test results to add.\r\n */\r\n addTestResultsToTestRun(results, project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.6\", \"Test\", \"4637d869-3a76-4468-8057-0bb02aa385cf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, results, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a test result for a test run.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - Test run ID of a test result to fetch.\r\n * @param {number} testCaseResultId - Test result ID.\r\n * @param {TestInterfaces.ResultDetails} detailsToInclude - Details to include with test results. Default is None. Other values are Iterations, WorkItems and SubResults.\r\n */\r\n getTestResultById(project, runId, testCaseResultId, detailsToInclude) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n let queryValues = {\r\n detailsToInclude: detailsToInclude,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.6\", \"Test\", \"4637d869-3a76-4468-8057-0bb02aa385cf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get test results for a test run.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - Test run ID of test results to fetch.\r\n * @param {TestInterfaces.ResultDetails} detailsToInclude - Details to include with test results. Default is None. Other values are Iterations and WorkItems.\r\n * @param {number} skip - Number of test results to skip from beginning.\r\n * @param {number} top - Number of test results to return. Maximum is 1000 when detailsToInclude is None and 200 otherwise.\r\n * @param {TestInterfaces.TestOutcome[]} outcomes - Comma separated list of test outcomes to filter test results.\r\n */\r\n getTestResults(project, runId, detailsToInclude, skip, top, outcomes) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n let queryValues = {\r\n detailsToInclude: detailsToInclude,\r\n '$skip': skip,\r\n '$top': top,\r\n outcomes: outcomes && outcomes.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.6\", \"Test\", \"4637d869-3a76-4468-8057-0bb02aa385cf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update test results in a test run.\r\n *\r\n * @param {TestInterfaces.TestCaseResult[]} results - List of test results to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - Test run ID whose test results to update.\r\n */\r\n updateTestResults(results, project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.6\", \"Test\", \"4637d869-3a76-4468-8057-0bb02aa385cf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, results, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * This API will return results by Ids with fields specified/trend for particular automated test method. We are still improving this API and have not finalized proper signature and contract.\r\n *\r\n * @param {TestInterfaces.TestResultsQuery} query\r\n * @param {string} project - Project ID or project name\r\n */\r\n getTestResultsByQuery(query, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.6\", \"Test\", \"6711da49-8e6f-4d35-9f73-cef7a3c81a5b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultsQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} publishContext\r\n * @param {TestInterfaces.TestOutcome[]} outcomes\r\n * @param {number} top\r\n * @param {string} continuationToken\r\n */\r\n getTestResultsByBuild(project, buildId, publishContext, outcomes, top, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n publishContext: publishContext,\r\n outcomes: outcomes && outcomes.join(\",\"),\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"3c191b88-615b-4be2-b7d9-5ff9141e91d4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} releaseEnvid\r\n * @param {string} publishContext\r\n * @param {TestInterfaces.TestOutcome[]} outcomes\r\n * @param {number} top\r\n * @param {string} continuationToken\r\n */\r\n getTestResultsByRelease(project, releaseId, releaseEnvid, publishContext, outcomes, top, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (releaseId == null) {\r\n throw new TypeError('releaseId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n releaseId: releaseId,\r\n releaseEnvid: releaseEnvid,\r\n publishContext: publishContext,\r\n outcomes: outcomes && outcomes.join(\",\"),\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"ce01820b-83f3-4c15-a583-697a43292c4e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} publishContext\r\n * @param {boolean} includeFailureDetails\r\n * @param {TestInterfaces.BuildReference} buildToCompare\r\n */\r\n queryTestResultsReportForBuild(project, buildId, publishContext, includeFailureDetails, buildToCompare) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n publishContext: publishContext,\r\n includeFailureDetails: includeFailureDetails,\r\n buildToCompare: buildToCompare,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"000ef77b-fea2-498d-a10d-ad1a037f559f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultSummary, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} releaseEnvId\r\n * @param {string} publishContext\r\n * @param {boolean} includeFailureDetails\r\n * @param {TestInterfaces.ReleaseReference} releaseToCompare\r\n */\r\n queryTestResultsReportForRelease(project, releaseId, releaseEnvId, publishContext, includeFailureDetails, releaseToCompare) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (releaseId == null) {\r\n throw new TypeError('releaseId can not be null or undefined');\r\n }\r\n if (releaseEnvId == null) {\r\n throw new TypeError('releaseEnvId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n releaseId: releaseId,\r\n releaseEnvId: releaseEnvId,\r\n publishContext: publishContext,\r\n includeFailureDetails: includeFailureDetails,\r\n releaseToCompare: releaseToCompare,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"85765790-ac68-494e-b268-af36c3929744\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultSummary, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.ReleaseReference[]} releases\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryTestResultsSummaryForReleases(releases, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"85765790-ac68-494e-b268-af36c3929744\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, releases, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultSummary, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.TestResultsContext} resultsContext\r\n * @param {string} project - Project ID or project name\r\n * @param {number[]} workItemIds\r\n */\r\n queryTestSummaryByRequirement(resultsContext, project, workItemIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n workItemIds: workItemIds && workItemIds.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"cd08294e-308d-4460-a46e-4cfdefba0b4b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, resultsContext, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSummaryForWorkItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.TestResultTrendFilter} filter\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryResultTrendForBuild(filter, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"fbc82a85-0786-4442-88bb-eb0fda6b01b0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, filter, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.AggregatedDataForResultTrend, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.TestResultTrendFilter} filter\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryResultTrendForRelease(filter, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"dd178e93-d8dd-4887-9635-d6b9560b7b6e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, filter, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.AggregatedDataForResultTrend, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get test run statistics , used when we want to get summary of a run by outcome.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the run to get.\r\n */\r\n getTestRunStatistics(project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"0a42c424-d764-4a16-a2d5-5c85f87d0ae8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRunStatistic, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create new test run.\r\n *\r\n * @param {TestInterfaces.RunCreateModel} testRun - Run details RunCreateModel\r\n * @param {string} project - Project ID or project name\r\n */\r\n createTestRun(testRun, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, testRun, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a test run by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the run to delete.\r\n */\r\n deleteTestRun(project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a test run by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the run to get.\r\n * @param {boolean} includeDetails - Default value is true. It includes details like run statistics, release, build, test environment, post process state, and more.\r\n */\r\n getTestRunById(project, runId, includeDetails) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n let queryValues = {\r\n includeDetails: includeDetails,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of test runs.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} buildUri - URI of the build that the runs used.\r\n * @param {string} owner - Team foundation ID of the owner of the runs.\r\n * @param {string} tmiRunId\r\n * @param {number} planId - ID of the test plan that the runs are a part of.\r\n * @param {boolean} includeRunDetails - If true, include all the properties of the runs.\r\n * @param {boolean} automated - If true, only returns automated runs.\r\n * @param {number} skip - Number of test runs to skip.\r\n * @param {number} top - Number of test runs to return.\r\n */\r\n getTestRuns(project, buildUri, owner, tmiRunId, planId, includeRunDetails, automated, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildUri: buildUri,\r\n owner: owner,\r\n tmiRunId: tmiRunId,\r\n planId: planId,\r\n includeRunDetails: includeRunDetails,\r\n automated: automated,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Query Test Runs based on filters. Mandatory fields are minLastUpdatedDate and maxLastUpdatedDate.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {Date} minLastUpdatedDate - Minimum Last Modified Date of run to be queried (Mandatory).\r\n * @param {Date} maxLastUpdatedDate - Maximum Last Modified Date of run to be queried (Mandatory, difference between min and max date can be atmost 7 days).\r\n * @param {TestInterfaces.TestRunState} state - Current state of the Runs to be queried.\r\n * @param {number[]} planIds - Plan Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {boolean} isAutomated - Automation type of the Runs to be queried.\r\n * @param {TestInterfaces.TestRunPublishContext} publishContext - PublishContext of the Runs to be queried.\r\n * @param {number[]} buildIds - Build Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {number[]} buildDefIds - Build Definition Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {string} branchName - Source Branch name of the Runs to be queried.\r\n * @param {number[]} releaseIds - Release Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {number[]} releaseDefIds - Release Definition Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {number[]} releaseEnvIds - Release Environment Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {number[]} releaseEnvDefIds - Release Environment Definition Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {string} runTitle - Run Title of the Runs to be queried.\r\n * @param {number} top - Number of runs to be queried. Limit is 100\r\n * @param {string} continuationToken - continuationToken received from previous batch or null for first batch. It is not supposed to be created (or altered, if received from last batch) by user.\r\n */\r\n queryTestRuns(project, minLastUpdatedDate, maxLastUpdatedDate, state, planIds, isAutomated, publishContext, buildIds, buildDefIds, branchName, releaseIds, releaseDefIds, releaseEnvIds, releaseEnvDefIds, runTitle, top, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (minLastUpdatedDate == null) {\r\n throw new TypeError('minLastUpdatedDate can not be null or undefined');\r\n }\r\n if (maxLastUpdatedDate == null) {\r\n throw new TypeError('maxLastUpdatedDate can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n minLastUpdatedDate: minLastUpdatedDate,\r\n maxLastUpdatedDate: maxLastUpdatedDate,\r\n state: state,\r\n planIds: planIds && planIds.join(\",\"),\r\n isAutomated: isAutomated,\r\n publishContext: publishContext,\r\n buildIds: buildIds && buildIds.join(\",\"),\r\n buildDefIds: buildDefIds && buildDefIds.join(\",\"),\r\n branchName: branchName,\r\n releaseIds: releaseIds && releaseIds.join(\",\"),\r\n releaseDefIds: releaseDefIds && releaseDefIds.join(\",\"),\r\n releaseEnvIds: releaseEnvIds && releaseEnvIds.join(\",\"),\r\n releaseEnvDefIds: releaseEnvDefIds && releaseEnvDefIds.join(\",\"),\r\n runTitle: runTitle,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update test run by its ID.\r\n *\r\n * @param {TestInterfaces.RunUpdateModel} runUpdateModel - Run details RunUpdateModel\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the run to update.\r\n */\r\n updateTestRun(runUpdateModel, project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, runUpdateModel, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a test session\r\n *\r\n * @param {TestInterfaces.TestSession} testSession - Test session details for creation\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n createTestSession(testSession, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, testSession, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSession, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of test sessions\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {number} period - Period in days from now, for which test sessions are fetched.\r\n * @param {boolean} allSessions - If false, returns test sessions for current user. Otherwise, it returns test sessions for all users\r\n * @param {boolean} includeAllProperties - If true, it returns all properties of the test sessions. Otherwise, it returns the skinny version.\r\n * @param {TestInterfaces.TestSessionSource} source - Source of the test session.\r\n * @param {boolean} includeOnlyCompletedSessions - If true, it returns test sessions in completed state. Otherwise, it returns test sessions for all states\r\n */\r\n getTestSessions(teamContext, period, allSessions, includeAllProperties, source, includeOnlyCompletedSessions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n let queryValues = {\r\n period: period,\r\n allSessions: allSessions,\r\n includeAllProperties: includeAllProperties,\r\n source: source,\r\n includeOnlyCompletedSessions: includeOnlyCompletedSessions,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSession, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a test session\r\n *\r\n * @param {TestInterfaces.TestSession} testSession - Test session details for update\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateTestSession(testSession, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, testSession, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSession, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} sharedParameterId\r\n */\r\n deleteSharedParameter(project, sharedParameterId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n sharedParameterId: sharedParameterId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8300eeca-0f8c-4eff-a089-d2dda409c41f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} sharedStepId\r\n */\r\n deleteSharedStep(project, sharedStepId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n sharedStepId: sharedStepId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"fabb3cc9-e3f8-40b7-8b62-24cc4b73fccf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add test cases to suite.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan that contains the suite.\r\n * @param {number} suiteId - ID of the test suite to which the test cases must be added.\r\n * @param {string} testCaseIds - IDs of the test cases to add to the suite. Ids are specified in comma separated format.\r\n */\r\n addTestCasesToSuite(project, planId, suiteId, testCaseIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n action: \"TestCases\",\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n testCaseIds: testCaseIds\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"a4a1ec1c-b03f-41ca-8857-704594ecf58e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a specific test case in a test suite with test case id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan that contains the suites.\r\n * @param {number} suiteId - ID of the suite that contains the test case.\r\n * @param {number} testCaseIds - ID of the test case to get.\r\n */\r\n getTestCaseById(project, planId, suiteId, testCaseIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n action: \"TestCases\",\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n testCaseIds: testCaseIds\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"a4a1ec1c-b03f-41ca-8857-704594ecf58e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all test cases in a suite.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan that contains the suites.\r\n * @param {number} suiteId - ID of the suite to get.\r\n */\r\n getTestCases(project, planId, suiteId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n action: \"TestCases\",\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"a4a1ec1c-b03f-41ca-8857-704594ecf58e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * The test points associated with the test cases are removed from the test suite. The test case work item is not deleted from the system. See test cases resource to delete a test case permanently.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan that contains the suite.\r\n * @param {number} suiteId - ID of the suite to get.\r\n * @param {string} testCaseIds - IDs of the test cases to remove from the suite.\r\n */\r\n removeTestCasesFromSuiteUrl(project, planId, suiteId, testCaseIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n action: \"TestCases\",\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n testCaseIds: testCaseIds\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"a4a1ec1c-b03f-41ca-8857-704594ecf58e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the properties of the test case association in a suite.\r\n *\r\n * @param {TestInterfaces.SuiteTestCaseUpdateModel} suiteTestCaseUpdateModel - Model for updation of the properties of test case suite association.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan that contains the suite.\r\n * @param {number} suiteId - ID of the test suite to which the test cases must be added.\r\n * @param {string} testCaseIds - IDs of the test cases to add to the suite. Ids are specified in comma separated format.\r\n */\r\n updateSuiteTestCases(suiteTestCaseUpdateModel, project, planId, suiteId, testCaseIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n action: \"TestCases\",\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n testCaseIds: testCaseIds\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"a4a1ec1c-b03f-41ca-8857-704594ecf58e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, suiteTestCaseUpdateModel, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a test case.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} testCaseId - Id of test case to delete.\r\n */\r\n deleteTestCase(project, testCaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n testCaseId: testCaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"4d472e0f-e32c-4ef8-adf4-a4078772889c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get history of a test method using TestHistoryQuery\r\n *\r\n * @param {TestInterfaces.TestHistoryQuery} filter - TestHistoryQuery to get history\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryTestHistory(filter, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"929fd86c-3e38-4d8c-b4b6-90df256e5971\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, filter, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestHistoryQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.TestSettings} testSettings\r\n * @param {string} project - Project ID or project name\r\n */\r\n createTestSettings(testSettings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8133ce14-962f-42af-a5f9-6aa9defcb9c8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, testSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} testSettingsId\r\n */\r\n deleteTestSettings(project, testSettingsId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n testSettingsId: testSettingsId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8133ce14-962f-42af-a5f9-6aa9defcb9c8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} testSettingsId\r\n */\r\n getTestSettingsById(project, testSettingsId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n testSettingsId: testSettingsId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8133ce14-962f-42af-a5f9-6aa9defcb9c8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.WorkItemToTestLinks} workItemToTestLinks\r\n * @param {string} project - Project ID or project name\r\n */\r\n addWorkItemToTestLinks(workItemToTestLinks, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"371b1655-ce05-412e-a113-64cc77bb78d2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemToTestLinks, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.WorkItemToTestLinks, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} testName\r\n * @param {number} workItemId\r\n */\r\n deleteTestMethodToWorkItemLink(project, testName, workItemId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testName == null) {\r\n throw new TypeError('testName can not be null or undefined');\r\n }\r\n if (workItemId == null) {\r\n throw new TypeError('workItemId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n testName: testName,\r\n workItemId: workItemId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"7b0bdee3-a354-47f9-a42c-89018d7808d5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} testName\r\n */\r\n queryTestMethodLinkedWorkItems(project, testName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testName == null) {\r\n throw new TypeError('testName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n testName: testName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"7b0bdee3-a354-47f9-a42c-89018d7808d5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} workItemCategory\r\n * @param {string} automatedTestName\r\n * @param {number} testCaseId\r\n * @param {Date} maxCompleteDate\r\n * @param {number} days\r\n * @param {number} workItemCount\r\n */\r\n queryTestResultWorkItems(project, workItemCategory, automatedTestName, testCaseId, maxCompleteDate, days, workItemCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (workItemCategory == null) {\r\n throw new TypeError('workItemCategory can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n workItemCategory: workItemCategory,\r\n automatedTestName: automatedTestName,\r\n testCaseId: testCaseId,\r\n maxCompleteDate: maxCompleteDate,\r\n days: days,\r\n '$workItemCount': workItemCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"926ff5dc-137f-45f0-bd51-9412fa9810ce\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nTestApi.RESOURCE_AREA_ID = \"c2aa639c-3ccc-4740-b3b6-ce2a1e1d984e\";\r\nexports.TestApi = TestApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst TfvcInterfaces = require(\"./interfaces/TfvcInterfaces\");\r\nclass TfvcApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Tfvc-api', options);\r\n }\r\n /**\r\n * Get a single branch hierarchy at the given path with parents or children as specified.\r\n *\r\n * @param {string} path - Full path to the branch. Default: $/ Examples: $/, $/MyProject, $/MyProject/SomeFolder.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeParent - Return the parent branch, if there is one. Default: False\r\n * @param {boolean} includeChildren - Return child branches, if there are any. Default: False\r\n */\r\n getBranch(path, project, includeParent, includeChildren) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n includeParent: includeParent,\r\n includeChildren: includeChildren,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"bc1f417e-239d-42e7-85e1-76e80cb2d6eb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcBranch, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a collection of branch roots -- first-level children, branches with no parents.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeParent - Return the parent branch, if there is one. Default: False\r\n * @param {boolean} includeChildren - Return the child branches for each root branch. Default: False\r\n * @param {boolean} includeDeleted - Return deleted branches. Default: False\r\n * @param {boolean} includeLinks - Return links. Default: False\r\n */\r\n getBranches(project, includeParent, includeChildren, includeDeleted, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n includeParent: includeParent,\r\n includeChildren: includeChildren,\r\n includeDeleted: includeDeleted,\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"bc1f417e-239d-42e7-85e1-76e80cb2d6eb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcBranch, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get branch hierarchies below the specified scopePath\r\n *\r\n * @param {string} scopePath - Full path to the branch. Default: $/ Examples: $/, $/MyProject, $/MyProject/SomeFolder.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeDeleted - Return deleted branches. Default: False\r\n * @param {boolean} includeLinks - Return links. Default: False\r\n */\r\n getBranchRefs(scopePath, project, includeDeleted, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (scopePath == null) {\r\n throw new TypeError('scopePath can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n scopePath: scopePath,\r\n includeDeleted: includeDeleted,\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"bc1f417e-239d-42e7-85e1-76e80cb2d6eb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcBranchRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve Tfvc changes for a given changeset.\r\n *\r\n * @param {number} id - ID of the changeset. Default: null\r\n * @param {number} skip - Number of results to skip. Default: null\r\n * @param {number} top - The maximum number of results to return. Default: null\r\n */\r\n getChangesetChanges(id, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"f32b86f2-15b9-4fe6-81b1-6f8938617ee5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChange, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a new changeset.\r\n *\r\n * @param {TfvcInterfaces.TfvcChangeset} changeset\r\n * @param {string} project - Project ID or project name\r\n */\r\n createChangeset(changeset, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"tfvc\", \"0bc8f0a4-6bfb-42a9-ba84-139da7b99c49\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, changeset, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangesetRef, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a Tfvc Changeset\r\n *\r\n * @param {number} id - Changeset Id to retrieve.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} maxChangeCount - Number of changes to return (maximum 100 changes) Default: 0\r\n * @param {boolean} includeDetails - Include policy details and check-in notes in the response. Default: false\r\n * @param {boolean} includeWorkItems - Include workitems. Default: false\r\n * @param {number} maxCommentLength - Include details about associated work items in the response. Default: null\r\n * @param {boolean} includeSourceRename - Include renames. Default: false\r\n * @param {number} skip - Number of results to skip. Default: null\r\n * @param {number} top - The maximum number of results to return. Default: null\r\n * @param {string} orderby - Results are sorted by ID in descending order by default. Use id asc to sort by ID in ascending order.\r\n * @param {TfvcInterfaces.TfvcChangesetSearchCriteria} searchCriteria - Following criteria available (.itemPath, .version, .versionType, .versionOption, .author, .fromId, .toId, .fromDate, .toDate) Default: null\r\n */\r\n getChangeset(id, project, maxChangeCount, includeDetails, includeWorkItems, maxCommentLength, includeSourceRename, skip, top, orderby, searchCriteria) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n maxChangeCount: maxChangeCount,\r\n includeDetails: includeDetails,\r\n includeWorkItems: includeWorkItems,\r\n maxCommentLength: maxCommentLength,\r\n includeSourceRename: includeSourceRename,\r\n '$skip': skip,\r\n '$top': top,\r\n '$orderby': orderby,\r\n searchCriteria: searchCriteria,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"tfvc\", \"0bc8f0a4-6bfb-42a9-ba84-139da7b99c49\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangeset, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve Tfvc Changesets\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} maxCommentLength - Include details about associated work items in the response. Default: null\r\n * @param {number} skip - Number of results to skip. Default: null\r\n * @param {number} top - The maximum number of results to return. Default: null\r\n * @param {string} orderby - Results are sorted by ID in descending order by default. Use id asc to sort by ID in ascending order.\r\n * @param {TfvcInterfaces.TfvcChangesetSearchCriteria} searchCriteria - Following criteria available (.itemPath, .version, .versionType, .versionOption, .author, .fromId, .toId, .fromDate, .toDate) Default: null\r\n */\r\n getChangesets(project, maxCommentLength, skip, top, orderby, searchCriteria) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n maxCommentLength: maxCommentLength,\r\n '$skip': skip,\r\n '$top': top,\r\n '$orderby': orderby,\r\n searchCriteria: searchCriteria,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"tfvc\", \"0bc8f0a4-6bfb-42a9-ba84-139da7b99c49\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangesetRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns changesets for a given list of changeset Ids.\r\n *\r\n * @param {TfvcInterfaces.TfvcChangesetsRequestData} changesetsRequestData - List of changeset IDs.\r\n */\r\n getBatchedChangesets(changesetsRequestData) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"b7e7c173-803c-4fea-9ec8-31ee35c5502a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, changesetsRequestData, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangesetRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves the work items associated with a particular changeset.\r\n *\r\n * @param {number} id - ID of the changeset.\r\n */\r\n getChangesetWorkItems(id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"64ae0bea-1d71-47c9-a9e5-fe73f5ea0ff4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Post for retrieving a set of items given a list of paths or a long path. Allows for specifying the recursionLevel and version descriptors for each path.\r\n *\r\n * @param {TfvcInterfaces.TfvcItemRequestData} itemRequestData\r\n * @param {string} project - Project ID or project name\r\n */\r\n getItemsBatch(itemRequestData, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"fe6f827b-5f64-480f-b8af-1eca3b80e833\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, itemRequestData, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Post for retrieving a set of items given a list of paths or a long path. Allows for specifying the recursionLevel and version descriptors for each path.\r\n *\r\n * @param {TfvcInterfaces.TfvcItemRequestData} itemRequestData\r\n * @param {string} project - Project ID or project name\r\n */\r\n getItemsBatchZip(itemRequestData, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"fe6f827b-5f64-480f-b8af-1eca3b80e833\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download.\r\n *\r\n * @param {string} path - Version control path of an individual item to return.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} fileName - file name of item returned.\r\n * @param {boolean} download - If true, create a downloadable attachment.\r\n * @param {string} scopePath - Version control path of a folder to return multiple items.\r\n * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder).\r\n * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n */\r\n getItem(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n fileName: fileName,\r\n download: download,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"ba9fc436-9a38-4578-89d6-e4f3241f5040\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download.\r\n *\r\n * @param {string} path - Version control path of an individual item to return.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} fileName - file name of item returned.\r\n * @param {boolean} download - If true, create a downloadable attachment.\r\n * @param {string} scopePath - Version control path of a folder to return multiple items.\r\n * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder).\r\n * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n */\r\n getItemContent(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n fileName: fileName,\r\n download: download,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"ba9fc436-9a38-4578-89d6-e4f3241f5040\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of Tfvc items\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - Version control path of a folder to return multiple items.\r\n * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder).\r\n * @param {boolean} includeLinks - True to include links.\r\n * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor\r\n */\r\n getItems(project, scopePath, recursionLevel, includeLinks, versionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeLinks: includeLinks,\r\n versionDescriptor: versionDescriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"ba9fc436-9a38-4578-89d6-e4f3241f5040\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download.\r\n *\r\n * @param {string} path - Version control path of an individual item to return.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} fileName - file name of item returned.\r\n * @param {boolean} download - If true, create a downloadable attachment.\r\n * @param {string} scopePath - Version control path of a folder to return multiple items.\r\n * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder).\r\n * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n */\r\n getItemText(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n fileName: fileName,\r\n download: download,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"ba9fc436-9a38-4578-89d6-e4f3241f5040\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download.\r\n *\r\n * @param {string} path - Version control path of an individual item to return.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} fileName - file name of item returned.\r\n * @param {boolean} download - If true, create a downloadable attachment.\r\n * @param {string} scopePath - Version control path of a folder to return multiple items.\r\n * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder).\r\n * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n */\r\n getItemZip(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n fileName: fileName,\r\n download: download,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"ba9fc436-9a38-4578-89d6-e4f3241f5040\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get items under a label.\r\n *\r\n * @param {string} labelId - Unique identifier of label\r\n * @param {number} top - Max number of items to return\r\n * @param {number} skip - Number of items to skip\r\n */\r\n getLabelItems(labelId, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n labelId: labelId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"06166e34-de17-4b60-8cd1-23182a346fda\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single deep label.\r\n *\r\n * @param {string} labelId - Unique identifier of label\r\n * @param {TfvcInterfaces.TfvcLabelRequestData} requestData - maxItemCount\r\n * @param {string} project - Project ID or project name\r\n */\r\n getLabel(labelId, requestData, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (requestData == null) {\r\n throw new TypeError('requestData can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n labelId: labelId\r\n };\r\n let queryValues = {\r\n requestData: requestData,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"a5d9bd7f-b661-4d0e-b9be-d9c16affae54\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcLabel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a collection of shallow label references.\r\n *\r\n * @param {TfvcInterfaces.TfvcLabelRequestData} requestData - labelScope, name, owner, and itemLabelFilter\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - Max number of labels to return, defaults to 100 when undefined\r\n * @param {number} skip - Number of labels to skip\r\n */\r\n getLabels(requestData, project, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (requestData == null) {\r\n throw new TypeError('requestData can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n requestData: requestData,\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"a5d9bd7f-b661-4d0e-b9be-d9c16affae54\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcLabelRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get changes included in a shelveset.\r\n *\r\n * @param {string} shelvesetId - Shelveset's unique ID\r\n * @param {number} top - Max number of changes to return\r\n * @param {number} skip - Number of changes to skip\r\n */\r\n getShelvesetChanges(shelvesetId, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (shelvesetId == null) {\r\n throw new TypeError('shelvesetId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n shelvesetId: shelvesetId,\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"dbaf075b-0445-4c34-9e5b-82292f856522\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChange, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single deep shelveset.\r\n *\r\n * @param {string} shelvesetId - Shelveset's unique ID\r\n * @param {TfvcInterfaces.TfvcShelvesetRequestData} requestData - includeDetails, includeWorkItems, maxChangeCount, and maxCommentLength\r\n */\r\n getShelveset(shelvesetId, requestData) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (shelvesetId == null) {\r\n throw new TypeError('shelvesetId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n shelvesetId: shelvesetId,\r\n requestData: requestData,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"e36d44fb-e907-4b0a-b194-f83f1ed32ad3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcShelveset, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Return a collection of shallow shelveset references.\r\n *\r\n * @param {TfvcInterfaces.TfvcShelvesetRequestData} requestData - name, owner, and maxCommentLength\r\n * @param {number} top - Max number of shelvesets to return\r\n * @param {number} skip - Number of shelvesets to skip\r\n */\r\n getShelvesets(requestData, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n requestData: requestData,\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"e36d44fb-e907-4b0a-b194-f83f1ed32ad3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcShelvesetRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get work items associated with a shelveset.\r\n *\r\n * @param {string} shelvesetId - Shelveset's unique ID\r\n */\r\n getShelvesetWorkItems(shelvesetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (shelvesetId == null) {\r\n throw new TypeError('shelvesetId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n shelvesetId: shelvesetId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"a7a0c1c1-373e-425a-b031-a519474d743d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Provides File Count and Uncompressed Bytes for a Collection/Project at a particular scope for TFVC.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - '$/' for collection, '$/project' for specific project\r\n */\r\n getTfvcStatistics(project, scopePath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n scopePath: scopePath,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"e15c74c0-3605-40e0-aed4-4cc61e549ed8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nTfvcApi.RESOURCE_AREA_ID = \"8aa40520-446d-40e6-89f6-9c9f9ce44c48\";\r\nexports.TfvcApi = TfvcApi;\r\n","\"use strict\";\r\n//*******************************************************************************************************\r\n// significant portions of this file copied from: VSO\\src\\Vssf\\WebPlatform\\Platform\\Scripts\\VSS\\WebApi\\RestClient.ts\r\n//*******************************************************************************************************\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/// Imports of 3rd Party ///\r\nconst url = require(\"url\");\r\nconst path = require(\"path\");\r\nclass InvalidApiResourceVersionError {\r\n constructor(message) {\r\n this.name = \"Invalid resource version\";\r\n this.message = message;\r\n }\r\n}\r\nexports.InvalidApiResourceVersionError = InvalidApiResourceVersionError;\r\n/**\r\n * Base class that should be used (derived from) to make requests to VSS REST apis\r\n */\r\nclass VsoClient {\r\n constructor(baseUrl, restClient) {\r\n this.baseUrl = baseUrl;\r\n this.basePath = url.parse(baseUrl).pathname;\r\n this.restClient = restClient;\r\n this._locationsByAreaPromises = {};\r\n this._initializationPromise = Promise.resolve(true);\r\n }\r\n autoNegotiateApiVersion(location, requestedVersion) {\r\n let negotiatedVersion;\r\n let apiVersion;\r\n let apiVersionString;\r\n if (requestedVersion) {\r\n let apiVersionRegEx = new RegExp('(\\\\d+(\\\\.\\\\d+)?)(-preview(\\\\.(\\\\d+))?)?');\r\n // Need to handle 3 types of api versions + invalid apiversion\r\n // '2.1-preview.1' = [\"2.1-preview.1\", \"2.1\", \".1\", -preview.1\", \".1\", \"1\"]\r\n // '2.1-preview' = [\"2.1-preview\", \"2.1\", \".1\", \"-preview\", undefined, undefined]\r\n // '2.1' = [\"2.1\", \"2.1\", \".1\", undefined, undefined, undefined]\r\n let isPreview = false;\r\n let resourceVersion;\r\n let regExExecArray = apiVersionRegEx.exec(requestedVersion);\r\n if (regExExecArray) {\r\n if (regExExecArray[1]) {\r\n // we have an api version\r\n apiVersion = +regExExecArray[1];\r\n apiVersionString = regExExecArray[1];\r\n if (regExExecArray[3]) {\r\n // requesting preview\r\n isPreview = true;\r\n if (regExExecArray[5]) {\r\n // we have a resource version\r\n resourceVersion = +regExExecArray[5];\r\n }\r\n }\r\n // compare the location version and requestedversion\r\n if (apiVersion <= +location.releasedVersion\r\n || (!resourceVersion && apiVersion <= +location.maxVersion && isPreview)\r\n || (resourceVersion && apiVersion <= +location.maxVersion && resourceVersion <= +location.resourceVersion)) {\r\n negotiatedVersion = requestedVersion;\r\n }\r\n // else fall back to latest version of the resource from location\r\n }\r\n }\r\n }\r\n if (!negotiatedVersion) {\r\n // Use the latest version of the resource if the api version was not specified in the request or if the requested version is higher then the location's supported version\r\n if (apiVersion < +location.maxVersion) {\r\n negotiatedVersion = apiVersionString + \"-preview\";\r\n }\r\n else if (location.maxVersion === location.releasedVersion) {\r\n negotiatedVersion = location.maxVersion;\r\n }\r\n else {\r\n negotiatedVersion = location.maxVersion + \"-preview.\" + location.resourceVersion;\r\n }\r\n }\r\n return negotiatedVersion;\r\n }\r\n /**\r\n * Gets the route template for a resource based on its location ID and negotiates the api version\r\n */\r\n getVersioningData(apiVersion, area, locationId, routeValues, queryParams) {\r\n let requestUrl;\r\n return this.beginGetLocation(area, locationId)\r\n .then((location) => {\r\n if (!location) {\r\n throw new Error(\"Failed to find api location for area: \" + area + \" id: \" + locationId);\r\n }\r\n apiVersion = this.autoNegotiateApiVersion(location, apiVersion);\r\n requestUrl = this.getRequestUrl(location.routeTemplate, location.area, location.resourceName, routeValues, queryParams);\r\n return {\r\n apiVersion: apiVersion,\r\n requestUrl: requestUrl\r\n };\r\n });\r\n }\r\n /**\r\n * Sets a promise that is waited on before any requests are issued. Can be used to asynchronously\r\n * set the request url and auth token manager.\r\n */\r\n _setInitializationPromise(promise) {\r\n if (promise) {\r\n this._initializationPromise = promise;\r\n }\r\n }\r\n /**\r\n * Gets information about an API resource location (route template, supported versions, etc.)\r\n *\r\n * @param area resource area name\r\n * @param locationId Guid of the location to get\r\n */\r\n beginGetLocation(area, locationId) {\r\n return this._initializationPromise.then(() => {\r\n return this.beginGetAreaLocations(area);\r\n }).then((areaLocations) => {\r\n return areaLocations[(locationId || \"\").toLowerCase()];\r\n });\r\n }\r\n beginGetAreaLocations(area) {\r\n let areaLocationsPromise = this._locationsByAreaPromises[area];\r\n if (!areaLocationsPromise) {\r\n let requestUrl = this.resolveUrl(VsoClient.APIS_RELATIVE_PATH + \"/\" + area);\r\n areaLocationsPromise = this.restClient.options(requestUrl)\r\n .then((res) => {\r\n let locationsLookup = {};\r\n let resourceLocations = res.result.value;\r\n let i;\r\n for (i = 0; i < resourceLocations.length; i++) {\r\n let resourceLocation = resourceLocations[i];\r\n locationsLookup[resourceLocation.id.toLowerCase()] = resourceLocation;\r\n }\r\n // If we have completed successfully, cache the response.\r\n this._locationsByAreaPromises[area] = areaLocationsPromise;\r\n return locationsLookup;\r\n });\r\n }\r\n return areaLocationsPromise;\r\n }\r\n resolveUrl(relativeUrl) {\r\n return url.resolve(this.baseUrl, path.join(this.basePath, relativeUrl));\r\n }\r\n queryParamsToStringHelper(queryParams, prefix) {\r\n if (!queryParams) {\r\n return '';\r\n }\r\n let queryString = '';\r\n if (typeof (queryParams) !== 'string') {\r\n for (let property in queryParams) {\r\n if (queryParams.hasOwnProperty(property)) {\r\n const prop = queryParams[property];\r\n const newPrefix = prefix + encodeURIComponent(property.toString()) + '.';\r\n queryString += this.queryParamsToStringHelper(prop, newPrefix);\r\n }\r\n }\r\n }\r\n if (queryString === '' && prefix.length > 0) {\r\n // Date.prototype.toString() returns a string that is not valid for the REST API.\r\n // Need to specially call `toUTCString()` instead for such cases\r\n const queryValue = typeof queryParams === 'object' && 'toUTCString' in queryParams ? queryParams.toUTCString() : queryParams.toString();\r\n // Will always need to chop period off of end of prefix\r\n queryString = prefix.slice(0, -1) + '=' + encodeURIComponent(queryValue) + '&';\r\n }\r\n return queryString;\r\n }\r\n queryParamsToString(queryParams) {\r\n const queryString = '?' + this.queryParamsToStringHelper(queryParams, '');\r\n // Will always need to slice either a ? or & off of the end\r\n return queryString.slice(0, -1);\r\n }\r\n getRequestUrl(routeTemplate, area, resource, routeValues, queryParams) {\r\n // Add area/resource route values (based on the location)\r\n routeValues = routeValues || {};\r\n if (!routeValues.area) {\r\n routeValues.area = area;\r\n }\r\n if (!routeValues.resource) {\r\n routeValues.resource = resource;\r\n }\r\n // Replace templated route values\r\n let relativeUrl = this.replaceRouteValues(routeTemplate, routeValues);\r\n // Append query parameters to the end\r\n if (queryParams) {\r\n relativeUrl += this.queryParamsToString(queryParams);\r\n }\r\n // Resolve the relative url with the base\r\n return url.resolve(this.baseUrl, path.join(this.basePath, relativeUrl));\r\n }\r\n // helper method copied directly from VSS\\WebAPI\\restclient.ts\r\n replaceRouteValues(routeTemplate, routeValues) {\r\n let result = \"\", currentPathPart = \"\", paramName = \"\", insideParam = false, charIndex, routeTemplateLength = routeTemplate.length, c;\r\n for (charIndex = 0; charIndex < routeTemplateLength; charIndex++) {\r\n c = routeTemplate[charIndex];\r\n if (insideParam) {\r\n if (c == \"}\") {\r\n insideParam = false;\r\n if (routeValues[paramName]) {\r\n currentPathPart += encodeURIComponent(routeValues[paramName]);\r\n }\r\n else {\r\n // Normalize param name in order to capture wild-card routes\r\n let strippedParamName = paramName.replace(/[^a-z0-9]/ig, '');\r\n if (routeValues[strippedParamName]) {\r\n currentPathPart += encodeURIComponent(routeValues[strippedParamName]);\r\n }\r\n }\r\n paramName = \"\";\r\n }\r\n else {\r\n paramName += c;\r\n }\r\n }\r\n else {\r\n if (c == \"/\") {\r\n if (currentPathPart) {\r\n if (result) {\r\n result += \"/\";\r\n }\r\n result += currentPathPart;\r\n currentPathPart = \"\";\r\n }\r\n }\r\n else if (c == \"{\") {\r\n if ((charIndex + 1) < routeTemplateLength && routeTemplate[charIndex + 1] == \"{\") {\r\n // Escaped '{'\r\n currentPathPart += c;\r\n charIndex++;\r\n }\r\n else {\r\n insideParam = true;\r\n }\r\n }\r\n else if (c == '}') {\r\n currentPathPart += c;\r\n if ((charIndex + 1) < routeTemplateLength && routeTemplate[charIndex + 1] == \"}\") {\r\n // Escaped '}'\r\n charIndex++;\r\n }\r\n }\r\n else {\r\n currentPathPart += c;\r\n }\r\n }\r\n }\r\n if (currentPathPart) {\r\n if (result) {\r\n result += \"/\";\r\n }\r\n result += currentPathPart;\r\n }\r\n return result;\r\n }\r\n}\r\nVsoClient.APIS_RELATIVE_PATH = \"_apis\";\r\nVsoClient.PREVIEW_INDICATOR = \"-preview.\";\r\nexports.VsoClient = VsoClient;\r\n",null,"\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst Comments_Contracts = require(\"./interfaces/CommentsInterfaces\");\r\nconst WikiInterfaces = require(\"./interfaces/WikiInterfaces\");\r\nclass WikiApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Wiki-api', options);\r\n }\r\n /**\r\n * Uploads an attachment on a comment on a wiki page.\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n */\r\n createCommentAttachment(customHeaders, contentStream, project, wikiIdentifier, pageId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"5100d976-363d-42e7-a19d-4171ecb44782\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentAttachment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Downloads an attachment on a comment on a wiki page.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {string} attachmentId - Attachment ID.\r\n */\r\n getAttachmentContent(project, wikiIdentifier, pageId, attachmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n attachmentId: attachmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"5100d976-363d-42e7-a19d-4171ecb44782\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a reaction on a wiki page comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name\r\n * @param {number} pageId - Wiki page ID\r\n * @param {number} commentId - ID of the associated comment\r\n * @param {Comments_Contracts.CommentReactionType} type - Type of the reaction being added\r\n */\r\n addCommentReaction(project, wikiIdentifier, pageId, commentId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n commentId: commentId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"7a5bc693-aab7-4d48-8f34-36f373022063\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentReaction, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a reaction on a wiki page comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or name\r\n * @param {number} pageId - Wiki page ID\r\n * @param {number} commentId - ID of the associated comment\r\n * @param {Comments_Contracts.CommentReactionType} type - Type of the reaction being deleted\r\n */\r\n deleteCommentReaction(project, wikiIdentifier, pageId, commentId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n commentId: commentId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"7a5bc693-aab7-4d48-8f34-36f373022063\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentReaction, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of users who have reacted for the given wiki comment with a given reaction type. Supports paging, with a default page size of 100 users at a time.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} commentId - ID of the associated comment\r\n * @param {Comments_Contracts.CommentReactionType} type - Type of the reaction for which the engaged users are being requested\r\n * @param {number} top - Number of enagaged users to be returned in a given page. Optional, defaults to 100\r\n * @param {number} skip - Number of engaged users to be skipped to page the next set of engaged users, defaults to 0\r\n */\r\n getEngagedUsers(project, wikiIdentifier, pageId, commentId, type, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n commentId: commentId,\r\n type: type\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"598a5268-41a7-4162-b7dc-344131e4d1fa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a comment on a wiki page.\r\n *\r\n * @param {Comments_Contracts.CommentCreateParameters} request - Comment create request.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n */\r\n addComment(request, project, wikiIdentifier, pageId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"9b394e93-7db5-46cb-9c26-09a36aa5c895\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, request, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a comment on a wiki page.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} id - Comment ID.\r\n */\r\n deleteComment(project, wikiIdentifier, pageId, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"9b394e93-7db5-46cb-9c26-09a36aa5c895\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a comment associated with the Wiki Page.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} id - ID of the comment to return.\r\n * @param {boolean} excludeDeleted - Specify if the deleted comment should be skipped.\r\n * @param {Comments_Contracts.CommentExpandOptions} expand - Specifies the additional data retrieval options for comments.\r\n */\r\n getComment(project, wikiIdentifier, pageId, id, excludeDeleted, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n id: id\r\n };\r\n let queryValues = {\r\n excludeDeleted: excludeDeleted,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"9b394e93-7db5-46cb-9c26-09a36aa5c895\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a pageable list of comments.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} top - Max number of comments to return.\r\n * @param {string} continuationToken - Used to query for the next page of comments.\r\n * @param {boolean} excludeDeleted - Specify if the deleted comments should be skipped.\r\n * @param {Comments_Contracts.CommentExpandOptions} expand - Specifies the additional data retrieval options for comments.\r\n * @param {Comments_Contracts.CommentSortOrder} order - Order in which the comments should be returned.\r\n * @param {number} parentId - CommentId of the parent comment.\r\n */\r\n listComments(project, wikiIdentifier, pageId, top, continuationToken, excludeDeleted, expand, order, parentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n excludeDeleted: excludeDeleted,\r\n '$expand': expand,\r\n order: order,\r\n parentId: parentId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"9b394e93-7db5-46cb-9c26-09a36aa5c895\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentList, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a comment on a wiki page.\r\n *\r\n * @param {Comments_Contracts.CommentUpdateParameters} comment - Comment update request.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} id - Comment ID.\r\n */\r\n updateComment(comment, project, wikiIdentifier, pageId, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"9b394e93-7db5-46cb-9c26-09a36aa5c895\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, comment, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets metadata or content of the wiki page for the provided path. Content negotiation is done based on the `Accept` header sent in the request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {string} path - Wiki page path.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional).\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - GitVersionDescriptor for the page. Defaults to the default branch (Optional).\r\n * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional)\r\n */\r\n getPageText(project, wikiIdentifier, path, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n let queryValues = {\r\n path: path,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"25d3fbc7-fe3d-46cb-b5a5-0b6f79caf27b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets metadata or content of the wiki page for the provided path. Content negotiation is done based on the `Accept` header sent in the request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {string} path - Wiki page path.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional).\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - GitVersionDescriptor for the page. Defaults to the default branch (Optional).\r\n * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional)\r\n */\r\n getPageZip(project, wikiIdentifier, path, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n let queryValues = {\r\n path: path,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"25d3fbc7-fe3d-46cb-b5a5-0b6f79caf27b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets metadata or content of the wiki page for the provided page id. Content negotiation is done based on the `Accept` header sent in the request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name..\r\n * @param {number} id - Wiki page ID.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional).\r\n * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional)\r\n */\r\n getPageByIdText(project, wikiIdentifier, id, recursionLevel, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n id: id\r\n };\r\n let queryValues = {\r\n recursionLevel: recursionLevel,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"ceddcf75-1068-452d-8b13-2d4d76e1f970\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets metadata or content of the wiki page for the provided page id. Content negotiation is done based on the `Accept` header sent in the request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name..\r\n * @param {number} id - Wiki page ID.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional).\r\n * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional)\r\n */\r\n getPageByIdZip(project, wikiIdentifier, id, recursionLevel, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n id: id\r\n };\r\n let queryValues = {\r\n recursionLevel: recursionLevel,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"ceddcf75-1068-452d-8b13-2d4d76e1f970\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns pageable list of Wiki Pages\r\n *\r\n * @param {WikiInterfaces.WikiPagesBatchRequest} pagesBatchRequest - Wiki batch page request.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - GitVersionDescriptor for the page. (Optional in case of ProjectWiki).\r\n */\r\n getPagesBatch(pagesBatchRequest, project, wikiIdentifier, versionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n let queryValues = {\r\n versionDescriptor: versionDescriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"71323c46-2592-4398-8771-ced73dd87207\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, pagesBatchRequest, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiPageDetail, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns page detail corresponding to Page ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} pageViewsForDays - last N days from the current day for which page views is to be returned. It's inclusive of current day.\r\n */\r\n getPageData(project, wikiIdentifier, pageId, pageViewsForDays) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId\r\n };\r\n let queryValues = {\r\n pageViewsForDays: pageViewsForDays,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"81c4e0fe-7663-4d62-ad46-6ab78459f274\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiPageDetail, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new page view stats resource or updates an existing page view stats resource.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {GitInterfaces.GitVersionDescriptor} wikiVersion - Wiki version.\r\n * @param {string} path - Wiki page path.\r\n * @param {string} oldPath - Old page path. This is optional and required to rename path in existing page view stats.\r\n */\r\n createOrUpdatePageViewStats(project, wikiIdentifier, wikiVersion, path, oldPath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (wikiVersion == null) {\r\n throw new TypeError('wikiVersion can not be null or undefined');\r\n }\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n let queryValues = {\r\n wikiVersion: wikiVersion,\r\n path: path,\r\n oldPath: oldPath,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"1087b746-5d15-41b9-bea6-14e325e7f880\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiPageViewStats, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates the wiki resource.\r\n *\r\n * @param {WikiInterfaces.WikiCreateParametersV2} wikiCreateParams - Parameters for the wiki creation.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createWiki(wikiCreateParams, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wiki\", \"288d122c-dbd4-451d-aa5f-7dbbba070728\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, wikiCreateParams, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the wiki corresponding to the wiki ID or wiki name provided.\r\n *\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteWiki(wikiIdentifier, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wiki\", \"288d122c-dbd4-451d-aa5f-7dbbba070728\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all wikis in a project or collection.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getAllWikis(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wiki\", \"288d122c-dbd4-451d-aa5f-7dbbba070728\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the wiki corresponding to the wiki ID or wiki name provided.\r\n *\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWiki(wikiIdentifier, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wiki\", \"288d122c-dbd4-451d-aa5f-7dbbba070728\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the wiki corresponding to the wiki ID or wiki name provided using the update parameters.\r\n *\r\n * @param {WikiInterfaces.WikiUpdateParameters} updateParameters - Update parameters.\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateWiki(updateParameters, wikiIdentifier, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wiki\", \"288d122c-dbd4-451d-aa5f-7dbbba070728\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nWikiApi.RESOURCE_AREA_ID = \"bf7d82a0-8aa5-4613-94ef-6172a5ea01f3\";\r\nexports.WikiApi = WikiApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst WorkInterfaces = require(\"./interfaces/WorkInterfaces\");\r\nclass WorkApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Work-api', options);\r\n }\r\n /**\r\n * Gets backlog configuration for a team\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getBacklogConfigurations(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"7799f497-3cb5-4f16-ad4f-5cd06012db64\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BacklogConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of work items within a backlog level\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} backlogId\r\n */\r\n getBacklogLevelWorkItems(teamContext, backlogId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n backlogId: backlogId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"7c468d96-ab1d-4294-a360-92f07e9ccd98\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a backlog level\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - The id of the backlog level\r\n */\r\n getBacklog(teamContext, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"a93726f9-7867-4e38-b4f2-0bfafc2f6a94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BacklogLevelConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List all backlog levels\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getBacklogs(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"a93726f9-7867-4e38-b4f2-0bfafc2f6a94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BacklogLevelConfiguration, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that displays the status of columns on the board.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - The id of the board.\r\n * @param {WorkInterfaces.BoardBadgeColumnOptions} columnOptions - Determines what columns to show.\r\n * @param {string[]} columns - If columnOptions is set to custom, specify the list of column names.\r\n */\r\n getBoardBadge(teamContext, id, columnOptions, columns) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n let queryValues = {\r\n columnOptions: columnOptions,\r\n columns: columns && columns.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0120b002-ab6c-4ca0-98cf-a8d7492f865c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that displays the status of columns on the board.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - The id of the board.\r\n * @param {WorkInterfaces.BoardBadgeColumnOptions} columnOptions - Determines what columns to show.\r\n * @param {string[]} columns - If columnOptions is set to custom, specify the list of column names.\r\n */\r\n getBoardBadgeData(teamContext, id, columnOptions, columns) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n let queryValues = {\r\n columnOptions: columnOptions,\r\n columns: columns && columns.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0120b002-ab6c-4ca0-98cf-a8d7492f865c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get available board columns in a project\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getColumnSuggestedValues(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"eb7ec5a3-1ba3-4fd1-b834-49a5a387e57d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the list of parent field filter model for the given list of workitem ids\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} childBacklogContextCategoryRefName\r\n * @param {number[]} workitemIds\r\n */\r\n getBoardMappingParentItems(teamContext, childBacklogContextCategoryRefName, workitemIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (childBacklogContextCategoryRefName == null) {\r\n throw new TypeError('childBacklogContextCategoryRefName can not be null or undefined');\r\n }\r\n if (workitemIds == null) {\r\n throw new TypeError('workitemIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n let queryValues = {\r\n childBacklogContextCategoryRefName: childBacklogContextCategoryRefName,\r\n workitemIds: workitemIds && workitemIds.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"186abea3-5c35-432f-9e28-7a15b4312a0e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get available board rows in a project\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRowSuggestedValues(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"bb494cc6-a0f5-4c6c-8dca-ea6912e79eb9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get board\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - identifier for board, either board's backlog level name (Eg:\"Stories\") or Id\r\n */\r\n getBoard(teamContext, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"23ad19fc-3b8e-4877-8462-b3f92bc06b40\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Board, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get boards\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getBoards(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"23ad19fc-3b8e-4877-8462-b3f92bc06b40\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update board options\r\n *\r\n * @param {{ [key: string] : string; }} options - options to updated\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - identifier for board, either category plural name (Eg:\"Stories\") or guid\r\n */\r\n setBoardOptions(options, teamContext, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"23ad19fc-3b8e-4877-8462-b3f92bc06b40\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, options, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get board user settings for a board id\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Board ID or Name\r\n */\r\n getBoardUserSettings(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"b30d9f58-1891-4b0a-b168-c46408f919b0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update board user settings for the board id\r\n *\r\n * @param {{ [key: string] : string; }} boardUserSettings\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board\r\n */\r\n updateBoardUserSettings(boardUserSettings, teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"b30d9f58-1891-4b0a-b168-c46408f919b0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, boardUserSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a team's capacity including total capacity and days off\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n getCapacitiesWithIdentityRefAndTotals(teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"work\", \"74412d15-8c1a-4352-a48d-ef1ed5587d57\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamCapacity, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a team member's capacity\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n * @param {string} teamMemberId - ID of the team member\r\n */\r\n getCapacityWithIdentityRef(teamContext, iterationId, teamMemberId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId,\r\n teamMemberId: teamMemberId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"work\", \"74412d15-8c1a-4352-a48d-ef1ed5587d57\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamMemberCapacityIdentityRef, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replace a team's capacity\r\n *\r\n * @param {WorkInterfaces.TeamMemberCapacityIdentityRef[]} capacities - Team capacity to replace\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n replaceCapacitiesWithIdentityRef(capacities, teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"work\", \"74412d15-8c1a-4352-a48d-ef1ed5587d57\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, capacities, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamMemberCapacityIdentityRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a team member's capacity\r\n *\r\n * @param {WorkInterfaces.CapacityPatch} patch - Updated capacity\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n * @param {string} teamMemberId - ID of the team member\r\n */\r\n updateCapacityWithIdentityRef(patch, teamContext, iterationId, teamMemberId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId,\r\n teamMemberId: teamMemberId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"work\", \"74412d15-8c1a-4352-a48d-ef1ed5587d57\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, patch, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamMemberCapacityIdentityRef, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get board card Rule settings for the board id or board by name\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board\r\n */\r\n getBoardCardRuleSettings(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"b044a3d9-02ea-49c7-91a1-b730949cc896\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update board card Rule settings for the board id or board by name\r\n *\r\n * @param {WorkInterfaces.BoardCardRuleSettings} boardCardRuleSettings\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board\r\n */\r\n updateBoardCardRuleSettings(boardCardRuleSettings, teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"b044a3d9-02ea-49c7-91a1-b730949cc896\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, boardCardRuleSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update taskboard card Rule settings\r\n *\r\n * @param {WorkInterfaces.BoardCardRuleSettings} boardCardRuleSettings\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateTaskboardCardRuleSettings(boardCardRuleSettings, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"3f84a8d1-1aab-423e-a94b-6dcbdcca511f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, boardCardRuleSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get board card settings for the board id or board by name\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board\r\n */\r\n getBoardCardSettings(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"07c3b467-bc60-4f05-8e34-599ce288fafc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update board card settings for the board id or board by name\r\n *\r\n * @param {WorkInterfaces.BoardCardSettings} boardCardSettingsToSave\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board\r\n */\r\n updateBoardCardSettings(boardCardSettingsToSave, teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"07c3b467-bc60-4f05-8e34-599ce288fafc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, boardCardSettingsToSave, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update taskboard card settings\r\n *\r\n * @param {WorkInterfaces.BoardCardSettings} boardCardSettingsToSave\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateTaskboardCardSettings(boardCardSettingsToSave, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"0d63745f-31f3-4cf3-9056-2a064e567637\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, boardCardSettingsToSave, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a board chart\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Identifier for board, either board's backlog level name (Eg:\"Stories\") or Id\r\n * @param {string} name - The chart name\r\n */\r\n getBoardChart(teamContext, board, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"45fe888c-239e-49fd-958c-df1a1ab21d97\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get board charts\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Identifier for board, either board's backlog level name (Eg:\"Stories\") or Id\r\n */\r\n getBoardCharts(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"45fe888c-239e-49fd-958c-df1a1ab21d97\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a board chart\r\n *\r\n * @param {WorkInterfaces.BoardChart} chart\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Identifier for board, either board's backlog level name (Eg:\"Stories\") or Id\r\n * @param {string} name - The chart name\r\n */\r\n updateBoardChart(chart, teamContext, board, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"45fe888c-239e-49fd-958c-df1a1ab21d97\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, chart, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get columns on a board\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Name or ID of the specific board\r\n */\r\n getBoardColumns(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c555d7ff-84e1-47df-9923-a3fe0cd8751b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BoardColumn, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update columns on a board\r\n *\r\n * @param {WorkInterfaces.BoardColumn[]} boardColumns - List of board columns to update\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Name or ID of the specific board\r\n */\r\n updateBoardColumns(boardColumns, teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c555d7ff-84e1-47df-9923-a3fe0cd8751b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, boardColumns, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BoardColumn, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Delivery View Data\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} id - Identifier for delivery view\r\n * @param {number} revision - Revision of the plan for which you want data. If the current plan is a different revision you will get an ViewRevisionMismatchException exception. If you do not supply a revision you will get data for the latest revision.\r\n * @param {Date} startDate - The start date of timeline\r\n * @param {Date} endDate - The end date of timeline\r\n */\r\n getDeliveryTimelineData(project, id, revision, startDate, endDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n startDate: startDate,\r\n endDate: endDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"bdd0834e-101f-49f0-a6ae-509f384a12b4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.DeliveryViewData, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get an iteration's capacity for all teams in iteration\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n getTotalIterationCapacities(project, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"1e385ce0-396b-4273-8171-d64562c18d37\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a team's iteration by iterationId\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - ID of the iteration\r\n */\r\n deleteTeamIteration(teamContext, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c9175577-28a1-4b06-9197-8636af9f64ad\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get team's iteration by iterationId\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - ID of the iteration\r\n */\r\n getTeamIteration(teamContext, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c9175577-28a1-4b06-9197-8636af9f64ad\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsIteration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a team's iterations using timeframe filter\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} timeframe - A filter for which iterations are returned based on relative time. Only Current is supported currently.\r\n */\r\n getTeamIterations(teamContext, timeframe) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n let queryValues = {\r\n '$timeframe': timeframe,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c9175577-28a1-4b06-9197-8636af9f64ad\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsIteration, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add an iteration to the team\r\n *\r\n * @param {WorkInterfaces.TeamSettingsIteration} iteration - Iteration to add\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n postTeamIteration(iteration, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c9175577-28a1-4b06-9197-8636af9f64ad\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, iteration, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsIteration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a new plan for the team\r\n *\r\n * @param {WorkInterfaces.CreatePlan} postedPlan - Plan definition\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPlan(postedPlan, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0b42cb47-cd73-4810-ac90-19c9ba147453\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, postedPlan, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete the specified plan\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} id - Identifier of the plan\r\n */\r\n deletePlan(project, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0b42cb47-cd73-4810-ac90-19c9ba147453\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the information for the specified plan\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} id - Identifier of the plan\r\n */\r\n getPlan(project, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0b42cb47-cd73-4810-ac90-19c9ba147453\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the information for all the plans configured for the given team\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPlans(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0b42cb47-cd73-4810-ac90-19c9ba147453\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the information for the specified plan\r\n *\r\n * @param {WorkInterfaces.UpdatePlan} updatedPlan - Plan definition to be updated\r\n * @param {string} project - Project ID or project name\r\n * @param {string} id - Identifier of the plan\r\n */\r\n updatePlan(updatedPlan, project, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0b42cb47-cd73-4810-ac90-19c9ba147453\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, updatedPlan, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get process configuration\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getProcessConfiguration(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"f901ba42-86d2-4b0c-89c1-3f86d06daa84\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get rows on a board\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Name or ID of the specific board\r\n */\r\n getBoardRows(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0863355d-aefd-4d63-8669-984c9b7b0e78\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update rows on a board\r\n *\r\n * @param {WorkInterfaces.BoardRow[]} boardRows - List of board rows to update\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Name or ID of the specific board\r\n */\r\n updateBoardRows(boardRows, teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0863355d-aefd-4d63-8669-984c9b7b0e78\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, boardRows, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getColumns(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c6815dbe-8e7e-4ffe-9a79-e83ee712aa92\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {WorkInterfaces.UpdateTaskboardColumn[]} updateColumns\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateColumns(updateColumns, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c6815dbe-8e7e-4ffe-9a79-e83ee712aa92\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, updateColumns, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId\r\n */\r\n getWorkItemColumns(teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"1be23c36-8872-4abc-b57d-402cd6c669d9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {WorkInterfaces.UpdateTaskboardWorkItemColumn} updateColumn\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId\r\n * @param {number} workItemId\r\n */\r\n updateWorkItemColumn(updateColumn, teamContext, iterationId, workItemId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId,\r\n workItemId: workItemId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"1be23c36-8872-4abc-b57d-402cd6c669d9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateColumn, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get team's days off for an iteration\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n getTeamDaysOff(teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"2d4faa2e-9150-4cbf-a47a-932b1b4a0773\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsDaysOff, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Set a team's days off for an iteration\r\n *\r\n * @param {WorkInterfaces.TeamSettingsDaysOffPatch} daysOffPatch - Team's days off patch containing a list of start and end dates\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n updateTeamDaysOff(daysOffPatch, teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"2d4faa2e-9150-4cbf-a47a-932b1b4a0773\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, daysOffPatch, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsDaysOff, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a collection of team field values\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getTeamFieldValues(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"07ced576-58ed-49e6-9c1e-5cb53ab8bf2a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update team field values\r\n *\r\n * @param {WorkInterfaces.TeamFieldValuesPatch} patch\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateTeamFieldValues(patch, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"07ced576-58ed-49e6-9c1e-5cb53ab8bf2a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, patch, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a team's settings\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getTeamSettings(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c3c1012b-bea7-49d7-b45e-1664e566f84c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSetting, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a team's settings\r\n *\r\n * @param {WorkInterfaces.TeamSettingsPatch} teamSettingsPatch - TeamSettings changes\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateTeamSettings(teamSettingsPatch, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c3c1012b-bea7-49d7-b45e-1664e566f84c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, teamSettingsPatch, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSetting, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get work items for iteration\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n getIterationWorkItems(teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"5b3ef1a6-d3ab-44cd-bafd-c7f45db850fa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Reorder Product Backlog/Boards Work Items\r\n *\r\n * @param {WorkInterfaces.ReorderOperation} operation\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n reorderBacklogWorkItems(operation, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"1c22b714-e7e4-41b9-85e0-56ee13ef55ed\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, operation, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Reorder Sprint Backlog/Taskboard Work Items\r\n *\r\n * @param {WorkInterfaces.ReorderOperation} operation\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - The id of the iteration\r\n */\r\n reorderIterationWorkItems(operation, teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"47755db2-d7eb-405a-8c25-675401525fc9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, operation, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nWorkApi.RESOURCE_AREA_ID = \"1d4f49f9-02b9-4e26-b826-2cdb6195f2a9\";\r\nexports.WorkApi = WorkApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst WorkItemTrackingInterfaces = require(\"./interfaces/WorkItemTrackingInterfaces\");\r\nclass WorkItemTrackingApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-WorkItemTracking-api', options);\r\n }\r\n /**\r\n * INTERNAL ONLY: USED BY ACCOUNT MY WORK PAGE. This returns Doing, Done, Follows and activity work items details.\r\n *\r\n * @param {WorkItemTrackingInterfaces.QueryOption} queryOption\r\n */\r\n getAccountMyWorkData(queryOption) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n '$queryOption': queryOption,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"def3d688-ddf5-4096-9024-69beea15cdbd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.AccountMyWorkResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets recent work item activities\r\n *\r\n */\r\n getRecentActivityData() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"1bc988f4-c15f-4072-ad35-497c87e3a909\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.AccountRecentActivityWorkItemModel2, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * INTERNAL ONLY: USED BY ACCOUNT MY WORK PAGE.\r\n *\r\n */\r\n getRecentMentions() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"d60eeb6e-e18c-4478-9e94-a0094e28f41c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.AccountRecentMentionWorkItemModel, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the list of work item tracking outbound artifact link types.\r\n *\r\n */\r\n getWorkArtifactLinkTypes() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"1a31de40-e318-41cd-a6c6-881077df52e3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Queries work items linked to a given list of artifact URI.\r\n *\r\n * @param {WorkItemTrackingInterfaces.ArtifactUriQuery} artifactUriQuery - Defines a list of artifact URI for querying work items.\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryWorkItemsForArtifactUris(artifactUriQuery, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"a9a9aa7a-8c09-44d3-ad1b-46e855c1e3d3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, artifactUriQuery, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Uploads an attachment.\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} fileName - The name of the file\r\n * @param {string} uploadType - Attachment upload type: Simple or Chunked\r\n * @param {string} project - Project ID or project name\r\n * @param {string} areaPath - Target project Area Path\r\n */\r\n createAttachment(customHeaders, contentStream, fileName, uploadType, project, areaPath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fileName: fileName,\r\n uploadType: uploadType,\r\n areaPath: areaPath,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"e07b5fa4-1499-494d-a496-64b860fd64ff\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Downloads an attachment.\r\n *\r\n * @param {string} id - Attachment ID\r\n * @param {string} fileName - Name of the file\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} download - If set to true always download attachment\r\n */\r\n getAttachmentContent(id, fileName, project, download) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n fileName: fileName,\r\n download: download,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"e07b5fa4-1499-494d-a496-64b860fd64ff\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Downloads an attachment.\r\n *\r\n * @param {string} id - Attachment ID\r\n * @param {string} fileName - Name of the file\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} download - If set to true always download attachment\r\n */\r\n getAttachmentZip(id, fileName, project, download) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n fileName: fileName,\r\n download: download,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"e07b5fa4-1499-494d-a496-64b860fd64ff\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets root classification nodes or list of classification nodes for a given list of nodes ids, for a given project. In case ids parameter is supplied you will get list of classification nodes for those ids. Otherwise you will get root classification nodes for this project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number[]} ids - Comma separated integer classification nodes ids. It's not required, if you want root nodes.\r\n * @param {number} depth - Depth of children to fetch.\r\n * @param {WorkItemTrackingInterfaces.ClassificationNodesErrorPolicy} errorPolicy - Flag to handle errors in getting some nodes. Possible options are Fail and Omit.\r\n */\r\n getClassificationNodes(project, ids, depth, errorPolicy) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n '$depth': depth,\r\n errorPolicy: errorPolicy,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a70579d1-f53a-48ee-a5be-7be8659023b9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets root classification nodes under the project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} depth - Depth of children to fetch.\r\n */\r\n getRootNodes(project, depth) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$depth': depth,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a70579d1-f53a-48ee-a5be-7be8659023b9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create new or update an existing classification node.\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemClassificationNode} postedNode - Node to create or update.\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration.\r\n * @param {string} path - Path of the classification node.\r\n */\r\n createOrUpdateClassificationNode(postedNode, project, structureGroup, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n structureGroup: structureGroup,\r\n path: path\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"5a172953-1b41-49d3-840a-33f79c3ce89f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, postedNode, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete an existing classification node.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration.\r\n * @param {string} path - Path of the classification node.\r\n * @param {number} reclassifyId - Id of the target classification node for reclassification.\r\n */\r\n deleteClassificationNode(project, structureGroup, path, reclassifyId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n structureGroup: structureGroup,\r\n path: path\r\n };\r\n let queryValues = {\r\n '$reclassifyId': reclassifyId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"5a172953-1b41-49d3-840a-33f79c3ce89f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the classification node for a given node path.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration.\r\n * @param {string} path - Path of the classification node.\r\n * @param {number} depth - Depth of children to fetch.\r\n */\r\n getClassificationNode(project, structureGroup, path, depth) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n structureGroup: structureGroup,\r\n path: path\r\n };\r\n let queryValues = {\r\n '$depth': depth,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"5a172953-1b41-49d3-840a-33f79c3ce89f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update an existing classification node.\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemClassificationNode} postedNode - Node to create or update.\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration.\r\n * @param {string} path - Path of the classification node.\r\n */\r\n updateClassificationNode(postedNode, project, structureGroup, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n structureGroup: structureGroup,\r\n path: path\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"5a172953-1b41-49d3-840a-33f79c3ce89f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, postedNode, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get users who reacted on the comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - WorkItem ID.\r\n * @param {number} commentId - Comment ID.\r\n * @param {WorkItemTrackingInterfaces.CommentReactionType} reactionType - Type of the reaction.\r\n * @param {number} top\r\n * @param {number} skip\r\n */\r\n getEngagedUsers(project, workItemId, commentId, reactionType, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId,\r\n reactionType: reactionType\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"e33ca5e0-2349-4285-af3d-d72d86781c35\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a comment on a work item.\r\n *\r\n * @param {WorkItemTrackingInterfaces.CommentCreate} request - Comment create request.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item.\r\n */\r\n addComment(request, project, workItemId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, request, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a comment on a work item.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item.\r\n * @param {number} commentId\r\n */\r\n deleteComment(project, workItemId, commentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a work item comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item to get the comment.\r\n * @param {number} commentId - Id of the comment to return.\r\n * @param {boolean} includeDeleted - Specify if the deleted comment should be retrieved.\r\n * @param {WorkItemTrackingInterfaces.CommentExpandOptions} expand - Specifies the additional data retrieval options for work item comments.\r\n */\r\n getComment(project, workItemId, commentId, includeDeleted, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId\r\n };\r\n let queryValues = {\r\n includeDeleted: includeDeleted,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of work item comments, pageable.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item to get comments for.\r\n * @param {number} top - Max number of comments to return.\r\n * @param {string} continuationToken - Used to query for the next page of comments.\r\n * @param {boolean} includeDeleted - Specify if the deleted comments should be retrieved.\r\n * @param {WorkItemTrackingInterfaces.CommentExpandOptions} expand - Specifies the additional data retrieval options for work item comments.\r\n * @param {WorkItemTrackingInterfaces.CommentSortOrder} order - Order in which the comments should be returned.\r\n */\r\n getComments(project, workItemId, top, continuationToken, includeDeleted, expand, order) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n includeDeleted: includeDeleted,\r\n '$expand': expand,\r\n order: order,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentList, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of work item comments by ids.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item to get comments for.\r\n * @param {number[]} ids - Comma-separated list of comment ids to return.\r\n * @param {boolean} includeDeleted - Specify if the deleted comments should be retrieved.\r\n * @param {WorkItemTrackingInterfaces.CommentExpandOptions} expand - Specifies the additional data retrieval options for work item comments.\r\n */\r\n getCommentsBatch(project, workItemId, ids, includeDeleted, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId\r\n };\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n includeDeleted: includeDeleted,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentList, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a comment on a work item.\r\n *\r\n * @param {WorkItemTrackingInterfaces.CommentUpdate} request - Comment update request.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item.\r\n * @param {number} commentId\r\n */\r\n updateComment(request, project, workItemId, commentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, request, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a new reaction to a comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - WorkItem ID\r\n * @param {number} commentId - Comment ID\r\n * @param {WorkItemTrackingInterfaces.CommentReactionType} reactionType - Type of the reaction\r\n */\r\n createCommentReaction(project, workItemId, commentId, reactionType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId,\r\n reactionType: reactionType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"f6cb3f27-1028-4851-af96-887e570dc21f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentReaction, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes an existing reaction on a comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - WorkItem ID\r\n * @param {number} commentId - Comment ID\r\n * @param {WorkItemTrackingInterfaces.CommentReactionType} reactionType - Type of the reaction\r\n */\r\n deleteCommentReaction(project, workItemId, commentId, reactionType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId,\r\n reactionType: reactionType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"f6cb3f27-1028-4851-af96-887e570dc21f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentReaction, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets reactions of a comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - WorkItem ID\r\n * @param {number} commentId - Comment ID\r\n */\r\n getCommentReactions(project, workItemId, commentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"f6cb3f27-1028-4851-af96-887e570dc21f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentReaction, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId\r\n * @param {number} commentId\r\n * @param {number} version\r\n */\r\n getCommentVersion(project, workItemId, commentId, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"49e03b34-3be0-42e3-8a5d-e8dfb88ac954\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentVersion, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId\r\n * @param {number} commentId\r\n */\r\n getCommentVersions(project, workItemId, commentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"49e03b34-3be0-42e3-8a5d-e8dfb88ac954\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentVersion, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a new field.\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemField} workItemField - New field definition\r\n * @param {string} project - Project ID or project name\r\n */\r\n createField(workItemField, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemField, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the field. To undelete a filed, see \"Update Field\" API.\r\n *\r\n * @param {string} fieldNameOrRefName - Field simple name or reference name\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteField(fieldNameOrRefName, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fieldNameOrRefName: fieldNameOrRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets information on a specific field.\r\n *\r\n * @param {string} fieldNameOrRefName - Field simple name or reference name\r\n * @param {string} project - Project ID or project name\r\n */\r\n getField(fieldNameOrRefName, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fieldNameOrRefName: fieldNameOrRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns information for all fields. The project ID/name parameter is optional.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.GetFieldsExpand} expand - Use ExtensionFields to include extension fields, otherwise exclude them. Unless the feature flag for this parameter is enabled, extension fields are always included.\r\n */\r\n getFields(project, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a field.\r\n *\r\n * @param {WorkItemTrackingInterfaces.UpdateWorkItemField} payload - Payload contains desired value of the field's properties\r\n * @param {string} fieldNameOrRefName - Name/reference name of the field to be updated\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateField(payload, fieldNameOrRefName, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fieldNameOrRefName: fieldNameOrRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, payload, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Migrates a project to a different process within the same OOB type. For example, you can only migrate a project from agile/custom-agile to agile/custom-agile.\r\n *\r\n * @param {WorkItemTrackingInterfaces.ProcessIdModel} newProcess\r\n * @param {string} project - Project ID or project name\r\n */\r\n migrateProjectsProcess(newProcess, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"19801631-d4e5-47e9-8166-0330de0ff1e6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, newProcess, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a query, or moves a query.\r\n *\r\n * @param {WorkItemTrackingInterfaces.QueryHierarchyItem} postedQuery - The query to create.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} query - The parent id or path under which the query is to be created.\r\n * @param {boolean} validateWiqlOnly - If you only want to validate your WIQL query without actually creating one, set it to true. Default is false.\r\n */\r\n createQuery(postedQuery, project, query, validateWiqlOnly) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n query: query\r\n };\r\n let queryValues = {\r\n validateWiqlOnly: validateWiqlOnly,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, postedQuery, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a query or a folder. This deletes any permission change on the deleted query or folder and any of its descendants if it is a folder. It is important to note that the deleted permission changes cannot be recovered upon undeleting the query or folder.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} query - ID or path of the query or folder to delete.\r\n */\r\n deleteQuery(project, query) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n query: query\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the root queries and their children\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.QueryExpand} expand - Include the query string (wiql), clauses, query result columns, and sort options in the results.\r\n * @param {number} depth - In the folder of queries, return child queries and folders to this depth.\r\n * @param {boolean} includeDeleted - Include deleted queries and folders\r\n */\r\n getQueries(project, expand, depth, includeDeleted) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n '$depth': depth,\r\n '$includeDeleted': includeDeleted,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves an individual query and its children\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} query - ID or path of the query.\r\n * @param {WorkItemTrackingInterfaces.QueryExpand} expand - Include the query string (wiql), clauses, query result columns, and sort options in the results.\r\n * @param {number} depth - In the folder of queries, return child queries and folders to this depth.\r\n * @param {boolean} includeDeleted - Include deleted queries and folders\r\n */\r\n getQuery(project, query, expand, depth, includeDeleted) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n query: query\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n '$depth': depth,\r\n '$includeDeleted': includeDeleted,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Searches all queries the user has access to in the current project\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} filter - The text to filter the queries with.\r\n * @param {number} top - The number of queries to return (Default is 50 and maximum is 200).\r\n * @param {WorkItemTrackingInterfaces.QueryExpand} expand\r\n * @param {boolean} includeDeleted - Include deleted queries and folders\r\n */\r\n searchQueries(project, filter, top, expand, includeDeleted) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (filter == null) {\r\n throw new TypeError('filter can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$filter': filter,\r\n '$top': top,\r\n '$expand': expand,\r\n '$includeDeleted': includeDeleted,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItemsResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a query or a folder. This allows you to update, rename and move queries and folders.\r\n *\r\n * @param {WorkItemTrackingInterfaces.QueryHierarchyItem} queryUpdate - The query to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} query - The ID or path for the query to update.\r\n * @param {boolean} undeleteDescendants - Undelete the children of this folder. It is important to note that this will not bring back the permission changes that were previously applied to the descendants.\r\n */\r\n updateQuery(queryUpdate, project, query, undeleteDescendants) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n query: query\r\n };\r\n let queryValues = {\r\n '$undeleteDescendants': undeleteDescendants,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, queryUpdate, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of queries by ids (Maximum 1000)\r\n *\r\n * @param {WorkItemTrackingInterfaces.QueryBatchGetRequest} queryGetRequest\r\n * @param {string} project - Project ID or project name\r\n */\r\n getQueriesBatch(queryGetRequest, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"549816f9-09b0-4e75-9e81-01fbfcd07426\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, queryGetRequest, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Destroys the specified work item permanently from the Recycle Bin. This action can not be undone.\r\n *\r\n * @param {number} id - ID of the work item to be destroyed permanently\r\n * @param {string} project - Project ID or project name\r\n */\r\n destroyWorkItem(id, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b70d8d39-926c-465e-b927-b1bf0e5ca0e0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a deleted work item from Recycle Bin.\r\n *\r\n * @param {number} id - ID of the work item to be returned\r\n * @param {string} project - Project ID or project name\r\n */\r\n getDeletedWorkItem(id, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b70d8d39-926c-465e-b927-b1bf0e5ca0e0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the work items from the recycle bin, whose IDs have been specified in the parameters\r\n *\r\n * @param {number[]} ids - Comma separated list of IDs of the deleted work items to be returned\r\n * @param {string} project - Project ID or project name\r\n */\r\n getDeletedWorkItems(ids, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b70d8d39-926c-465e-b927-b1bf0e5ca0e0\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of the IDs and the URLs of the deleted the work items in the Recycle Bin.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getDeletedWorkItemShallowReferences(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b70d8d39-926c-465e-b927-b1bf0e5ca0e0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Restores the deleted work item from Recycle Bin.\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemDeleteUpdate} payload - Paylod with instructions to update the IsDeleted flag to false\r\n * @param {number} id - ID of the work item to be restored\r\n * @param {string} project - Project ID or project name\r\n */\r\n restoreWorkItem(payload, id, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b70d8d39-926c-465e-b927-b1bf0e5ca0e0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, payload, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a fully hydrated work item for the requested revision\r\n *\r\n * @param {number} id\r\n * @param {number} revisionNumber\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRevision(id, revisionNumber, expand, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id,\r\n revisionNumber: revisionNumber\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"a00c85a5-80fa-4565-99c3-bcd2181434bb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the list of fully hydrated work item revisions, paged.\r\n *\r\n * @param {number} id\r\n * @param {number} top\r\n * @param {number} skip\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRevisions(id, top, skip, expand, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"a00c85a5-80fa-4565-99c3-bcd2181434bb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * RESTful method to send mail for selected/queried work items.\r\n *\r\n * @param {WorkItemTrackingInterfaces.SendMailBody} body\r\n * @param {string} project - Project ID or project name\r\n */\r\n sendMail(body, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"12438500-2f84-4fa7-9f1a-c31871b4959d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, body, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} tagIdOrName\r\n */\r\n deleteTag(project, tagIdOrName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n tagIdOrName: tagIdOrName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"bc15bc60-e7a8-43cb-ab01-2106be3983a1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} tagIdOrName\r\n */\r\n getTag(project, tagIdOrName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n tagIdOrName: tagIdOrName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"bc15bc60-e7a8-43cb-ab01-2106be3983a1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n */\r\n getTags(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"bc15bc60-e7a8-43cb-ab01-2106be3983a1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {WorkItemTrackingInterfaces.WorkItemTagDefinition} tagData\r\n * @param {string} project - Project ID or project name\r\n * @param {string} tagIdOrName\r\n */\r\n updateTag(tagData, project, tagIdOrName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n tagIdOrName: tagIdOrName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"bc15bc60-e7a8-43cb-ab01-2106be3983a1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, tagData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a template\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemTemplate} template - Template contents\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n createTemplate(template, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"6a90345f-a676-4969-afce-8e163e1d5642\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, template, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets template\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} workitemtypename - Optional, When specified returns templates for given Work item type.\r\n */\r\n getTemplates(teamContext, workitemtypename) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n let queryValues = {\r\n workitemtypename: workitemtypename,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"6a90345f-a676-4969-afce-8e163e1d5642\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the template with given id\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} templateId - Template id\r\n */\r\n deleteTemplate(teamContext, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"fb10264a-8836-48a0-8033-1b0ccd2748d5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the template with specified id\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} templateId - Template Id\r\n */\r\n getTemplate(teamContext, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"fb10264a-8836-48a0-8033-1b0ccd2748d5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replace template contents\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemTemplate} templateContent - Template contents to replace with\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} templateId - Template id\r\n */\r\n replaceTemplate(templateContent, teamContext, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"fb10264a-8836-48a0-8033-1b0ccd2748d5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, templateContent, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single update for a work item\r\n *\r\n * @param {number} id\r\n * @param {number} updateNumber\r\n * @param {string} project - Project ID or project name\r\n */\r\n getUpdate(id, updateNumber, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id,\r\n updateNumber: updateNumber\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"6570bf97-d02c-4a91-8d93-3abe9895b1a9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemUpdate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a the deltas between work item revisions\r\n *\r\n * @param {number} id\r\n * @param {number} top\r\n * @param {number} skip\r\n * @param {string} project - Project ID or project name\r\n */\r\n getUpdates(id, top, skip, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"6570bf97-d02c-4a91-8d93-3abe9895b1a9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemUpdate, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the results of the query given its WIQL.\r\n *\r\n * @param {WorkItemTrackingInterfaces.Wiql} wiql - The query containing the WIQL.\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {boolean} timePrecision - Whether or not to use time precision.\r\n * @param {number} top - The max number of results to return.\r\n */\r\n queryByWiql(wiql, teamContext, timePrecision, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n let queryValues = {\r\n timePrecision: timePrecision,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"1a9c53f7-f243-4447-b110-35ef023636e4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, wiql, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the results of the query given the query ID.\r\n *\r\n * @param {string} id - The query ID.\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {boolean} timePrecision - Whether or not to use time precision.\r\n * @param {number} top - The max number of results to return.\r\n */\r\n queryById(id, teamContext, timePrecision, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n let queryValues = {\r\n timePrecision: timePrecision,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a02355f5-5f8a-4671-8e32-369d23aac83d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a work item icon given the friendly name and icon color.\r\n *\r\n * @param {string} icon - The name of the icon\r\n * @param {string} color - The 6-digit hex color for the icon\r\n * @param {number} v - The version of the icon (used only for cache invalidation)\r\n */\r\n getWorkItemIconJson(icon, color, v) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n icon: icon\r\n };\r\n let queryValues = {\r\n color: color,\r\n v: v,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"4e1eb4a5-1970-4228-a682-ec48eb2dca30\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of all work item icons.\r\n *\r\n */\r\n getWorkItemIcons() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"4e1eb4a5-1970-4228-a682-ec48eb2dca30\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a work item icon given the friendly name and icon color.\r\n *\r\n * @param {string} icon - The name of the icon\r\n * @param {string} color - The 6-digit hex color for the icon\r\n * @param {number} v - The version of the icon (used only for cache invalidation)\r\n */\r\n getWorkItemIconSvg(icon, color, v) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n icon: icon\r\n };\r\n let queryValues = {\r\n color: color,\r\n v: v,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"4e1eb4a5-1970-4228-a682-ec48eb2dca30\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"image/svg+xml\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a work item icon given the friendly name and icon color.\r\n *\r\n * @param {string} icon - The name of the icon\r\n * @param {string} color - The 6-digit hex color for the icon\r\n * @param {number} v - The version of the icon (used only for cache invalidation)\r\n */\r\n getWorkItemIconXaml(icon, color, v) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n icon: icon\r\n };\r\n let queryValues = {\r\n color: color,\r\n v: v,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"4e1eb4a5-1970-4228-a682-ec48eb2dca30\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"image/xaml+xml\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a batch of work item links\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string[]} linkTypes - A list of types to filter the results to specific link types. Omit this parameter to get work item links of all link types.\r\n * @param {string[]} types - A list of types to filter the results to specific work item types. Omit this parameter to get work item links of all work item types.\r\n * @param {string} continuationToken - Specifies the continuationToken to start the batch from. Omit this parameter to get the first batch of links.\r\n * @param {Date} startDateTime - Date/time to use as a starting point for link changes. Only link changes that occurred after that date/time will be returned. Cannot be used in conjunction with 'watermark' parameter.\r\n */\r\n getReportingLinksByLinkType(project, linkTypes, types, continuationToken, startDateTime) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n linkTypes: linkTypes && linkTypes.join(\",\"),\r\n types: types && types.join(\",\"),\r\n continuationToken: continuationToken,\r\n startDateTime: startDateTime,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"b5b5b6d0-0308-40a1-b3f4-b9bb3c66878f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the work item relation type definition.\r\n *\r\n * @param {string} relation - The relation name\r\n */\r\n getRelationType(relation) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n relation: relation\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"f5d33bc9-5b49-4a3c-a9bd-f3cd46dd2165\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the work item relation types.\r\n *\r\n */\r\n getRelationTypes() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"f5d33bc9-5b49-4a3c-a9bd-f3cd46dd2165\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a batch of work item revisions with the option of including deleted items\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string[]} fields - A list of fields to return in work item revisions. Omit this parameter to get all reportable fields.\r\n * @param {string[]} types - A list of types to filter the results to specific work item types. Omit this parameter to get work item revisions of all work item types.\r\n * @param {string} continuationToken - Specifies the watermark to start the batch from. Omit this parameter to get the first batch of revisions.\r\n * @param {Date} startDateTime - Date/time to use as a starting point for revisions, all revisions will occur after this date/time. Cannot be used in conjunction with 'watermark' parameter.\r\n * @param {boolean} includeIdentityRef - Return an identity reference instead of a string value for identity fields.\r\n * @param {boolean} includeDeleted - Specify if the deleted item should be returned.\r\n * @param {boolean} includeTagRef - Specify if the tag objects should be returned for System.Tags field.\r\n * @param {boolean} includeLatestOnly - Return only the latest revisions of work items, skipping all historical revisions\r\n * @param {WorkItemTrackingInterfaces.ReportingRevisionsExpand} expand - Return all the fields in work item revisions, including long text fields which are not returned by default\r\n * @param {boolean} includeDiscussionChangesOnly - Return only the those revisions of work items, where only history field was changed\r\n * @param {number} maxPageSize - The maximum number of results to return in this batch\r\n */\r\n readReportingRevisionsGet(project, fields, types, continuationToken, startDateTime, includeIdentityRef, includeDeleted, includeTagRef, includeLatestOnly, expand, includeDiscussionChangesOnly, maxPageSize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fields: fields && fields.join(\",\"),\r\n types: types && types.join(\",\"),\r\n continuationToken: continuationToken,\r\n startDateTime: startDateTime,\r\n includeIdentityRef: includeIdentityRef,\r\n includeDeleted: includeDeleted,\r\n includeTagRef: includeTagRef,\r\n includeLatestOnly: includeLatestOnly,\r\n '$expand': expand,\r\n includeDiscussionChangesOnly: includeDiscussionChangesOnly,\r\n '$maxPageSize': maxPageSize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"f828fe59-dd87-495d-a17c-7a8d6211ca6c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a batch of work item revisions. This request may be used if your list of fields is large enough that it may run the URL over the length limit.\r\n *\r\n * @param {WorkItemTrackingInterfaces.ReportingWorkItemRevisionsFilter} filter - An object that contains request settings: field filter, type filter, identity format\r\n * @param {string} project - Project ID or project name\r\n * @param {string} continuationToken - Specifies the watermark to start the batch from. Omit this parameter to get the first batch of revisions.\r\n * @param {Date} startDateTime - Date/time to use as a starting point for revisions, all revisions will occur after this date/time. Cannot be used in conjunction with 'watermark' parameter.\r\n * @param {WorkItemTrackingInterfaces.ReportingRevisionsExpand} expand\r\n */\r\n readReportingRevisionsPost(filter, project, continuationToken, startDateTime, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n startDateTime: startDateTime,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"f828fe59-dd87-495d-a17c-7a8d6211ca6c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, filter, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} continuationToken\r\n * @param {number} maxPageSize\r\n */\r\n readReportingDiscussions(project, continuationToken, maxPageSize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n '$maxPageSize': maxPageSize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"4a644469-90c5-4fcc-9a9f-be0827d369ec\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a single work item.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} document - The JSON Patch document representing the work item\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - The work item type of the work item to create\r\n * @param {boolean} validateOnly - Indicate if you only want to validate the changes without saving the work item\r\n * @param {boolean} bypassRules - Do not enforce the work item type rules on this update\r\n * @param {boolean} suppressNotifications - Do not fire any notifications for this change\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.\r\n */\r\n createWorkItem(customHeaders, document, project, type, validateOnly, bypassRules, suppressNotifications, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n let queryValues = {\r\n validateOnly: validateOnly,\r\n bypassRules: bypassRules,\r\n suppressNotifications: suppressNotifications,\r\n '$expand': expand,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"62d3d110-0047-428c-ad3c-4fe872c91c74\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.create(url, document, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single work item from a template.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - The work item type name\r\n * @param {string} fields - Comma-separated list of requested fields\r\n * @param {Date} asOf - AsOf UTC date time string\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.\r\n */\r\n getWorkItemTemplate(project, type, fields, asOf, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n let queryValues = {\r\n fields: fields,\r\n asOf: asOf,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"62d3d110-0047-428c-ad3c-4fe872c91c74\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the specified work item and sends it to the Recycle Bin, so that it can be restored back, if required. Optionally, if the destroy parameter has been set to true, it destroys the work item permanently. WARNING: If the destroy parameter is set to true, work items deleted by this command will NOT go to recycle-bin and there is no way to restore/recover them after deletion. It is recommended NOT to use this parameter. If you do, please use this parameter with extreme caution.\r\n *\r\n * @param {number} id - ID of the work item to be deleted\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} destroy - Optional parameter, if set to true, the work item is deleted permanently. Please note: the destroy action is PERMANENT and cannot be undone.\r\n */\r\n deleteWorkItem(id, project, destroy) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n destroy: destroy,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"72c7ddf8-2cdc-4f60-90cd-ab71c14a399b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single work item.\r\n *\r\n * @param {number} id - The work item id\r\n * @param {string[]} fields - Comma-separated list of requested fields\r\n * @param {Date} asOf - AsOf UTC date time string\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWorkItem(id, fields, asOf, expand, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n fields: fields && fields.join(\",\"),\r\n asOf: asOf,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"72c7ddf8-2cdc-4f60-90cd-ab71c14a399b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of work items (Maximum 200)\r\n *\r\n * @param {number[]} ids - The comma-separated list of requested work item ids. (Maximum 200 ids allowed).\r\n * @param {string[]} fields - Comma-separated list of requested fields\r\n * @param {Date} asOf - AsOf UTC date time string\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.\r\n * @param {WorkItemTrackingInterfaces.WorkItemErrorPolicy} errorPolicy - The flag to control error policy in a bulk get work items request. Possible options are {Fail, Omit}.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWorkItems(ids, fields, asOf, expand, errorPolicy, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n fields: fields && fields.join(\",\"),\r\n asOf: asOf,\r\n '$expand': expand,\r\n errorPolicy: errorPolicy,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"72c7ddf8-2cdc-4f60-90cd-ab71c14a399b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a single work item.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} document - The JSON Patch document representing the update\r\n * @param {number} id - The id of the work item to update\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} validateOnly - Indicate if you only want to validate the changes without saving the work item\r\n * @param {boolean} bypassRules - Do not enforce the work item type rules on this update\r\n * @param {boolean} suppressNotifications - Do not fire any notifications for this change\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.\r\n */\r\n updateWorkItem(customHeaders, document, id, project, validateOnly, bypassRules, suppressNotifications, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n validateOnly: validateOnly,\r\n bypassRules: bypassRules,\r\n suppressNotifications: suppressNotifications,\r\n '$expand': expand,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"72c7ddf8-2cdc-4f60-90cd-ab71c14a399b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, document, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets work items for a list of work item ids (Maximum 200)\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemBatchGetRequest} workItemGetRequest\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWorkItemsBatch(workItemGetRequest, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"908509b6-4248-4475-a1cd-829139ba419f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemGetRequest, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * INTERNAL ONLY: It will be used for My account work experience. Get the work item type state color for multiple projects\r\n *\r\n * @param {string[]} projectNames\r\n */\r\n getWorkItemStateColors(projectNames) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"0b83df8a-3496-4ddb-ba44-63634f4cda61\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, projectNames, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the next state on the given work item IDs.\r\n *\r\n * @param {number[]} ids - list of work item ids\r\n * @param {string} action - possible actions. Currently only supports checkin\r\n */\r\n getWorkItemNextStatesOnCheckinAction(ids, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n action: action,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"afae844b-e2f6-44c2-8053-17b3bb936a40\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all work item type categories.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWorkItemTypeCategories(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"9b9f5734-36c8-415e-ba67-f83b45c31408\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get specific work item type category by name.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} category - The category name\r\n */\r\n getWorkItemTypeCategory(project, category) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n category: category\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"9b9f5734-36c8-415e-ba67-f83b45c31408\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * INTERNAL ONLY: It will be used for My account work experience. Get the wit type color for multiple projects\r\n *\r\n * @param {string[]} projectNames\r\n */\r\n getWorkItemTypeColors(projectNames) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"958fde80-115e-43fb-bd65-749c48057faf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, projectNames, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * INTERNAL ONLY: It is used for color and icon providers. Get the wit type color for multiple projects\r\n *\r\n * @param {string[]} projectNames\r\n */\r\n getWorkItemTypeColorAndIcons(projectNames) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"f0f8dc62-3975-48ce-8051-f636b68b52e3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, projectNames, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a work item type definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - Work item type name\r\n */\r\n getWorkItemType(project, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"7c8d7a76-4a09-43e8-b5df-bd792f4ac6aa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the list of work item types\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWorkItemTypes(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"7c8d7a76-4a09-43e8-b5df-bd792f4ac6aa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of fields for a work item type with detailed references.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - Work item type.\r\n * @param {WorkItemTrackingInterfaces.WorkItemTypeFieldsExpandLevel} expand - Expand level for the API response. Properties: to include allowedvalues, default value, isRequired etc. as a part of response; None: to skip these properties.\r\n */\r\n getWorkItemTypeFieldsWithReferences(project, type, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"bd293ce5-3d25-4192-8e67-e8092e879efb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a field for a work item type with detailed references.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - Work item type.\r\n * @param {string} field\r\n * @param {WorkItemTrackingInterfaces.WorkItemTypeFieldsExpandLevel} expand - Expand level for the API response. Properties: to include allowedvalues, default value, isRequired etc. as a part of response; None: to skip these properties.\r\n */\r\n getWorkItemTypeFieldWithReferences(project, type, field, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type,\r\n field: field\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"bd293ce5-3d25-4192-8e67-e8092e879efb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the state names and colors for a work item type.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - The state name\r\n */\r\n getWorkItemTypeStates(project, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"7c9d7a76-4a09-43e8-b5df-bd792f4ac6aa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Export work item type\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type\r\n * @param {boolean} exportGlobalLists\r\n */\r\n exportWorkItemTypeDefinition(project, type, exportGlobalLists) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n let queryValues = {\r\n exportGlobalLists: exportGlobalLists,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"8637ac8b-5eb6-4f90-b3f7-4f2ff576a459\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add/updates a work item type\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemTypeTemplateUpdateModel} updateModel\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateWorkItemTypeDefinition(updateModel, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"8637ac8b-5eb6-4f90-b3f7-4f2ff576a459\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, updateModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nWorkItemTrackingApi.RESOURCE_AREA_ID = \"5264459e-e5e0-4bd8-b118-0985e68a4ec5\";\r\nexports.WorkItemTrackingApi = WorkItemTrackingApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst WorkItemTrackingProcessInterfaces = require(\"./interfaces/WorkItemTrackingProcessInterfaces\");\r\nclass WorkItemTrackingProcessApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-WorkItemTracking-api', options);\r\n }\r\n /**\r\n * Creates a single behavior in the given process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.ProcessBehaviorCreateRequest} behavior\r\n * @param {string} processId - The ID of the process\r\n */\r\n createProcessBehavior(behavior, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"d1800200-f184-4e75-a5f2-ad0b04b4373e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, behavior, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a behavior in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n deleteProcessBehavior(processId, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"d1800200-f184-4e75-a5f2-ad0b04b4373e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a behavior of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n * @param {WorkItemTrackingProcessInterfaces.GetBehaviorsExpand} expand\r\n */\r\n getProcessBehavior(processId, behaviorRefName, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorRefName: behaviorRefName\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"d1800200-f184-4e75-a5f2-ad0b04b4373e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all behaviors in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {WorkItemTrackingProcessInterfaces.GetBehaviorsExpand} expand\r\n */\r\n getProcessBehaviors(processId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"d1800200-f184-4e75-a5f2-ad0b04b4373e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replaces a behavior in the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.ProcessBehaviorUpdateRequest} behaviorData\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n updateProcessBehavior(behaviorData, processId, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"d1800200-f184-4e75-a5f2-ad0b04b4373e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, behaviorData, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a control in a group.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Control} control - The control.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} groupId - The ID of the group to add the control to.\r\n */\r\n createControlInGroup(control, processId, witRefName, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a control to a specified group.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Control} control - The control.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} groupId - The ID of the group to move the control to.\r\n * @param {string} controlId - The ID of the control.\r\n * @param {string} removeFromGroupId - The group ID to remove the control from.\r\n */\r\n moveControlToGroup(control, processId, witRefName, groupId, controlId, removeFromGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n let queryValues = {\r\n removeFromGroupId: removeFromGroupId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a control from the work item form.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} groupId - The ID of the group.\r\n * @param {string} controlId - The ID of the control to remove.\r\n */\r\n removeControlFromGroup(processId, witRefName, groupId, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a control on the work item form.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Control} control - The updated control.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} groupId - The ID of the group.\r\n * @param {string} controlId - The ID of the control.\r\n */\r\n updateControl(control, processId, witRefName, groupId, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a field to a work item type.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.AddProcessWorkItemTypeFieldRequest} field\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n addFieldToWorkItemType(field, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"bc0ad8dc-e3f3-46b0-b06c-5bf861793196\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all fields in a work item type.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n getAllWorkItemTypeFields(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"bc0ad8dc-e3f3-46b0-b06c-5bf861793196\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a field in a work item type.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} fieldRefName - The reference name of the field.\r\n * @param {WorkItemTrackingProcessInterfaces.ProcessWorkItemTypeFieldsExpandLevel} expand\r\n */\r\n getWorkItemTypeField(processId, witRefName, fieldRefName, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n fieldRefName: fieldRefName\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"bc0ad8dc-e3f3-46b0-b06c-5bf861793196\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a field from a work item type. Does not permanently delete the field.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} fieldRefName - The reference name of the field.\r\n */\r\n removeWorkItemTypeField(processId, witRefName, fieldRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n fieldRefName: fieldRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"bc0ad8dc-e3f3-46b0-b06c-5bf861793196\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a field in a work item type.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.UpdateProcessWorkItemTypeFieldRequest} field\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} fieldRefName - The reference name of the field.\r\n */\r\n updateWorkItemTypeField(field, processId, witRefName, fieldRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n fieldRefName: fieldRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"bc0ad8dc-e3f3-46b0-b06c-5bf861793196\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a group to the work item form.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Group} group - The group.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} pageId - The ID of the page to add the group to.\r\n * @param {string} sectionId - The ID of the section to add the group to.\r\n */\r\n addGroup(group, processId, witRefName, pageId, sectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"766e44e1-36a8-41d7-9050-c343ff02f7a5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a group to a different page and section.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Group} group - The updated group.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} pageId - The ID of the page the group is in.\r\n * @param {string} sectionId - The ID of the section the group is i.n\r\n * @param {string} groupId - The ID of the group.\r\n * @param {string} removeFromPageId - ID of the page to remove the group from.\r\n * @param {string} removeFromSectionId - ID of the section to remove the group from.\r\n */\r\n moveGroupToPage(group, processId, witRefName, pageId, sectionId, groupId, removeFromPageId, removeFromSectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (removeFromPageId == null) {\r\n throw new TypeError('removeFromPageId can not be null or undefined');\r\n }\r\n if (removeFromSectionId == null) {\r\n throw new TypeError('removeFromSectionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n let queryValues = {\r\n removeFromPageId: removeFromPageId,\r\n removeFromSectionId: removeFromSectionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"766e44e1-36a8-41d7-9050-c343ff02f7a5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a group to a different section.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Group} group - The updated group.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} pageId - The ID of the page the group is in.\r\n * @param {string} sectionId - The ID of the section the group is in.\r\n * @param {string} groupId - The ID of the group.\r\n * @param {string} removeFromSectionId - ID of the section to remove the group from.\r\n */\r\n moveGroupToSection(group, processId, witRefName, pageId, sectionId, groupId, removeFromSectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (removeFromSectionId == null) {\r\n throw new TypeError('removeFromSectionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n let queryValues = {\r\n removeFromSectionId: removeFromSectionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"766e44e1-36a8-41d7-9050-c343ff02f7a5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a group from the work item form.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page the group is in\r\n * @param {string} sectionId - The ID of the section to the group is in\r\n * @param {string} groupId - The ID of the group\r\n */\r\n removeGroup(processId, witRefName, pageId, sectionId, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"766e44e1-36a8-41d7-9050-c343ff02f7a5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a group in the work item form.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Group} group - The updated group.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} pageId - The ID of the page the group is in.\r\n * @param {string} sectionId - The ID of the section the group is in.\r\n * @param {string} groupId - The ID of the group.\r\n */\r\n updateGroup(group, processId, witRefName, pageId, sectionId, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"766e44e1-36a8-41d7-9050-c343ff02f7a5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the form layout.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n getFormLayout(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"fa8646eb-43cd-4b71-9564-40106fd63e40\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.FormLayout, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a picklist.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.PickList} picklist - Picklist\r\n */\r\n createList(picklist) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"01e15468-e27c-4e20-a974-bd957dcccebc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, picklist, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a picklist.\r\n *\r\n * @param {string} listId - The ID of the list\r\n */\r\n deleteList(listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"01e15468-e27c-4e20-a974-bd957dcccebc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a picklist.\r\n *\r\n * @param {string} listId - The ID of the list\r\n */\r\n getList(listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"01e15468-e27c-4e20-a974-bd957dcccebc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns meta data of the picklist.\r\n *\r\n */\r\n getListsMetadata() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"01e15468-e27c-4e20-a974-bd957dcccebc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a list.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.PickList} picklist\r\n * @param {string} listId - The ID of the list\r\n */\r\n updateList(picklist, listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"01e15468-e27c-4e20-a974-bd957dcccebc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, picklist, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a page to the work item form.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Page} page - The page.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n addPage(page, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1cc7b29f-6697-4d9d-b0a1-2650d3e1d584\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, page, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.Page, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a page from the work item form\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page\r\n */\r\n removePage(processId, witRefName, pageId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1cc7b29f-6697-4d9d-b0a1-2650d3e1d584\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a page on the work item form\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Page} page - The page\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n updatePage(page, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1cc7b29f-6697-4d9d-b0a1-2650d3e1d584\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, page, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.Page, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.CreateProcessModel} createRequest - CreateProcessModel.\r\n */\r\n createNewProcess(createRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"02cc6a73-5cfb-427d-8c8e-b49fb086e8af\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, createRequest, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a process of a specific ID.\r\n *\r\n * @param {string} processTypeId\r\n */\r\n deleteProcessById(processTypeId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processTypeId: processTypeId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"02cc6a73-5cfb-427d-8c8e-b49fb086e8af\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Edit a process of a specific ID.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.UpdateProcessModel} updateRequest\r\n * @param {string} processTypeId\r\n */\r\n editProcess(updateRequest, processTypeId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processTypeId: processTypeId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"02cc6a73-5cfb-427d-8c8e-b49fb086e8af\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateRequest, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get list of all processes including system and inherited.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.GetProcessExpandLevel} expand\r\n */\r\n getListOfProcesses(expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"02cc6a73-5cfb-427d-8c8e-b49fb086e8af\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single process of a specified ID.\r\n *\r\n * @param {string} processTypeId\r\n * @param {WorkItemTrackingProcessInterfaces.GetProcessExpandLevel} expand\r\n */\r\n getProcessByItsId(processTypeId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processTypeId: processTypeId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"02cc6a73-5cfb-427d-8c8e-b49fb086e8af\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a rule to work item type in the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.CreateProcessRuleRequest} processRuleCreate\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n addProcessWorkItemTypeRule(processRuleCreate, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"76fe3432-d825-479d-a5f6-983bbb78b4f3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, processRuleCreate, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a rule from the work item type in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} ruleId - The ID of the rule\r\n */\r\n deleteProcessWorkItemTypeRule(processId, witRefName, ruleId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n ruleId: ruleId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"76fe3432-d825-479d-a5f6-983bbb78b4f3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single rule in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} ruleId - The ID of the rule\r\n */\r\n getProcessWorkItemTypeRule(processId, witRefName, ruleId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n ruleId: ruleId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"76fe3432-d825-479d-a5f6-983bbb78b4f3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all rules in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n getProcessWorkItemTypeRules(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"76fe3432-d825-479d-a5f6-983bbb78b4f3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a rule in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.UpdateProcessRuleRequest} processRule\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} ruleId - The ID of the rule\r\n */\r\n updateProcessWorkItemTypeRule(processRule, processId, witRefName, ruleId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n ruleId: ruleId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"76fe3432-d825-479d-a5f6-983bbb78b4f3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, processRule, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a state definition in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.WorkItemStateInputModel} stateModel\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n createStateDefinition(stateModel, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, stateModel, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a state definition in the work item type of the process.\r\n *\r\n * @param {string} processId - ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - ID of the state\r\n */\r\n deleteStateDefinition(processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single state definition in a work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - The ID of the state\r\n */\r\n getStateDefinition(processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all state definitions in a work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n getStateDefinitions(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Hides a state definition in the work item type of the process.Only states with customizationType:System can be hidden.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.HideStateModel} hideStateModel\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - The ID of the state\r\n */\r\n hideStateDefinition(hideStateModel, processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, hideStateModel, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a given state definition in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.WorkItemStateInputModel} stateModel\r\n * @param {string} processId - ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - ID of the state\r\n */\r\n updateStateDefinition(stateModel, processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, stateModel, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a system control modification on the work item form.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} controlId - The ID of the control.\r\n */\r\n deleteSystemControl(processId, witRefName, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"ff9a3d2c-32b7-4c6c-991c-d5a251fb9098\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets edited system controls for a work item type in a process. To get all system controls (base + edited) use layout API(s)\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n getSystemControls(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"ff9a3d2c-32b7-4c6c-991c-d5a251fb9098\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates/adds a system control on the work item form.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Control} control\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} controlId - The ID of the control.\r\n */\r\n updateSystemControl(control, processId, witRefName, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"ff9a3d2c-32b7-4c6c-991c-d5a251fb9098\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a work item type in the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.CreateProcessWorkItemTypeRequest} workItemType\r\n * @param {string} processId - The ID of the process on which to create work item type.\r\n */\r\n createProcessWorkItemType(workItemType, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"e2e9d1a6-432d-4062-8870-bfcb8c324ad7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemType, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a work itewm type in the process.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n deleteProcessWorkItemType(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"e2e9d1a6-432d-4062-8870-bfcb8c324ad7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single work item type in a process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {WorkItemTrackingProcessInterfaces.GetWorkItemTypeExpand} expand - Flag to determine what properties of work item type to return\r\n */\r\n getProcessWorkItemType(processId, witRefName, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"e2e9d1a6-432d-4062-8870-bfcb8c324ad7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all work item types in a process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {WorkItemTrackingProcessInterfaces.GetWorkItemTypeExpand} expand - Flag to determine what properties of work item type to return\r\n */\r\n getProcessWorkItemTypes(processId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"e2e9d1a6-432d-4062-8870-bfcb8c324ad7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.UpdateProcessWorkItemTypeRequest} workItemTypeUpdate\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n updateProcessWorkItemType(workItemTypeUpdate, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"e2e9d1a6-432d-4062-8870-bfcb8c324ad7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, workItemTypeUpdate, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a behavior to the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.WorkItemTypeBehavior} behavior\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n addBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"6d765a2e-4e1b-4b11-be93-f953be676024\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, behavior, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a behavior for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n getBehaviorForWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"6d765a2e-4e1b-4b11-be93-f953be676024\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all behaviors for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n getBehaviorsForWorkItemType(processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"6d765a2e-4e1b-4b11-be93-f953be676024\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a behavior for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n removeBehaviorFromWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"6d765a2e-4e1b-4b11-be93-f953be676024\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a behavior for the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.WorkItemTypeBehavior} behavior\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n updateBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"6d765a2e-4e1b-4b11-be93-f953be676024\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, behavior, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nWorkItemTrackingProcessApi.RESOURCE_AREA_ID = \"5264459e-e5e0-4bd8-b118-0985e68a4ec5\";\r\nexports.WorkItemTrackingProcessApi = WorkItemTrackingProcessApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst WorkItemTrackingProcessDefinitionsInterfaces = require(\"./interfaces/WorkItemTrackingProcessDefinitionsInterfaces\");\r\nclass WorkItemTrackingProcessDefinitionsApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-WorkItemTracking-api', options);\r\n }\r\n /**\r\n * Creates a single behavior in the given process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.BehaviorCreateModel} behavior\r\n * @param {string} processId - The ID of the process\r\n */\r\n createBehavior(behavior, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"47a651f4-fb70-43bf-b96b-7c0ba947142b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, behavior, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a behavior in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorId - The ID of the behavior\r\n */\r\n deleteBehavior(processId, behaviorId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorId: behaviorId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"47a651f4-fb70-43bf-b96b-7c0ba947142b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single behavior in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorId - The ID of the behavior\r\n */\r\n getBehavior(processId, behaviorId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorId: behaviorId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"47a651f4-fb70-43bf-b96b-7c0ba947142b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all behaviors in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n */\r\n getBehaviors(processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"47a651f4-fb70-43bf-b96b-7c0ba947142b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replaces a behavior in the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.BehaviorReplaceModel} behaviorData\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorId - The ID of the behavior\r\n */\r\n replaceBehavior(behaviorData, processId, behaviorId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorId: behaviorId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"47a651f4-fb70-43bf-b96b-7c0ba947142b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, behaviorData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a control in a group\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Control} control - The control\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} groupId - The ID of the group to add the control to\r\n */\r\n addControlToGroup(control, processId, witRefName, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"e2e3166a-627a-4e9b-85b2-d6a097bbd731\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a control on the work item form\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Control} control - The updated control\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} groupId - The ID of the group\r\n * @param {string} controlId - The ID of the control\r\n */\r\n editControl(control, processId, witRefName, groupId, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"e2e3166a-627a-4e9b-85b2-d6a097bbd731\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a control from the work item form\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} groupId - The ID of the group\r\n * @param {string} controlId - The ID of the control to remove\r\n */\r\n removeControlFromGroup(processId, witRefName, groupId, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"e2e3166a-627a-4e9b-85b2-d6a097bbd731\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a control to a new group\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Control} control - The control\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} groupId - The ID of the group to move the control to\r\n * @param {string} controlId - The id of the control\r\n * @param {string} removeFromGroupId - The group to remove the control from\r\n */\r\n setControlInGroup(control, processId, witRefName, groupId, controlId, removeFromGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n let queryValues = {\r\n removeFromGroupId: removeFromGroupId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"e2e3166a-627a-4e9b-85b2-d6a097bbd731\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a single field in the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.FieldModel} field\r\n * @param {string} processId - The ID of the process\r\n */\r\n createField(field, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"f36c66c7-911d-4163-8938-d3c5d0d7f5aa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.FieldModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a given field in the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.FieldUpdate} field\r\n * @param {string} processId - The ID of the process\r\n */\r\n updateField(field, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"f36c66c7-911d-4163-8938-d3c5d0d7f5aa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.FieldModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a group to the work item form\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The group\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page to add the group to\r\n * @param {string} sectionId - The ID of the section to add the group to\r\n */\r\n addGroup(group, processId, witRefName, pageId, sectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"2617828b-e850-4375-a92a-04855704d4c3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a group in the work item form\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The updated group\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page the group is in\r\n * @param {string} sectionId - The ID of the section the group is in\r\n * @param {string} groupId - The ID of the group\r\n */\r\n editGroup(group, processId, witRefName, pageId, sectionId, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"2617828b-e850-4375-a92a-04855704d4c3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a group from the work item form\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page the group is in\r\n * @param {string} sectionId - The ID of the section to the group is in\r\n * @param {string} groupId - The ID of the group\r\n */\r\n removeGroup(processId, witRefName, pageId, sectionId, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"2617828b-e850-4375-a92a-04855704d4c3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a group to a different page and section\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The updated group\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page the group is in\r\n * @param {string} sectionId - The ID of the section the group is in\r\n * @param {string} groupId - The ID of the group\r\n * @param {string} removeFromPageId - ID of the page to remove the group from\r\n * @param {string} removeFromSectionId - ID of the section to remove the group from\r\n */\r\n setGroupInPage(group, processId, witRefName, pageId, sectionId, groupId, removeFromPageId, removeFromSectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (removeFromPageId == null) {\r\n throw new TypeError('removeFromPageId can not be null or undefined');\r\n }\r\n if (removeFromSectionId == null) {\r\n throw new TypeError('removeFromSectionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n let queryValues = {\r\n removeFromPageId: removeFromPageId,\r\n removeFromSectionId: removeFromSectionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"2617828b-e850-4375-a92a-04855704d4c3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a group to a different section\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The updated group\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page the group is in\r\n * @param {string} sectionId - The ID of the section the group is in\r\n * @param {string} groupId - The ID of the group\r\n * @param {string} removeFromSectionId - ID of the section to remove the group from\r\n */\r\n setGroupInSection(group, processId, witRefName, pageId, sectionId, groupId, removeFromSectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (removeFromSectionId == null) {\r\n throw new TypeError('removeFromSectionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n let queryValues = {\r\n removeFromSectionId: removeFromSectionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"2617828b-e850-4375-a92a-04855704d4c3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the form layout\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n getFormLayout(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"3eacc80a-ddca-4404-857a-6331aac99063\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.FormLayout, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns meta data of the picklist.\r\n *\r\n */\r\n getListsMetadata() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"b45cc931-98e3-44a1-b1cd-2e8e9c6dc1c6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a picklist.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.PickListModel} picklist\r\n */\r\n createList(picklist) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"0b6179e2-23ce-46b2-b094-2ffa5ee70286\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, picklist, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a picklist.\r\n *\r\n * @param {string} listId - The ID of the list\r\n */\r\n deleteList(listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"0b6179e2-23ce-46b2-b094-2ffa5ee70286\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a picklist.\r\n *\r\n * @param {string} listId - The ID of the list\r\n */\r\n getList(listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"0b6179e2-23ce-46b2-b094-2ffa5ee70286\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a list.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.PickListModel} picklist\r\n * @param {string} listId - The ID of the list\r\n */\r\n updateList(picklist, listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"0b6179e2-23ce-46b2-b094-2ffa5ee70286\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, picklist, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a page to the work item form\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Page} page - The page\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n addPage(page, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1b4ac126-59b2-4f37-b4df-0a48ba807edb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, page, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.Page, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a page on the work item form\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Page} page - The page\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n editPage(page, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1b4ac126-59b2-4f37-b4df-0a48ba807edb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, page, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.Page, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a page from the work item form\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page\r\n */\r\n removePage(processId, witRefName, pageId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1b4ac126-59b2-4f37-b4df-0a48ba807edb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a state definition in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemStateInputModel} stateModel\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n createStateDefinition(stateModel, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, stateModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a state definition in the work item type of the process.\r\n *\r\n * @param {string} processId - ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - ID of the state\r\n */\r\n deleteStateDefinition(processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a state definition in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - The ID of the state\r\n */\r\n getStateDefinition(processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all state definitions in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n getStateDefinitions(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Hides a state definition in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.HideStateModel} hideStateModel\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - The ID of the state\r\n */\r\n hideStateDefinition(hideStateModel, processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, hideStateModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a given state definition in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemStateInputModel} stateModel\r\n * @param {string} processId - ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - ID of the state\r\n */\r\n updateStateDefinition(stateModel, processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, stateModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a behavior to the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeBehavior} behavior\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n addBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"921dfb88-ef57-4c69-94e5-dd7da2d7031d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, behavior, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a behavior for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n getBehaviorForWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"921dfb88-ef57-4c69-94e5-dd7da2d7031d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all behaviors for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n getBehaviorsForWorkItemType(processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"921dfb88-ef57-4c69-94e5-dd7da2d7031d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a behavior for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n removeBehaviorFromWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"921dfb88-ef57-4c69-94e5-dd7da2d7031d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates default work item type for the behavior of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeBehavior} behavior\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n updateBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"921dfb88-ef57-4c69-94e5-dd7da2d7031d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, behavior, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a work item type in the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeModel} workItemType\r\n * @param {string} processId - The ID of the process\r\n */\r\n createWorkItemType(workItemType, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1ce0acad-4638-49c3-969c-04aa65ba6bea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemType, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a work itewm type in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n deleteWorkItemType(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1ce0acad-4638-49c3-969c-04aa65ba6bea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.GetWorkItemTypeExpand} expand\r\n */\r\n getWorkItemType(processId, witRefName, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1ce0acad-4638-49c3-969c-04aa65ba6bea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all work item types in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.GetWorkItemTypeExpand} expand\r\n */\r\n getWorkItemTypes(processId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1ce0acad-4638-49c3-969c-04aa65ba6bea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeUpdateModel} workItemTypeUpdate\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n updateWorkItemType(workItemTypeUpdate, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1ce0acad-4638-49c3-969c-04aa65ba6bea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, workItemTypeUpdate, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a field to the work item type in the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeFieldModel2} field\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForFields - Work item type reference name for the field\r\n */\r\n addFieldToWorkItemType(field, processId, witRefNameForFields) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForFields: witRefNameForFields\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"976713b4-a62e-499e-94dc-eeb869ea9126\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single field in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForFields - Work item type reference name for fields\r\n * @param {string} fieldRefName - The reference name of the field\r\n */\r\n getWorkItemTypeField(processId, witRefNameForFields, fieldRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForFields: witRefNameForFields,\r\n fieldRefName: fieldRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"976713b4-a62e-499e-94dc-eeb869ea9126\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all fields in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForFields - Work item type reference name for fields\r\n */\r\n getWorkItemTypeFields(processId, witRefNameForFields) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForFields: witRefNameForFields\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"976713b4-a62e-499e-94dc-eeb869ea9126\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a field in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForFields - Work item type reference name for fields\r\n * @param {string} fieldRefName - The reference name of the field\r\n */\r\n removeFieldFromWorkItemType(processId, witRefNameForFields, fieldRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForFields: witRefNameForFields,\r\n fieldRefName: fieldRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"976713b4-a62e-499e-94dc-eeb869ea9126\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a single field in the scope of the given process and work item type.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeFieldModel2} field - The model with which to update the field\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForFields - Work item type reference name for fields\r\n */\r\n updateWorkItemTypeField(field, processId, witRefNameForFields) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForFields: witRefNameForFields\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"976713b4-a62e-499e-94dc-eeb869ea9126\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nWorkItemTrackingProcessDefinitionsApi.RESOURCE_AREA_ID = \"5264459e-e5e0-4bd8-b118-0985e68a4ec5\";\r\nexports.WorkItemTrackingProcessDefinitionsApi = WorkItemTrackingProcessDefinitionsApi;\r\n","\"use strict\";\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst resthandlers = require(\"typed-rest-client/Handlers\");\r\nclass BasicCredentialHandler extends resthandlers.BasicCredentialHandler {\r\n constructor(username, password, allowCrossOriginAuthentication = true) {\r\n super(username, password, allowCrossOriginAuthentication);\r\n }\r\n}\r\nexports.BasicCredentialHandler = BasicCredentialHandler;\r\n","\"use strict\";\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst resthandlers = require(\"typed-rest-client/Handlers\");\r\nclass BearerCredentialHandler extends resthandlers.BearerCredentialHandler {\r\n constructor(token, allowCrossOriginAuthentication = true) {\r\n super(token, allowCrossOriginAuthentication);\r\n }\r\n}\r\nexports.BearerCredentialHandler = BearerCredentialHandler;\r\n","\"use strict\";\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst resthandlers = require(\"typed-rest-client/Handlers\");\r\nclass NtlmCredentialHandler extends resthandlers.NtlmCredentialHandler {\r\n constructor(username, password, workstation, domain) {\r\n super(username, password, workstation, domain);\r\n }\r\n}\r\nexports.NtlmCredentialHandler = NtlmCredentialHandler;\r\n","\"use strict\";\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst resthandlers = require(\"typed-rest-client/Handlers\");\r\nclass PersonalAccessTokenCredentialHandler extends resthandlers.PersonalAccessTokenCredentialHandler {\r\n constructor(token, allowCrossOriginAuthentication = true) {\r\n super(token, allowCrossOriginAuthentication);\r\n }\r\n}\r\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst TFS_TestManagement_Contracts = require(\"../interfaces/TestInterfaces\");\r\nconst TfsCoreInterfaces = require(\"../interfaces/CoreInterfaces\");\r\nvar AgentStatus;\r\n(function (AgentStatus) {\r\n /**\r\n * Indicates that the build agent cannot be contacted.\r\n */\r\n AgentStatus[AgentStatus[\"Unavailable\"] = 0] = \"Unavailable\";\r\n /**\r\n * Indicates that the build agent is currently available.\r\n */\r\n AgentStatus[AgentStatus[\"Available\"] = 1] = \"Available\";\r\n /**\r\n * Indicates that the build agent has taken itself offline.\r\n */\r\n AgentStatus[AgentStatus[\"Offline\"] = 2] = \"Offline\";\r\n})(AgentStatus = exports.AgentStatus || (exports.AgentStatus = {}));\r\nvar AuditAction;\r\n(function (AuditAction) {\r\n AuditAction[AuditAction[\"Add\"] = 1] = \"Add\";\r\n AuditAction[AuditAction[\"Update\"] = 2] = \"Update\";\r\n AuditAction[AuditAction[\"Delete\"] = 3] = \"Delete\";\r\n})(AuditAction = exports.AuditAction || (exports.AuditAction = {}));\r\n/**\r\n * Represents the desired scope of authorization for a build.\r\n */\r\nvar BuildAuthorizationScope;\r\n(function (BuildAuthorizationScope) {\r\n /**\r\n * The identity used should have build service account permissions scoped to the project collection. This is useful when resources for a single build are spread across multiple projects.\r\n */\r\n BuildAuthorizationScope[BuildAuthorizationScope[\"ProjectCollection\"] = 1] = \"ProjectCollection\";\r\n /**\r\n * The identity used should have build service account permissions scoped to the project in which the build definition resides. This is useful for isolation of build jobs to a particular team project to avoid any unintentional escalation of privilege attacks during a build.\r\n */\r\n BuildAuthorizationScope[BuildAuthorizationScope[\"Project\"] = 2] = \"Project\";\r\n})(BuildAuthorizationScope = exports.BuildAuthorizationScope || (exports.BuildAuthorizationScope = {}));\r\nvar BuildOptionInputType;\r\n(function (BuildOptionInputType) {\r\n BuildOptionInputType[BuildOptionInputType[\"String\"] = 0] = \"String\";\r\n BuildOptionInputType[BuildOptionInputType[\"Boolean\"] = 1] = \"Boolean\";\r\n BuildOptionInputType[BuildOptionInputType[\"StringList\"] = 2] = \"StringList\";\r\n BuildOptionInputType[BuildOptionInputType[\"Radio\"] = 3] = \"Radio\";\r\n BuildOptionInputType[BuildOptionInputType[\"PickList\"] = 4] = \"PickList\";\r\n BuildOptionInputType[BuildOptionInputType[\"MultiLine\"] = 5] = \"MultiLine\";\r\n BuildOptionInputType[BuildOptionInputType[\"BranchFilter\"] = 6] = \"BranchFilter\";\r\n})(BuildOptionInputType = exports.BuildOptionInputType || (exports.BuildOptionInputType = {}));\r\nvar BuildPhaseStatus;\r\n(function (BuildPhaseStatus) {\r\n /**\r\n * The state is not known.\r\n */\r\n BuildPhaseStatus[BuildPhaseStatus[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * The build phase completed unsuccessfully.\r\n */\r\n BuildPhaseStatus[BuildPhaseStatus[\"Failed\"] = 1] = \"Failed\";\r\n /**\r\n * The build phase completed successfully.\r\n */\r\n BuildPhaseStatus[BuildPhaseStatus[\"Succeeded\"] = 2] = \"Succeeded\";\r\n})(BuildPhaseStatus = exports.BuildPhaseStatus || (exports.BuildPhaseStatus = {}));\r\n/**\r\n * Specifies the desired ordering of builds.\r\n */\r\nvar BuildQueryOrder;\r\n(function (BuildQueryOrder) {\r\n /**\r\n * Order by finish time ascending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"FinishTimeAscending\"] = 2] = \"FinishTimeAscending\";\r\n /**\r\n * Order by finish time descending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"FinishTimeDescending\"] = 3] = \"FinishTimeDescending\";\r\n /**\r\n * Order by queue time descending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"QueueTimeDescending\"] = 4] = \"QueueTimeDescending\";\r\n /**\r\n * Order by queue time ascending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"QueueTimeAscending\"] = 5] = \"QueueTimeAscending\";\r\n /**\r\n * Order by start time descending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"StartTimeDescending\"] = 6] = \"StartTimeDescending\";\r\n /**\r\n * Order by start time ascending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"StartTimeAscending\"] = 7] = \"StartTimeAscending\";\r\n})(BuildQueryOrder = exports.BuildQueryOrder || (exports.BuildQueryOrder = {}));\r\nvar BuildReason;\r\n(function (BuildReason) {\r\n /**\r\n * No reason. This value should not be used.\r\n */\r\n BuildReason[BuildReason[\"None\"] = 0] = \"None\";\r\n /**\r\n * The build was started manually.\r\n */\r\n BuildReason[BuildReason[\"Manual\"] = 1] = \"Manual\";\r\n /**\r\n * The build was started for the trigger TriggerType.ContinuousIntegration.\r\n */\r\n BuildReason[BuildReason[\"IndividualCI\"] = 2] = \"IndividualCI\";\r\n /**\r\n * The build was started for the trigger TriggerType.BatchedContinuousIntegration.\r\n */\r\n BuildReason[BuildReason[\"BatchedCI\"] = 4] = \"BatchedCI\";\r\n /**\r\n * The build was started for the trigger TriggerType.Schedule.\r\n */\r\n BuildReason[BuildReason[\"Schedule\"] = 8] = \"Schedule\";\r\n /**\r\n * The build was started for the trigger TriggerType.ScheduleForced.\r\n */\r\n BuildReason[BuildReason[\"ScheduleForced\"] = 16] = \"ScheduleForced\";\r\n /**\r\n * The build was created by a user.\r\n */\r\n BuildReason[BuildReason[\"UserCreated\"] = 32] = \"UserCreated\";\r\n /**\r\n * The build was started manually for private validation.\r\n */\r\n BuildReason[BuildReason[\"ValidateShelveset\"] = 64] = \"ValidateShelveset\";\r\n /**\r\n * The build was started for the trigger ContinuousIntegrationType.Gated.\r\n */\r\n BuildReason[BuildReason[\"CheckInShelveset\"] = 128] = \"CheckInShelveset\";\r\n /**\r\n * The build was started by a pull request. Added in resource version 3.\r\n */\r\n BuildReason[BuildReason[\"PullRequest\"] = 256] = \"PullRequest\";\r\n /**\r\n * The build was started when another build completed.\r\n */\r\n BuildReason[BuildReason[\"BuildCompletion\"] = 512] = \"BuildCompletion\";\r\n /**\r\n * The build was started when resources in pipeline triggered it\r\n */\r\n BuildReason[BuildReason[\"ResourceTrigger\"] = 1024] = \"ResourceTrigger\";\r\n /**\r\n * The build was triggered for retention policy purposes.\r\n */\r\n BuildReason[BuildReason[\"Triggered\"] = 1967] = \"Triggered\";\r\n /**\r\n * All reasons.\r\n */\r\n BuildReason[BuildReason[\"All\"] = 2031] = \"All\";\r\n})(BuildReason = exports.BuildReason || (exports.BuildReason = {}));\r\n/**\r\n * This is not a Flags enum because we don't want to set multiple statuses on a build. However, when adding values, please stick to powers of 2 as if it were a Flags enum This will ensure that things that key off multiple result types (like labelling sources) continue to work\r\n */\r\nvar BuildResult;\r\n(function (BuildResult) {\r\n /**\r\n * No result\r\n */\r\n BuildResult[BuildResult[\"None\"] = 0] = \"None\";\r\n /**\r\n * The build completed successfully.\r\n */\r\n BuildResult[BuildResult[\"Succeeded\"] = 2] = \"Succeeded\";\r\n /**\r\n * The build completed compilation successfully but had other errors.\r\n */\r\n BuildResult[BuildResult[\"PartiallySucceeded\"] = 4] = \"PartiallySucceeded\";\r\n /**\r\n * The build completed unsuccessfully.\r\n */\r\n BuildResult[BuildResult[\"Failed\"] = 8] = \"Failed\";\r\n /**\r\n * The build was canceled before starting.\r\n */\r\n BuildResult[BuildResult[\"Canceled\"] = 32] = \"Canceled\";\r\n})(BuildResult = exports.BuildResult || (exports.BuildResult = {}));\r\nvar BuildStatus;\r\n(function (BuildStatus) {\r\n /**\r\n * No status.\r\n */\r\n BuildStatus[BuildStatus[\"None\"] = 0] = \"None\";\r\n /**\r\n * The build is currently in progress.\r\n */\r\n BuildStatus[BuildStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n /**\r\n * The build has completed.\r\n */\r\n BuildStatus[BuildStatus[\"Completed\"] = 2] = \"Completed\";\r\n /**\r\n * The build is cancelling\r\n */\r\n BuildStatus[BuildStatus[\"Cancelling\"] = 4] = \"Cancelling\";\r\n /**\r\n * The build is inactive in the queue.\r\n */\r\n BuildStatus[BuildStatus[\"Postponed\"] = 8] = \"Postponed\";\r\n /**\r\n * The build has not yet started.\r\n */\r\n BuildStatus[BuildStatus[\"NotStarted\"] = 32] = \"NotStarted\";\r\n /**\r\n * All status.\r\n */\r\n BuildStatus[BuildStatus[\"All\"] = 47] = \"All\";\r\n})(BuildStatus = exports.BuildStatus || (exports.BuildStatus = {}));\r\nvar ControllerStatus;\r\n(function (ControllerStatus) {\r\n /**\r\n * Indicates that the build controller cannot be contacted.\r\n */\r\n ControllerStatus[ControllerStatus[\"Unavailable\"] = 0] = \"Unavailable\";\r\n /**\r\n * Indicates that the build controller is currently available.\r\n */\r\n ControllerStatus[ControllerStatus[\"Available\"] = 1] = \"Available\";\r\n /**\r\n * Indicates that the build controller has taken itself offline.\r\n */\r\n ControllerStatus[ControllerStatus[\"Offline\"] = 2] = \"Offline\";\r\n})(ControllerStatus = exports.ControllerStatus || (exports.ControllerStatus = {}));\r\nvar DefinitionQuality;\r\n(function (DefinitionQuality) {\r\n DefinitionQuality[DefinitionQuality[\"Definition\"] = 1] = \"Definition\";\r\n DefinitionQuality[DefinitionQuality[\"Draft\"] = 2] = \"Draft\";\r\n})(DefinitionQuality = exports.DefinitionQuality || (exports.DefinitionQuality = {}));\r\n/**\r\n * Specifies the desired ordering of definitions.\r\n */\r\nvar DefinitionQueryOrder;\r\n(function (DefinitionQueryOrder) {\r\n /**\r\n * No order\r\n */\r\n DefinitionQueryOrder[DefinitionQueryOrder[\"None\"] = 0] = \"None\";\r\n /**\r\n * Order by created on/last modified time ascending.\r\n */\r\n DefinitionQueryOrder[DefinitionQueryOrder[\"LastModifiedAscending\"] = 1] = \"LastModifiedAscending\";\r\n /**\r\n * Order by created on/last modified time descending.\r\n */\r\n DefinitionQueryOrder[DefinitionQueryOrder[\"LastModifiedDescending\"] = 2] = \"LastModifiedDescending\";\r\n /**\r\n * Order by definition name ascending.\r\n */\r\n DefinitionQueryOrder[DefinitionQueryOrder[\"DefinitionNameAscending\"] = 3] = \"DefinitionNameAscending\";\r\n /**\r\n * Order by definition name descending.\r\n */\r\n DefinitionQueryOrder[DefinitionQueryOrder[\"DefinitionNameDescending\"] = 4] = \"DefinitionNameDescending\";\r\n})(DefinitionQueryOrder = exports.DefinitionQueryOrder || (exports.DefinitionQueryOrder = {}));\r\nvar DefinitionQueueStatus;\r\n(function (DefinitionQueueStatus) {\r\n /**\r\n * When enabled the definition queue allows builds to be queued by users, the system will queue scheduled, gated and continuous integration builds, and the queued builds will be started by the system.\r\n */\r\n DefinitionQueueStatus[DefinitionQueueStatus[\"Enabled\"] = 0] = \"Enabled\";\r\n /**\r\n * When paused the definition queue allows builds to be queued by users and the system will queue scheduled, gated and continuous integration builds. Builds in the queue will not be started by the system.\r\n */\r\n DefinitionQueueStatus[DefinitionQueueStatus[\"Paused\"] = 1] = \"Paused\";\r\n /**\r\n * When disabled the definition queue will not allow builds to be queued by users and the system will not queue scheduled, gated or continuous integration builds. Builds already in the queue will not be started by the system.\r\n */\r\n DefinitionQueueStatus[DefinitionQueueStatus[\"Disabled\"] = 2] = \"Disabled\";\r\n})(DefinitionQueueStatus = exports.DefinitionQueueStatus || (exports.DefinitionQueueStatus = {}));\r\nvar DefinitionTriggerType;\r\n(function (DefinitionTriggerType) {\r\n /**\r\n * Manual builds only.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"None\"] = 1] = \"None\";\r\n /**\r\n * A build should be started for each changeset.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"ContinuousIntegration\"] = 2] = \"ContinuousIntegration\";\r\n /**\r\n * A build should be started for multiple changesets at a time at a specified interval.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"BatchedContinuousIntegration\"] = 4] = \"BatchedContinuousIntegration\";\r\n /**\r\n * A build should be started on a specified schedule whether or not changesets exist.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"Schedule\"] = 8] = \"Schedule\";\r\n /**\r\n * A validation build should be started for each check-in.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"GatedCheckIn\"] = 16] = \"GatedCheckIn\";\r\n /**\r\n * A validation build should be started for each batch of check-ins.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"BatchedGatedCheckIn\"] = 32] = \"BatchedGatedCheckIn\";\r\n /**\r\n * A build should be triggered when a GitHub pull request is created or updated. Added in resource version 3\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"PullRequest\"] = 64] = \"PullRequest\";\r\n /**\r\n * A build should be triggered when another build completes.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"BuildCompletion\"] = 128] = \"BuildCompletion\";\r\n /**\r\n * All types.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"All\"] = 255] = \"All\";\r\n})(DefinitionTriggerType = exports.DefinitionTriggerType || (exports.DefinitionTriggerType = {}));\r\nvar DefinitionType;\r\n(function (DefinitionType) {\r\n DefinitionType[DefinitionType[\"Xaml\"] = 1] = \"Xaml\";\r\n DefinitionType[DefinitionType[\"Build\"] = 2] = \"Build\";\r\n})(DefinitionType = exports.DefinitionType || (exports.DefinitionType = {}));\r\nvar DeleteOptions;\r\n(function (DeleteOptions) {\r\n /**\r\n * No data should be deleted. This value should not be used.\r\n */\r\n DeleteOptions[DeleteOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * The drop location should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"DropLocation\"] = 1] = \"DropLocation\";\r\n /**\r\n * The test results should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"TestResults\"] = 2] = \"TestResults\";\r\n /**\r\n * The version control label should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"Label\"] = 4] = \"Label\";\r\n /**\r\n * The build should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"Details\"] = 8] = \"Details\";\r\n /**\r\n * Published symbols should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"Symbols\"] = 16] = \"Symbols\";\r\n /**\r\n * All data should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"All\"] = 31] = \"All\";\r\n})(DeleteOptions = exports.DeleteOptions || (exports.DeleteOptions = {}));\r\n/**\r\n * Specifies the desired ordering of folders.\r\n */\r\nvar FolderQueryOrder;\r\n(function (FolderQueryOrder) {\r\n /**\r\n * No order\r\n */\r\n FolderQueryOrder[FolderQueryOrder[\"None\"] = 0] = \"None\";\r\n /**\r\n * Order by folder name and path ascending.\r\n */\r\n FolderQueryOrder[FolderQueryOrder[\"FolderAscending\"] = 1] = \"FolderAscending\";\r\n /**\r\n * Order by folder name and path descending.\r\n */\r\n FolderQueryOrder[FolderQueryOrder[\"FolderDescending\"] = 2] = \"FolderDescending\";\r\n})(FolderQueryOrder = exports.FolderQueryOrder || (exports.FolderQueryOrder = {}));\r\nvar GetOption;\r\n(function (GetOption) {\r\n /**\r\n * Use the latest changeset at the time the build is queued.\r\n */\r\n GetOption[GetOption[\"LatestOnQueue\"] = 0] = \"LatestOnQueue\";\r\n /**\r\n * Use the latest changeset at the time the build is started.\r\n */\r\n GetOption[GetOption[\"LatestOnBuild\"] = 1] = \"LatestOnBuild\";\r\n /**\r\n * A user-specified version has been supplied.\r\n */\r\n GetOption[GetOption[\"Custom\"] = 2] = \"Custom\";\r\n})(GetOption = exports.GetOption || (exports.GetOption = {}));\r\nvar IssueType;\r\n(function (IssueType) {\r\n IssueType[IssueType[\"Error\"] = 1] = \"Error\";\r\n IssueType[IssueType[\"Warning\"] = 2] = \"Warning\";\r\n})(IssueType = exports.IssueType || (exports.IssueType = {}));\r\nvar ProcessTemplateType;\r\n(function (ProcessTemplateType) {\r\n /**\r\n * Indicates a custom template.\r\n */\r\n ProcessTemplateType[ProcessTemplateType[\"Custom\"] = 0] = \"Custom\";\r\n /**\r\n * Indicates a default template.\r\n */\r\n ProcessTemplateType[ProcessTemplateType[\"Default\"] = 1] = \"Default\";\r\n /**\r\n * Indicates an upgrade template.\r\n */\r\n ProcessTemplateType[ProcessTemplateType[\"Upgrade\"] = 2] = \"Upgrade\";\r\n})(ProcessTemplateType = exports.ProcessTemplateType || (exports.ProcessTemplateType = {}));\r\nvar QueryDeletedOption;\r\n(function (QueryDeletedOption) {\r\n /**\r\n * Include only non-deleted builds.\r\n */\r\n QueryDeletedOption[QueryDeletedOption[\"ExcludeDeleted\"] = 0] = \"ExcludeDeleted\";\r\n /**\r\n * Include deleted and non-deleted builds.\r\n */\r\n QueryDeletedOption[QueryDeletedOption[\"IncludeDeleted\"] = 1] = \"IncludeDeleted\";\r\n /**\r\n * Include only deleted builds.\r\n */\r\n QueryDeletedOption[QueryDeletedOption[\"OnlyDeleted\"] = 2] = \"OnlyDeleted\";\r\n})(QueryDeletedOption = exports.QueryDeletedOption || (exports.QueryDeletedOption = {}));\r\nvar QueueOptions;\r\n(function (QueueOptions) {\r\n /**\r\n * No queue options\r\n */\r\n QueueOptions[QueueOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Create a plan Id for the build, do not run it\r\n */\r\n QueueOptions[QueueOptions[\"DoNotRun\"] = 1] = \"DoNotRun\";\r\n})(QueueOptions = exports.QueueOptions || (exports.QueueOptions = {}));\r\nvar QueuePriority;\r\n(function (QueuePriority) {\r\n /**\r\n * Low priority.\r\n */\r\n QueuePriority[QueuePriority[\"Low\"] = 5] = \"Low\";\r\n /**\r\n * Below normal priority.\r\n */\r\n QueuePriority[QueuePriority[\"BelowNormal\"] = 4] = \"BelowNormal\";\r\n /**\r\n * Normal priority.\r\n */\r\n QueuePriority[QueuePriority[\"Normal\"] = 3] = \"Normal\";\r\n /**\r\n * Above normal priority.\r\n */\r\n QueuePriority[QueuePriority[\"AboveNormal\"] = 2] = \"AboveNormal\";\r\n /**\r\n * High priority.\r\n */\r\n QueuePriority[QueuePriority[\"High\"] = 1] = \"High\";\r\n})(QueuePriority = exports.QueuePriority || (exports.QueuePriority = {}));\r\nvar RepositoryCleanOptions;\r\n(function (RepositoryCleanOptions) {\r\n RepositoryCleanOptions[RepositoryCleanOptions[\"Source\"] = 0] = \"Source\";\r\n RepositoryCleanOptions[RepositoryCleanOptions[\"SourceAndOutputDir\"] = 1] = \"SourceAndOutputDir\";\r\n /**\r\n * Re-create $(build.sourcesDirectory)\r\n */\r\n RepositoryCleanOptions[RepositoryCleanOptions[\"SourceDir\"] = 2] = \"SourceDir\";\r\n /**\r\n * Re-create $(agnet.buildDirectory) which contains $(build.sourcesDirectory), $(build.binariesDirectory) and any folders that left from previous build.\r\n */\r\n RepositoryCleanOptions[RepositoryCleanOptions[\"AllBuildDir\"] = 3] = \"AllBuildDir\";\r\n})(RepositoryCleanOptions = exports.RepositoryCleanOptions || (exports.RepositoryCleanOptions = {}));\r\nvar ResultSet;\r\n(function (ResultSet) {\r\n /**\r\n * Include all repositories\r\n */\r\n ResultSet[ResultSet[\"All\"] = 0] = \"All\";\r\n /**\r\n * Include most relevant repositories for user\r\n */\r\n ResultSet[ResultSet[\"Top\"] = 1] = \"Top\";\r\n})(ResultSet = exports.ResultSet || (exports.ResultSet = {}));\r\nvar ScheduleDays;\r\n(function (ScheduleDays) {\r\n /**\r\n * Do not run.\r\n */\r\n ScheduleDays[ScheduleDays[\"None\"] = 0] = \"None\";\r\n /**\r\n * Run on Monday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Monday\"] = 1] = \"Monday\";\r\n /**\r\n * Run on Tuesday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Tuesday\"] = 2] = \"Tuesday\";\r\n /**\r\n * Run on Wednesday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Wednesday\"] = 4] = \"Wednesday\";\r\n /**\r\n * Run on Thursday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Thursday\"] = 8] = \"Thursday\";\r\n /**\r\n * Run on Friday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Friday\"] = 16] = \"Friday\";\r\n /**\r\n * Run on Saturday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Saturday\"] = 32] = \"Saturday\";\r\n /**\r\n * Run on Sunday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Sunday\"] = 64] = \"Sunday\";\r\n /**\r\n * Run on all days of the week.\r\n */\r\n ScheduleDays[ScheduleDays[\"All\"] = 127] = \"All\";\r\n})(ScheduleDays = exports.ScheduleDays || (exports.ScheduleDays = {}));\r\nvar ServiceHostStatus;\r\n(function (ServiceHostStatus) {\r\n /**\r\n * The service host is currently connected and accepting commands.\r\n */\r\n ServiceHostStatus[ServiceHostStatus[\"Online\"] = 1] = \"Online\";\r\n /**\r\n * The service host is currently disconnected and not accepting commands.\r\n */\r\n ServiceHostStatus[ServiceHostStatus[\"Offline\"] = 2] = \"Offline\";\r\n})(ServiceHostStatus = exports.ServiceHostStatus || (exports.ServiceHostStatus = {}));\r\nvar SourceProviderAvailability;\r\n(function (SourceProviderAvailability) {\r\n /**\r\n * The source provider is available in the hosted environment.\r\n */\r\n SourceProviderAvailability[SourceProviderAvailability[\"Hosted\"] = 1] = \"Hosted\";\r\n /**\r\n * The source provider is available in the on-premises environment.\r\n */\r\n SourceProviderAvailability[SourceProviderAvailability[\"OnPremises\"] = 2] = \"OnPremises\";\r\n /**\r\n * The source provider is available in all environments.\r\n */\r\n SourceProviderAvailability[SourceProviderAvailability[\"All\"] = 3] = \"All\";\r\n})(SourceProviderAvailability = exports.SourceProviderAvailability || (exports.SourceProviderAvailability = {}));\r\nvar StageUpdateType;\r\n(function (StageUpdateType) {\r\n StageUpdateType[StageUpdateType[\"Cancel\"] = 0] = \"Cancel\";\r\n StageUpdateType[StageUpdateType[\"Retry\"] = 1] = \"Retry\";\r\n})(StageUpdateType = exports.StageUpdateType || (exports.StageUpdateType = {}));\r\nvar SupportLevel;\r\n(function (SupportLevel) {\r\n /**\r\n * The functionality is not supported.\r\n */\r\n SupportLevel[SupportLevel[\"Unsupported\"] = 0] = \"Unsupported\";\r\n /**\r\n * The functionality is supported.\r\n */\r\n SupportLevel[SupportLevel[\"Supported\"] = 1] = \"Supported\";\r\n /**\r\n * The functionality is required.\r\n */\r\n SupportLevel[SupportLevel[\"Required\"] = 2] = \"Required\";\r\n})(SupportLevel = exports.SupportLevel || (exports.SupportLevel = {}));\r\nvar TaskResult;\r\n(function (TaskResult) {\r\n TaskResult[TaskResult[\"Succeeded\"] = 0] = \"Succeeded\";\r\n TaskResult[TaskResult[\"SucceededWithIssues\"] = 1] = \"SucceededWithIssues\";\r\n TaskResult[TaskResult[\"Failed\"] = 2] = \"Failed\";\r\n TaskResult[TaskResult[\"Canceled\"] = 3] = \"Canceled\";\r\n TaskResult[TaskResult[\"Skipped\"] = 4] = \"Skipped\";\r\n TaskResult[TaskResult[\"Abandoned\"] = 5] = \"Abandoned\";\r\n})(TaskResult = exports.TaskResult || (exports.TaskResult = {}));\r\nvar TimelineRecordState;\r\n(function (TimelineRecordState) {\r\n TimelineRecordState[TimelineRecordState[\"Pending\"] = 0] = \"Pending\";\r\n TimelineRecordState[TimelineRecordState[\"InProgress\"] = 1] = \"InProgress\";\r\n TimelineRecordState[TimelineRecordState[\"Completed\"] = 2] = \"Completed\";\r\n})(TimelineRecordState = exports.TimelineRecordState || (exports.TimelineRecordState = {}));\r\nvar ValidationResult;\r\n(function (ValidationResult) {\r\n ValidationResult[ValidationResult[\"OK\"] = 0] = \"OK\";\r\n ValidationResult[ValidationResult[\"Warning\"] = 1] = \"Warning\";\r\n ValidationResult[ValidationResult[\"Error\"] = 2] = \"Error\";\r\n})(ValidationResult = exports.ValidationResult || (exports.ValidationResult = {}));\r\nvar WorkspaceMappingType;\r\n(function (WorkspaceMappingType) {\r\n /**\r\n * The path is mapped in the workspace.\r\n */\r\n WorkspaceMappingType[WorkspaceMappingType[\"Map\"] = 0] = \"Map\";\r\n /**\r\n * The path is cloaked in the workspace.\r\n */\r\n WorkspaceMappingType[WorkspaceMappingType[\"Cloak\"] = 1] = \"Cloak\";\r\n})(WorkspaceMappingType = exports.WorkspaceMappingType || (exports.WorkspaceMappingType = {}));\r\nexports.TypeInfo = {\r\n AgentStatus: {\r\n enumValues: {\r\n \"unavailable\": 0,\r\n \"available\": 1,\r\n \"offline\": 2\r\n }\r\n },\r\n AuditAction: {\r\n enumValues: {\r\n \"add\": 1,\r\n \"update\": 2,\r\n \"delete\": 3\r\n }\r\n },\r\n Build: {},\r\n BuildAgent: {},\r\n BuildAuthorizationScope: {\r\n enumValues: {\r\n \"projectCollection\": 1,\r\n \"project\": 2\r\n }\r\n },\r\n BuildCompletedEvent: {},\r\n BuildCompletionTrigger: {},\r\n BuildController: {},\r\n BuildDefinition: {},\r\n BuildDefinition3_2: {},\r\n BuildDefinitionReference: {},\r\n BuildDefinitionReference3_2: {},\r\n BuildDefinitionRevision: {},\r\n BuildDefinitionSourceProvider: {},\r\n BuildDefinitionTemplate: {},\r\n BuildDefinitionTemplate3_2: {},\r\n BuildDeletedEvent: {},\r\n BuildDeployment: {},\r\n BuildLog: {},\r\n BuildMetric: {},\r\n BuildOptionDefinition: {},\r\n BuildOptionInputDefinition: {},\r\n BuildOptionInputType: {\r\n enumValues: {\r\n \"string\": 0,\r\n \"boolean\": 1,\r\n \"stringList\": 2,\r\n \"radio\": 3,\r\n \"pickList\": 4,\r\n \"multiLine\": 5,\r\n \"branchFilter\": 6\r\n }\r\n },\r\n BuildPhaseStatus: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"failed\": 1,\r\n \"succeeded\": 2\r\n }\r\n },\r\n BuildProcessTemplate: {},\r\n BuildQueryOrder: {\r\n enumValues: {\r\n \"finishTimeAscending\": 2,\r\n \"finishTimeDescending\": 3,\r\n \"queueTimeDescending\": 4,\r\n \"queueTimeAscending\": 5,\r\n \"startTimeDescending\": 6,\r\n \"startTimeAscending\": 7\r\n }\r\n },\r\n BuildQueuedEvent: {},\r\n BuildReason: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manual\": 1,\r\n \"individualCI\": 2,\r\n \"batchedCI\": 4,\r\n \"schedule\": 8,\r\n \"scheduleForced\": 16,\r\n \"userCreated\": 32,\r\n \"validateShelveset\": 64,\r\n \"checkInShelveset\": 128,\r\n \"pullRequest\": 256,\r\n \"buildCompletion\": 512,\r\n \"resourceTrigger\": 1024,\r\n \"triggered\": 1967,\r\n \"all\": 2031\r\n }\r\n },\r\n BuildReference: {},\r\n BuildRequestValidationResult: {},\r\n BuildResult: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"succeeded\": 2,\r\n \"partiallySucceeded\": 4,\r\n \"failed\": 8,\r\n \"canceled\": 32\r\n }\r\n },\r\n BuildRetentionHistory: {},\r\n BuildRetentionSample: {},\r\n BuildServer: {},\r\n BuildStatus: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"inProgress\": 1,\r\n \"completed\": 2,\r\n \"cancelling\": 4,\r\n \"postponed\": 8,\r\n \"notStarted\": 32,\r\n \"all\": 47\r\n }\r\n },\r\n BuildSummary: {},\r\n BuildTagsAddedEvent: {},\r\n BuildTrigger: {},\r\n BuildUpdatedEvent: {},\r\n Change: {},\r\n ContinuousDeploymentDefinition: {},\r\n ContinuousIntegrationTrigger: {},\r\n ControllerStatus: {\r\n enumValues: {\r\n \"unavailable\": 0,\r\n \"available\": 1,\r\n \"offline\": 2\r\n }\r\n },\r\n DefinitionQuality: {\r\n enumValues: {\r\n \"definition\": 1,\r\n \"draft\": 2\r\n }\r\n },\r\n DefinitionQueryOrder: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"lastModifiedAscending\": 1,\r\n \"lastModifiedDescending\": 2,\r\n \"definitionNameAscending\": 3,\r\n \"definitionNameDescending\": 4\r\n }\r\n },\r\n DefinitionQueueStatus: {\r\n enumValues: {\r\n \"enabled\": 0,\r\n \"paused\": 1,\r\n \"disabled\": 2\r\n }\r\n },\r\n DefinitionReference: {},\r\n DefinitionTriggerType: {\r\n enumValues: {\r\n \"none\": 1,\r\n \"continuousIntegration\": 2,\r\n \"batchedContinuousIntegration\": 4,\r\n \"schedule\": 8,\r\n \"gatedCheckIn\": 16,\r\n \"batchedGatedCheckIn\": 32,\r\n \"pullRequest\": 64,\r\n \"buildCompletion\": 128,\r\n \"all\": 255\r\n }\r\n },\r\n DefinitionType: {\r\n enumValues: {\r\n \"xaml\": 1,\r\n \"build\": 2\r\n }\r\n },\r\n DeleteOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"dropLocation\": 1,\r\n \"testResults\": 2,\r\n \"label\": 4,\r\n \"details\": 8,\r\n \"symbols\": 16,\r\n \"all\": 31\r\n }\r\n },\r\n DesignerProcess: {},\r\n Folder: {},\r\n FolderQueryOrder: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"folderAscending\": 1,\r\n \"folderDescending\": 2\r\n }\r\n },\r\n GatedCheckInTrigger: {},\r\n GetOption: {\r\n enumValues: {\r\n \"latestOnQueue\": 0,\r\n \"latestOnBuild\": 1,\r\n \"custom\": 2\r\n }\r\n },\r\n InformationNode: {},\r\n Issue: {},\r\n IssueType: {\r\n enumValues: {\r\n \"error\": 1,\r\n \"warning\": 2\r\n }\r\n },\r\n Phase: {},\r\n ProcessTemplateType: {\r\n enumValues: {\r\n \"custom\": 0,\r\n \"default\": 1,\r\n \"upgrade\": 2\r\n }\r\n },\r\n PullRequestTrigger: {},\r\n QueryDeletedOption: {\r\n enumValues: {\r\n \"excludeDeleted\": 0,\r\n \"includeDeleted\": 1,\r\n \"onlyDeleted\": 2\r\n }\r\n },\r\n QueueOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"doNotRun\": 1\r\n }\r\n },\r\n QueuePriority: {\r\n enumValues: {\r\n \"low\": 5,\r\n \"belowNormal\": 4,\r\n \"normal\": 3,\r\n \"aboveNormal\": 2,\r\n \"high\": 1\r\n }\r\n },\r\n RepositoryCleanOptions: {\r\n enumValues: {\r\n \"source\": 0,\r\n \"sourceAndOutputDir\": 1,\r\n \"sourceDir\": 2,\r\n \"allBuildDir\": 3\r\n }\r\n },\r\n RepositoryWebhook: {},\r\n ResultSet: {\r\n enumValues: {\r\n \"all\": 0,\r\n \"top\": 1\r\n }\r\n },\r\n RetentionLease: {},\r\n Schedule: {},\r\n ScheduleDays: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"monday\": 1,\r\n \"tuesday\": 2,\r\n \"wednesday\": 4,\r\n \"thursday\": 8,\r\n \"friday\": 16,\r\n \"saturday\": 32,\r\n \"sunday\": 64,\r\n \"all\": 127\r\n }\r\n },\r\n ScheduleTrigger: {},\r\n ServiceHostStatus: {\r\n enumValues: {\r\n \"online\": 1,\r\n \"offline\": 2\r\n }\r\n },\r\n SourceProviderAttributes: {},\r\n SourceProviderAvailability: {\r\n enumValues: {\r\n \"hosted\": 1,\r\n \"onPremises\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n StageUpdateType: {\r\n enumValues: {\r\n \"cancel\": 0,\r\n \"retry\": 1\r\n }\r\n },\r\n SupportedTrigger: {},\r\n SupportLevel: {\r\n enumValues: {\r\n \"unsupported\": 0,\r\n \"supported\": 1,\r\n \"required\": 2\r\n }\r\n },\r\n TaskResult: {\r\n enumValues: {\r\n \"succeeded\": 0,\r\n \"succeededWithIssues\": 1,\r\n \"failed\": 2,\r\n \"canceled\": 3,\r\n \"skipped\": 4,\r\n \"abandoned\": 5\r\n }\r\n },\r\n Timeline: {},\r\n TimelineRecord: {},\r\n TimelineRecordState: {\r\n enumValues: {\r\n \"pending\": 0,\r\n \"inProgress\": 1,\r\n \"completed\": 2\r\n }\r\n },\r\n TimelineRecordsUpdatedEvent: {},\r\n UpdateStageParameters: {},\r\n ValidationResult: {\r\n enumValues: {\r\n \"ok\": 0,\r\n \"warning\": 1,\r\n \"error\": 2\r\n }\r\n },\r\n WorkspaceMapping: {},\r\n WorkspaceMappingType: {\r\n enumValues: {\r\n \"map\": 0,\r\n \"cloak\": 1\r\n }\r\n },\r\n WorkspaceTemplate: {},\r\n XamlBuildDefinition: {},\r\n};\r\nexports.TypeInfo.Build.fields = {\r\n controller: {\r\n typeInfo: exports.TypeInfo.BuildController\r\n },\r\n definition: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n deletedDate: {\r\n isDate: true,\r\n },\r\n finishTime: {\r\n isDate: true,\r\n },\r\n lastChangedDate: {\r\n isDate: true,\r\n },\r\n priority: {\r\n enumType: exports.TypeInfo.QueuePriority\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n queueOptions: {\r\n enumType: exports.TypeInfo.QueueOptions\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.BuildReason\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.BuildResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.BuildStatus\r\n },\r\n triggeredByBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n validationResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildRequestValidationResult\r\n }\r\n};\r\nexports.TypeInfo.BuildAgent.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.AgentStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildCompletedEvent.fields = {\r\n build: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Change\r\n },\r\n testResults: {\r\n typeInfo: TFS_TestManagement_Contracts.TypeInfo.AggregatedResultsAnalysis\r\n },\r\n timelineRecords: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineRecord\r\n }\r\n};\r\nexports.TypeInfo.BuildCompletionTrigger.fields = {\r\n definition: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.BuildController.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ControllerStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinition.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n draftOf: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n drafts: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n jobAuthorizationScope: {\r\n enumType: exports.TypeInfo.BuildAuthorizationScope\r\n },\r\n latestBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n latestCompletedBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n metrics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildMetric\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n quality: {\r\n enumType: exports.TypeInfo.DefinitionQuality\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n triggers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildTrigger\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinition3_2.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n draftOf: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n drafts: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n jobAuthorizationScope: {\r\n enumType: exports.TypeInfo.BuildAuthorizationScope\r\n },\r\n latestBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n latestCompletedBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n metrics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildMetric\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n quality: {\r\n enumType: exports.TypeInfo.DefinitionQuality\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n triggers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildTrigger\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionReference.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n draftOf: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n drafts: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n latestBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n latestCompletedBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n metrics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildMetric\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n quality: {\r\n enumType: exports.TypeInfo.DefinitionQuality\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionReference3_2.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n draftOf: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n drafts: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n metrics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildMetric\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n quality: {\r\n enumType: exports.TypeInfo.DefinitionQuality\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionRevision.fields = {\r\n changedDate: {\r\n isDate: true,\r\n },\r\n changeType: {\r\n enumType: exports.TypeInfo.AuditAction\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionSourceProvider.fields = {\r\n lastModified: {\r\n isDate: true,\r\n },\r\n supportedTriggerTypes: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionTemplate.fields = {\r\n template: {\r\n typeInfo: exports.TypeInfo.BuildDefinition\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionTemplate3_2.fields = {\r\n template: {\r\n typeInfo: exports.TypeInfo.BuildDefinition3_2\r\n }\r\n};\r\nexports.TypeInfo.BuildDeletedEvent.fields = {\r\n build: {\r\n typeInfo: exports.TypeInfo.Build\r\n }\r\n};\r\nexports.TypeInfo.BuildDeployment.fields = {\r\n deployment: {\r\n typeInfo: exports.TypeInfo.BuildSummary\r\n }\r\n};\r\nexports.TypeInfo.BuildLog.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastChangedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildMetric.fields = {\r\n date: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildOptionDefinition.fields = {\r\n inputs: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildOptionInputDefinition\r\n }\r\n};\r\nexports.TypeInfo.BuildOptionInputDefinition.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.BuildOptionInputType\r\n }\r\n};\r\nexports.TypeInfo.BuildProcessTemplate.fields = {\r\n supportedReasons: {\r\n enumType: exports.TypeInfo.BuildReason\r\n },\r\n templateType: {\r\n enumType: exports.TypeInfo.ProcessTemplateType\r\n }\r\n};\r\nexports.TypeInfo.BuildQueuedEvent.fields = {\r\n build: {\r\n typeInfo: exports.TypeInfo.Build\r\n }\r\n};\r\nexports.TypeInfo.BuildReference.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.BuildResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.BuildStatus\r\n }\r\n};\r\nexports.TypeInfo.BuildRequestValidationResult.fields = {\r\n result: {\r\n enumType: exports.TypeInfo.ValidationResult\r\n }\r\n};\r\nexports.TypeInfo.BuildRetentionHistory.fields = {\r\n buildRetentionSamples: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildRetentionSample\r\n }\r\n};\r\nexports.TypeInfo.BuildRetentionSample.fields = {\r\n sampleTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildServer.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.ServiceHostStatus\r\n },\r\n statusChangedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildSummary.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.BuildReason\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.BuildStatus\r\n }\r\n};\r\nexports.TypeInfo.BuildTagsAddedEvent.fields = {\r\n build: {\r\n typeInfo: exports.TypeInfo.Build\r\n }\r\n};\r\nexports.TypeInfo.BuildTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.BuildUpdatedEvent.fields = {\r\n build: {\r\n typeInfo: exports.TypeInfo.Build\r\n }\r\n};\r\nexports.TypeInfo.Change.fields = {\r\n timestamp: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ContinuousDeploymentDefinition.fields = {\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.ContinuousIntegrationTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.DefinitionReference.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\nexports.TypeInfo.DesignerProcess.fields = {\r\n phases: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Phase\r\n }\r\n};\r\nexports.TypeInfo.Folder.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastChangedDate: {\r\n isDate: true,\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GatedCheckInTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.InformationNode.fields = {\r\n lastModifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Issue.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.IssueType\r\n }\r\n};\r\nexports.TypeInfo.Phase.fields = {\r\n jobAuthorizationScope: {\r\n enumType: exports.TypeInfo.BuildAuthorizationScope\r\n }\r\n};\r\nexports.TypeInfo.PullRequestTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.RepositoryWebhook.fields = {\r\n types: {\r\n isArray: true,\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.RetentionLease.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n validUntil: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Schedule.fields = {\r\n daysToBuild: {\r\n enumType: exports.TypeInfo.ScheduleDays\r\n }\r\n};\r\nexports.TypeInfo.ScheduleTrigger.fields = {\r\n schedules: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Schedule\r\n },\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.SourceProviderAttributes.fields = {\r\n supportedTriggers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.SupportedTrigger\r\n }\r\n};\r\nexports.TypeInfo.SupportedTrigger.fields = {\r\n supportedCapabilities: {\r\n isDictionary: true,\r\n dictionaryValueEnumType: exports.TypeInfo.SupportLevel\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.Timeline.fields = {\r\n lastChangedOn: {\r\n isDate: true,\r\n },\r\n records: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineRecord\r\n }\r\n};\r\nexports.TypeInfo.TimelineRecord.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n issues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Issue\r\n },\r\n lastModified: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TimelineRecordState\r\n }\r\n};\r\nexports.TypeInfo.TimelineRecordsUpdatedEvent.fields = {\r\n timelineRecords: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineRecord\r\n }\r\n};\r\nexports.TypeInfo.UpdateStageParameters.fields = {\r\n state: {\r\n enumType: exports.TypeInfo.StageUpdateType\r\n }\r\n};\r\nexports.TypeInfo.WorkspaceMapping.fields = {\r\n mappingType: {\r\n enumType: exports.TypeInfo.WorkspaceMappingType\r\n }\r\n};\r\nexports.TypeInfo.WorkspaceTemplate.fields = {\r\n lastModifiedDate: {\r\n isDate: true,\r\n },\r\n mappings: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkspaceMapping\r\n }\r\n};\r\nexports.TypeInfo.XamlBuildDefinition.fields = {\r\n controller: {\r\n typeInfo: exports.TypeInfo.BuildController\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n createdOn: {\r\n isDate: true,\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n supportedReasons: {\r\n enumType: exports.TypeInfo.BuildReason\r\n },\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Specifies the additional data retrieval options for comments.\r\n */\r\nvar CommentExpandOptions;\r\n(function (CommentExpandOptions) {\r\n /**\r\n * Include comments only, no mentions, reactions or rendered text\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include comment reactions\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"Reactions\"] = 1] = \"Reactions\";\r\n /**\r\n * Include the rendered text (html) in addition to markdown text\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"RenderedText\"] = 8] = \"RenderedText\";\r\n CommentExpandOptions[CommentExpandOptions[\"RenderedTextOnly\"] = 16] = \"RenderedTextOnly\";\r\n /**\r\n * If specified, then responses will be expanded in the results\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"Children\"] = 32] = \"Children\";\r\n /**\r\n * Expand everything including Reactions, Mentions and also include RenderedText (HTML) for markdown comments\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"All\"] = -17] = \"All\";\r\n})(CommentExpandOptions = exports.CommentExpandOptions || (exports.CommentExpandOptions = {}));\r\n/**\r\n * Format of the comment. Ex. Markdown, Html.\r\n */\r\nvar CommentFormat;\r\n(function (CommentFormat) {\r\n CommentFormat[CommentFormat[\"Markdown\"] = 0] = \"Markdown\";\r\n CommentFormat[CommentFormat[\"Html\"] = 1] = \"Html\";\r\n})(CommentFormat = exports.CommentFormat || (exports.CommentFormat = {}));\r\nvar CommentMentionType;\r\n(function (CommentMentionType) {\r\n /**\r\n * An identity was mentioned by using the format @{VSID}\r\n */\r\n CommentMentionType[CommentMentionType[\"Person\"] = 0] = \"Person\";\r\n /**\r\n * A work item was mentioned by using the format #{Work Item ID}\r\n */\r\n CommentMentionType[CommentMentionType[\"WorkItem\"] = 1] = \"WorkItem\";\r\n /**\r\n * A Pull Request was mentioned by using the format !{PR Number}\r\n */\r\n CommentMentionType[CommentMentionType[\"PullRequest\"] = 2] = \"PullRequest\";\r\n})(CommentMentionType = exports.CommentMentionType || (exports.CommentMentionType = {}));\r\n/**\r\n * Represents different reaction types for a comment\r\n */\r\nvar CommentReactionType;\r\n(function (CommentReactionType) {\r\n CommentReactionType[CommentReactionType[\"Like\"] = 0] = \"Like\";\r\n CommentReactionType[CommentReactionType[\"Dislike\"] = 1] = \"Dislike\";\r\n CommentReactionType[CommentReactionType[\"Heart\"] = 2] = \"Heart\";\r\n CommentReactionType[CommentReactionType[\"Hooray\"] = 3] = \"Hooray\";\r\n CommentReactionType[CommentReactionType[\"Smile\"] = 4] = \"Smile\";\r\n CommentReactionType[CommentReactionType[\"Confused\"] = 5] = \"Confused\";\r\n})(CommentReactionType = exports.CommentReactionType || (exports.CommentReactionType = {}));\r\nvar CommentSortOrder;\r\n(function (CommentSortOrder) {\r\n /**\r\n * The results will be sorted in Ascending order.\r\n */\r\n CommentSortOrder[CommentSortOrder[\"Asc\"] = 1] = \"Asc\";\r\n /**\r\n * The results will be sorted in Descending order.\r\n */\r\n CommentSortOrder[CommentSortOrder[\"Desc\"] = 2] = \"Desc\";\r\n})(CommentSortOrder = exports.CommentSortOrder || (exports.CommentSortOrder = {}));\r\n/**\r\n * Represents the possible comment states.\r\n */\r\nvar CommentState;\r\n(function (CommentState) {\r\n CommentState[CommentState[\"Active\"] = 0] = \"Active\";\r\n CommentState[CommentState[\"Resolved\"] = 1] = \"Resolved\";\r\n CommentState[CommentState[\"Closed\"] = 2] = \"Closed\";\r\n})(CommentState = exports.CommentState || (exports.CommentState = {}));\r\nexports.TypeInfo = {\r\n Comment: {},\r\n CommentAttachment: {},\r\n CommentExpandOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"reactions\": 1,\r\n \"renderedText\": 8,\r\n \"renderedTextOnly\": 16,\r\n \"children\": 32,\r\n \"all\": -17\r\n }\r\n },\r\n CommentFormat: {\r\n enumValues: {\r\n \"markdown\": 0,\r\n \"html\": 1\r\n }\r\n },\r\n CommentList: {},\r\n CommentMention: {},\r\n CommentMentionType: {\r\n enumValues: {\r\n \"person\": 0,\r\n \"workItem\": 1,\r\n \"pullRequest\": 2\r\n }\r\n },\r\n CommentReaction: {},\r\n CommentReactionType: {\r\n enumValues: {\r\n \"like\": 0,\r\n \"dislike\": 1,\r\n \"heart\": 2,\r\n \"hooray\": 3,\r\n \"smile\": 4,\r\n \"confused\": 5\r\n }\r\n },\r\n CommentSortOrder: {\r\n enumValues: {\r\n \"asc\": 1,\r\n \"desc\": 2\r\n }\r\n },\r\n CommentState: {\r\n enumValues: {\r\n \"active\": 0,\r\n \"resolved\": 1,\r\n \"closed\": 2\r\n }\r\n },\r\n CommentUpdateParameters: {},\r\n CommentVersion: {},\r\n};\r\nexports.TypeInfo.Comment.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n mentions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.CommentMention\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n reactions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.CommentReaction\r\n },\r\n replies: {\r\n typeInfo: exports.TypeInfo.CommentList\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.CommentState\r\n }\r\n};\r\nexports.TypeInfo.CommentAttachment.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CommentList.fields = {\r\n comments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Comment\r\n }\r\n};\r\nexports.TypeInfo.CommentMention.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.CommentMentionType\r\n }\r\n};\r\nexports.TypeInfo.CommentReaction.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.CommentReactionType\r\n }\r\n};\r\nexports.TypeInfo.CommentUpdateParameters.fields = {\r\n state: {\r\n enumType: exports.TypeInfo.CommentState\r\n }\r\n};\r\nexports.TypeInfo.CommentVersion.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.CommentState\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ConnectedServiceKind;\r\n(function (ConnectedServiceKind) {\r\n /**\r\n * Custom or unknown service\r\n */\r\n ConnectedServiceKind[ConnectedServiceKind[\"Custom\"] = 0] = \"Custom\";\r\n /**\r\n * Azure Subscription\r\n */\r\n ConnectedServiceKind[ConnectedServiceKind[\"AzureSubscription\"] = 1] = \"AzureSubscription\";\r\n /**\r\n * Chef Connection\r\n */\r\n ConnectedServiceKind[ConnectedServiceKind[\"Chef\"] = 2] = \"Chef\";\r\n /**\r\n * Generic Connection\r\n */\r\n ConnectedServiceKind[ConnectedServiceKind[\"Generic\"] = 3] = \"Generic\";\r\n})(ConnectedServiceKind = exports.ConnectedServiceKind || (exports.ConnectedServiceKind = {}));\r\n/**\r\n * Type of process customization on a collection.\r\n */\r\nvar ProcessCustomizationType;\r\n(function (ProcessCustomizationType) {\r\n /**\r\n * Process customization can't be computed.\r\n */\r\n ProcessCustomizationType[ProcessCustomizationType[\"Unknown\"] = -1] = \"Unknown\";\r\n /**\r\n * Customization based on project-scoped xml customization\r\n */\r\n ProcessCustomizationType[ProcessCustomizationType[\"Xml\"] = 0] = \"Xml\";\r\n /**\r\n * Customization based on process inheritance\r\n */\r\n ProcessCustomizationType[ProcessCustomizationType[\"Inherited\"] = 1] = \"Inherited\";\r\n})(ProcessCustomizationType = exports.ProcessCustomizationType || (exports.ProcessCustomizationType = {}));\r\nvar ProcessType;\r\n(function (ProcessType) {\r\n ProcessType[ProcessType[\"System\"] = 0] = \"System\";\r\n ProcessType[ProcessType[\"Custom\"] = 1] = \"Custom\";\r\n ProcessType[ProcessType[\"Inherited\"] = 2] = \"Inherited\";\r\n})(ProcessType = exports.ProcessType || (exports.ProcessType = {}));\r\nvar ProjectChangeType;\r\n(function (ProjectChangeType) {\r\n ProjectChangeType[ProjectChangeType[\"Modified\"] = 0] = \"Modified\";\r\n ProjectChangeType[ProjectChangeType[\"Deleted\"] = 1] = \"Deleted\";\r\n ProjectChangeType[ProjectChangeType[\"Added\"] = 2] = \"Added\";\r\n})(ProjectChangeType = exports.ProjectChangeType || (exports.ProjectChangeType = {}));\r\nvar ProjectVisibility;\r\n(function (ProjectVisibility) {\r\n ProjectVisibility[ProjectVisibility[\"Unchanged\"] = -1] = \"Unchanged\";\r\n /**\r\n * The project is only visible to users with explicit access.\r\n */\r\n ProjectVisibility[ProjectVisibility[\"Private\"] = 0] = \"Private\";\r\n /**\r\n * Enterprise level project visibility\r\n */\r\n ProjectVisibility[ProjectVisibility[\"Organization\"] = 1] = \"Organization\";\r\n /**\r\n * The project is visible to all.\r\n */\r\n ProjectVisibility[ProjectVisibility[\"Public\"] = 2] = \"Public\";\r\n ProjectVisibility[ProjectVisibility[\"SystemPrivate\"] = 3] = \"SystemPrivate\";\r\n})(ProjectVisibility = exports.ProjectVisibility || (exports.ProjectVisibility = {}));\r\nvar SourceControlTypes;\r\n(function (SourceControlTypes) {\r\n SourceControlTypes[SourceControlTypes[\"Tfvc\"] = 1] = \"Tfvc\";\r\n SourceControlTypes[SourceControlTypes[\"Git\"] = 2] = \"Git\";\r\n})(SourceControlTypes = exports.SourceControlTypes || (exports.SourceControlTypes = {}));\r\nexports.TypeInfo = {\r\n ConnectedServiceKind: {\r\n enumValues: {\r\n \"custom\": 0,\r\n \"azureSubscription\": 1,\r\n \"chef\": 2,\r\n \"generic\": 3\r\n }\r\n },\r\n Process: {},\r\n ProcessCustomizationType: {\r\n enumValues: {\r\n \"unknown\": -1,\r\n \"xml\": 0,\r\n \"inherited\": 1\r\n }\r\n },\r\n ProcessType: {\r\n enumValues: {\r\n \"system\": 0,\r\n \"custom\": 1,\r\n \"inherited\": 2\r\n }\r\n },\r\n ProjectChangeType: {\r\n enumValues: {\r\n \"modified\": 0,\r\n \"deleted\": 1,\r\n \"added\": 2\r\n }\r\n },\r\n ProjectInfo: {},\r\n ProjectMessage: {},\r\n ProjectVisibility: {\r\n enumValues: {\r\n \"private\": 0,\r\n \"organization\": 1,\r\n \"public\": 2\r\n }\r\n },\r\n SourceControlTypes: {\r\n enumValues: {\r\n \"tfvc\": 1,\r\n \"git\": 2\r\n }\r\n },\r\n TeamProject: {},\r\n TeamProjectCollection: {},\r\n TeamProjectReference: {},\r\n TemporaryDataCreatedDTO: {},\r\n WebApiConnectedService: {},\r\n WebApiConnectedServiceDetails: {},\r\n WebApiProject: {},\r\n};\r\nexports.TypeInfo.Process.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.ProcessType\r\n }\r\n};\r\nexports.TypeInfo.ProjectInfo.fields = {\r\n lastUpdateTime: {\r\n isDate: true,\r\n },\r\n visibility: {\r\n enumType: exports.TypeInfo.ProjectVisibility\r\n }\r\n};\r\nexports.TypeInfo.ProjectMessage.fields = {\r\n project: {\r\n typeInfo: exports.TypeInfo.ProjectInfo\r\n },\r\n projectChangeType: {\r\n enumType: exports.TypeInfo.ProjectChangeType\r\n }\r\n};\r\nexports.TypeInfo.TeamProject.fields = {\r\n lastUpdateTime: {\r\n isDate: true,\r\n },\r\n visibility: {\r\n enumType: exports.TypeInfo.ProjectVisibility\r\n }\r\n};\r\nexports.TypeInfo.TeamProjectCollection.fields = {\r\n processCustomizationType: {\r\n enumType: exports.TypeInfo.ProcessCustomizationType\r\n }\r\n};\r\nexports.TypeInfo.TeamProjectReference.fields = {\r\n lastUpdateTime: {\r\n isDate: true,\r\n },\r\n visibility: {\r\n enumType: exports.TypeInfo.ProjectVisibility\r\n }\r\n};\r\nexports.TypeInfo.TemporaryDataCreatedDTO.fields = {\r\n expirationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.WebApiConnectedService.fields = {\r\n project: {\r\n typeInfo: exports.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.WebApiConnectedServiceDetails.fields = {\r\n connectedServiceMetaData: {\r\n typeInfo: exports.TypeInfo.WebApiConnectedService\r\n }\r\n};\r\nexports.TypeInfo.WebApiProject.fields = {\r\n lastUpdateTime: {\r\n isDate: true,\r\n },\r\n visibility: {\r\n enumType: exports.TypeInfo.ProjectVisibility\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * identifies the scope of dashboard storage and permissions.\r\n */\r\nvar DashboardScope;\r\n(function (DashboardScope) {\r\n /**\r\n * [DEPRECATED] Dashboard is scoped to the collection user.\r\n */\r\n DashboardScope[DashboardScope[\"Collection_User\"] = 0] = \"Collection_User\";\r\n /**\r\n * Dashboard is scoped to the team.\r\n */\r\n DashboardScope[DashboardScope[\"Project_Team\"] = 1] = \"Project_Team\";\r\n /**\r\n * Dashboard is scoped to the project.\r\n */\r\n DashboardScope[DashboardScope[\"Project\"] = 2] = \"Project\";\r\n})(DashboardScope = exports.DashboardScope || (exports.DashboardScope = {}));\r\nvar GroupMemberPermission;\r\n(function (GroupMemberPermission) {\r\n GroupMemberPermission[GroupMemberPermission[\"None\"] = 0] = \"None\";\r\n GroupMemberPermission[GroupMemberPermission[\"Edit\"] = 1] = \"Edit\";\r\n GroupMemberPermission[GroupMemberPermission[\"Manage\"] = 2] = \"Manage\";\r\n GroupMemberPermission[GroupMemberPermission[\"ManagePermissions\"] = 3] = \"ManagePermissions\";\r\n})(GroupMemberPermission = exports.GroupMemberPermission || (exports.GroupMemberPermission = {}));\r\nvar TeamDashboardPermission;\r\n(function (TeamDashboardPermission) {\r\n TeamDashboardPermission[TeamDashboardPermission[\"None\"] = 0] = \"None\";\r\n TeamDashboardPermission[TeamDashboardPermission[\"Read\"] = 1] = \"Read\";\r\n TeamDashboardPermission[TeamDashboardPermission[\"Create\"] = 2] = \"Create\";\r\n TeamDashboardPermission[TeamDashboardPermission[\"Edit\"] = 4] = \"Edit\";\r\n TeamDashboardPermission[TeamDashboardPermission[\"Delete\"] = 8] = \"Delete\";\r\n TeamDashboardPermission[TeamDashboardPermission[\"ManagePermissions\"] = 16] = \"ManagePermissions\";\r\n})(TeamDashboardPermission = exports.TeamDashboardPermission || (exports.TeamDashboardPermission = {}));\r\n/**\r\n * data contract required for the widget to function in a webaccess area or page.\r\n */\r\nvar WidgetScope;\r\n(function (WidgetScope) {\r\n WidgetScope[WidgetScope[\"Collection_User\"] = 0] = \"Collection_User\";\r\n WidgetScope[WidgetScope[\"Project_Team\"] = 1] = \"Project_Team\";\r\n})(WidgetScope = exports.WidgetScope || (exports.WidgetScope = {}));\r\nexports.TypeInfo = {\r\n Dashboard: {},\r\n DashboardGroup: {},\r\n DashboardGroupEntry: {},\r\n DashboardGroupEntryResponse: {},\r\n DashboardResponse: {},\r\n DashboardScope: {\r\n enumValues: {\r\n \"collection_User\": 0,\r\n \"project_Team\": 1,\r\n \"project\": 2\r\n }\r\n },\r\n GroupMemberPermission: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"edit\": 1,\r\n \"manage\": 2,\r\n \"managePermissions\": 3\r\n }\r\n },\r\n TeamDashboardPermission: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"read\": 1,\r\n \"create\": 2,\r\n \"edit\": 4,\r\n \"delete\": 8,\r\n \"managePermissions\": 16\r\n }\r\n },\r\n Widget: {},\r\n WidgetMetadata: {},\r\n WidgetMetadataResponse: {},\r\n WidgetResponse: {},\r\n WidgetScope: {\r\n enumValues: {\r\n \"collection_User\": 0,\r\n \"project_Team\": 1\r\n }\r\n },\r\n WidgetsVersionedList: {},\r\n WidgetTypesResponse: {},\r\n};\r\nexports.TypeInfo.Dashboard.fields = {\r\n dashboardScope: {\r\n enumType: exports.TypeInfo.DashboardScope\r\n },\r\n widgets: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Widget\r\n }\r\n};\r\nexports.TypeInfo.DashboardGroup.fields = {\r\n dashboardEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DashboardGroupEntry\r\n },\r\n permission: {\r\n enumType: exports.TypeInfo.GroupMemberPermission\r\n },\r\n teamDashboardPermission: {\r\n enumType: exports.TypeInfo.TeamDashboardPermission\r\n }\r\n};\r\nexports.TypeInfo.DashboardGroupEntry.fields = {\r\n dashboardScope: {\r\n enumType: exports.TypeInfo.DashboardScope\r\n },\r\n widgets: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Widget\r\n }\r\n};\r\nexports.TypeInfo.DashboardGroupEntryResponse.fields = {\r\n dashboardScope: {\r\n enumType: exports.TypeInfo.DashboardScope\r\n },\r\n widgets: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Widget\r\n }\r\n};\r\nexports.TypeInfo.DashboardResponse.fields = {\r\n dashboardScope: {\r\n enumType: exports.TypeInfo.DashboardScope\r\n },\r\n widgets: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Widget\r\n }\r\n};\r\nexports.TypeInfo.Widget.fields = {\r\n dashboard: {\r\n typeInfo: exports.TypeInfo.Dashboard\r\n }\r\n};\r\nexports.TypeInfo.WidgetMetadata.fields = {\r\n supportedScopes: {\r\n isArray: true,\r\n enumType: exports.TypeInfo.WidgetScope\r\n }\r\n};\r\nexports.TypeInfo.WidgetMetadataResponse.fields = {\r\n widgetMetadata: {\r\n typeInfo: exports.TypeInfo.WidgetMetadata\r\n }\r\n};\r\nexports.TypeInfo.WidgetResponse.fields = {\r\n dashboard: {\r\n typeInfo: exports.TypeInfo.Dashboard\r\n }\r\n};\r\nexports.TypeInfo.WidgetsVersionedList.fields = {\r\n widgets: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Widget\r\n }\r\n};\r\nexports.TypeInfo.WidgetTypesResponse.fields = {\r\n widgetTypes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WidgetMetadata\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst GalleryInterfaces = require(\"../interfaces/GalleryInterfaces\");\r\n/**\r\n * How the acquisition is assigned\r\n */\r\nvar AcquisitionAssignmentType;\r\n(function (AcquisitionAssignmentType) {\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Just assign for me\r\n */\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"Me\"] = 1] = \"Me\";\r\n /**\r\n * Assign for all users in the account\r\n */\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"All\"] = 2] = \"All\";\r\n})(AcquisitionAssignmentType = exports.AcquisitionAssignmentType || (exports.AcquisitionAssignmentType = {}));\r\nvar AcquisitionOperationState;\r\n(function (AcquisitionOperationState) {\r\n /**\r\n * Not allowed to use this AcquisitionOperation\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Disallow\"] = 0] = \"Disallow\";\r\n /**\r\n * Allowed to use this AcquisitionOperation\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Allow\"] = 1] = \"Allow\";\r\n /**\r\n * Operation has already been completed and is no longer available\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Completed\"] = 3] = \"Completed\";\r\n})(AcquisitionOperationState = exports.AcquisitionOperationState || (exports.AcquisitionOperationState = {}));\r\n/**\r\n * Set of different types of operations that can be requested.\r\n */\r\nvar AcquisitionOperationType;\r\n(function (AcquisitionOperationType) {\r\n /**\r\n * Not yet used\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Get\"] = 0] = \"Get\";\r\n /**\r\n * Install this extension into the host provided\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Install\"] = 1] = \"Install\";\r\n /**\r\n * Buy licenses for this extension and install into the host provided\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Buy\"] = 2] = \"Buy\";\r\n /**\r\n * Try this extension\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Try\"] = 3] = \"Try\";\r\n /**\r\n * Request this extension for installation\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Request\"] = 4] = \"Request\";\r\n /**\r\n * No action found\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"None\"] = 5] = \"None\";\r\n /**\r\n * Request admins for purchasing extension\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"PurchaseRequest\"] = 6] = \"PurchaseRequest\";\r\n})(AcquisitionOperationType = exports.AcquisitionOperationType || (exports.AcquisitionOperationType = {}));\r\n/**\r\n * Represents different ways of including contributions based on licensing\r\n */\r\nvar ContributionLicensingBehaviorType;\r\n(function (ContributionLicensingBehaviorType) {\r\n /**\r\n * Default value - only include the contribution if the user is licensed for the extension\r\n */\r\n ContributionLicensingBehaviorType[ContributionLicensingBehaviorType[\"OnlyIfLicensed\"] = 0] = \"OnlyIfLicensed\";\r\n /**\r\n * Only include the contribution if the user is NOT licensed for the extension\r\n */\r\n ContributionLicensingBehaviorType[ContributionLicensingBehaviorType[\"OnlyIfUnlicensed\"] = 1] = \"OnlyIfUnlicensed\";\r\n /**\r\n * Always include the contribution regardless of whether or not the user is licensed for the extension\r\n */\r\n ContributionLicensingBehaviorType[ContributionLicensingBehaviorType[\"AlwaysInclude\"] = 2] = \"AlwaysInclude\";\r\n})(ContributionLicensingBehaviorType = exports.ContributionLicensingBehaviorType || (exports.ContributionLicensingBehaviorType = {}));\r\n/**\r\n * The type of value used for a property\r\n */\r\nvar ContributionPropertyType;\r\n(function (ContributionPropertyType) {\r\n /**\r\n * Contribution type is unknown (value may be anything)\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * Value is a string\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"String\"] = 1] = \"String\";\r\n /**\r\n * Value is a Uri\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Uri\"] = 2] = \"Uri\";\r\n /**\r\n * Value is a GUID\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Guid\"] = 4] = \"Guid\";\r\n /**\r\n * Value is True or False\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Boolean\"] = 8] = \"Boolean\";\r\n /**\r\n * Value is an integer\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Integer\"] = 16] = \"Integer\";\r\n /**\r\n * Value is a double\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Double\"] = 32] = \"Double\";\r\n /**\r\n * Value is a DateTime object\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"DateTime\"] = 64] = \"DateTime\";\r\n /**\r\n * Value is a generic Dictionary/JObject/property bag\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Dictionary\"] = 128] = \"Dictionary\";\r\n /**\r\n * Value is an array\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Array\"] = 256] = \"Array\";\r\n /**\r\n * Value is an arbitrary/custom object\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Object\"] = 512] = \"Object\";\r\n})(ContributionPropertyType = exports.ContributionPropertyType || (exports.ContributionPropertyType = {}));\r\n/**\r\n * Options that control the contributions to include in a query\r\n */\r\nvar ContributionQueryOptions;\r\n(function (ContributionQueryOptions) {\r\n ContributionQueryOptions[ContributionQueryOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include the direct contributions that have the ids queried.\r\n */\r\n ContributionQueryOptions[ContributionQueryOptions[\"IncludeSelf\"] = 16] = \"IncludeSelf\";\r\n /**\r\n * Include the contributions that directly target the contributions queried.\r\n */\r\n ContributionQueryOptions[ContributionQueryOptions[\"IncludeChildren\"] = 32] = \"IncludeChildren\";\r\n /**\r\n * Include the contributions from the entire sub-tree targeting the contributions queried.\r\n */\r\n ContributionQueryOptions[ContributionQueryOptions[\"IncludeSubTree\"] = 96] = \"IncludeSubTree\";\r\n /**\r\n * Include the contribution being queried as well as all contributions that target them recursively.\r\n */\r\n ContributionQueryOptions[ContributionQueryOptions[\"IncludeAll\"] = 112] = \"IncludeAll\";\r\n /**\r\n * Some callers may want the entire tree back without constraint evaluation being performed.\r\n */\r\n ContributionQueryOptions[ContributionQueryOptions[\"IgnoreConstraints\"] = 256] = \"IgnoreConstraints\";\r\n})(ContributionQueryOptions = exports.ContributionQueryOptions || (exports.ContributionQueryOptions = {}));\r\n/**\r\n * Set of flags applied to extensions that are relevant to contribution consumers\r\n */\r\nvar ExtensionFlags;\r\n(function (ExtensionFlags) {\r\n /**\r\n * A built-in extension is installed for all VSTS accounts by default\r\n */\r\n ExtensionFlags[ExtensionFlags[\"BuiltIn\"] = 1] = \"BuiltIn\";\r\n /**\r\n * The extension comes from a fully-trusted publisher\r\n */\r\n ExtensionFlags[ExtensionFlags[\"Trusted\"] = 2] = \"Trusted\";\r\n})(ExtensionFlags = exports.ExtensionFlags || (exports.ExtensionFlags = {}));\r\n/**\r\n * Represents the state of an extension request\r\n */\r\nvar ExtensionRequestState;\r\n(function (ExtensionRequestState) {\r\n /**\r\n * The request has been opened, but not yet responded to\r\n */\r\n ExtensionRequestState[ExtensionRequestState[\"Open\"] = 0] = \"Open\";\r\n /**\r\n * The request was accepted (extension installed or license assigned)\r\n */\r\n ExtensionRequestState[ExtensionRequestState[\"Accepted\"] = 1] = \"Accepted\";\r\n /**\r\n * The request was rejected (extension not installed or license not assigned)\r\n */\r\n ExtensionRequestState[ExtensionRequestState[\"Rejected\"] = 2] = \"Rejected\";\r\n})(ExtensionRequestState = exports.ExtensionRequestState || (exports.ExtensionRequestState = {}));\r\nvar ExtensionRequestUpdateType;\r\n(function (ExtensionRequestUpdateType) {\r\n ExtensionRequestUpdateType[ExtensionRequestUpdateType[\"Created\"] = 1] = \"Created\";\r\n ExtensionRequestUpdateType[ExtensionRequestUpdateType[\"Approved\"] = 2] = \"Approved\";\r\n ExtensionRequestUpdateType[ExtensionRequestUpdateType[\"Rejected\"] = 3] = \"Rejected\";\r\n ExtensionRequestUpdateType[ExtensionRequestUpdateType[\"Deleted\"] = 4] = \"Deleted\";\r\n})(ExtensionRequestUpdateType = exports.ExtensionRequestUpdateType || (exports.ExtensionRequestUpdateType = {}));\r\n/**\r\n * States of an extension Note: If you add value to this enum, you need to do 2 other things. First add the back compat enum in value src\\Vssf\\Sdk\\Server\\Contributions\\InstalledExtensionMessage.cs. Second, you can not send the new value on the message bus. You need to remove it from the message bus event prior to being sent.\r\n */\r\nvar ExtensionStateFlags;\r\n(function (ExtensionStateFlags) {\r\n /**\r\n * No flags set\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Extension is disabled\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"Disabled\"] = 1] = \"Disabled\";\r\n /**\r\n * Extension is a built in\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"BuiltIn\"] = 2] = \"BuiltIn\";\r\n /**\r\n * Extension has multiple versions\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"MultiVersion\"] = 4] = \"MultiVersion\";\r\n /**\r\n * Extension is not installed. This is for builtin extensions only and can not otherwise be set.\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"UnInstalled\"] = 8] = \"UnInstalled\";\r\n /**\r\n * Error performing version check\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"VersionCheckError\"] = 16] = \"VersionCheckError\";\r\n /**\r\n * Trusted extensions are ones that are given special capabilities. These tend to come from Microsoft and can't be published by the general public. Note: BuiltIn extensions are always trusted.\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"Trusted\"] = 32] = \"Trusted\";\r\n /**\r\n * Extension is currently in an error state\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"Error\"] = 64] = \"Error\";\r\n /**\r\n * Extension scopes have changed and the extension requires re-authorization\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"NeedsReauthorization\"] = 128] = \"NeedsReauthorization\";\r\n /**\r\n * Error performing auto-upgrade. For example, if the new version has demands not supported the extension cannot be auto-upgraded.\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"AutoUpgradeError\"] = 256] = \"AutoUpgradeError\";\r\n /**\r\n * Extension is currently in a warning state, that can cause a degraded experience. The degraded experience can be caused for example by some installation issues detected such as implicit demands not supported.\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"Warning\"] = 512] = \"Warning\";\r\n})(ExtensionStateFlags = exports.ExtensionStateFlags || (exports.ExtensionStateFlags = {}));\r\nvar ExtensionUpdateType;\r\n(function (ExtensionUpdateType) {\r\n ExtensionUpdateType[ExtensionUpdateType[\"Installed\"] = 1] = \"Installed\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"Uninstalled\"] = 2] = \"Uninstalled\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"Enabled\"] = 3] = \"Enabled\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"Disabled\"] = 4] = \"Disabled\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"VersionUpdated\"] = 5] = \"VersionUpdated\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"ActionRequired\"] = 6] = \"ActionRequired\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"ActionResolved\"] = 7] = \"ActionResolved\";\r\n})(ExtensionUpdateType = exports.ExtensionUpdateType || (exports.ExtensionUpdateType = {}));\r\n/**\r\n * Installation issue type (Warning, Error)\r\n */\r\nvar InstalledExtensionStateIssueType;\r\n(function (InstalledExtensionStateIssueType) {\r\n /**\r\n * Represents an installation warning, for example an implicit demand not supported\r\n */\r\n InstalledExtensionStateIssueType[InstalledExtensionStateIssueType[\"Warning\"] = 0] = \"Warning\";\r\n /**\r\n * Represents an installation error, for example an explicit demand not supported\r\n */\r\n InstalledExtensionStateIssueType[InstalledExtensionStateIssueType[\"Error\"] = 1] = \"Error\";\r\n})(InstalledExtensionStateIssueType = exports.InstalledExtensionStateIssueType || (exports.InstalledExtensionStateIssueType = {}));\r\nexports.TypeInfo = {\r\n AcquisitionAssignmentType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"me\": 1,\r\n \"all\": 2\r\n }\r\n },\r\n AcquisitionOperation: {},\r\n AcquisitionOperationState: {\r\n enumValues: {\r\n \"disallow\": 0,\r\n \"allow\": 1,\r\n \"completed\": 3\r\n }\r\n },\r\n AcquisitionOperationType: {\r\n enumValues: {\r\n \"get\": 0,\r\n \"install\": 1,\r\n \"buy\": 2,\r\n \"try\": 3,\r\n \"request\": 4,\r\n \"none\": 5,\r\n \"purchaseRequest\": 6\r\n }\r\n },\r\n AcquisitionOptions: {},\r\n ContributionLicensingBehaviorType: {\r\n enumValues: {\r\n \"onlyIfLicensed\": 0,\r\n \"onlyIfUnlicensed\": 1,\r\n \"alwaysInclude\": 2\r\n }\r\n },\r\n ContributionNodeQuery: {},\r\n ContributionPropertyDescription: {},\r\n ContributionPropertyType: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"string\": 1,\r\n \"uri\": 2,\r\n \"guid\": 4,\r\n \"boolean\": 8,\r\n \"integer\": 16,\r\n \"double\": 32,\r\n \"dateTime\": 64,\r\n \"dictionary\": 128,\r\n \"array\": 256,\r\n \"object\": 512\r\n }\r\n },\r\n ContributionQueryOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeSelf\": 16,\r\n \"includeChildren\": 32,\r\n \"includeSubTree\": 96,\r\n \"includeAll\": 112,\r\n \"ignoreConstraints\": 256\r\n }\r\n },\r\n ContributionType: {},\r\n ExtensionAcquisitionRequest: {},\r\n ExtensionAuditLog: {},\r\n ExtensionAuditLogEntry: {},\r\n ExtensionEvent: {},\r\n ExtensionFlags: {\r\n enumValues: {\r\n \"builtIn\": 1,\r\n \"trusted\": 2\r\n }\r\n },\r\n ExtensionLicensing: {},\r\n ExtensionManifest: {},\r\n ExtensionRequest: {},\r\n ExtensionRequestEvent: {},\r\n ExtensionRequestsEvent: {},\r\n ExtensionRequestState: {\r\n enumValues: {\r\n \"open\": 0,\r\n \"accepted\": 1,\r\n \"rejected\": 2\r\n }\r\n },\r\n ExtensionRequestUpdateType: {\r\n enumValues: {\r\n \"created\": 1,\r\n \"approved\": 2,\r\n \"rejected\": 3,\r\n \"deleted\": 4\r\n }\r\n },\r\n ExtensionState: {},\r\n ExtensionStateFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"disabled\": 1,\r\n \"builtIn\": 2,\r\n \"multiVersion\": 4,\r\n \"unInstalled\": 8,\r\n \"versionCheckError\": 16,\r\n \"trusted\": 32,\r\n \"error\": 64,\r\n \"needsReauthorization\": 128,\r\n \"autoUpgradeError\": 256,\r\n \"warning\": 512\r\n }\r\n },\r\n ExtensionUpdateType: {\r\n enumValues: {\r\n \"installed\": 1,\r\n \"uninstalled\": 2,\r\n \"enabled\": 3,\r\n \"disabled\": 4,\r\n \"versionUpdated\": 5,\r\n \"actionRequired\": 6,\r\n \"actionResolved\": 7\r\n }\r\n },\r\n InstalledExtension: {},\r\n InstalledExtensionState: {},\r\n InstalledExtensionStateIssue: {},\r\n InstalledExtensionStateIssueType: {\r\n enumValues: {\r\n \"warning\": 0,\r\n \"error\": 1\r\n }\r\n },\r\n LicensingOverride: {},\r\n RequestedExtension: {},\r\n};\r\nexports.TypeInfo.AcquisitionOperation.fields = {\r\n operationState: {\r\n enumType: exports.TypeInfo.AcquisitionOperationState\r\n },\r\n operationType: {\r\n enumType: exports.TypeInfo.AcquisitionOperationType\r\n }\r\n};\r\nexports.TypeInfo.AcquisitionOptions.fields = {\r\n defaultOperation: {\r\n typeInfo: exports.TypeInfo.AcquisitionOperation\r\n },\r\n operations: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.AcquisitionOperation\r\n }\r\n};\r\nexports.TypeInfo.ContributionNodeQuery.fields = {\r\n queryOptions: {\r\n enumType: exports.TypeInfo.ContributionQueryOptions\r\n }\r\n};\r\nexports.TypeInfo.ContributionPropertyDescription.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.ContributionPropertyType\r\n }\r\n};\r\nexports.TypeInfo.ContributionType.fields = {\r\n properties: {\r\n isDictionary: true,\r\n dictionaryValueTypeInfo: exports.TypeInfo.ContributionPropertyDescription\r\n }\r\n};\r\nexports.TypeInfo.ExtensionAcquisitionRequest.fields = {\r\n assignmentType: {\r\n enumType: exports.TypeInfo.AcquisitionAssignmentType\r\n },\r\n operationType: {\r\n enumType: exports.TypeInfo.AcquisitionOperationType\r\n }\r\n};\r\nexports.TypeInfo.ExtensionAuditLog.fields = {\r\n entries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionAuditLogEntry\r\n }\r\n};\r\nexports.TypeInfo.ExtensionAuditLogEntry.fields = {\r\n auditDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ExtensionEvent.fields = {\r\n extension: {\r\n typeInfo: GalleryInterfaces.TypeInfo.PublishedExtension\r\n },\r\n updateType: {\r\n enumType: exports.TypeInfo.ExtensionUpdateType\r\n }\r\n};\r\nexports.TypeInfo.ExtensionLicensing.fields = {\r\n overrides: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LicensingOverride\r\n }\r\n};\r\nexports.TypeInfo.ExtensionManifest.fields = {\r\n contributionTypes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ContributionType\r\n },\r\n licensing: {\r\n typeInfo: exports.TypeInfo.ExtensionLicensing\r\n }\r\n};\r\nexports.TypeInfo.ExtensionRequest.fields = {\r\n requestDate: {\r\n isDate: true,\r\n },\r\n requestState: {\r\n enumType: exports.TypeInfo.ExtensionRequestState\r\n },\r\n resolveDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ExtensionRequestEvent.fields = {\r\n extension: {\r\n typeInfo: GalleryInterfaces.TypeInfo.PublishedExtension\r\n },\r\n request: {\r\n typeInfo: exports.TypeInfo.ExtensionRequest\r\n },\r\n updateType: {\r\n enumType: exports.TypeInfo.ExtensionRequestUpdateType\r\n }\r\n};\r\nexports.TypeInfo.ExtensionRequestsEvent.fields = {\r\n extension: {\r\n typeInfo: GalleryInterfaces.TypeInfo.PublishedExtension\r\n },\r\n requests: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionRequest\r\n },\r\n updateType: {\r\n enumType: exports.TypeInfo.ExtensionRequestUpdateType\r\n }\r\n};\r\nexports.TypeInfo.ExtensionState.fields = {\r\n flags: {\r\n enumType: exports.TypeInfo.ExtensionStateFlags\r\n },\r\n installationIssues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.InstalledExtensionStateIssue\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n lastVersionCheck: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.InstalledExtension.fields = {\r\n contributionTypes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ContributionType\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.ExtensionFlags\r\n },\r\n installState: {\r\n typeInfo: exports.TypeInfo.InstalledExtensionState\r\n },\r\n lastPublished: {\r\n isDate: true,\r\n },\r\n licensing: {\r\n typeInfo: exports.TypeInfo.ExtensionLicensing\r\n }\r\n};\r\nexports.TypeInfo.InstalledExtensionState.fields = {\r\n flags: {\r\n enumType: exports.TypeInfo.ExtensionStateFlags\r\n },\r\n installationIssues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.InstalledExtensionStateIssue\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.InstalledExtensionStateIssue.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.InstalledExtensionStateIssueType\r\n }\r\n};\r\nexports.TypeInfo.LicensingOverride.fields = {\r\n behavior: {\r\n enumType: exports.TypeInfo.ContributionLicensingBehaviorType\r\n }\r\n};\r\nexports.TypeInfo.RequestedExtension.fields = {\r\n extensionRequests: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionRequest\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * The current state of a feature within a given scope\r\n */\r\nvar ContributedFeatureEnabledValue;\r\n(function (ContributedFeatureEnabledValue) {\r\n /**\r\n * The state of the feature is not set for the specified scope\r\n */\r\n ContributedFeatureEnabledValue[ContributedFeatureEnabledValue[\"Undefined\"] = -1] = \"Undefined\";\r\n /**\r\n * The feature is disabled at the specified scope\r\n */\r\n ContributedFeatureEnabledValue[ContributedFeatureEnabledValue[\"Disabled\"] = 0] = \"Disabled\";\r\n /**\r\n * The feature is enabled at the specified scope\r\n */\r\n ContributedFeatureEnabledValue[ContributedFeatureEnabledValue[\"Enabled\"] = 1] = \"Enabled\";\r\n})(ContributedFeatureEnabledValue = exports.ContributedFeatureEnabledValue || (exports.ContributedFeatureEnabledValue = {}));\r\nexports.TypeInfo = {\r\n ContributedFeatureEnabledValue: {\r\n enumValues: {\r\n \"undefined\": -1,\r\n \"disabled\": 0,\r\n \"enabled\": 1\r\n }\r\n },\r\n ContributedFeatureState: {},\r\n ContributedFeatureStateQuery: {},\r\n};\r\nexports.TypeInfo.ContributedFeatureState.fields = {\r\n state: {\r\n enumType: exports.TypeInfo.ContributedFeatureEnabledValue\r\n }\r\n};\r\nexports.TypeInfo.ContributedFeatureStateQuery.fields = {\r\n featureStates: {\r\n isDictionary: true,\r\n dictionaryValueTypeInfo: exports.TypeInfo.ContributedFeatureState\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Compression type for file stored in Blobstore\r\n */\r\nvar BlobCompressionType;\r\n(function (BlobCompressionType) {\r\n BlobCompressionType[BlobCompressionType[\"None\"] = 0] = \"None\";\r\n BlobCompressionType[BlobCompressionType[\"GZip\"] = 1] = \"GZip\";\r\n})(BlobCompressionType = exports.BlobCompressionType || (exports.BlobCompressionType = {}));\r\n/**\r\n * Status of a container item.\r\n */\r\nvar ContainerItemStatus;\r\n(function (ContainerItemStatus) {\r\n /**\r\n * Item is created.\r\n */\r\n ContainerItemStatus[ContainerItemStatus[\"Created\"] = 1] = \"Created\";\r\n /**\r\n * Item is a file pending for upload.\r\n */\r\n ContainerItemStatus[ContainerItemStatus[\"PendingUpload\"] = 2] = \"PendingUpload\";\r\n})(ContainerItemStatus = exports.ContainerItemStatus || (exports.ContainerItemStatus = {}));\r\n/**\r\n * Type of a container item.\r\n */\r\nvar ContainerItemType;\r\n(function (ContainerItemType) {\r\n /**\r\n * Any item type.\r\n */\r\n ContainerItemType[ContainerItemType[\"Any\"] = 0] = \"Any\";\r\n /**\r\n * Item is a folder which can have child items.\r\n */\r\n ContainerItemType[ContainerItemType[\"Folder\"] = 1] = \"Folder\";\r\n /**\r\n * Item is a file which is stored in the file service.\r\n */\r\n ContainerItemType[ContainerItemType[\"File\"] = 2] = \"File\";\r\n})(ContainerItemType = exports.ContainerItemType || (exports.ContainerItemType = {}));\r\n/**\r\n * Options a container can have.\r\n */\r\nvar ContainerOptions;\r\n(function (ContainerOptions) {\r\n /**\r\n * No option.\r\n */\r\n ContainerOptions[ContainerOptions[\"None\"] = 0] = \"None\";\r\n})(ContainerOptions = exports.ContainerOptions || (exports.ContainerOptions = {}));\r\nexports.TypeInfo = {\r\n BlobCompressionType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"gZip\": 1\r\n }\r\n },\r\n ContainerItemBlobReference: {},\r\n ContainerItemStatus: {\r\n enumValues: {\r\n \"created\": 1,\r\n \"pendingUpload\": 2\r\n }\r\n },\r\n ContainerItemType: {\r\n enumValues: {\r\n \"any\": 0,\r\n \"folder\": 1,\r\n \"file\": 2\r\n }\r\n },\r\n ContainerOptions: {\r\n enumValues: {\r\n \"none\": 0\r\n }\r\n },\r\n FileContainer: {},\r\n FileContainerItem: {},\r\n};\r\nexports.TypeInfo.ContainerItemBlobReference.fields = {\r\n compressionType: {\r\n enumType: exports.TypeInfo.BlobCompressionType\r\n }\r\n};\r\nexports.TypeInfo.FileContainer.fields = {\r\n dateCreated: {\r\n isDate: true,\r\n },\r\n options: {\r\n enumType: exports.TypeInfo.ContainerOptions\r\n }\r\n};\r\nexports.TypeInfo.FileContainerItem.fields = {\r\n blobMetadata: {\r\n typeInfo: exports.TypeInfo.ContainerItemBlobReference\r\n },\r\n dateCreated: {\r\n isDate: true,\r\n },\r\n dateLastModified: {\r\n isDate: true,\r\n },\r\n itemType: {\r\n enumType: exports.TypeInfo.ContainerItemType\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ContainerItemStatus\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * How the acquisition is assigned\r\n */\r\nvar AcquisitionAssignmentType;\r\n(function (AcquisitionAssignmentType) {\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Just assign for me\r\n */\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"Me\"] = 1] = \"Me\";\r\n /**\r\n * Assign for all users in the account\r\n */\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"All\"] = 2] = \"All\";\r\n})(AcquisitionAssignmentType = exports.AcquisitionAssignmentType || (exports.AcquisitionAssignmentType = {}));\r\nvar AcquisitionOperationState;\r\n(function (AcquisitionOperationState) {\r\n /**\r\n * Not allowed to use this AcquisitionOperation\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Disallow\"] = 0] = \"Disallow\";\r\n /**\r\n * Allowed to use this AcquisitionOperation\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Allow\"] = 1] = \"Allow\";\r\n /**\r\n * Operation has already been completed and is no longer available\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Completed\"] = 3] = \"Completed\";\r\n})(AcquisitionOperationState = exports.AcquisitionOperationState || (exports.AcquisitionOperationState = {}));\r\n/**\r\n * Set of different types of operations that can be requested.\r\n */\r\nvar AcquisitionOperationType;\r\n(function (AcquisitionOperationType) {\r\n /**\r\n * Not yet used\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Get\"] = 0] = \"Get\";\r\n /**\r\n * Install this extension into the host provided\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Install\"] = 1] = \"Install\";\r\n /**\r\n * Buy licenses for this extension and install into the host provided\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Buy\"] = 2] = \"Buy\";\r\n /**\r\n * Try this extension\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Try\"] = 3] = \"Try\";\r\n /**\r\n * Request this extension for installation\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Request\"] = 4] = \"Request\";\r\n /**\r\n * No action found\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"None\"] = 5] = \"None\";\r\n /**\r\n * Request admins for purchasing extension\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"PurchaseRequest\"] = 6] = \"PurchaseRequest\";\r\n})(AcquisitionOperationType = exports.AcquisitionOperationType || (exports.AcquisitionOperationType = {}));\r\nvar ConcernCategory;\r\n(function (ConcernCategory) {\r\n ConcernCategory[ConcernCategory[\"General\"] = 1] = \"General\";\r\n ConcernCategory[ConcernCategory[\"Abusive\"] = 2] = \"Abusive\";\r\n ConcernCategory[ConcernCategory[\"Spam\"] = 4] = \"Spam\";\r\n})(ConcernCategory = exports.ConcernCategory || (exports.ConcernCategory = {}));\r\nvar DraftPatchOperation;\r\n(function (DraftPatchOperation) {\r\n DraftPatchOperation[DraftPatchOperation[\"Publish\"] = 1] = \"Publish\";\r\n DraftPatchOperation[DraftPatchOperation[\"Cancel\"] = 2] = \"Cancel\";\r\n})(DraftPatchOperation = exports.DraftPatchOperation || (exports.DraftPatchOperation = {}));\r\nvar DraftStateType;\r\n(function (DraftStateType) {\r\n DraftStateType[DraftStateType[\"Unpublished\"] = 1] = \"Unpublished\";\r\n DraftStateType[DraftStateType[\"Published\"] = 2] = \"Published\";\r\n DraftStateType[DraftStateType[\"Cancelled\"] = 3] = \"Cancelled\";\r\n DraftStateType[DraftStateType[\"Error\"] = 4] = \"Error\";\r\n})(DraftStateType = exports.DraftStateType || (exports.DraftStateType = {}));\r\nvar ExtensionDeploymentTechnology;\r\n(function (ExtensionDeploymentTechnology) {\r\n ExtensionDeploymentTechnology[ExtensionDeploymentTechnology[\"Exe\"] = 1] = \"Exe\";\r\n ExtensionDeploymentTechnology[ExtensionDeploymentTechnology[\"Msi\"] = 2] = \"Msi\";\r\n ExtensionDeploymentTechnology[ExtensionDeploymentTechnology[\"Vsix\"] = 3] = \"Vsix\";\r\n ExtensionDeploymentTechnology[ExtensionDeploymentTechnology[\"ReferralLink\"] = 4] = \"ReferralLink\";\r\n})(ExtensionDeploymentTechnology = exports.ExtensionDeploymentTechnology || (exports.ExtensionDeploymentTechnology = {}));\r\n/**\r\n * Type of event\r\n */\r\nvar ExtensionLifecycleEventType;\r\n(function (ExtensionLifecycleEventType) {\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Uninstall\"] = 1] = \"Uninstall\";\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Install\"] = 2] = \"Install\";\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Review\"] = 3] = \"Review\";\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Acquisition\"] = 4] = \"Acquisition\";\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Sales\"] = 5] = \"Sales\";\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Other\"] = 999] = \"Other\";\r\n})(ExtensionLifecycleEventType = exports.ExtensionLifecycleEventType || (exports.ExtensionLifecycleEventType = {}));\r\n/**\r\n * Set of flags that can be associated with a given permission over an extension\r\n */\r\nvar ExtensionPolicyFlags;\r\n(function (ExtensionPolicyFlags) {\r\n /**\r\n * No permission\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Permission on private extensions\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"Private\"] = 1] = \"Private\";\r\n /**\r\n * Permission on public extensions\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"Public\"] = 2] = \"Public\";\r\n /**\r\n * Permission in extensions that are in preview\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"Preview\"] = 4] = \"Preview\";\r\n /**\r\n * Permission in released extensions\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"Released\"] = 8] = \"Released\";\r\n /**\r\n * Permission in 1st party extensions\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"FirstParty\"] = 16] = \"FirstParty\";\r\n /**\r\n * Mask that defines all permissions\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"All\"] = 31] = \"All\";\r\n})(ExtensionPolicyFlags = exports.ExtensionPolicyFlags || (exports.ExtensionPolicyFlags = {}));\r\n/**\r\n * Type of extension filters that are supported in the queries.\r\n */\r\nvar ExtensionQueryFilterType;\r\n(function (ExtensionQueryFilterType) {\r\n /**\r\n * The values are used as tags. All tags are treated as \"OR\" conditions with each other. There may be some value put on the number of matched tags from the query.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Tag\"] = 1] = \"Tag\";\r\n /**\r\n * The Values are an ExtensionName or fragment that is used to match other extension names.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"DisplayName\"] = 2] = \"DisplayName\";\r\n /**\r\n * The Filter is one or more tokens that define what scope to return private extensions for.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Private\"] = 3] = \"Private\";\r\n /**\r\n * Retrieve a set of extensions based on their id's. The values should be the extension id's encoded as strings.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Id\"] = 4] = \"Id\";\r\n /**\r\n * The category is unlike other filters. It is AND'd with the other filters instead of being a separate query.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Category\"] = 5] = \"Category\";\r\n /**\r\n * Certain contribution types may be indexed to allow for query by type. User defined types can't be indexed at the moment.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"ContributionType\"] = 6] = \"ContributionType\";\r\n /**\r\n * Retrieve an set extension based on the name based identifier. This differs from the internal id (which is being deprecated).\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Name\"] = 7] = \"Name\";\r\n /**\r\n * The InstallationTarget for an extension defines the target consumer for the extension. This may be something like VS, VSOnline, or VSCode\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"InstallationTarget\"] = 8] = \"InstallationTarget\";\r\n /**\r\n * Query for featured extensions, no value is allowed when using the query type.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Featured\"] = 9] = \"Featured\";\r\n /**\r\n * The SearchText provided by the user to search for extensions\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"SearchText\"] = 10] = \"SearchText\";\r\n /**\r\n * Query for extensions that are featured in their own category, The filterValue for this is name of category of extensions.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"FeaturedInCategory\"] = 11] = \"FeaturedInCategory\";\r\n /**\r\n * When retrieving extensions from a query, exclude the extensions which are having the given flags. The value specified for this filter should be a string representing the integer values of the flags to be excluded. In case of multiple flags to be specified, a logical OR of the interger values should be given as value for this filter This should be at most one filter of this type. This only acts as a restrictive filter after. In case of having a particular flag in both IncludeWithFlags and ExcludeWithFlags, excludeFlags will remove the included extensions giving empty result for that flag.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"ExcludeWithFlags\"] = 12] = \"ExcludeWithFlags\";\r\n /**\r\n * When retrieving extensions from a query, include the extensions which are having the given flags. The value specified for this filter should be a string representing the integer values of the flags to be included. In case of multiple flags to be specified, a logical OR of the integer values should be given as value for this filter This should be at most one filter of this type. This only acts as a restrictive filter after. In case of having a particular flag in both IncludeWithFlags and ExcludeWithFlags, excludeFlags will remove the included extensions giving empty result for that flag. In case of multiple flags given in IncludeWithFlags in ORed fashion, extensions having any of the given flags will be included.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"IncludeWithFlags\"] = 13] = \"IncludeWithFlags\";\r\n /**\r\n * Filter the extensions based on the LCID values applicable. Any extensions which are not having any LCID values will also be filtered. This is currently only supported for VS extensions.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Lcid\"] = 14] = \"Lcid\";\r\n /**\r\n * Filter to provide the version of the installation target. This filter will be used along with InstallationTarget filter. The value should be a valid version string. Currently supported only if search text is provided.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"InstallationTargetVersion\"] = 15] = \"InstallationTargetVersion\";\r\n /**\r\n * Filter type for specifying a range of installation target version. The filter will be used along with InstallationTarget filter. The value should be a pair of well formed version values separated by hyphen(-). Currently supported only if search text is provided.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"InstallationTargetVersionRange\"] = 16] = \"InstallationTargetVersionRange\";\r\n /**\r\n * Filter type for specifying metadata key and value to be used for filtering.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"VsixMetadata\"] = 17] = \"VsixMetadata\";\r\n /**\r\n * Filter to get extensions published by a publisher having supplied internal name\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"PublisherName\"] = 18] = \"PublisherName\";\r\n /**\r\n * Filter to get extensions published by all publishers having supplied display name\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"PublisherDisplayName\"] = 19] = \"PublisherDisplayName\";\r\n /**\r\n * When retrieving extensions from a query, include the extensions which have a publisher having the given flags. The value specified for this filter should be a string representing the integer values of the flags to be included. In case of multiple flags to be specified, a logical OR of the integer values should be given as value for this filter There should be at most one filter of this type. This only acts as a restrictive filter after. In case of multiple flags given in IncludeWithFlags in ORed fashion, extensions having any of the given flags will be included.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"IncludeWithPublisherFlags\"] = 20] = \"IncludeWithPublisherFlags\";\r\n /**\r\n * Filter to get extensions shared with particular organization\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"OrganizationSharedWith\"] = 21] = \"OrganizationSharedWith\";\r\n})(ExtensionQueryFilterType = exports.ExtensionQueryFilterType || (exports.ExtensionQueryFilterType = {}));\r\n/**\r\n * Set of flags used to determine which set of information is retrieved when reading published extensions\r\n */\r\nvar ExtensionQueryFlags;\r\n(function (ExtensionQueryFlags) {\r\n /**\r\n * None is used to retrieve only the basic extension details.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * IncludeVersions will return version information for extensions returned\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeVersions\"] = 1] = \"IncludeVersions\";\r\n /**\r\n * IncludeFiles will return information about which files were found within the extension that were stored independent of the manifest. When asking for files, versions will be included as well since files are returned as a property of the versions. These files can be retrieved using the path to the file without requiring the entire manifest be downloaded.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeFiles\"] = 2] = \"IncludeFiles\";\r\n /**\r\n * Include the Categories and Tags that were added to the extension definition.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeCategoryAndTags\"] = 4] = \"IncludeCategoryAndTags\";\r\n /**\r\n * Include the details about which accounts the extension has been shared with if the extension is a private extension.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeSharedAccounts\"] = 8] = \"IncludeSharedAccounts\";\r\n /**\r\n * Include properties associated with versions of the extension\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeVersionProperties\"] = 16] = \"IncludeVersionProperties\";\r\n /**\r\n * Excluding non-validated extensions will remove any extension versions that either are in the process of being validated or have failed validation.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"ExcludeNonValidated\"] = 32] = \"ExcludeNonValidated\";\r\n /**\r\n * Include the set of installation targets the extension has requested.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeInstallationTargets\"] = 64] = \"IncludeInstallationTargets\";\r\n /**\r\n * Include the base uri for assets of this extension\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeAssetUri\"] = 128] = \"IncludeAssetUri\";\r\n /**\r\n * Include the statistics associated with this extension\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeStatistics\"] = 256] = \"IncludeStatistics\";\r\n /**\r\n * When retrieving versions from a query, only include the latest version of the extensions that matched. This is useful when the caller doesn't need all the published versions. It will save a significant size in the returned payload.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeLatestVersionOnly\"] = 512] = \"IncludeLatestVersionOnly\";\r\n /**\r\n * This flag switches the asset uri to use GetAssetByName instead of CDN When this is used, values of base asset uri and base asset uri fallback are switched When this is used, source of asset files are pointed to Gallery service always even if CDN is available\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"UseFallbackAssetUri\"] = 1024] = \"UseFallbackAssetUri\";\r\n /**\r\n * This flag is used to get all the metadata values associated with the extension. This is not applicable to VSTS or VSCode extensions and usage is only internal.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeMetadata\"] = 2048] = \"IncludeMetadata\";\r\n /**\r\n * This flag is used to indicate to return very small data for extension required by VS IDE. This flag is only compatible when querying is done by VS IDE\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeMinimalPayloadForVsIde\"] = 4096] = \"IncludeMinimalPayloadForVsIde\";\r\n /**\r\n * This flag is used to get Lcid values associated with the extension. This is not applicable to VSTS or VSCode extensions and usage is only internal\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeLcids\"] = 8192] = \"IncludeLcids\";\r\n /**\r\n * Include the details about which organizations the extension has been shared with if the extension is a private extension.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeSharedOrganizations\"] = 16384] = \"IncludeSharedOrganizations\";\r\n /**\r\n * AllAttributes is designed to be a mask that defines all sub-elements of the extension should be returned. NOTE: This is not actually All flags. This is now locked to the set defined since changing this enum would be a breaking change and would change the behavior of anyone using it. Try not to use this value when making calls to the service, instead be explicit about the options required.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"AllAttributes\"] = 16863] = \"AllAttributes\";\r\n})(ExtensionQueryFlags = exports.ExtensionQueryFlags || (exports.ExtensionQueryFlags = {}));\r\nvar ExtensionStatisticOperation;\r\n(function (ExtensionStatisticOperation) {\r\n ExtensionStatisticOperation[ExtensionStatisticOperation[\"None\"] = 0] = \"None\";\r\n ExtensionStatisticOperation[ExtensionStatisticOperation[\"Set\"] = 1] = \"Set\";\r\n ExtensionStatisticOperation[ExtensionStatisticOperation[\"Increment\"] = 2] = \"Increment\";\r\n ExtensionStatisticOperation[ExtensionStatisticOperation[\"Decrement\"] = 3] = \"Decrement\";\r\n ExtensionStatisticOperation[ExtensionStatisticOperation[\"Delete\"] = 4] = \"Delete\";\r\n})(ExtensionStatisticOperation = exports.ExtensionStatisticOperation || (exports.ExtensionStatisticOperation = {}));\r\n/**\r\n * Stats aggregation type\r\n */\r\nvar ExtensionStatsAggregateType;\r\n(function (ExtensionStatsAggregateType) {\r\n ExtensionStatsAggregateType[ExtensionStatsAggregateType[\"Daily\"] = 1] = \"Daily\";\r\n})(ExtensionStatsAggregateType = exports.ExtensionStatsAggregateType || (exports.ExtensionStatsAggregateType = {}));\r\n/**\r\n * Set of flags that can be associated with a given extension version. These flags apply to a specific version of the extension.\r\n */\r\nvar ExtensionVersionFlags;\r\n(function (ExtensionVersionFlags) {\r\n /**\r\n * No flags exist for this version.\r\n */\r\n ExtensionVersionFlags[ExtensionVersionFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * The Validated flag for a version means the extension version has passed validation and can be used..\r\n */\r\n ExtensionVersionFlags[ExtensionVersionFlags[\"Validated\"] = 1] = \"Validated\";\r\n})(ExtensionVersionFlags = exports.ExtensionVersionFlags || (exports.ExtensionVersionFlags = {}));\r\n/**\r\n * Type of event\r\n */\r\nvar NotificationTemplateType;\r\n(function (NotificationTemplateType) {\r\n /**\r\n * Template type for Review Notification.\r\n */\r\n NotificationTemplateType[NotificationTemplateType[\"ReviewNotification\"] = 1] = \"ReviewNotification\";\r\n /**\r\n * Template type for Qna Notification.\r\n */\r\n NotificationTemplateType[NotificationTemplateType[\"QnaNotification\"] = 2] = \"QnaNotification\";\r\n /**\r\n * Template type for Customer Contact Notification.\r\n */\r\n NotificationTemplateType[NotificationTemplateType[\"CustomerContactNotification\"] = 3] = \"CustomerContactNotification\";\r\n /**\r\n * Template type for Publisher Member Notification.\r\n */\r\n NotificationTemplateType[NotificationTemplateType[\"PublisherMemberUpdateNotification\"] = 4] = \"PublisherMemberUpdateNotification\";\r\n})(NotificationTemplateType = exports.NotificationTemplateType || (exports.NotificationTemplateType = {}));\r\n/**\r\n * PagingDirection is used to define which set direction to move the returned result set based on a previous query.\r\n */\r\nvar PagingDirection;\r\n(function (PagingDirection) {\r\n /**\r\n * Backward will return results from earlier in the resultset.\r\n */\r\n PagingDirection[PagingDirection[\"Backward\"] = 1] = \"Backward\";\r\n /**\r\n * Forward will return results from later in the resultset.\r\n */\r\n PagingDirection[PagingDirection[\"Forward\"] = 2] = \"Forward\";\r\n})(PagingDirection = exports.PagingDirection || (exports.PagingDirection = {}));\r\n/**\r\n * Set of flags that can be associated with a given extension. These flags apply to all versions of the extension and not to a specific version.\r\n */\r\nvar PublishedExtensionFlags;\r\n(function (PublishedExtensionFlags) {\r\n /**\r\n * No flags exist for this extension.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * The Disabled flag for an extension means the extension can't be changed and won't be used by consumers. The disabled flag is managed by the service and can't be supplied by the Extension Developers.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Disabled\"] = 1] = \"Disabled\";\r\n /**\r\n * BuiltIn Extension are available to all Tenants. An explicit registration is not required. This attribute is reserved and can't be supplied by Extension Developers. BuiltIn extensions are by definition Public. There is no need to set the public flag for extensions marked BuiltIn.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"BuiltIn\"] = 2] = \"BuiltIn\";\r\n /**\r\n * This extension has been validated by the service. The extension meets the requirements specified. This attribute is reserved and can't be supplied by the Extension Developers. Validation is a process that ensures that all contributions are well formed. They meet the requirements defined by the contribution type they are extending. Note this attribute will be updated asynchronously as the extension is validated by the developer of the contribution type. There will be restricted access to the extension while this process is performed.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Validated\"] = 4] = \"Validated\";\r\n /**\r\n * Trusted extensions are ones that are given special capabilities. These tend to come from Microsoft and can't be published by the general public. Note: BuiltIn extensions are always trusted.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Trusted\"] = 8] = \"Trusted\";\r\n /**\r\n * The Paid flag indicates that the commerce can be enabled for this extension. Publisher needs to setup Offer/Pricing plan in Azure. If Paid flag is set and a corresponding Offer is not available, the extension will automatically be marked as Preview. If the publisher intends to make the extension Paid in the future, it is mandatory to set the Preview flag. This is currently available only for VSTS extensions only.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Paid\"] = 16] = \"Paid\";\r\n /**\r\n * This extension registration is public, making its visibility open to the public. This means all tenants have the ability to install this extension. Without this flag the extension will be private and will need to be shared with the tenants that can install it.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Public\"] = 256] = \"Public\";\r\n /**\r\n * This extension has multiple versions active at one time and version discovery should be done using the defined \"Version Discovery\" protocol to determine the version available to a specific user or tenant. @TODO: Link to Version Discovery Protocol.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"MultiVersion\"] = 512] = \"MultiVersion\";\r\n /**\r\n * The system flag is reserved, and cant be used by publishers.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"System\"] = 1024] = \"System\";\r\n /**\r\n * The Preview flag indicates that the extension is still under preview (not yet of \"release\" quality). These extensions may be decorated differently in the gallery and may have different policies applied to them.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Preview\"] = 2048] = \"Preview\";\r\n /**\r\n * The Unpublished flag indicates that the extension can't be installed/downloaded. Users who have installed such an extension can continue to use the extension.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Unpublished\"] = 4096] = \"Unpublished\";\r\n /**\r\n * The Trial flag indicates that the extension is in Trial version. The flag is right now being used only with respect to Visual Studio extensions.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Trial\"] = 8192] = \"Trial\";\r\n /**\r\n * The Locked flag indicates that extension has been locked from Marketplace. Further updates/acquisitions are not allowed on the extension until this is present. This should be used along with making the extension private/unpublished.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Locked\"] = 16384] = \"Locked\";\r\n /**\r\n * This flag is set for extensions we want to hide from Marketplace home and search pages. This will be used to override the exposure of builtIn flags.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Hidden\"] = 32768] = \"Hidden\";\r\n})(PublishedExtensionFlags = exports.PublishedExtensionFlags || (exports.PublishedExtensionFlags = {}));\r\nvar PublisherFlags;\r\n(function (PublisherFlags) {\r\n /**\r\n * This should never be returned, it is used to represent a publisher who's flags haven't changed during update calls.\r\n */\r\n PublisherFlags[PublisherFlags[\"UnChanged\"] = 1073741824] = \"UnChanged\";\r\n /**\r\n * No flags exist for this publisher.\r\n */\r\n PublisherFlags[PublisherFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * The Disabled flag for a publisher means the publisher can't be changed and won't be used by consumers, this extends to extensions owned by the publisher as well. The disabled flag is managed by the service and can't be supplied by the Extension Developers.\r\n */\r\n PublisherFlags[PublisherFlags[\"Disabled\"] = 1] = \"Disabled\";\r\n /**\r\n * A verified publisher is one that Microsoft has done some review of and ensured the publisher meets a set of requirements. The requirements to become a verified publisher are not listed here. They can be found in public documentation (TBD).\r\n */\r\n PublisherFlags[PublisherFlags[\"Verified\"] = 2] = \"Verified\";\r\n /**\r\n * A Certified publisher is one that is Microsoft verified and in addition meets a set of requirements for its published extensions. The requirements to become a certified publisher are not listed here. They can be found in public documentation (TBD).\r\n */\r\n PublisherFlags[PublisherFlags[\"Certified\"] = 4] = \"Certified\";\r\n /**\r\n * This is the set of flags that can't be supplied by the developer and is managed by the service itself.\r\n */\r\n PublisherFlags[PublisherFlags[\"ServiceFlags\"] = 7] = \"ServiceFlags\";\r\n})(PublisherFlags = exports.PublisherFlags || (exports.PublisherFlags = {}));\r\nvar PublisherPermissions;\r\n(function (PublisherPermissions) {\r\n /**\r\n * This gives the bearer the rights to read Publishers and Extensions.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"Read\"] = 1] = \"Read\";\r\n /**\r\n * This gives the bearer the rights to update, delete, and share Extensions (but not the ability to create them).\r\n */\r\n PublisherPermissions[PublisherPermissions[\"UpdateExtension\"] = 2] = \"UpdateExtension\";\r\n /**\r\n * This gives the bearer the rights to create new Publishers at the root of the namespace.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"CreatePublisher\"] = 4] = \"CreatePublisher\";\r\n /**\r\n * This gives the bearer the rights to create new Extensions within a publisher.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"PublishExtension\"] = 8] = \"PublishExtension\";\r\n /**\r\n * Admin gives the bearer the rights to manage restricted attributes of Publishers and Extensions.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"Admin\"] = 16] = \"Admin\";\r\n /**\r\n * TrustedPartner gives the bearer the rights to publish a extensions with restricted capabilities.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"TrustedPartner\"] = 32] = \"TrustedPartner\";\r\n /**\r\n * PrivateRead is another form of read designed to allow higher privilege accessors the ability to read private extensions.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"PrivateRead\"] = 64] = \"PrivateRead\";\r\n /**\r\n * This gives the bearer the rights to delete any extension.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"DeleteExtension\"] = 128] = \"DeleteExtension\";\r\n /**\r\n * This gives the bearer the rights edit the publisher settings.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"EditSettings\"] = 256] = \"EditSettings\";\r\n /**\r\n * This gives the bearer the rights to see all permissions on the publisher.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"ViewPermissions\"] = 512] = \"ViewPermissions\";\r\n /**\r\n * This gives the bearer the rights to assign permissions on the publisher.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"ManagePermissions\"] = 1024] = \"ManagePermissions\";\r\n /**\r\n * This gives the bearer the rights to delete the publisher.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"DeletePublisher\"] = 2048] = \"DeletePublisher\";\r\n})(PublisherPermissions = exports.PublisherPermissions || (exports.PublisherPermissions = {}));\r\n/**\r\n * Set of flags used to define the attributes requested when a publisher is returned. Some API's allow the caller to specify the level of detail needed.\r\n */\r\nvar PublisherQueryFlags;\r\n(function (PublisherQueryFlags) {\r\n /**\r\n * None is used to retrieve only the basic publisher details.\r\n */\r\n PublisherQueryFlags[PublisherQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Is used to include a list of basic extension details for all extensions published by the requested publisher.\r\n */\r\n PublisherQueryFlags[PublisherQueryFlags[\"IncludeExtensions\"] = 1] = \"IncludeExtensions\";\r\n /**\r\n * Is used to include email address of all the users who are marked as owners for the publisher\r\n */\r\n PublisherQueryFlags[PublisherQueryFlags[\"IncludeEmailAddress\"] = 2] = \"IncludeEmailAddress\";\r\n})(PublisherQueryFlags = exports.PublisherQueryFlags || (exports.PublisherQueryFlags = {}));\r\n/**\r\n * Access definition for a RoleAssignment.\r\n */\r\nvar PublisherRoleAccess;\r\n(function (PublisherRoleAccess) {\r\n /**\r\n * Access has been explicitly set.\r\n */\r\n PublisherRoleAccess[PublisherRoleAccess[\"Assigned\"] = 1] = \"Assigned\";\r\n /**\r\n * Access has been inherited from a higher scope.\r\n */\r\n PublisherRoleAccess[PublisherRoleAccess[\"Inherited\"] = 2] = \"Inherited\";\r\n})(PublisherRoleAccess = exports.PublisherRoleAccess || (exports.PublisherRoleAccess = {}));\r\nvar PublisherState;\r\n(function (PublisherState) {\r\n /**\r\n * No state exists for this publisher.\r\n */\r\n PublisherState[PublisherState[\"None\"] = 0] = \"None\";\r\n /**\r\n * This state indicates that publisher has applied for Marketplace verification (via UI) and still not been certified. This state would be reset once the publisher is verified.\r\n */\r\n PublisherState[PublisherState[\"VerificationPending\"] = 1] = \"VerificationPending\";\r\n /**\r\n * This state indicates that publisher has applied for Marketplace certification (via UI) and still not been certified. This state would be reset once the publisher is certified.\r\n */\r\n PublisherState[PublisherState[\"CertificationPending\"] = 2] = \"CertificationPending\";\r\n /**\r\n * This state indicates that publisher had applied for Marketplace certification (via UI) but his/her certification got rejected. This state would be reset if and when the publisher is certified.\r\n */\r\n PublisherState[PublisherState[\"CertificationRejected\"] = 4] = \"CertificationRejected\";\r\n /**\r\n * This state indicates that publisher was certified on the Marketplace, but his/her certification got revoked. This state would never be reset, even after publisher gets re-certified. It would indicate that the publisher certification was revoked at least once.\r\n */\r\n PublisherState[PublisherState[\"CertificationRevoked\"] = 8] = \"CertificationRevoked\";\r\n})(PublisherState = exports.PublisherState || (exports.PublisherState = {}));\r\n/**\r\n * Denotes the status of the QnA Item\r\n */\r\nvar QnAItemStatus;\r\n(function (QnAItemStatus) {\r\n QnAItemStatus[QnAItemStatus[\"None\"] = 0] = \"None\";\r\n /**\r\n * The UserEditable flag indicates whether the item is editable by the logged in user.\r\n */\r\n QnAItemStatus[QnAItemStatus[\"UserEditable\"] = 1] = \"UserEditable\";\r\n /**\r\n * The PublisherCreated flag indicates whether the item has been created by extension publisher.\r\n */\r\n QnAItemStatus[QnAItemStatus[\"PublisherCreated\"] = 2] = \"PublisherCreated\";\r\n})(QnAItemStatus = exports.QnAItemStatus || (exports.QnAItemStatus = {}));\r\n/**\r\n * The status of a REST Api response status.\r\n */\r\nvar RestApiResponseStatus;\r\n(function (RestApiResponseStatus) {\r\n /**\r\n * The operation is completed.\r\n */\r\n RestApiResponseStatus[RestApiResponseStatus[\"Completed\"] = 0] = \"Completed\";\r\n /**\r\n * The operation is failed.\r\n */\r\n RestApiResponseStatus[RestApiResponseStatus[\"Failed\"] = 1] = \"Failed\";\r\n /**\r\n * The operation is in progress.\r\n */\r\n RestApiResponseStatus[RestApiResponseStatus[\"Inprogress\"] = 2] = \"Inprogress\";\r\n /**\r\n * The operation is in skipped.\r\n */\r\n RestApiResponseStatus[RestApiResponseStatus[\"Skipped\"] = 3] = \"Skipped\";\r\n})(RestApiResponseStatus = exports.RestApiResponseStatus || (exports.RestApiResponseStatus = {}));\r\n/**\r\n * Type of operation\r\n */\r\nvar ReviewEventOperation;\r\n(function (ReviewEventOperation) {\r\n ReviewEventOperation[ReviewEventOperation[\"Create\"] = 1] = \"Create\";\r\n ReviewEventOperation[ReviewEventOperation[\"Update\"] = 2] = \"Update\";\r\n ReviewEventOperation[ReviewEventOperation[\"Delete\"] = 3] = \"Delete\";\r\n})(ReviewEventOperation = exports.ReviewEventOperation || (exports.ReviewEventOperation = {}));\r\n/**\r\n * Options to GetReviews query\r\n */\r\nvar ReviewFilterOptions;\r\n(function (ReviewFilterOptions) {\r\n /**\r\n * No filtering, all reviews are returned (default option)\r\n */\r\n ReviewFilterOptions[ReviewFilterOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Filter out review items with empty review text\r\n */\r\n ReviewFilterOptions[ReviewFilterOptions[\"FilterEmptyReviews\"] = 1] = \"FilterEmptyReviews\";\r\n /**\r\n * Filter out review items with empty usernames\r\n */\r\n ReviewFilterOptions[ReviewFilterOptions[\"FilterEmptyUserNames\"] = 2] = \"FilterEmptyUserNames\";\r\n})(ReviewFilterOptions = exports.ReviewFilterOptions || (exports.ReviewFilterOptions = {}));\r\n/**\r\n * Denotes the patch operation type\r\n */\r\nvar ReviewPatchOperation;\r\n(function (ReviewPatchOperation) {\r\n /**\r\n * Flag a review\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"FlagReview\"] = 1] = \"FlagReview\";\r\n /**\r\n * Update an existing review\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"UpdateReview\"] = 2] = \"UpdateReview\";\r\n /**\r\n * Submit a reply for a review\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"ReplyToReview\"] = 3] = \"ReplyToReview\";\r\n /**\r\n * Submit an admin response\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"AdminResponseForReview\"] = 4] = \"AdminResponseForReview\";\r\n /**\r\n * Delete an Admin Reply\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"DeleteAdminReply\"] = 5] = \"DeleteAdminReply\";\r\n /**\r\n * Delete Publisher Reply\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"DeletePublisherReply\"] = 6] = \"DeletePublisherReply\";\r\n})(ReviewPatchOperation = exports.ReviewPatchOperation || (exports.ReviewPatchOperation = {}));\r\n/**\r\n * Type of event\r\n */\r\nvar ReviewResourceType;\r\n(function (ReviewResourceType) {\r\n ReviewResourceType[ReviewResourceType[\"Review\"] = 1] = \"Review\";\r\n ReviewResourceType[ReviewResourceType[\"PublisherReply\"] = 2] = \"PublisherReply\";\r\n ReviewResourceType[ReviewResourceType[\"AdminReply\"] = 3] = \"AdminReply\";\r\n})(ReviewResourceType = exports.ReviewResourceType || (exports.ReviewResourceType = {}));\r\n/**\r\n * Defines the sort order that can be defined for Extensions query\r\n */\r\nvar SortByType;\r\n(function (SortByType) {\r\n /**\r\n * The results will be sorted by relevance in case search query is given, if no search query resutls will be provided as is\r\n */\r\n SortByType[SortByType[\"Relevance\"] = 0] = \"Relevance\";\r\n /**\r\n * The results will be sorted as per Last Updated date of the extensions with recently updated at the top\r\n */\r\n SortByType[SortByType[\"LastUpdatedDate\"] = 1] = \"LastUpdatedDate\";\r\n /**\r\n * Results will be sorted Alphabetically as per the title of the extension\r\n */\r\n SortByType[SortByType[\"Title\"] = 2] = \"Title\";\r\n /**\r\n * Results will be sorted Alphabetically as per Publisher title\r\n */\r\n SortByType[SortByType[\"Publisher\"] = 3] = \"Publisher\";\r\n /**\r\n * Results will be sorted by Install Count\r\n */\r\n SortByType[SortByType[\"InstallCount\"] = 4] = \"InstallCount\";\r\n /**\r\n * The results will be sorted as per Published date of the extensions\r\n */\r\n SortByType[SortByType[\"PublishedDate\"] = 5] = \"PublishedDate\";\r\n /**\r\n * The results will be sorted as per Average ratings of the extensions\r\n */\r\n SortByType[SortByType[\"AverageRating\"] = 6] = \"AverageRating\";\r\n /**\r\n * The results will be sorted as per Trending Daily Score of the extensions\r\n */\r\n SortByType[SortByType[\"TrendingDaily\"] = 7] = \"TrendingDaily\";\r\n /**\r\n * The results will be sorted as per Trending weekly Score of the extensions\r\n */\r\n SortByType[SortByType[\"TrendingWeekly\"] = 8] = \"TrendingWeekly\";\r\n /**\r\n * The results will be sorted as per Trending monthly Score of the extensions\r\n */\r\n SortByType[SortByType[\"TrendingMonthly\"] = 9] = \"TrendingMonthly\";\r\n /**\r\n * The results will be sorted as per ReleaseDate of the extensions (date on which the extension first went public)\r\n */\r\n SortByType[SortByType[\"ReleaseDate\"] = 10] = \"ReleaseDate\";\r\n /**\r\n * The results will be sorted as per Author defined in the VSix/Metadata. If not defined, publisher name is used This is specifically needed by VS IDE, other (new and old) clients are not encouraged to use this\r\n */\r\n SortByType[SortByType[\"Author\"] = 11] = \"Author\";\r\n /**\r\n * The results will be sorted as per Weighted Rating of the extension.\r\n */\r\n SortByType[SortByType[\"WeightedRating\"] = 12] = \"WeightedRating\";\r\n})(SortByType = exports.SortByType || (exports.SortByType = {}));\r\n/**\r\n * Defines the sort order that can be defined for Extensions query\r\n */\r\nvar SortOrderType;\r\n(function (SortOrderType) {\r\n /**\r\n * Results will be sorted in the default order as per the sorting type defined. The default varies for each type, e.g. for Relevance, default is Descending, for Title default is Ascending etc.\r\n */\r\n SortOrderType[SortOrderType[\"Default\"] = 0] = \"Default\";\r\n /**\r\n * The results will be sorted in Ascending order\r\n */\r\n SortOrderType[SortOrderType[\"Ascending\"] = 1] = \"Ascending\";\r\n /**\r\n * The results will be sorted in Descending order\r\n */\r\n SortOrderType[SortOrderType[\"Descending\"] = 2] = \"Descending\";\r\n})(SortOrderType = exports.SortOrderType || (exports.SortOrderType = {}));\r\nexports.TypeInfo = {\r\n AcquisitionAssignmentType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"me\": 1,\r\n \"all\": 2\r\n }\r\n },\r\n AcquisitionOperation: {},\r\n AcquisitionOperationState: {\r\n enumValues: {\r\n \"disallow\": 0,\r\n \"allow\": 1,\r\n \"completed\": 3\r\n }\r\n },\r\n AcquisitionOperationType: {\r\n enumValues: {\r\n \"get\": 0,\r\n \"install\": 1,\r\n \"buy\": 2,\r\n \"try\": 3,\r\n \"request\": 4,\r\n \"none\": 5,\r\n \"purchaseRequest\": 6\r\n }\r\n },\r\n AcquisitionOptions: {},\r\n AzureRestApiResponseModel: {},\r\n Concern: {},\r\n ConcernCategory: {\r\n enumValues: {\r\n \"general\": 1,\r\n \"abusive\": 2,\r\n \"spam\": 4\r\n }\r\n },\r\n CustomerLastContact: {},\r\n CustomerSupportRequest: {},\r\n DraftPatchOperation: {\r\n enumValues: {\r\n \"publish\": 1,\r\n \"cancel\": 2\r\n }\r\n },\r\n DraftStateType: {\r\n enumValues: {\r\n \"unpublished\": 1,\r\n \"published\": 2,\r\n \"cancelled\": 3,\r\n \"error\": 4\r\n }\r\n },\r\n ExtensionAcquisitionRequest: {},\r\n ExtensionDailyStat: {},\r\n ExtensionDailyStats: {},\r\n ExtensionDeploymentTechnology: {\r\n enumValues: {\r\n \"exe\": 1,\r\n \"msi\": 2,\r\n \"vsix\": 3,\r\n \"referralLink\": 4\r\n }\r\n },\r\n ExtensionDraft: {},\r\n ExtensionDraftPatch: {},\r\n ExtensionEvent: {},\r\n ExtensionEvents: {},\r\n ExtensionFilterResult: {},\r\n ExtensionLifecycleEventType: {\r\n enumValues: {\r\n \"uninstall\": 1,\r\n \"install\": 2,\r\n \"review\": 3,\r\n \"acquisition\": 4,\r\n \"sales\": 5,\r\n \"other\": 999\r\n }\r\n },\r\n ExtensionPayload: {},\r\n ExtensionPolicy: {},\r\n ExtensionPolicyFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"private\": 1,\r\n \"public\": 2,\r\n \"preview\": 4,\r\n \"released\": 8,\r\n \"firstParty\": 16,\r\n \"all\": 31\r\n }\r\n },\r\n ExtensionQuery: {},\r\n ExtensionQueryFilterType: {\r\n enumValues: {\r\n \"tag\": 1,\r\n \"displayName\": 2,\r\n \"private\": 3,\r\n \"id\": 4,\r\n \"category\": 5,\r\n \"contributionType\": 6,\r\n \"name\": 7,\r\n \"installationTarget\": 8,\r\n \"featured\": 9,\r\n \"searchText\": 10,\r\n \"featuredInCategory\": 11,\r\n \"excludeWithFlags\": 12,\r\n \"includeWithFlags\": 13,\r\n \"lcid\": 14,\r\n \"installationTargetVersion\": 15,\r\n \"installationTargetVersionRange\": 16,\r\n \"vsixMetadata\": 17,\r\n \"publisherName\": 18,\r\n \"publisherDisplayName\": 19,\r\n \"includeWithPublisherFlags\": 20,\r\n \"organizationSharedWith\": 21\r\n }\r\n },\r\n ExtensionQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeVersions\": 1,\r\n \"includeFiles\": 2,\r\n \"includeCategoryAndTags\": 4,\r\n \"includeSharedAccounts\": 8,\r\n \"includeVersionProperties\": 16,\r\n \"excludeNonValidated\": 32,\r\n \"includeInstallationTargets\": 64,\r\n \"includeAssetUri\": 128,\r\n \"includeStatistics\": 256,\r\n \"includeLatestVersionOnly\": 512,\r\n \"useFallbackAssetUri\": 1024,\r\n \"includeMetadata\": 2048,\r\n \"includeMinimalPayloadForVsIde\": 4096,\r\n \"includeLcids\": 8192,\r\n \"includeSharedOrganizations\": 16384,\r\n \"allAttributes\": 16863\r\n }\r\n },\r\n ExtensionQueryResult: {},\r\n ExtensionStatisticOperation: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"set\": 1,\r\n \"increment\": 2,\r\n \"decrement\": 3,\r\n \"delete\": 4\r\n }\r\n },\r\n ExtensionStatisticUpdate: {},\r\n ExtensionStatsAggregateType: {\r\n enumValues: {\r\n \"daily\": 1\r\n }\r\n },\r\n ExtensionVersion: {},\r\n ExtensionVersionFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"validated\": 1\r\n }\r\n },\r\n NotificationsData: {},\r\n NotificationTemplateType: {\r\n enumValues: {\r\n \"reviewNotification\": 1,\r\n \"qnaNotification\": 2,\r\n \"customerContactNotification\": 3,\r\n \"publisherMemberUpdateNotification\": 4\r\n }\r\n },\r\n PagingDirection: {\r\n enumValues: {\r\n \"backward\": 1,\r\n \"forward\": 2\r\n }\r\n },\r\n PublishedExtension: {},\r\n PublishedExtensionFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"disabled\": 1,\r\n \"builtIn\": 2,\r\n \"validated\": 4,\r\n \"trusted\": 8,\r\n \"paid\": 16,\r\n \"public\": 256,\r\n \"multiVersion\": 512,\r\n \"system\": 1024,\r\n \"preview\": 2048,\r\n \"unpublished\": 4096,\r\n \"trial\": 8192,\r\n \"locked\": 16384,\r\n \"hidden\": 32768\r\n }\r\n },\r\n Publisher: {},\r\n PublisherBase: {},\r\n PublisherFacts: {},\r\n PublisherFilterResult: {},\r\n PublisherFlags: {\r\n enumValues: {\r\n \"unChanged\": 1073741824,\r\n \"none\": 0,\r\n \"disabled\": 1,\r\n \"verified\": 2,\r\n \"certified\": 4,\r\n \"serviceFlags\": 7\r\n }\r\n },\r\n PublisherPermissions: {\r\n enumValues: {\r\n \"read\": 1,\r\n \"updateExtension\": 2,\r\n \"createPublisher\": 4,\r\n \"publishExtension\": 8,\r\n \"admin\": 16,\r\n \"trustedPartner\": 32,\r\n \"privateRead\": 64,\r\n \"deleteExtension\": 128,\r\n \"editSettings\": 256,\r\n \"viewPermissions\": 512,\r\n \"managePermissions\": 1024,\r\n \"deletePublisher\": 2048\r\n }\r\n },\r\n PublisherQuery: {},\r\n PublisherQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeExtensions\": 1,\r\n \"includeEmailAddress\": 2\r\n }\r\n },\r\n PublisherQueryResult: {},\r\n PublisherRoleAccess: {\r\n enumValues: {\r\n \"assigned\": 1,\r\n \"inherited\": 2\r\n }\r\n },\r\n PublisherRoleAssignment: {},\r\n PublisherState: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"verificationPending\": 1,\r\n \"certificationPending\": 2,\r\n \"certificationRejected\": 4,\r\n \"certificationRevoked\": 8\r\n }\r\n },\r\n QnAItem: {},\r\n QnAItemStatus: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"userEditable\": 1,\r\n \"publisherCreated\": 2\r\n }\r\n },\r\n QueryFilter: {},\r\n Question: {},\r\n QuestionsResult: {},\r\n Response: {},\r\n RestApiResponseStatus: {\r\n enumValues: {\r\n \"completed\": 0,\r\n \"failed\": 1,\r\n \"inprogress\": 2,\r\n \"skipped\": 3\r\n }\r\n },\r\n RestApiResponseStatusModel: {},\r\n Review: {},\r\n ReviewEventOperation: {\r\n enumValues: {\r\n \"create\": 1,\r\n \"update\": 2,\r\n \"delete\": 3\r\n }\r\n },\r\n ReviewEventProperties: {},\r\n ReviewFilterOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"filterEmptyReviews\": 1,\r\n \"filterEmptyUserNames\": 2\r\n }\r\n },\r\n ReviewPatch: {},\r\n ReviewPatchOperation: {\r\n enumValues: {\r\n \"flagReview\": 1,\r\n \"updateReview\": 2,\r\n \"replyToReview\": 3,\r\n \"adminResponseForReview\": 4,\r\n \"deleteAdminReply\": 5,\r\n \"deletePublisherReply\": 6\r\n }\r\n },\r\n ReviewReply: {},\r\n ReviewResourceType: {\r\n enumValues: {\r\n \"review\": 1,\r\n \"publisherReply\": 2,\r\n \"adminReply\": 3\r\n }\r\n },\r\n ReviewsResult: {},\r\n SortByType: {\r\n enumValues: {\r\n \"relevance\": 0,\r\n \"lastUpdatedDate\": 1,\r\n \"title\": 2,\r\n \"publisher\": 3,\r\n \"installCount\": 4,\r\n \"publishedDate\": 5,\r\n \"averageRating\": 6,\r\n \"trendingDaily\": 7,\r\n \"trendingWeekly\": 8,\r\n \"trendingMonthly\": 9,\r\n \"releaseDate\": 10,\r\n \"author\": 11,\r\n \"weightedRating\": 12\r\n }\r\n },\r\n SortOrderType: {\r\n enumValues: {\r\n \"default\": 0,\r\n \"ascending\": 1,\r\n \"descending\": 2\r\n }\r\n },\r\n UserExtensionPolicy: {},\r\n UserReportedConcern: {},\r\n};\r\nexports.TypeInfo.AcquisitionOperation.fields = {\r\n operationState: {\r\n enumType: exports.TypeInfo.AcquisitionOperationState\r\n },\r\n operationType: {\r\n enumType: exports.TypeInfo.AcquisitionOperationType\r\n }\r\n};\r\nexports.TypeInfo.AcquisitionOptions.fields = {\r\n defaultOperation: {\r\n typeInfo: exports.TypeInfo.AcquisitionOperation\r\n },\r\n operations: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.AcquisitionOperation\r\n }\r\n};\r\nexports.TypeInfo.AzureRestApiResponseModel.fields = {\r\n operationStatus: {\r\n typeInfo: exports.TypeInfo.RestApiResponseStatusModel\r\n }\r\n};\r\nexports.TypeInfo.Concern.fields = {\r\n category: {\r\n enumType: exports.TypeInfo.ConcernCategory\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.QnAItemStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CustomerLastContact.fields = {\r\n lastContactDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CustomerSupportRequest.fields = {\r\n review: {\r\n typeInfo: exports.TypeInfo.Review\r\n }\r\n};\r\nexports.TypeInfo.ExtensionAcquisitionRequest.fields = {\r\n assignmentType: {\r\n enumType: exports.TypeInfo.AcquisitionAssignmentType\r\n },\r\n operationType: {\r\n enumType: exports.TypeInfo.AcquisitionOperationType\r\n }\r\n};\r\nexports.TypeInfo.ExtensionDailyStat.fields = {\r\n statisticDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ExtensionDailyStats.fields = {\r\n dailyStats: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionDailyStat\r\n }\r\n};\r\nexports.TypeInfo.ExtensionDraft.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n draftState: {\r\n enumType: exports.TypeInfo.DraftStateType\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n payload: {\r\n typeInfo: exports.TypeInfo.ExtensionPayload\r\n }\r\n};\r\nexports.TypeInfo.ExtensionDraftPatch.fields = {\r\n operation: {\r\n enumType: exports.TypeInfo.DraftPatchOperation\r\n }\r\n};\r\nexports.TypeInfo.ExtensionEvent.fields = {\r\n statisticDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ExtensionEvents.fields = {\r\n events: {\r\n isDictionary: true,\r\n dictionaryValueFieldInfo: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionEvent\r\n }\r\n }\r\n};\r\nexports.TypeInfo.ExtensionFilterResult.fields = {\r\n extensions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PublishedExtension\r\n }\r\n};\r\nexports.TypeInfo.ExtensionPayload.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.ExtensionDeploymentTechnology\r\n }\r\n};\r\nexports.TypeInfo.ExtensionPolicy.fields = {\r\n install: {\r\n enumType: exports.TypeInfo.ExtensionPolicyFlags\r\n },\r\n request: {\r\n enumType: exports.TypeInfo.ExtensionPolicyFlags\r\n }\r\n};\r\nexports.TypeInfo.ExtensionQuery.fields = {\r\n filters: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.QueryFilter\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.ExtensionQueryFlags\r\n }\r\n};\r\nexports.TypeInfo.ExtensionQueryResult.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionFilterResult\r\n }\r\n};\r\nexports.TypeInfo.ExtensionStatisticUpdate.fields = {\r\n operation: {\r\n enumType: exports.TypeInfo.ExtensionStatisticOperation\r\n }\r\n};\r\nexports.TypeInfo.ExtensionVersion.fields = {\r\n flags: {\r\n enumType: exports.TypeInfo.ExtensionVersionFlags\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationsData.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.NotificationTemplateType\r\n }\r\n};\r\nexports.TypeInfo.PublishedExtension.fields = {\r\n deploymentType: {\r\n enumType: exports.TypeInfo.ExtensionDeploymentTechnology\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.PublishedExtensionFlags\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n publishedDate: {\r\n isDate: true,\r\n },\r\n publisher: {\r\n typeInfo: exports.TypeInfo.PublisherFacts\r\n },\r\n releaseDate: {\r\n isDate: true,\r\n },\r\n versions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionVersion\r\n }\r\n};\r\nexports.TypeInfo.Publisher.fields = {\r\n extensions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PublishedExtension\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.PublisherFlags\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.PublisherState\r\n }\r\n};\r\nexports.TypeInfo.PublisherBase.fields = {\r\n extensions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PublishedExtension\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.PublisherFlags\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.PublisherState\r\n }\r\n};\r\nexports.TypeInfo.PublisherFacts.fields = {\r\n flags: {\r\n enumType: exports.TypeInfo.PublisherFlags\r\n }\r\n};\r\nexports.TypeInfo.PublisherFilterResult.fields = {\r\n publishers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Publisher\r\n }\r\n};\r\nexports.TypeInfo.PublisherQuery.fields = {\r\n filters: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.QueryFilter\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.PublisherQueryFlags\r\n }\r\n};\r\nexports.TypeInfo.PublisherQueryResult.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PublisherFilterResult\r\n }\r\n};\r\nexports.TypeInfo.PublisherRoleAssignment.fields = {\r\n access: {\r\n enumType: exports.TypeInfo.PublisherRoleAccess\r\n }\r\n};\r\nexports.TypeInfo.QnAItem.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.QnAItemStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.QueryFilter.fields = {\r\n direction: {\r\n enumType: exports.TypeInfo.PagingDirection\r\n }\r\n};\r\nexports.TypeInfo.Question.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n responses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Response\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.QnAItemStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.QuestionsResult.fields = {\r\n questions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Question\r\n }\r\n};\r\nexports.TypeInfo.Response.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.QnAItemStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.RestApiResponseStatusModel.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.RestApiResponseStatus\r\n }\r\n};\r\nexports.TypeInfo.Review.fields = {\r\n adminReply: {\r\n typeInfo: exports.TypeInfo.ReviewReply\r\n },\r\n reply: {\r\n typeInfo: exports.TypeInfo.ReviewReply\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReviewEventProperties.fields = {\r\n eventOperation: {\r\n enumType: exports.TypeInfo.ReviewEventOperation\r\n },\r\n replyDate: {\r\n isDate: true,\r\n },\r\n resourceType: {\r\n enumType: exports.TypeInfo.ReviewResourceType\r\n },\r\n reviewDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReviewPatch.fields = {\r\n operation: {\r\n enumType: exports.TypeInfo.ReviewPatchOperation\r\n },\r\n reportedConcern: {\r\n typeInfo: exports.TypeInfo.UserReportedConcern\r\n },\r\n reviewItem: {\r\n typeInfo: exports.TypeInfo.Review\r\n }\r\n};\r\nexports.TypeInfo.ReviewReply.fields = {\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReviewsResult.fields = {\r\n reviews: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Review\r\n }\r\n};\r\nexports.TypeInfo.UserExtensionPolicy.fields = {\r\n permissions: {\r\n typeInfo: exports.TypeInfo.ExtensionPolicy\r\n }\r\n};\r\nexports.TypeInfo.UserReportedConcern.fields = {\r\n category: {\r\n enumType: exports.TypeInfo.ConcernCategory\r\n },\r\n submittedDate: {\r\n isDate: true,\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst PolicyInterfaces = require(\"../interfaces/PolicyInterfaces\");\r\nconst TfsCoreInterfaces = require(\"../interfaces/CoreInterfaces\");\r\n/**\r\n * The status of a comment thread.\r\n */\r\nvar CommentThreadStatus;\r\n(function (CommentThreadStatus) {\r\n /**\r\n * The thread status is unknown.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * The thread status is active.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"Active\"] = 1] = \"Active\";\r\n /**\r\n * The thread status is resolved as fixed.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"Fixed\"] = 2] = \"Fixed\";\r\n /**\r\n * The thread status is resolved as won't fix.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"WontFix\"] = 3] = \"WontFix\";\r\n /**\r\n * The thread status is closed.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"Closed\"] = 4] = \"Closed\";\r\n /**\r\n * The thread status is resolved as by design.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"ByDesign\"] = 5] = \"ByDesign\";\r\n /**\r\n * The thread status is pending.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"Pending\"] = 6] = \"Pending\";\r\n})(CommentThreadStatus = exports.CommentThreadStatus || (exports.CommentThreadStatus = {}));\r\n/**\r\n * The type of a comment.\r\n */\r\nvar CommentType;\r\n(function (CommentType) {\r\n /**\r\n * The comment type is not known.\r\n */\r\n CommentType[CommentType[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * This is a regular user comment.\r\n */\r\n CommentType[CommentType[\"Text\"] = 1] = \"Text\";\r\n /**\r\n * The comment comes as a result of a code change.\r\n */\r\n CommentType[CommentType[\"CodeChange\"] = 2] = \"CodeChange\";\r\n /**\r\n * The comment represents a system message.\r\n */\r\n CommentType[CommentType[\"System\"] = 3] = \"System\";\r\n})(CommentType = exports.CommentType || (exports.CommentType = {}));\r\n/**\r\n * Current status of the asynchronous operation.\r\n */\r\nvar GitAsyncOperationStatus;\r\n(function (GitAsyncOperationStatus) {\r\n /**\r\n * The operation is waiting in a queue and has not yet started.\r\n */\r\n GitAsyncOperationStatus[GitAsyncOperationStatus[\"Queued\"] = 1] = \"Queued\";\r\n /**\r\n * The operation is currently in progress.\r\n */\r\n GitAsyncOperationStatus[GitAsyncOperationStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The operation has completed.\r\n */\r\n GitAsyncOperationStatus[GitAsyncOperationStatus[\"Completed\"] = 3] = \"Completed\";\r\n /**\r\n * The operation has failed. Check for an error message.\r\n */\r\n GitAsyncOperationStatus[GitAsyncOperationStatus[\"Failed\"] = 4] = \"Failed\";\r\n /**\r\n * The operation has been abandoned.\r\n */\r\n GitAsyncOperationStatus[GitAsyncOperationStatus[\"Abandoned\"] = 5] = \"Abandoned\";\r\n})(GitAsyncOperationStatus = exports.GitAsyncOperationStatus || (exports.GitAsyncOperationStatus = {}));\r\nvar GitAsyncRefOperationFailureStatus;\r\n(function (GitAsyncRefOperationFailureStatus) {\r\n /**\r\n * No status\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"None\"] = 0] = \"None\";\r\n /**\r\n * Indicates that the ref update request could not be completed because the ref name presented in the request was not valid.\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"InvalidRefName\"] = 1] = \"InvalidRefName\";\r\n /**\r\n * The ref update could not be completed because, in case-insensitive mode, the ref name conflicts with an existing, differently-cased ref name.\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"RefNameConflict\"] = 2] = \"RefNameConflict\";\r\n /**\r\n * The ref update request could not be completed because the user lacks the permission to create a branch\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"CreateBranchPermissionRequired\"] = 3] = \"CreateBranchPermissionRequired\";\r\n /**\r\n * The ref update request could not be completed because the user lacks write permissions required to write this ref\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"WritePermissionRequired\"] = 4] = \"WritePermissionRequired\";\r\n /**\r\n * Target branch was deleted after Git async operation started\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"TargetBranchDeleted\"] = 5] = \"TargetBranchDeleted\";\r\n /**\r\n * Git object is too large to materialize into memory\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"GitObjectTooLarge\"] = 6] = \"GitObjectTooLarge\";\r\n /**\r\n * Identity who authorized the operation was not found\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"OperationIndentityNotFound\"] = 7] = \"OperationIndentityNotFound\";\r\n /**\r\n * Async operation was not found\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"AsyncOperationNotFound\"] = 8] = \"AsyncOperationNotFound\";\r\n /**\r\n * Unexpected failure\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"Other\"] = 9] = \"Other\";\r\n /**\r\n * Initiator of async operation has signature with empty name or email\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"EmptyCommitterSignature\"] = 10] = \"EmptyCommitterSignature\";\r\n})(GitAsyncRefOperationFailureStatus = exports.GitAsyncRefOperationFailureStatus || (exports.GitAsyncRefOperationFailureStatus = {}));\r\n/**\r\n * The type of a merge conflict.\r\n */\r\nvar GitConflictType;\r\n(function (GitConflictType) {\r\n /**\r\n * No conflict\r\n */\r\n GitConflictType[GitConflictType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Added on source and target; content differs\r\n */\r\n GitConflictType[GitConflictType[\"AddAdd\"] = 1] = \"AddAdd\";\r\n /**\r\n * Added on source and rename destination on target\r\n */\r\n GitConflictType[GitConflictType[\"AddRename\"] = 2] = \"AddRename\";\r\n /**\r\n * Deleted on source and edited on target\r\n */\r\n GitConflictType[GitConflictType[\"DeleteEdit\"] = 3] = \"DeleteEdit\";\r\n /**\r\n * Deleted on source and renamed on target\r\n */\r\n GitConflictType[GitConflictType[\"DeleteRename\"] = 4] = \"DeleteRename\";\r\n /**\r\n * Path is a directory on source and a file on target\r\n */\r\n GitConflictType[GitConflictType[\"DirectoryFile\"] = 5] = \"DirectoryFile\";\r\n /**\r\n * Children of directory which has DirectoryFile or FileDirectory conflict\r\n */\r\n GitConflictType[GitConflictType[\"DirectoryChild\"] = 6] = \"DirectoryChild\";\r\n /**\r\n * Edited on source and deleted on target\r\n */\r\n GitConflictType[GitConflictType[\"EditDelete\"] = 7] = \"EditDelete\";\r\n /**\r\n * Edited on source and target; content differs\r\n */\r\n GitConflictType[GitConflictType[\"EditEdit\"] = 8] = \"EditEdit\";\r\n /**\r\n * Path is a file on source and a directory on target\r\n */\r\n GitConflictType[GitConflictType[\"FileDirectory\"] = 9] = \"FileDirectory\";\r\n /**\r\n * Same file renamed on both source and target; destination paths differ\r\n */\r\n GitConflictType[GitConflictType[\"Rename1to2\"] = 10] = \"Rename1to2\";\r\n /**\r\n * Different files renamed to same destination path on both source and target\r\n */\r\n GitConflictType[GitConflictType[\"Rename2to1\"] = 11] = \"Rename2to1\";\r\n /**\r\n * Rename destination on source and new file on target\r\n */\r\n GitConflictType[GitConflictType[\"RenameAdd\"] = 12] = \"RenameAdd\";\r\n /**\r\n * Renamed on source and deleted on target\r\n */\r\n GitConflictType[GitConflictType[\"RenameDelete\"] = 13] = \"RenameDelete\";\r\n /**\r\n * Rename destination on both source and target; content differs\r\n */\r\n GitConflictType[GitConflictType[\"RenameRename\"] = 14] = \"RenameRename\";\r\n})(GitConflictType = exports.GitConflictType || (exports.GitConflictType = {}));\r\n/**\r\n * Represents the possible outcomes from a request to update a pull request conflict\r\n */\r\nvar GitConflictUpdateStatus;\r\n(function (GitConflictUpdateStatus) {\r\n /**\r\n * Indicates that pull request conflict update request was completed successfully\r\n */\r\n GitConflictUpdateStatus[GitConflictUpdateStatus[\"Succeeded\"] = 0] = \"Succeeded\";\r\n /**\r\n * Indicates that the update request did not fit the expected data contract\r\n */\r\n GitConflictUpdateStatus[GitConflictUpdateStatus[\"BadRequest\"] = 1] = \"BadRequest\";\r\n /**\r\n * Indicates that the requested resolution was not valid\r\n */\r\n GitConflictUpdateStatus[GitConflictUpdateStatus[\"InvalidResolution\"] = 2] = \"InvalidResolution\";\r\n /**\r\n * Indicates that the conflict in the update request was not a supported conflict type\r\n */\r\n GitConflictUpdateStatus[GitConflictUpdateStatus[\"UnsupportedConflictType\"] = 3] = \"UnsupportedConflictType\";\r\n /**\r\n * Indicates that the conflict could not be found\r\n */\r\n GitConflictUpdateStatus[GitConflictUpdateStatus[\"NotFound\"] = 4] = \"NotFound\";\r\n})(GitConflictUpdateStatus = exports.GitConflictUpdateStatus || (exports.GitConflictUpdateStatus = {}));\r\n/**\r\n * Accepted types of version\r\n */\r\nvar GitHistoryMode;\r\n(function (GitHistoryMode) {\r\n /**\r\n * The history mode used by `git log`. This is the default.\r\n */\r\n GitHistoryMode[GitHistoryMode[\"SimplifiedHistory\"] = 0] = \"SimplifiedHistory\";\r\n /**\r\n * The history mode used by `git log --first-parent`\r\n */\r\n GitHistoryMode[GitHistoryMode[\"FirstParent\"] = 1] = \"FirstParent\";\r\n /**\r\n * The history mode used by `git log --full-history`\r\n */\r\n GitHistoryMode[GitHistoryMode[\"FullHistory\"] = 2] = \"FullHistory\";\r\n /**\r\n * The history mode used by `git log --full-history --simplify-merges`\r\n */\r\n GitHistoryMode[GitHistoryMode[\"FullHistorySimplifyMerges\"] = 3] = \"FullHistorySimplifyMerges\";\r\n})(GitHistoryMode = exports.GitHistoryMode || (exports.GitHistoryMode = {}));\r\nvar GitObjectType;\r\n(function (GitObjectType) {\r\n GitObjectType[GitObjectType[\"Bad\"] = 0] = \"Bad\";\r\n GitObjectType[GitObjectType[\"Commit\"] = 1] = \"Commit\";\r\n GitObjectType[GitObjectType[\"Tree\"] = 2] = \"Tree\";\r\n GitObjectType[GitObjectType[\"Blob\"] = 3] = \"Blob\";\r\n GitObjectType[GitObjectType[\"Tag\"] = 4] = \"Tag\";\r\n GitObjectType[GitObjectType[\"Ext2\"] = 5] = \"Ext2\";\r\n GitObjectType[GitObjectType[\"OfsDelta\"] = 6] = \"OfsDelta\";\r\n GitObjectType[GitObjectType[\"RefDelta\"] = 7] = \"RefDelta\";\r\n})(GitObjectType = exports.GitObjectType || (exports.GitObjectType = {}));\r\nvar GitPathActions;\r\n(function (GitPathActions) {\r\n GitPathActions[GitPathActions[\"None\"] = 0] = \"None\";\r\n GitPathActions[GitPathActions[\"Edit\"] = 1] = \"Edit\";\r\n GitPathActions[GitPathActions[\"Delete\"] = 2] = \"Delete\";\r\n GitPathActions[GitPathActions[\"Add\"] = 3] = \"Add\";\r\n GitPathActions[GitPathActions[\"Rename\"] = 4] = \"Rename\";\r\n})(GitPathActions = exports.GitPathActions || (exports.GitPathActions = {}));\r\n/**\r\n * Enumeration of possible merge strategies which can be used to complete a pull request.\r\n */\r\nvar GitPullRequestMergeStrategy;\r\n(function (GitPullRequestMergeStrategy) {\r\n /**\r\n * A two-parent, no-fast-forward merge. The source branch is unchanged. This is the default behavior.\r\n */\r\n GitPullRequestMergeStrategy[GitPullRequestMergeStrategy[\"NoFastForward\"] = 1] = \"NoFastForward\";\r\n /**\r\n * Put all changes from the pull request into a single-parent commit.\r\n */\r\n GitPullRequestMergeStrategy[GitPullRequestMergeStrategy[\"Squash\"] = 2] = \"Squash\";\r\n /**\r\n * Rebase the source branch on top of the target branch HEAD commit, and fast-forward the target branch. The source branch is updated during the rebase operation.\r\n */\r\n GitPullRequestMergeStrategy[GitPullRequestMergeStrategy[\"Rebase\"] = 3] = \"Rebase\";\r\n /**\r\n * Rebase the source branch on top of the target branch HEAD commit, and create a two-parent, no-fast-forward merge. The source branch is updated during the rebase operation.\r\n */\r\n GitPullRequestMergeStrategy[GitPullRequestMergeStrategy[\"RebaseMerge\"] = 4] = \"RebaseMerge\";\r\n})(GitPullRequestMergeStrategy = exports.GitPullRequestMergeStrategy || (exports.GitPullRequestMergeStrategy = {}));\r\n/**\r\n * Accepted types of pull request queries.\r\n */\r\nvar GitPullRequestQueryType;\r\n(function (GitPullRequestQueryType) {\r\n /**\r\n * No query type set.\r\n */\r\n GitPullRequestQueryType[GitPullRequestQueryType[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * Search for pull requests that created the supplied merge commits.\r\n */\r\n GitPullRequestQueryType[GitPullRequestQueryType[\"LastMergeCommit\"] = 1] = \"LastMergeCommit\";\r\n /**\r\n * Search for pull requests that merged the supplied commits.\r\n */\r\n GitPullRequestQueryType[GitPullRequestQueryType[\"Commit\"] = 2] = \"Commit\";\r\n})(GitPullRequestQueryType = exports.GitPullRequestQueryType || (exports.GitPullRequestQueryType = {}));\r\nvar GitPullRequestReviewFileType;\r\n(function (GitPullRequestReviewFileType) {\r\n GitPullRequestReviewFileType[GitPullRequestReviewFileType[\"ChangeEntry\"] = 0] = \"ChangeEntry\";\r\n GitPullRequestReviewFileType[GitPullRequestReviewFileType[\"Attachment\"] = 1] = \"Attachment\";\r\n})(GitPullRequestReviewFileType = exports.GitPullRequestReviewFileType || (exports.GitPullRequestReviewFileType = {}));\r\n/**\r\n * Search type on ref name\r\n */\r\nvar GitRefSearchType;\r\n(function (GitRefSearchType) {\r\n GitRefSearchType[GitRefSearchType[\"Exact\"] = 0] = \"Exact\";\r\n GitRefSearchType[GitRefSearchType[\"StartsWith\"] = 1] = \"StartsWith\";\r\n GitRefSearchType[GitRefSearchType[\"Contains\"] = 2] = \"Contains\";\r\n})(GitRefSearchType = exports.GitRefSearchType || (exports.GitRefSearchType = {}));\r\n/**\r\n * Enumerates the modes under which ref updates can be written to their repositories.\r\n */\r\nvar GitRefUpdateMode;\r\n(function (GitRefUpdateMode) {\r\n /**\r\n * Indicates the Git protocol model where any refs that can be updated will be updated, but any failures will not prevent other updates from succeeding.\r\n */\r\n GitRefUpdateMode[GitRefUpdateMode[\"BestEffort\"] = 0] = \"BestEffort\";\r\n /**\r\n * Indicates that all ref updates must succeed or none will succeed. All ref updates will be atomically written. If any failure is encountered, previously successful updates will be rolled back and the entire operation will fail.\r\n */\r\n GitRefUpdateMode[GitRefUpdateMode[\"AllOrNone\"] = 1] = \"AllOrNone\";\r\n})(GitRefUpdateMode = exports.GitRefUpdateMode || (exports.GitRefUpdateMode = {}));\r\n/**\r\n * Represents the possible outcomes from a request to update a ref in a repository.\r\n */\r\nvar GitRefUpdateStatus;\r\n(function (GitRefUpdateStatus) {\r\n /**\r\n * Indicates that the ref update request was completed successfully.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"Succeeded\"] = 0] = \"Succeeded\";\r\n /**\r\n * Indicates that the ref update request could not be completed because part of the graph would be disconnected by this change, and the caller does not have ForcePush permission on the repository.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"ForcePushRequired\"] = 1] = \"ForcePushRequired\";\r\n /**\r\n * Indicates that the ref update request could not be completed because the old object ID presented in the request was not the object ID of the ref when the database attempted the update. The most likely scenario is that the caller lost a race to update the ref.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"StaleOldObjectId\"] = 2] = \"StaleOldObjectId\";\r\n /**\r\n * Indicates that the ref update request could not be completed because the ref name presented in the request was not valid.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"InvalidRefName\"] = 3] = \"InvalidRefName\";\r\n /**\r\n * The request was not processed\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"Unprocessed\"] = 4] = \"Unprocessed\";\r\n /**\r\n * The ref update request could not be completed because the new object ID for the ref could not be resolved to a commit object (potentially through any number of tags)\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"UnresolvableToCommit\"] = 5] = \"UnresolvableToCommit\";\r\n /**\r\n * The ref update request could not be completed because the user lacks write permissions required to write this ref\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"WritePermissionRequired\"] = 6] = \"WritePermissionRequired\";\r\n /**\r\n * The ref update request could not be completed because the user lacks note creation permissions required to write this note\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"ManageNotePermissionRequired\"] = 7] = \"ManageNotePermissionRequired\";\r\n /**\r\n * The ref update request could not be completed because the user lacks the permission to create a branch\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"CreateBranchPermissionRequired\"] = 8] = \"CreateBranchPermissionRequired\";\r\n /**\r\n * The ref update request could not be completed because the user lacks the permission to create a tag\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"CreateTagPermissionRequired\"] = 9] = \"CreateTagPermissionRequired\";\r\n /**\r\n * The ref update could not be completed because it was rejected by the plugin.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"RejectedByPlugin\"] = 10] = \"RejectedByPlugin\";\r\n /**\r\n * The ref update could not be completed because the ref is locked by another user.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"Locked\"] = 11] = \"Locked\";\r\n /**\r\n * The ref update could not be completed because, in case-insensitive mode, the ref name conflicts with an existing, differently-cased ref name.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"RefNameConflict\"] = 12] = \"RefNameConflict\";\r\n /**\r\n * The ref update could not be completed because it was rejected by policy.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"RejectedByPolicy\"] = 13] = \"RejectedByPolicy\";\r\n /**\r\n * Indicates that the ref update request was completed successfully, but the ref doesn't actually exist so no changes were made. This should only happen during deletes.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"SucceededNonExistentRef\"] = 14] = \"SucceededNonExistentRef\";\r\n /**\r\n * Indicates that the ref update request was completed successfully, but the passed-in ref was corrupt - as in, the old object ID was bad. This should only happen during deletes.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"SucceededCorruptRef\"] = 15] = \"SucceededCorruptRef\";\r\n})(GitRefUpdateStatus = exports.GitRefUpdateStatus || (exports.GitRefUpdateStatus = {}));\r\n/**\r\n * The type of a merge conflict.\r\n */\r\nvar GitResolutionError;\r\n(function (GitResolutionError) {\r\n /**\r\n * No error\r\n */\r\n GitResolutionError[GitResolutionError[\"None\"] = 0] = \"None\";\r\n /**\r\n * User set a blob id for resolving a content merge, but blob was not found in repo during application\r\n */\r\n GitResolutionError[GitResolutionError[\"MergeContentNotFound\"] = 1] = \"MergeContentNotFound\";\r\n /**\r\n * Attempted to resolve a conflict by moving a file to another path, but path was already in use\r\n */\r\n GitResolutionError[GitResolutionError[\"PathInUse\"] = 2] = \"PathInUse\";\r\n /**\r\n * No error\r\n */\r\n GitResolutionError[GitResolutionError[\"InvalidPath\"] = 3] = \"InvalidPath\";\r\n /**\r\n * GitResolutionAction was set to an unrecognized value\r\n */\r\n GitResolutionError[GitResolutionError[\"UnknownAction\"] = 4] = \"UnknownAction\";\r\n /**\r\n * GitResolutionMergeType was set to an unrecognized value\r\n */\r\n GitResolutionError[GitResolutionError[\"UnknownMergeType\"] = 5] = \"UnknownMergeType\";\r\n /**\r\n * Any error for which a more specific code doesn't apply\r\n */\r\n GitResolutionError[GitResolutionError[\"OtherError\"] = 255] = \"OtherError\";\r\n})(GitResolutionError = exports.GitResolutionError || (exports.GitResolutionError = {}));\r\nvar GitResolutionMergeType;\r\n(function (GitResolutionMergeType) {\r\n GitResolutionMergeType[GitResolutionMergeType[\"Undecided\"] = 0] = \"Undecided\";\r\n GitResolutionMergeType[GitResolutionMergeType[\"TakeSourceContent\"] = 1] = \"TakeSourceContent\";\r\n GitResolutionMergeType[GitResolutionMergeType[\"TakeTargetContent\"] = 2] = \"TakeTargetContent\";\r\n GitResolutionMergeType[GitResolutionMergeType[\"AutoMerged\"] = 3] = \"AutoMerged\";\r\n GitResolutionMergeType[GitResolutionMergeType[\"UserMerged\"] = 4] = \"UserMerged\";\r\n})(GitResolutionMergeType = exports.GitResolutionMergeType || (exports.GitResolutionMergeType = {}));\r\nvar GitResolutionPathConflictAction;\r\n(function (GitResolutionPathConflictAction) {\r\n GitResolutionPathConflictAction[GitResolutionPathConflictAction[\"Undecided\"] = 0] = \"Undecided\";\r\n GitResolutionPathConflictAction[GitResolutionPathConflictAction[\"KeepSourceRenameTarget\"] = 1] = \"KeepSourceRenameTarget\";\r\n GitResolutionPathConflictAction[GitResolutionPathConflictAction[\"KeepSourceDeleteTarget\"] = 2] = \"KeepSourceDeleteTarget\";\r\n GitResolutionPathConflictAction[GitResolutionPathConflictAction[\"KeepTargetRenameSource\"] = 3] = \"KeepTargetRenameSource\";\r\n GitResolutionPathConflictAction[GitResolutionPathConflictAction[\"KeepTargetDeleteSource\"] = 4] = \"KeepTargetDeleteSource\";\r\n})(GitResolutionPathConflictAction = exports.GitResolutionPathConflictAction || (exports.GitResolutionPathConflictAction = {}));\r\nvar GitResolutionRename1to2Action;\r\n(function (GitResolutionRename1to2Action) {\r\n GitResolutionRename1to2Action[GitResolutionRename1to2Action[\"Undecided\"] = 0] = \"Undecided\";\r\n GitResolutionRename1to2Action[GitResolutionRename1to2Action[\"KeepSourcePath\"] = 1] = \"KeepSourcePath\";\r\n GitResolutionRename1to2Action[GitResolutionRename1to2Action[\"KeepTargetPath\"] = 2] = \"KeepTargetPath\";\r\n GitResolutionRename1to2Action[GitResolutionRename1to2Action[\"KeepBothFiles\"] = 3] = \"KeepBothFiles\";\r\n})(GitResolutionRename1to2Action = exports.GitResolutionRename1to2Action || (exports.GitResolutionRename1to2Action = {}));\r\n/**\r\n * Resolution status of a conflict.\r\n */\r\nvar GitResolutionStatus;\r\n(function (GitResolutionStatus) {\r\n GitResolutionStatus[GitResolutionStatus[\"Unresolved\"] = 0] = \"Unresolved\";\r\n GitResolutionStatus[GitResolutionStatus[\"PartiallyResolved\"] = 1] = \"PartiallyResolved\";\r\n GitResolutionStatus[GitResolutionStatus[\"Resolved\"] = 2] = \"Resolved\";\r\n})(GitResolutionStatus = exports.GitResolutionStatus || (exports.GitResolutionStatus = {}));\r\nvar GitResolutionWhichAction;\r\n(function (GitResolutionWhichAction) {\r\n GitResolutionWhichAction[GitResolutionWhichAction[\"Undecided\"] = 0] = \"Undecided\";\r\n GitResolutionWhichAction[GitResolutionWhichAction[\"PickSourceAction\"] = 1] = \"PickSourceAction\";\r\n GitResolutionWhichAction[GitResolutionWhichAction[\"PickTargetAction\"] = 2] = \"PickTargetAction\";\r\n})(GitResolutionWhichAction = exports.GitResolutionWhichAction || (exports.GitResolutionWhichAction = {}));\r\n/**\r\n * State of the status.\r\n */\r\nvar GitStatusState;\r\n(function (GitStatusState) {\r\n /**\r\n * Status state not set. Default state.\r\n */\r\n GitStatusState[GitStatusState[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * Status pending.\r\n */\r\n GitStatusState[GitStatusState[\"Pending\"] = 1] = \"Pending\";\r\n /**\r\n * Status succeeded.\r\n */\r\n GitStatusState[GitStatusState[\"Succeeded\"] = 2] = \"Succeeded\";\r\n /**\r\n * Status failed.\r\n */\r\n GitStatusState[GitStatusState[\"Failed\"] = 3] = \"Failed\";\r\n /**\r\n * Status with an error.\r\n */\r\n GitStatusState[GitStatusState[\"Error\"] = 4] = \"Error\";\r\n /**\r\n * Status is not applicable to the target object.\r\n */\r\n GitStatusState[GitStatusState[\"NotApplicable\"] = 5] = \"NotApplicable\";\r\n})(GitStatusState = exports.GitStatusState || (exports.GitStatusState = {}));\r\n/**\r\n * Accepted types of version options\r\n */\r\nvar GitVersionOptions;\r\n(function (GitVersionOptions) {\r\n /**\r\n * Not specified\r\n */\r\n GitVersionOptions[GitVersionOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Commit that changed item prior to the current version\r\n */\r\n GitVersionOptions[GitVersionOptions[\"PreviousChange\"] = 1] = \"PreviousChange\";\r\n /**\r\n * First parent of commit (HEAD^)\r\n */\r\n GitVersionOptions[GitVersionOptions[\"FirstParent\"] = 2] = \"FirstParent\";\r\n})(GitVersionOptions = exports.GitVersionOptions || (exports.GitVersionOptions = {}));\r\n/**\r\n * Accepted types of version\r\n */\r\nvar GitVersionType;\r\n(function (GitVersionType) {\r\n /**\r\n * Interpret the version as a branch name\r\n */\r\n GitVersionType[GitVersionType[\"Branch\"] = 0] = \"Branch\";\r\n /**\r\n * Interpret the version as a tag name\r\n */\r\n GitVersionType[GitVersionType[\"Tag\"] = 1] = \"Tag\";\r\n /**\r\n * Interpret the version as a commit ID (SHA1)\r\n */\r\n GitVersionType[GitVersionType[\"Commit\"] = 2] = \"Commit\";\r\n})(GitVersionType = exports.GitVersionType || (exports.GitVersionType = {}));\r\nvar ItemContentType;\r\n(function (ItemContentType) {\r\n ItemContentType[ItemContentType[\"RawText\"] = 0] = \"RawText\";\r\n ItemContentType[ItemContentType[\"Base64Encoded\"] = 1] = \"Base64Encoded\";\r\n})(ItemContentType = exports.ItemContentType || (exports.ItemContentType = {}));\r\n/**\r\n * The reason for which the pull request iteration was created.\r\n */\r\nvar IterationReason;\r\n(function (IterationReason) {\r\n IterationReason[IterationReason[\"Push\"] = 0] = \"Push\";\r\n IterationReason[IterationReason[\"ForcePush\"] = 1] = \"ForcePush\";\r\n IterationReason[IterationReason[\"Create\"] = 2] = \"Create\";\r\n IterationReason[IterationReason[\"Rebase\"] = 4] = \"Rebase\";\r\n IterationReason[IterationReason[\"Unknown\"] = 8] = \"Unknown\";\r\n IterationReason[IterationReason[\"Retarget\"] = 16] = \"Retarget\";\r\n})(IterationReason = exports.IterationReason || (exports.IterationReason = {}));\r\n/**\r\n * Type of change for a line diff block\r\n */\r\nvar LineDiffBlockChangeType;\r\n(function (LineDiffBlockChangeType) {\r\n /**\r\n * No change - both the blocks are identical\r\n */\r\n LineDiffBlockChangeType[LineDiffBlockChangeType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Lines were added to the block in the modified file\r\n */\r\n LineDiffBlockChangeType[LineDiffBlockChangeType[\"Add\"] = 1] = \"Add\";\r\n /**\r\n * Lines were deleted from the block in the original file\r\n */\r\n LineDiffBlockChangeType[LineDiffBlockChangeType[\"Delete\"] = 2] = \"Delete\";\r\n /**\r\n * Lines were modified\r\n */\r\n LineDiffBlockChangeType[LineDiffBlockChangeType[\"Edit\"] = 3] = \"Edit\";\r\n})(LineDiffBlockChangeType = exports.LineDiffBlockChangeType || (exports.LineDiffBlockChangeType = {}));\r\n/**\r\n * The status of a pull request merge.\r\n */\r\nvar PullRequestAsyncStatus;\r\n(function (PullRequestAsyncStatus) {\r\n /**\r\n * Status is not set. Default state.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * Pull request merge is queued.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"Queued\"] = 1] = \"Queued\";\r\n /**\r\n * Pull request merge failed due to conflicts.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"Conflicts\"] = 2] = \"Conflicts\";\r\n /**\r\n * Pull request merge succeeded.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"Succeeded\"] = 3] = \"Succeeded\";\r\n /**\r\n * Pull request merge rejected by policy.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"RejectedByPolicy\"] = 4] = \"RejectedByPolicy\";\r\n /**\r\n * Pull request merge failed.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"Failure\"] = 5] = \"Failure\";\r\n})(PullRequestAsyncStatus = exports.PullRequestAsyncStatus || (exports.PullRequestAsyncStatus = {}));\r\n/**\r\n * The specific type of a pull request merge failure.\r\n */\r\nvar PullRequestMergeFailureType;\r\n(function (PullRequestMergeFailureType) {\r\n /**\r\n * Type is not set. Default type.\r\n */\r\n PullRequestMergeFailureType[PullRequestMergeFailureType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Pull request merge failure type unknown.\r\n */\r\n PullRequestMergeFailureType[PullRequestMergeFailureType[\"Unknown\"] = 1] = \"Unknown\";\r\n /**\r\n * Pull request merge failed due to case mismatch.\r\n */\r\n PullRequestMergeFailureType[PullRequestMergeFailureType[\"CaseSensitive\"] = 2] = \"CaseSensitive\";\r\n /**\r\n * Pull request merge failed due to an object being too large.\r\n */\r\n PullRequestMergeFailureType[PullRequestMergeFailureType[\"ObjectTooLarge\"] = 3] = \"ObjectTooLarge\";\r\n})(PullRequestMergeFailureType = exports.PullRequestMergeFailureType || (exports.PullRequestMergeFailureType = {}));\r\n/**\r\n * Status of a pull request.\r\n */\r\nvar PullRequestStatus;\r\n(function (PullRequestStatus) {\r\n /**\r\n * Status not set. Default state.\r\n */\r\n PullRequestStatus[PullRequestStatus[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * Pull request is active.\r\n */\r\n PullRequestStatus[PullRequestStatus[\"Active\"] = 1] = \"Active\";\r\n /**\r\n * Pull request is abandoned.\r\n */\r\n PullRequestStatus[PullRequestStatus[\"Abandoned\"] = 2] = \"Abandoned\";\r\n /**\r\n * Pull request is completed.\r\n */\r\n PullRequestStatus[PullRequestStatus[\"Completed\"] = 3] = \"Completed\";\r\n /**\r\n * Used in pull request search criteria to include all statuses.\r\n */\r\n PullRequestStatus[PullRequestStatus[\"All\"] = 4] = \"All\";\r\n})(PullRequestStatus = exports.PullRequestStatus || (exports.PullRequestStatus = {}));\r\nvar RefFavoriteType;\r\n(function (RefFavoriteType) {\r\n RefFavoriteType[RefFavoriteType[\"Invalid\"] = 0] = \"Invalid\";\r\n RefFavoriteType[RefFavoriteType[\"Folder\"] = 1] = \"Folder\";\r\n RefFavoriteType[RefFavoriteType[\"Ref\"] = 2] = \"Ref\";\r\n})(RefFavoriteType = exports.RefFavoriteType || (exports.RefFavoriteType = {}));\r\n/**\r\n * Enumeration that represents the types of IDEs supported.\r\n */\r\nvar SupportedIdeType;\r\n(function (SupportedIdeType) {\r\n SupportedIdeType[SupportedIdeType[\"Unknown\"] = 0] = \"Unknown\";\r\n SupportedIdeType[SupportedIdeType[\"AndroidStudio\"] = 1] = \"AndroidStudio\";\r\n SupportedIdeType[SupportedIdeType[\"AppCode\"] = 2] = \"AppCode\";\r\n SupportedIdeType[SupportedIdeType[\"CLion\"] = 3] = \"CLion\";\r\n SupportedIdeType[SupportedIdeType[\"DataGrip\"] = 4] = \"DataGrip\";\r\n SupportedIdeType[SupportedIdeType[\"Eclipse\"] = 13] = \"Eclipse\";\r\n SupportedIdeType[SupportedIdeType[\"IntelliJ\"] = 5] = \"IntelliJ\";\r\n SupportedIdeType[SupportedIdeType[\"MPS\"] = 6] = \"MPS\";\r\n SupportedIdeType[SupportedIdeType[\"PhpStorm\"] = 7] = \"PhpStorm\";\r\n SupportedIdeType[SupportedIdeType[\"PyCharm\"] = 8] = \"PyCharm\";\r\n SupportedIdeType[SupportedIdeType[\"RubyMine\"] = 9] = \"RubyMine\";\r\n SupportedIdeType[SupportedIdeType[\"Tower\"] = 10] = \"Tower\";\r\n SupportedIdeType[SupportedIdeType[\"VisualStudio\"] = 11] = \"VisualStudio\";\r\n SupportedIdeType[SupportedIdeType[\"VSCode\"] = 14] = \"VSCode\";\r\n SupportedIdeType[SupportedIdeType[\"WebStorm\"] = 12] = \"WebStorm\";\r\n})(SupportedIdeType = exports.SupportedIdeType || (exports.SupportedIdeType = {}));\r\n/**\r\n * Options for Version handling.\r\n */\r\nvar TfvcVersionOption;\r\n(function (TfvcVersionOption) {\r\n /**\r\n * None.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"None\"] = 0] = \"None\";\r\n /**\r\n * Return the previous version.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"Previous\"] = 1] = \"Previous\";\r\n /**\r\n * Only usuable with versiontype MergeSource and integer versions, uses RenameSource identifier instead of Merge identifier.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"UseRename\"] = 2] = \"UseRename\";\r\n})(TfvcVersionOption = exports.TfvcVersionOption || (exports.TfvcVersionOption = {}));\r\n/**\r\n * Type of Version object\r\n */\r\nvar TfvcVersionType;\r\n(function (TfvcVersionType) {\r\n /**\r\n * Version is treated as a ChangesetId.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Version is treated as a ChangesetId.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Changeset\"] = 1] = \"Changeset\";\r\n /**\r\n * Version is treated as a Shelveset name and owner.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Shelveset\"] = 2] = \"Shelveset\";\r\n /**\r\n * Version is treated as a Change.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Change\"] = 3] = \"Change\";\r\n /**\r\n * Version is treated as a Date.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Date\"] = 4] = \"Date\";\r\n /**\r\n * If Version is defined the Latest of that Version will be used, if no version is defined the latest ChangesetId will be used.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Latest\"] = 5] = \"Latest\";\r\n /**\r\n * Version will be treated as a Tip, if no version is defined latest will be used.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Tip\"] = 6] = \"Tip\";\r\n /**\r\n * Version will be treated as a MergeSource.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"MergeSource\"] = 7] = \"MergeSource\";\r\n})(TfvcVersionType = exports.TfvcVersionType || (exports.TfvcVersionType = {}));\r\nvar VersionControlChangeType;\r\n(function (VersionControlChangeType) {\r\n VersionControlChangeType[VersionControlChangeType[\"None\"] = 0] = \"None\";\r\n VersionControlChangeType[VersionControlChangeType[\"Add\"] = 1] = \"Add\";\r\n VersionControlChangeType[VersionControlChangeType[\"Edit\"] = 2] = \"Edit\";\r\n VersionControlChangeType[VersionControlChangeType[\"Encoding\"] = 4] = \"Encoding\";\r\n VersionControlChangeType[VersionControlChangeType[\"Rename\"] = 8] = \"Rename\";\r\n VersionControlChangeType[VersionControlChangeType[\"Delete\"] = 16] = \"Delete\";\r\n VersionControlChangeType[VersionControlChangeType[\"Undelete\"] = 32] = \"Undelete\";\r\n VersionControlChangeType[VersionControlChangeType[\"Branch\"] = 64] = \"Branch\";\r\n VersionControlChangeType[VersionControlChangeType[\"Merge\"] = 128] = \"Merge\";\r\n VersionControlChangeType[VersionControlChangeType[\"Lock\"] = 256] = \"Lock\";\r\n VersionControlChangeType[VersionControlChangeType[\"Rollback\"] = 512] = \"Rollback\";\r\n VersionControlChangeType[VersionControlChangeType[\"SourceRename\"] = 1024] = \"SourceRename\";\r\n VersionControlChangeType[VersionControlChangeType[\"TargetRename\"] = 2048] = \"TargetRename\";\r\n VersionControlChangeType[VersionControlChangeType[\"Property\"] = 4096] = \"Property\";\r\n VersionControlChangeType[VersionControlChangeType[\"All\"] = 8191] = \"All\";\r\n})(VersionControlChangeType = exports.VersionControlChangeType || (exports.VersionControlChangeType = {}));\r\nvar VersionControlRecursionType;\r\n(function (VersionControlRecursionType) {\r\n /**\r\n * Only return the specified item.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Return the specified item and its direct children.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"OneLevel\"] = 1] = \"OneLevel\";\r\n /**\r\n * Return the specified item and its direct children, as well as recursive chains of nested child folders that only contain a single folder.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"OneLevelPlusNestedEmptyFolders\"] = 4] = \"OneLevelPlusNestedEmptyFolders\";\r\n /**\r\n * Return specified item and all descendants\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"Full\"] = 120] = \"Full\";\r\n})(VersionControlRecursionType = exports.VersionControlRecursionType || (exports.VersionControlRecursionType = {}));\r\nexports.TypeInfo = {\r\n Attachment: {},\r\n Change: {},\r\n ChangeList: {},\r\n Comment: {},\r\n CommentThread: {},\r\n CommentThreadStatus: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"active\": 1,\r\n \"fixed\": 2,\r\n \"wontFix\": 3,\r\n \"closed\": 4,\r\n \"byDesign\": 5,\r\n \"pending\": 6\r\n }\r\n },\r\n CommentType: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"text\": 1,\r\n \"codeChange\": 2,\r\n \"system\": 3\r\n }\r\n },\r\n FileDiff: {},\r\n GitAnnotatedTag: {},\r\n GitAsyncOperationStatus: {\r\n enumValues: {\r\n \"queued\": 1,\r\n \"inProgress\": 2,\r\n \"completed\": 3,\r\n \"failed\": 4,\r\n \"abandoned\": 5\r\n }\r\n },\r\n GitAsyncRefOperation: {},\r\n GitAsyncRefOperationDetail: {},\r\n GitAsyncRefOperationFailureStatus: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"invalidRefName\": 1,\r\n \"refNameConflict\": 2,\r\n \"createBranchPermissionRequired\": 3,\r\n \"writePermissionRequired\": 4,\r\n \"targetBranchDeleted\": 5,\r\n \"gitObjectTooLarge\": 6,\r\n \"operationIndentityNotFound\": 7,\r\n \"asyncOperationNotFound\": 8,\r\n \"other\": 9,\r\n \"emptyCommitterSignature\": 10\r\n }\r\n },\r\n GitAsyncRefOperationParameters: {},\r\n GitAsyncRefOperationSource: {},\r\n GitBaseVersionDescriptor: {},\r\n GitBranchStats: {},\r\n GitChange: {},\r\n GitCherryPick: {},\r\n GitCommit: {},\r\n GitCommitChanges: {},\r\n GitCommitDiffs: {},\r\n GitCommitRef: {},\r\n GitCommitToCreate: {},\r\n GitConflict: {},\r\n GitConflictAddAdd: {},\r\n GitConflictAddRename: {},\r\n GitConflictDeleteEdit: {},\r\n GitConflictDeleteRename: {},\r\n GitConflictDirectoryFile: {},\r\n GitConflictEditDelete: {},\r\n GitConflictEditEdit: {},\r\n GitConflictFileDirectory: {},\r\n GitConflictRename1to2: {},\r\n GitConflictRename2to1: {},\r\n GitConflictRenameAdd: {},\r\n GitConflictRenameDelete: {},\r\n GitConflictRenameRename: {},\r\n GitConflictType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"addAdd\": 1,\r\n \"addRename\": 2,\r\n \"deleteEdit\": 3,\r\n \"deleteRename\": 4,\r\n \"directoryFile\": 5,\r\n \"directoryChild\": 6,\r\n \"editDelete\": 7,\r\n \"editEdit\": 8,\r\n \"fileDirectory\": 9,\r\n \"rename1to2\": 10,\r\n \"rename2to1\": 11,\r\n \"renameAdd\": 12,\r\n \"renameDelete\": 13,\r\n \"renameRename\": 14\r\n }\r\n },\r\n GitConflictUpdateResult: {},\r\n GitConflictUpdateStatus: {\r\n enumValues: {\r\n \"succeeded\": 0,\r\n \"badRequest\": 1,\r\n \"invalidResolution\": 2,\r\n \"unsupportedConflictType\": 3,\r\n \"notFound\": 4\r\n }\r\n },\r\n GitDeletedRepository: {},\r\n GitForkRef: {},\r\n GitForkSyncRequest: {},\r\n GitForkTeamProjectReference: {},\r\n GitHistoryMode: {\r\n enumValues: {\r\n \"simplifiedHistory\": 0,\r\n \"firstParent\": 1,\r\n \"fullHistory\": 2,\r\n \"fullHistorySimplifyMerges\": 3\r\n }\r\n },\r\n GitImportFailedEvent: {},\r\n GitImportRequest: {},\r\n GitImportSucceededEvent: {},\r\n GitItem: {},\r\n GitItemDescriptor: {},\r\n GitItemRequestData: {},\r\n GitLastChangeTreeItems: {},\r\n GitMerge: {},\r\n GitObject: {},\r\n GitObjectType: {\r\n enumValues: {\r\n \"bad\": 0,\r\n \"commit\": 1,\r\n \"tree\": 2,\r\n \"blob\": 3,\r\n \"tag\": 4,\r\n \"ext2\": 5,\r\n \"ofsDelta\": 6,\r\n \"refDelta\": 7\r\n }\r\n },\r\n GitPathAction: {},\r\n GitPathActions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"edit\": 1,\r\n \"delete\": 2,\r\n \"add\": 3,\r\n \"rename\": 4\r\n }\r\n },\r\n GitPathToItemsCollection: {},\r\n GitPolicyConfigurationResponse: {},\r\n GitPullRequest: {},\r\n GitPullRequestChange: {},\r\n GitPullRequestCommentThread: {},\r\n GitPullRequestCompletionOptions: {},\r\n GitPullRequestIteration: {},\r\n GitPullRequestIterationChanges: {},\r\n GitPullRequestMergeStrategy: {\r\n enumValues: {\r\n \"noFastForward\": 1,\r\n \"squash\": 2,\r\n \"rebase\": 3,\r\n \"rebaseMerge\": 4\r\n }\r\n },\r\n GitPullRequestQuery: {},\r\n GitPullRequestQueryInput: {},\r\n GitPullRequestQueryType: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"lastMergeCommit\": 1,\r\n \"commit\": 2\r\n }\r\n },\r\n GitPullRequestReviewFileType: {\r\n enumValues: {\r\n \"changeEntry\": 0,\r\n \"attachment\": 1\r\n }\r\n },\r\n GitPullRequestSearchCriteria: {},\r\n GitPullRequestStatus: {},\r\n GitPush: {},\r\n GitPushEventData: {},\r\n GitPushRef: {},\r\n GitPushSearchCriteria: {},\r\n GitQueryBranchStatsCriteria: {},\r\n GitQueryCommitsCriteria: {},\r\n GitQueryRefsCriteria: {},\r\n GitRef: {},\r\n GitRefFavorite: {},\r\n GitRefSearchType: {\r\n enumValues: {\r\n \"exact\": 0,\r\n \"startsWith\": 1,\r\n \"contains\": 2\r\n }\r\n },\r\n GitRefUpdateMode: {\r\n enumValues: {\r\n \"bestEffort\": 0,\r\n \"allOrNone\": 1\r\n }\r\n },\r\n GitRefUpdateResult: {},\r\n GitRefUpdateStatus: {\r\n enumValues: {\r\n \"succeeded\": 0,\r\n \"forcePushRequired\": 1,\r\n \"staleOldObjectId\": 2,\r\n \"invalidRefName\": 3,\r\n \"unprocessed\": 4,\r\n \"unresolvableToCommit\": 5,\r\n \"writePermissionRequired\": 6,\r\n \"manageNotePermissionRequired\": 7,\r\n \"createBranchPermissionRequired\": 8,\r\n \"createTagPermissionRequired\": 9,\r\n \"rejectedByPlugin\": 10,\r\n \"locked\": 11,\r\n \"refNameConflict\": 12,\r\n \"rejectedByPolicy\": 13,\r\n \"succeededNonExistentRef\": 14,\r\n \"succeededCorruptRef\": 15\r\n }\r\n },\r\n GitRepository: {},\r\n GitRepositoryCreateOptions: {},\r\n GitRepositoryRef: {},\r\n GitResolutionError: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"mergeContentNotFound\": 1,\r\n \"pathInUse\": 2,\r\n \"invalidPath\": 3,\r\n \"unknownAction\": 4,\r\n \"unknownMergeType\": 5,\r\n \"otherError\": 255\r\n }\r\n },\r\n GitResolutionMergeContent: {},\r\n GitResolutionMergeType: {\r\n enumValues: {\r\n \"undecided\": 0,\r\n \"takeSourceContent\": 1,\r\n \"takeTargetContent\": 2,\r\n \"autoMerged\": 3,\r\n \"userMerged\": 4\r\n }\r\n },\r\n GitResolutionPathConflict: {},\r\n GitResolutionPathConflictAction: {\r\n enumValues: {\r\n \"undecided\": 0,\r\n \"keepSourceRenameTarget\": 1,\r\n \"keepSourceDeleteTarget\": 2,\r\n \"keepTargetRenameSource\": 3,\r\n \"keepTargetDeleteSource\": 4\r\n }\r\n },\r\n GitResolutionPickOneAction: {},\r\n GitResolutionRename1to2: {},\r\n GitResolutionRename1to2Action: {\r\n enumValues: {\r\n \"undecided\": 0,\r\n \"keepSourcePath\": 1,\r\n \"keepTargetPath\": 2,\r\n \"keepBothFiles\": 3\r\n }\r\n },\r\n GitResolutionStatus: {\r\n enumValues: {\r\n \"unresolved\": 0,\r\n \"partiallyResolved\": 1,\r\n \"resolved\": 2\r\n }\r\n },\r\n GitResolutionWhichAction: {\r\n enumValues: {\r\n \"undecided\": 0,\r\n \"pickSourceAction\": 1,\r\n \"pickTargetAction\": 2\r\n }\r\n },\r\n GitRevert: {},\r\n GitStatus: {},\r\n GitStatusState: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"pending\": 1,\r\n \"succeeded\": 2,\r\n \"failed\": 3,\r\n \"error\": 4,\r\n \"notApplicable\": 5\r\n }\r\n },\r\n GitTargetVersionDescriptor: {},\r\n GitTreeDiff: {},\r\n GitTreeDiffEntry: {},\r\n GitTreeDiffResponse: {},\r\n GitTreeEntryRef: {},\r\n GitTreeRef: {},\r\n GitUserDate: {},\r\n GitVersionDescriptor: {},\r\n GitVersionOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"previousChange\": 1,\r\n \"firstParent\": 2\r\n }\r\n },\r\n GitVersionType: {\r\n enumValues: {\r\n \"branch\": 0,\r\n \"tag\": 1,\r\n \"commit\": 2\r\n }\r\n },\r\n HistoryEntry: {},\r\n IncludedGitCommit: {},\r\n ItemContent: {},\r\n ItemContentType: {\r\n enumValues: {\r\n \"rawText\": 0,\r\n \"base64Encoded\": 1\r\n }\r\n },\r\n ItemDetailsOptions: {},\r\n IterationReason: {\r\n enumValues: {\r\n \"push\": 0,\r\n \"forcePush\": 1,\r\n \"create\": 2,\r\n \"rebase\": 4,\r\n \"unknown\": 8,\r\n \"retarget\": 16\r\n }\r\n },\r\n LineDiffBlock: {},\r\n LineDiffBlockChangeType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"add\": 1,\r\n \"delete\": 2,\r\n \"edit\": 3\r\n }\r\n },\r\n PullRequestAsyncStatus: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"queued\": 1,\r\n \"conflicts\": 2,\r\n \"succeeded\": 3,\r\n \"rejectedByPolicy\": 4,\r\n \"failure\": 5\r\n }\r\n },\r\n PullRequestMergeFailureType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"unknown\": 1,\r\n \"caseSensitive\": 2,\r\n \"objectTooLarge\": 3\r\n }\r\n },\r\n PullRequestStatus: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"active\": 1,\r\n \"abandoned\": 2,\r\n \"completed\": 3,\r\n \"all\": 4\r\n }\r\n },\r\n RefFavoriteType: {\r\n enumValues: {\r\n \"invalid\": 0,\r\n \"folder\": 1,\r\n \"ref\": 2\r\n }\r\n },\r\n SupportedIde: {},\r\n SupportedIdeType: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"androidStudio\": 1,\r\n \"appCode\": 2,\r\n \"cLion\": 3,\r\n \"dataGrip\": 4,\r\n \"eclipse\": 13,\r\n \"intelliJ\": 5,\r\n \"mps\": 6,\r\n \"phpStorm\": 7,\r\n \"pyCharm\": 8,\r\n \"rubyMine\": 9,\r\n \"tower\": 10,\r\n \"visualStudio\": 11,\r\n \"vsCode\": 14,\r\n \"webStorm\": 12\r\n }\r\n },\r\n TfvcBranch: {},\r\n TfvcBranchRef: {},\r\n TfvcChange: {},\r\n TfvcChangeset: {},\r\n TfvcChangesetRef: {},\r\n TfvcCheckinEventData: {},\r\n TfvcHistoryEntry: {},\r\n TfvcItem: {},\r\n TfvcItemDescriptor: {},\r\n TfvcItemPreviousHash: {},\r\n TfvcItemRequestData: {},\r\n TfvcLabel: {},\r\n TfvcLabelRef: {},\r\n TfvcShelveset: {},\r\n TfvcShelvesetRef: {},\r\n TfvcVersionDescriptor: {},\r\n TfvcVersionOption: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"previous\": 1,\r\n \"useRename\": 2\r\n }\r\n },\r\n TfvcVersionType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"changeset\": 1,\r\n \"shelveset\": 2,\r\n \"change\": 3,\r\n \"date\": 4,\r\n \"latest\": 5,\r\n \"tip\": 6,\r\n \"mergeSource\": 7\r\n }\r\n },\r\n UpdateRefsRequest: {},\r\n VersionControlChangeType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"add\": 1,\r\n \"edit\": 2,\r\n \"encoding\": 4,\r\n \"rename\": 8,\r\n \"delete\": 16,\r\n \"undelete\": 32,\r\n \"branch\": 64,\r\n \"merge\": 128,\r\n \"lock\": 256,\r\n \"rollback\": 512,\r\n \"sourceRename\": 1024,\r\n \"targetRename\": 2048,\r\n \"property\": 4096,\r\n \"all\": 8191\r\n }\r\n },\r\n VersionControlProjectInfo: {},\r\n VersionControlRecursionType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"oneLevel\": 1,\r\n \"oneLevelPlusNestedEmptyFolders\": 4,\r\n \"full\": 120\r\n }\r\n },\r\n};\r\nexports.TypeInfo.Attachment.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Change.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.ChangeList.fields = {\r\n changeCounts: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.VersionControlChangeType,\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n sortDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Comment.fields = {\r\n commentType: {\r\n enumType: exports.TypeInfo.CommentType\r\n },\r\n lastContentUpdatedDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n publishedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CommentThread.fields = {\r\n comments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Comment\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n publishedDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.CommentThreadStatus\r\n }\r\n};\r\nexports.TypeInfo.FileDiff.fields = {\r\n lineDiffBlocks: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LineDiffBlock\r\n }\r\n};\r\nexports.TypeInfo.GitAnnotatedTag.fields = {\r\n taggedBy: {\r\n typeInfo: exports.TypeInfo.GitUserDate\r\n },\r\n taggedObject: {\r\n typeInfo: exports.TypeInfo.GitObject\r\n }\r\n};\r\nexports.TypeInfo.GitAsyncRefOperation.fields = {\r\n detailedStatus: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationDetail\r\n },\r\n parameters: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationParameters\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitAsyncRefOperationDetail.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncRefOperationFailureStatus\r\n }\r\n};\r\nexports.TypeInfo.GitAsyncRefOperationParameters.fields = {\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n },\r\n source: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationSource\r\n }\r\n};\r\nexports.TypeInfo.GitAsyncRefOperationSource.fields = {\r\n commitList: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n }\r\n};\r\nexports.TypeInfo.GitBaseVersionDescriptor.fields = {\r\n baseVersionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n baseVersionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n },\r\n versionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n }\r\n};\r\nexports.TypeInfo.GitBranchStats.fields = {\r\n commit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n }\r\n};\r\nexports.TypeInfo.GitChange.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.GitCherryPick.fields = {\r\n detailedStatus: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationDetail\r\n },\r\n parameters: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationParameters\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitCommit.fields = {\r\n author: {\r\n typeInfo: exports.TypeInfo.GitUserDate\r\n },\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitChange\r\n },\r\n committer: {\r\n typeInfo: exports.TypeInfo.GitUserDate\r\n },\r\n push: {\r\n typeInfo: exports.TypeInfo.GitPushRef\r\n },\r\n statuses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitStatus\r\n }\r\n};\r\nexports.TypeInfo.GitCommitChanges.fields = {\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitChange\r\n }\r\n};\r\nexports.TypeInfo.GitCommitDiffs.fields = {\r\n changeCounts: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.VersionControlChangeType,\r\n },\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitChange\r\n }\r\n};\r\nexports.TypeInfo.GitCommitRef.fields = {\r\n author: {\r\n typeInfo: exports.TypeInfo.GitUserDate\r\n },\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitChange\r\n },\r\n committer: {\r\n typeInfo: exports.TypeInfo.GitUserDate\r\n },\r\n push: {\r\n typeInfo: exports.TypeInfo.GitPushRef\r\n },\r\n statuses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitStatus\r\n }\r\n};\r\nexports.TypeInfo.GitCommitToCreate.fields = {\r\n baseRef: {\r\n typeInfo: exports.TypeInfo.GitRef\r\n },\r\n pathActions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitPathAction\r\n }\r\n};\r\nexports.TypeInfo.GitConflict.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictAddAdd.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionMergeContent\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictAddRename.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPathConflict\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictDeleteEdit.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPickOneAction\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictDeleteRename.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPickOneAction\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictDirectoryFile.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPathConflict\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n },\r\n sourceTree: {\r\n typeInfo: exports.TypeInfo.GitTreeRef\r\n }\r\n};\r\nexports.TypeInfo.GitConflictEditDelete.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPickOneAction\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictEditEdit.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionMergeContent\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictFileDirectory.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPathConflict\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n },\r\n targetTree: {\r\n typeInfo: exports.TypeInfo.GitTreeRef\r\n }\r\n};\r\nexports.TypeInfo.GitConflictRename1to2.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionRename1to2\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictRename2to1.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPathConflict\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictRenameAdd.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPathConflict\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictRenameDelete.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPickOneAction\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictRenameRename.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionMergeContent\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictUpdateResult.fields = {\r\n updatedConflict: {\r\n typeInfo: exports.TypeInfo.GitConflict\r\n },\r\n updateStatus: {\r\n enumType: exports.TypeInfo.GitConflictUpdateStatus\r\n }\r\n};\r\nexports.TypeInfo.GitDeletedRepository.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n deletedDate: {\r\n isDate: true,\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GitForkRef.fields = {\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n },\r\n statuses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitStatus\r\n }\r\n};\r\nexports.TypeInfo.GitForkSyncRequest.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitForkTeamProjectReference.fields = {\r\n lastUpdateTime: {\r\n isDate: true,\r\n },\r\n visibility: {\r\n enumType: TfsCoreInterfaces.TypeInfo.ProjectVisibility\r\n }\r\n};\r\nexports.TypeInfo.GitImportFailedEvent.fields = {\r\n targetRepository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n }\r\n};\r\nexports.TypeInfo.GitImportRequest.fields = {\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitImportSucceededEvent.fields = {\r\n targetRepository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n }\r\n};\r\nexports.TypeInfo.GitItem.fields = {\r\n gitObjectType: {\r\n enumType: exports.TypeInfo.GitObjectType\r\n },\r\n latestProcessedChange: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n }\r\n};\r\nexports.TypeInfo.GitItemDescriptor.fields = {\r\n recursionLevel: {\r\n enumType: exports.TypeInfo.VersionControlRecursionType\r\n },\r\n versionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n }\r\n};\r\nexports.TypeInfo.GitItemRequestData.fields = {\r\n itemDescriptors: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitItemDescriptor\r\n }\r\n};\r\nexports.TypeInfo.GitLastChangeTreeItems.fields = {\r\n commits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n lastExploredTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitMerge.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitObject.fields = {\r\n objectType: {\r\n enumType: exports.TypeInfo.GitObjectType\r\n }\r\n};\r\nexports.TypeInfo.GitPathAction.fields = {\r\n action: {\r\n enumType: exports.TypeInfo.GitPathActions\r\n }\r\n};\r\nexports.TypeInfo.GitPathToItemsCollection.fields = {\r\n items: {\r\n isDictionary: true,\r\n dictionaryValueFieldInfo: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitItem\r\n }\r\n }\r\n};\r\nexports.TypeInfo.GitPolicyConfigurationResponse.fields = {\r\n policyConfigurations: {\r\n isArray: true,\r\n typeInfo: PolicyInterfaces.TypeInfo.PolicyConfiguration\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequest.fields = {\r\n closedDate: {\r\n isDate: true,\r\n },\r\n commits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n completionOptions: {\r\n typeInfo: exports.TypeInfo.GitPullRequestCompletionOptions\r\n },\r\n completionQueueTime: {\r\n isDate: true,\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n forkSource: {\r\n typeInfo: exports.TypeInfo.GitForkRef\r\n },\r\n lastMergeCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n lastMergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n lastMergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeFailureType: {\r\n enumType: exports.TypeInfo.PullRequestMergeFailureType\r\n },\r\n mergeStatus: {\r\n enumType: exports.TypeInfo.PullRequestAsyncStatus\r\n },\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.PullRequestStatus\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestChange.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestCommentThread.fields = {\r\n comments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Comment\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n publishedDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.CommentThreadStatus\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestCompletionOptions.fields = {\r\n mergeStrategy: {\r\n enumType: exports.TypeInfo.GitPullRequestMergeStrategy\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestIteration.fields = {\r\n changeList: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitPullRequestChange\r\n },\r\n commits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n commonRefCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n push: {\r\n typeInfo: exports.TypeInfo.GitPushRef\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.IterationReason\r\n },\r\n sourceRefCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n targetRefCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestIterationChanges.fields = {\r\n changeEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitPullRequestChange\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestQuery.fields = {\r\n queries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitPullRequestQueryInput\r\n },\r\n};\r\nexports.TypeInfo.GitPullRequestQueryInput.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.GitPullRequestQueryType\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestSearchCriteria.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.PullRequestStatus\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestStatus.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.GitStatusState\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitPush.fields = {\r\n commits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n date: {\r\n isDate: true,\r\n },\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n }\r\n};\r\nexports.TypeInfo.GitPushEventData.fields = {\r\n commits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommit\r\n },\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n }\r\n};\r\nexports.TypeInfo.GitPushRef.fields = {\r\n date: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitPushSearchCriteria.fields = {\r\n fromDate: {\r\n isDate: true,\r\n },\r\n toDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitQueryBranchStatsCriteria.fields = {\r\n baseCommit: {\r\n typeInfo: exports.TypeInfo.GitVersionDescriptor\r\n },\r\n targetCommits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitVersionDescriptor\r\n }\r\n};\r\nexports.TypeInfo.GitQueryCommitsCriteria.fields = {\r\n compareVersion: {\r\n typeInfo: exports.TypeInfo.GitVersionDescriptor\r\n },\r\n historyMode: {\r\n enumType: exports.TypeInfo.GitHistoryMode\r\n },\r\n itemVersion: {\r\n typeInfo: exports.TypeInfo.GitVersionDescriptor\r\n }\r\n};\r\nexports.TypeInfo.GitQueryRefsCriteria.fields = {\r\n searchType: {\r\n enumType: exports.TypeInfo.GitRefSearchType\r\n }\r\n};\r\nexports.TypeInfo.GitRef.fields = {\r\n statuses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitStatus\r\n }\r\n};\r\nexports.TypeInfo.GitRefFavorite.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.RefFavoriteType\r\n }\r\n};\r\nexports.TypeInfo.GitRefUpdateResult.fields = {\r\n updateStatus: {\r\n enumType: exports.TypeInfo.GitRefUpdateStatus\r\n }\r\n};\r\nexports.TypeInfo.GitRepository.fields = {\r\n parentRepository: {\r\n typeInfo: exports.TypeInfo.GitRepositoryRef\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GitRepositoryCreateOptions.fields = {\r\n parentRepository: {\r\n typeInfo: exports.TypeInfo.GitRepositoryRef\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GitRepositoryRef.fields = {\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GitResolutionMergeContent.fields = {\r\n mergeType: {\r\n enumType: exports.TypeInfo.GitResolutionMergeType\r\n }\r\n};\r\nexports.TypeInfo.GitResolutionPathConflict.fields = {\r\n action: {\r\n enumType: exports.TypeInfo.GitResolutionPathConflictAction\r\n }\r\n};\r\nexports.TypeInfo.GitResolutionPickOneAction.fields = {\r\n action: {\r\n enumType: exports.TypeInfo.GitResolutionWhichAction\r\n }\r\n};\r\nexports.TypeInfo.GitResolutionRename1to2.fields = {\r\n action: {\r\n enumType: exports.TypeInfo.GitResolutionRename1to2Action\r\n },\r\n mergeType: {\r\n enumType: exports.TypeInfo.GitResolutionMergeType\r\n }\r\n};\r\nexports.TypeInfo.GitRevert.fields = {\r\n detailedStatus: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationDetail\r\n },\r\n parameters: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationParameters\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitStatus.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.GitStatusState\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitTargetVersionDescriptor.fields = {\r\n targetVersionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n targetVersionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n },\r\n versionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n }\r\n};\r\nexports.TypeInfo.GitTreeDiff.fields = {\r\n diffEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitTreeDiffEntry\r\n }\r\n};\r\nexports.TypeInfo.GitTreeDiffEntry.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n objectType: {\r\n enumType: exports.TypeInfo.GitObjectType\r\n }\r\n};\r\nexports.TypeInfo.GitTreeDiffResponse.fields = {\r\n treeDiff: {\r\n typeInfo: exports.TypeInfo.GitTreeDiff\r\n }\r\n};\r\nexports.TypeInfo.GitTreeEntryRef.fields = {\r\n gitObjectType: {\r\n enumType: exports.TypeInfo.GitObjectType\r\n }\r\n};\r\nexports.TypeInfo.GitTreeRef.fields = {\r\n treeEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitTreeEntryRef\r\n }\r\n};\r\nexports.TypeInfo.GitUserDate.fields = {\r\n date: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitVersionDescriptor.fields = {\r\n versionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n }\r\n};\r\nexports.TypeInfo.HistoryEntry.fields = {\r\n itemChangeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n }\r\n};\r\nexports.TypeInfo.IncludedGitCommit.fields = {\r\n commitTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ItemContent.fields = {\r\n contentType: {\r\n enumType: exports.TypeInfo.ItemContentType\r\n }\r\n};\r\nexports.TypeInfo.ItemDetailsOptions.fields = {\r\n recursionLevel: {\r\n enumType: exports.TypeInfo.VersionControlRecursionType\r\n }\r\n};\r\nexports.TypeInfo.LineDiffBlock.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.LineDiffBlockChangeType\r\n }\r\n};\r\nexports.TypeInfo.SupportedIde.fields = {\r\n ideType: {\r\n enumType: exports.TypeInfo.SupportedIdeType\r\n }\r\n};\r\nexports.TypeInfo.TfvcBranch.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcBranch\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcBranchRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcChange.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.TfvcChangeset.fields = {\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcChange\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcChangesetRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcCheckinEventData.fields = {\r\n changeset: {\r\n typeInfo: exports.TypeInfo.TfvcChangeset\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.TfvcHistoryEntry.fields = {\r\n itemChangeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n }\r\n};\r\nexports.TypeInfo.TfvcItem.fields = {\r\n changeDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcItemDescriptor.fields = {\r\n recursionLevel: {\r\n enumType: exports.TypeInfo.VersionControlRecursionType\r\n },\r\n versionOption: {\r\n enumType: exports.TypeInfo.TfvcVersionOption\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.TfvcVersionType\r\n }\r\n};\r\nexports.TypeInfo.TfvcItemPreviousHash.fields = {\r\n changeDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcItemRequestData.fields = {\r\n itemDescriptors: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcItemDescriptor\r\n }\r\n};\r\nexports.TypeInfo.TfvcLabel.fields = {\r\n items: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcItem\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcLabelRef.fields = {\r\n modifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcShelveset.fields = {\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcChange\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcShelvesetRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcVersionDescriptor.fields = {\r\n versionOption: {\r\n enumType: exports.TypeInfo.TfvcVersionOption\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.TfvcVersionType\r\n }\r\n};\r\nexports.TypeInfo.UpdateRefsRequest.fields = {\r\n updateMode: {\r\n enumType: exports.TypeInfo.GitRefUpdateMode\r\n }\r\n};\r\nexports.TypeInfo.VersionControlProjectInfo.fields = {\r\n defaultSourceControlType: {\r\n enumType: TfsCoreInterfaces.TypeInfo.SourceControlTypes\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst VSSInterfaces = require(\"../interfaces/common/VSSInterfaces\");\r\nvar InheritLevel;\r\n(function (InheritLevel) {\r\n InheritLevel[InheritLevel[\"None\"] = 0] = \"None\";\r\n InheritLevel[InheritLevel[\"Deployment\"] = 1] = \"Deployment\";\r\n InheritLevel[InheritLevel[\"Account\"] = 2] = \"Account\";\r\n InheritLevel[InheritLevel[\"Collection\"] = 4] = \"Collection\";\r\n InheritLevel[InheritLevel[\"All\"] = 7] = \"All\";\r\n})(InheritLevel = exports.InheritLevel || (exports.InheritLevel = {}));\r\nvar RelativeToSetting;\r\n(function (RelativeToSetting) {\r\n RelativeToSetting[RelativeToSetting[\"Context\"] = 0] = \"Context\";\r\n RelativeToSetting[RelativeToSetting[\"WebApplication\"] = 2] = \"WebApplication\";\r\n RelativeToSetting[RelativeToSetting[\"FullyQualified\"] = 3] = \"FullyQualified\";\r\n})(RelativeToSetting = exports.RelativeToSetting || (exports.RelativeToSetting = {}));\r\nvar ServiceStatus;\r\n(function (ServiceStatus) {\r\n ServiceStatus[ServiceStatus[\"Assigned\"] = 0] = \"Assigned\";\r\n ServiceStatus[ServiceStatus[\"Active\"] = 1] = \"Active\";\r\n ServiceStatus[ServiceStatus[\"Moving\"] = 2] = \"Moving\";\r\n})(ServiceStatus = exports.ServiceStatus || (exports.ServiceStatus = {}));\r\nexports.TypeInfo = {\r\n ConnectionData: {},\r\n InheritLevel: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"deployment\": 1,\r\n \"account\": 2,\r\n \"collection\": 4,\r\n \"all\": 7\r\n }\r\n },\r\n LocationServiceData: {},\r\n RelativeToSetting: {\r\n enumValues: {\r\n \"context\": 0,\r\n \"webApplication\": 2,\r\n \"fullyQualified\": 3\r\n }\r\n },\r\n ServiceDefinition: {},\r\n ServiceStatus: {\r\n enumValues: {\r\n \"assigned\": 0,\r\n \"active\": 1,\r\n \"moving\": 2\r\n }\r\n },\r\n};\r\nexports.TypeInfo.ConnectionData.fields = {\r\n deploymentType: {\r\n enumType: VSSInterfaces.TypeInfo.DeploymentFlags\r\n },\r\n lastUserAccess: {\r\n isDate: true,\r\n },\r\n locationServiceData: {\r\n typeInfo: exports.TypeInfo.LocationServiceData\r\n }\r\n};\r\nexports.TypeInfo.LocationServiceData.fields = {\r\n serviceDefinitions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ServiceDefinition\r\n }\r\n};\r\nexports.TypeInfo.ServiceDefinition.fields = {\r\n inheritLevel: {\r\n enumType: exports.TypeInfo.InheritLevel\r\n },\r\n relativeToSetting: {\r\n enumType: exports.TypeInfo.RelativeToSetting\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ServiceStatus\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Default delivery preference for group subscribers. Indicates how the subscriber should be notified.\r\n */\r\nvar DefaultGroupDeliveryPreference;\r\n(function (DefaultGroupDeliveryPreference) {\r\n DefaultGroupDeliveryPreference[DefaultGroupDeliveryPreference[\"NoDelivery\"] = -1] = \"NoDelivery\";\r\n DefaultGroupDeliveryPreference[DefaultGroupDeliveryPreference[\"EachMember\"] = 2] = \"EachMember\";\r\n})(DefaultGroupDeliveryPreference = exports.DefaultGroupDeliveryPreference || (exports.DefaultGroupDeliveryPreference = {}));\r\n/**\r\n * Describes the subscription evaluation operation status.\r\n */\r\nvar EvaluationOperationStatus;\r\n(function (EvaluationOperationStatus) {\r\n /**\r\n * The operation object does not have the status set.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * The operation has been queued.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"Queued\"] = 1] = \"Queued\";\r\n /**\r\n * The operation is in progress.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The operation was cancelled by the user.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"Cancelled\"] = 3] = \"Cancelled\";\r\n /**\r\n * The operation completed successfully.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"Succeeded\"] = 4] = \"Succeeded\";\r\n /**\r\n * The operation completed with a failure.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"Failed\"] = 5] = \"Failed\";\r\n /**\r\n * The operation timed out.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"TimedOut\"] = 6] = \"TimedOut\";\r\n /**\r\n * The operation could not be found.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"NotFound\"] = 7] = \"NotFound\";\r\n})(EvaluationOperationStatus = exports.EvaluationOperationStatus || (exports.EvaluationOperationStatus = {}));\r\n/**\r\n * Set of flags used to determine which set of information is retrieved when querying for event publishers\r\n */\r\nvar EventPublisherQueryFlags;\r\n(function (EventPublisherQueryFlags) {\r\n EventPublisherQueryFlags[EventPublisherQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include event types from the remote services too\r\n */\r\n EventPublisherQueryFlags[EventPublisherQueryFlags[\"IncludeRemoteServices\"] = 2] = \"IncludeRemoteServices\";\r\n})(EventPublisherQueryFlags = exports.EventPublisherQueryFlags || (exports.EventPublisherQueryFlags = {}));\r\n/**\r\n * Set of flags used to determine which set of information is retrieved when querying for eventtypes\r\n */\r\nvar EventTypeQueryFlags;\r\n(function (EventTypeQueryFlags) {\r\n EventTypeQueryFlags[EventTypeQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * IncludeFields will include all fields and their types\r\n */\r\n EventTypeQueryFlags[EventTypeQueryFlags[\"IncludeFields\"] = 1] = \"IncludeFields\";\r\n})(EventTypeQueryFlags = exports.EventTypeQueryFlags || (exports.EventTypeQueryFlags = {}));\r\nvar NotificationOperation;\r\n(function (NotificationOperation) {\r\n NotificationOperation[NotificationOperation[\"None\"] = 0] = \"None\";\r\n NotificationOperation[NotificationOperation[\"SuspendUnprocessed\"] = 1] = \"SuspendUnprocessed\";\r\n})(NotificationOperation = exports.NotificationOperation || (exports.NotificationOperation = {}));\r\nvar NotificationReasonType;\r\n(function (NotificationReasonType) {\r\n NotificationReasonType[NotificationReasonType[\"Unknown\"] = 0] = \"Unknown\";\r\n NotificationReasonType[NotificationReasonType[\"Follows\"] = 1] = \"Follows\";\r\n NotificationReasonType[NotificationReasonType[\"Personal\"] = 2] = \"Personal\";\r\n NotificationReasonType[NotificationReasonType[\"PersonalAlias\"] = 3] = \"PersonalAlias\";\r\n NotificationReasonType[NotificationReasonType[\"DirectMember\"] = 4] = \"DirectMember\";\r\n NotificationReasonType[NotificationReasonType[\"IndirectMember\"] = 5] = \"IndirectMember\";\r\n NotificationReasonType[NotificationReasonType[\"GroupAlias\"] = 6] = \"GroupAlias\";\r\n NotificationReasonType[NotificationReasonType[\"SubscriptionAlias\"] = 7] = \"SubscriptionAlias\";\r\n NotificationReasonType[NotificationReasonType[\"SingleRole\"] = 8] = \"SingleRole\";\r\n NotificationReasonType[NotificationReasonType[\"DirectMemberGroupRole\"] = 9] = \"DirectMemberGroupRole\";\r\n NotificationReasonType[NotificationReasonType[\"InDirectMemberGroupRole\"] = 10] = \"InDirectMemberGroupRole\";\r\n NotificationReasonType[NotificationReasonType[\"AliasMemberGroupRole\"] = 11] = \"AliasMemberGroupRole\";\r\n})(NotificationReasonType = exports.NotificationReasonType || (exports.NotificationReasonType = {}));\r\nvar NotificationStatisticType;\r\n(function (NotificationStatisticType) {\r\n NotificationStatisticType[NotificationStatisticType[\"NotificationBySubscription\"] = 0] = \"NotificationBySubscription\";\r\n NotificationStatisticType[NotificationStatisticType[\"EventsByEventType\"] = 1] = \"EventsByEventType\";\r\n NotificationStatisticType[NotificationStatisticType[\"NotificationByEventType\"] = 2] = \"NotificationByEventType\";\r\n NotificationStatisticType[NotificationStatisticType[\"EventsByEventTypePerUser\"] = 3] = \"EventsByEventTypePerUser\";\r\n NotificationStatisticType[NotificationStatisticType[\"NotificationByEventTypePerUser\"] = 4] = \"NotificationByEventTypePerUser\";\r\n NotificationStatisticType[NotificationStatisticType[\"Events\"] = 5] = \"Events\";\r\n NotificationStatisticType[NotificationStatisticType[\"Notifications\"] = 6] = \"Notifications\";\r\n NotificationStatisticType[NotificationStatisticType[\"NotificationFailureBySubscription\"] = 7] = \"NotificationFailureBySubscription\";\r\n NotificationStatisticType[NotificationStatisticType[\"UnprocessedRangeStart\"] = 100] = \"UnprocessedRangeStart\";\r\n NotificationStatisticType[NotificationStatisticType[\"UnprocessedEventsByPublisher\"] = 101] = \"UnprocessedEventsByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"UnprocessedEventDelayByPublisher\"] = 102] = \"UnprocessedEventDelayByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"UnprocessedNotificationsByChannelByPublisher\"] = 103] = \"UnprocessedNotificationsByChannelByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"UnprocessedNotificationDelayByChannelByPublisher\"] = 104] = \"UnprocessedNotificationDelayByChannelByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"DelayRangeStart\"] = 200] = \"DelayRangeStart\";\r\n NotificationStatisticType[NotificationStatisticType[\"TotalPipelineTime\"] = 201] = \"TotalPipelineTime\";\r\n NotificationStatisticType[NotificationStatisticType[\"NotificationPipelineTime\"] = 202] = \"NotificationPipelineTime\";\r\n NotificationStatisticType[NotificationStatisticType[\"EventPipelineTime\"] = 203] = \"EventPipelineTime\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyRangeStart\"] = 1000] = \"HourlyRangeStart\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyNotificationBySubscription\"] = 1001] = \"HourlyNotificationBySubscription\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyEventsByEventTypePerUser\"] = 1002] = \"HourlyEventsByEventTypePerUser\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyEvents\"] = 1003] = \"HourlyEvents\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyNotifications\"] = 1004] = \"HourlyNotifications\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyUnprocessedEventsByPublisher\"] = 1101] = \"HourlyUnprocessedEventsByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyUnprocessedEventDelayByPublisher\"] = 1102] = \"HourlyUnprocessedEventDelayByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyUnprocessedNotificationsByChannelByPublisher\"] = 1103] = \"HourlyUnprocessedNotificationsByChannelByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyUnprocessedNotificationDelayByChannelByPublisher\"] = 1104] = \"HourlyUnprocessedNotificationDelayByChannelByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyTotalPipelineTime\"] = 1201] = \"HourlyTotalPipelineTime\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyNotificationPipelineTime\"] = 1202] = \"HourlyNotificationPipelineTime\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyEventPipelineTime\"] = 1203] = \"HourlyEventPipelineTime\";\r\n})(NotificationStatisticType = exports.NotificationStatisticType || (exports.NotificationStatisticType = {}));\r\n/**\r\n * Delivery preference for a subscriber. Indicates how the subscriber should be notified.\r\n */\r\nvar NotificationSubscriberDeliveryPreference;\r\n(function (NotificationSubscriberDeliveryPreference) {\r\n /**\r\n * Do not send notifications by default. Note: notifications can still be delivered to this subscriber, for example via a custom subscription.\r\n */\r\n NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference[\"NoDelivery\"] = -1] = \"NoDelivery\";\r\n /**\r\n * Deliver notifications to the subscriber's preferred email address.\r\n */\r\n NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference[\"PreferredEmailAddress\"] = 1] = \"PreferredEmailAddress\";\r\n /**\r\n * Deliver notifications to each member of the group representing the subscriber. Only applicable when the subscriber is a group.\r\n */\r\n NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference[\"EachMember\"] = 2] = \"EachMember\";\r\n /**\r\n * Use default\r\n */\r\n NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference[\"UseDefault\"] = 3] = \"UseDefault\";\r\n})(NotificationSubscriberDeliveryPreference = exports.NotificationSubscriberDeliveryPreference || (exports.NotificationSubscriberDeliveryPreference = {}));\r\nvar SubscriberFlags;\r\n(function (SubscriberFlags) {\r\n SubscriberFlags[SubscriberFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Subscriber's delivery preferences could be updated\r\n */\r\n SubscriberFlags[SubscriberFlags[\"DeliveryPreferencesEditable\"] = 2] = \"DeliveryPreferencesEditable\";\r\n /**\r\n * Subscriber's delivery preferences supports email delivery\r\n */\r\n SubscriberFlags[SubscriberFlags[\"SupportsPreferredEmailAddressDelivery\"] = 4] = \"SupportsPreferredEmailAddressDelivery\";\r\n /**\r\n * Subscriber's delivery preferences supports individual members delivery(group expansion)\r\n */\r\n SubscriberFlags[SubscriberFlags[\"SupportsEachMemberDelivery\"] = 8] = \"SupportsEachMemberDelivery\";\r\n /**\r\n * Subscriber's delivery preferences supports no delivery\r\n */\r\n SubscriberFlags[SubscriberFlags[\"SupportsNoDelivery\"] = 16] = \"SupportsNoDelivery\";\r\n /**\r\n * Subscriber is a user\r\n */\r\n SubscriberFlags[SubscriberFlags[\"IsUser\"] = 32] = \"IsUser\";\r\n /**\r\n * Subscriber is a group\r\n */\r\n SubscriberFlags[SubscriberFlags[\"IsGroup\"] = 64] = \"IsGroup\";\r\n /**\r\n * Subscriber is a team\r\n */\r\n SubscriberFlags[SubscriberFlags[\"IsTeam\"] = 128] = \"IsTeam\";\r\n})(SubscriberFlags = exports.SubscriberFlags || (exports.SubscriberFlags = {}));\r\nvar SubscriptionFieldType;\r\n(function (SubscriptionFieldType) {\r\n SubscriptionFieldType[SubscriptionFieldType[\"String\"] = 1] = \"String\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Integer\"] = 2] = \"Integer\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"DateTime\"] = 3] = \"DateTime\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"PlainText\"] = 5] = \"PlainText\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Html\"] = 7] = \"Html\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"TreePath\"] = 8] = \"TreePath\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"History\"] = 9] = \"History\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Double\"] = 10] = \"Double\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Guid\"] = 11] = \"Guid\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Boolean\"] = 12] = \"Boolean\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Identity\"] = 13] = \"Identity\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"PicklistInteger\"] = 14] = \"PicklistInteger\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"PicklistString\"] = 15] = \"PicklistString\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"PicklistDouble\"] = 16] = \"PicklistDouble\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"TeamProject\"] = 17] = \"TeamProject\";\r\n})(SubscriptionFieldType = exports.SubscriptionFieldType || (exports.SubscriptionFieldType = {}));\r\n/**\r\n * Read-only indicators that further describe the subscription.\r\n */\r\nvar SubscriptionFlags;\r\n(function (SubscriptionFlags) {\r\n /**\r\n * None\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Subscription's subscriber is a group, not a user\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"GroupSubscription\"] = 1] = \"GroupSubscription\";\r\n /**\r\n * Subscription is contributed and not persisted. This means certain fields of the subscription, like Filter, are read-only.\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"ContributedSubscription\"] = 2] = \"ContributedSubscription\";\r\n /**\r\n * A user that is member of the subscription's subscriber group can opt in/out of the subscription.\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"CanOptOut\"] = 4] = \"CanOptOut\";\r\n /**\r\n * If the subscriber is a group, is it a team.\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"TeamSubscription\"] = 8] = \"TeamSubscription\";\r\n /**\r\n * For role based subscriptions, there is an expectation that there will always be at least one actor that matches\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"OneActorMatches\"] = 16] = \"OneActorMatches\";\r\n})(SubscriptionFlags = exports.SubscriptionFlags || (exports.SubscriptionFlags = {}));\r\n/**\r\n * The permissions that a user has to a certain subscription\r\n */\r\nvar SubscriptionPermissions;\r\n(function (SubscriptionPermissions) {\r\n /**\r\n * None\r\n */\r\n SubscriptionPermissions[SubscriptionPermissions[\"None\"] = 0] = \"None\";\r\n /**\r\n * full view of description, filters, etc. Not limited.\r\n */\r\n SubscriptionPermissions[SubscriptionPermissions[\"View\"] = 1] = \"View\";\r\n /**\r\n * update subscription\r\n */\r\n SubscriptionPermissions[SubscriptionPermissions[\"Edit\"] = 2] = \"Edit\";\r\n /**\r\n * delete subscription\r\n */\r\n SubscriptionPermissions[SubscriptionPermissions[\"Delete\"] = 4] = \"Delete\";\r\n})(SubscriptionPermissions = exports.SubscriptionPermissions || (exports.SubscriptionPermissions = {}));\r\n/**\r\n * Flags that influence the result set of a subscription query.\r\n */\r\nvar SubscriptionQueryFlags;\r\n(function (SubscriptionQueryFlags) {\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include subscriptions with invalid subscribers.\r\n */\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"IncludeInvalidSubscriptions\"] = 2] = \"IncludeInvalidSubscriptions\";\r\n /**\r\n * Include subscriptions marked for deletion.\r\n */\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"IncludeDeletedSubscriptions\"] = 4] = \"IncludeDeletedSubscriptions\";\r\n /**\r\n * Include the full filter details with each subscription.\r\n */\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"IncludeFilterDetails\"] = 8] = \"IncludeFilterDetails\";\r\n /**\r\n * For a subscription the caller does not have permission to view, return basic (non-confidential) information.\r\n */\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"AlwaysReturnBasicInformation\"] = 16] = \"AlwaysReturnBasicInformation\";\r\n /**\r\n * Include system subscriptions.\r\n */\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"IncludeSystemSubscriptions\"] = 32] = \"IncludeSystemSubscriptions\";\r\n})(SubscriptionQueryFlags = exports.SubscriptionQueryFlags || (exports.SubscriptionQueryFlags = {}));\r\n/**\r\n * Subscription status values. A value greater than or equal to zero indicates the subscription is enabled. A negative value indicates the subscription is disabled.\r\n */\r\nvar SubscriptionStatus;\r\n(function (SubscriptionStatus) {\r\n /**\r\n * Subscription is disabled because it generated a high volume of notifications.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"JailedByNotificationsVolume\"] = -200] = \"JailedByNotificationsVolume\";\r\n /**\r\n * Subscription is disabled and will be deleted.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"PendingDeletion\"] = -100] = \"PendingDeletion\";\r\n /**\r\n * Subscription is disabled because of an Argument Exception while processing the subscription\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledArgumentException\"] = -12] = \"DisabledArgumentException\";\r\n /**\r\n * Subscription is disabled because the project is invalid\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledProjectInvalid\"] = -11] = \"DisabledProjectInvalid\";\r\n /**\r\n * Subscription is disabled because the identity does not have the appropriate permissions\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledMissingPermissions\"] = -10] = \"DisabledMissingPermissions\";\r\n /**\r\n * Subscription is disabled service due to failures.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledFromProbation\"] = -9] = \"DisabledFromProbation\";\r\n /**\r\n * Subscription is disabled because the identity is no longer active\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledInactiveIdentity\"] = -8] = \"DisabledInactiveIdentity\";\r\n /**\r\n * Subscription is disabled because message queue is not supported.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledMessageQueueNotSupported\"] = -7] = \"DisabledMessageQueueNotSupported\";\r\n /**\r\n * Subscription is disabled because its subscriber is unknown.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledMissingIdentity\"] = -6] = \"DisabledMissingIdentity\";\r\n /**\r\n * Subscription is disabled because it has an invalid role expression.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledInvalidRoleExpression\"] = -5] = \"DisabledInvalidRoleExpression\";\r\n /**\r\n * Subscription is disabled because it has an invalid filter expression.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledInvalidPathClause\"] = -4] = \"DisabledInvalidPathClause\";\r\n /**\r\n * Subscription is disabled because it is a duplicate of a default subscription.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledAsDuplicateOfDefault\"] = -3] = \"DisabledAsDuplicateOfDefault\";\r\n /**\r\n * Subscription is disabled by an administrator, not the subscription's subscriber.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledByAdmin\"] = -2] = \"DisabledByAdmin\";\r\n /**\r\n * Subscription is disabled, typically by the owner of the subscription, and will not produce any notifications.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"Disabled\"] = -1] = \"Disabled\";\r\n /**\r\n * Subscription is active.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"Enabled\"] = 0] = \"Enabled\";\r\n /**\r\n * Subscription is active, but is on probation due to failed deliveries or other issues with the subscription.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"EnabledOnProbation\"] = 1] = \"EnabledOnProbation\";\r\n})(SubscriptionStatus = exports.SubscriptionStatus || (exports.SubscriptionStatus = {}));\r\n/**\r\n * Set of flags used to determine which set of templates is retrieved when querying for subscription templates\r\n */\r\nvar SubscriptionTemplateQueryFlags;\r\n(function (SubscriptionTemplateQueryFlags) {\r\n SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include user templates\r\n */\r\n SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags[\"IncludeUser\"] = 1] = \"IncludeUser\";\r\n /**\r\n * Include group templates\r\n */\r\n SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags[\"IncludeGroup\"] = 2] = \"IncludeGroup\";\r\n /**\r\n * Include user and group templates\r\n */\r\n SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags[\"IncludeUserAndGroup\"] = 4] = \"IncludeUserAndGroup\";\r\n /**\r\n * Include the event type details like the fields and operators\r\n */\r\n SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags[\"IncludeEventTypeInformation\"] = 22] = \"IncludeEventTypeInformation\";\r\n})(SubscriptionTemplateQueryFlags = exports.SubscriptionTemplateQueryFlags || (exports.SubscriptionTemplateQueryFlags = {}));\r\nvar SubscriptionTemplateType;\r\n(function (SubscriptionTemplateType) {\r\n SubscriptionTemplateType[SubscriptionTemplateType[\"User\"] = 0] = \"User\";\r\n SubscriptionTemplateType[SubscriptionTemplateType[\"Team\"] = 1] = \"Team\";\r\n SubscriptionTemplateType[SubscriptionTemplateType[\"Both\"] = 2] = \"Both\";\r\n SubscriptionTemplateType[SubscriptionTemplateType[\"None\"] = 3] = \"None\";\r\n})(SubscriptionTemplateType = exports.SubscriptionTemplateType || (exports.SubscriptionTemplateType = {}));\r\nexports.TypeInfo = {\r\n ActorNotificationReason: {},\r\n BatchNotificationOperation: {},\r\n DefaultGroupDeliveryPreference: {\r\n enumValues: {\r\n \"noDelivery\": -1,\r\n \"eachMember\": 2\r\n }\r\n },\r\n EvaluationOperationStatus: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"queued\": 1,\r\n \"inProgress\": 2,\r\n \"cancelled\": 3,\r\n \"succeeded\": 4,\r\n \"failed\": 5,\r\n \"timedOut\": 6,\r\n \"notFound\": 7\r\n }\r\n },\r\n EventBacklogStatus: {},\r\n EventProcessingLog: {},\r\n EventPublisherQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeRemoteServices\": 2\r\n }\r\n },\r\n EventTypeQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeFields\": 1\r\n }\r\n },\r\n INotificationDiagnosticLog: {},\r\n NotificationAdminSettings: {},\r\n NotificationAdminSettingsUpdateParameters: {},\r\n NotificationBacklogStatus: {},\r\n NotificationDeliveryLog: {},\r\n NotificationDiagnosticLog: {},\r\n NotificationEventBacklogStatus: {},\r\n NotificationEventField: {},\r\n NotificationEventFieldType: {},\r\n NotificationEventType: {},\r\n NotificationJobDiagnosticLog: {},\r\n NotificationOperation: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"suspendUnprocessed\": 1\r\n }\r\n },\r\n NotificationReason: {},\r\n NotificationReasonType: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"follows\": 1,\r\n \"personal\": 2,\r\n \"personalAlias\": 3,\r\n \"directMember\": 4,\r\n \"indirectMember\": 5,\r\n \"groupAlias\": 6,\r\n \"subscriptionAlias\": 7,\r\n \"singleRole\": 8,\r\n \"directMemberGroupRole\": 9,\r\n \"inDirectMemberGroupRole\": 10,\r\n \"aliasMemberGroupRole\": 11\r\n }\r\n },\r\n NotificationStatistic: {},\r\n NotificationStatisticsQuery: {},\r\n NotificationStatisticsQueryConditions: {},\r\n NotificationStatisticType: {\r\n enumValues: {\r\n \"notificationBySubscription\": 0,\r\n \"eventsByEventType\": 1,\r\n \"notificationByEventType\": 2,\r\n \"eventsByEventTypePerUser\": 3,\r\n \"notificationByEventTypePerUser\": 4,\r\n \"events\": 5,\r\n \"notifications\": 6,\r\n \"notificationFailureBySubscription\": 7,\r\n \"unprocessedRangeStart\": 100,\r\n \"unprocessedEventsByPublisher\": 101,\r\n \"unprocessedEventDelayByPublisher\": 102,\r\n \"unprocessedNotificationsByChannelByPublisher\": 103,\r\n \"unprocessedNotificationDelayByChannelByPublisher\": 104,\r\n \"delayRangeStart\": 200,\r\n \"totalPipelineTime\": 201,\r\n \"notificationPipelineTime\": 202,\r\n \"eventPipelineTime\": 203,\r\n \"hourlyRangeStart\": 1000,\r\n \"hourlyNotificationBySubscription\": 1001,\r\n \"hourlyEventsByEventTypePerUser\": 1002,\r\n \"hourlyEvents\": 1003,\r\n \"hourlyNotifications\": 1004,\r\n \"hourlyUnprocessedEventsByPublisher\": 1101,\r\n \"hourlyUnprocessedEventDelayByPublisher\": 1102,\r\n \"hourlyUnprocessedNotificationsByChannelByPublisher\": 1103,\r\n \"hourlyUnprocessedNotificationDelayByChannelByPublisher\": 1104,\r\n \"hourlyTotalPipelineTime\": 1201,\r\n \"hourlyNotificationPipelineTime\": 1202,\r\n \"hourlyEventPipelineTime\": 1203\r\n }\r\n },\r\n NotificationSubscriber: {},\r\n NotificationSubscriberDeliveryPreference: {\r\n enumValues: {\r\n \"noDelivery\": -1,\r\n \"preferredEmailAddress\": 1,\r\n \"eachMember\": 2,\r\n \"useDefault\": 3\r\n }\r\n },\r\n NotificationSubscriberUpdateParameters: {},\r\n NotificationSubscription: {},\r\n NotificationSubscriptionTemplate: {},\r\n NotificationSubscriptionUpdateParameters: {},\r\n SubscriberFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"deliveryPreferencesEditable\": 2,\r\n \"supportsPreferredEmailAddressDelivery\": 4,\r\n \"supportsEachMemberDelivery\": 8,\r\n \"supportsNoDelivery\": 16,\r\n \"isUser\": 32,\r\n \"isGroup\": 64,\r\n \"isTeam\": 128\r\n }\r\n },\r\n SubscriptionDiagnostics: {},\r\n SubscriptionEvaluationRequest: {},\r\n SubscriptionEvaluationResult: {},\r\n SubscriptionFieldType: {\r\n enumValues: {\r\n \"string\": 1,\r\n \"integer\": 2,\r\n \"dateTime\": 3,\r\n \"plainText\": 5,\r\n \"html\": 7,\r\n \"treePath\": 8,\r\n \"history\": 9,\r\n \"double\": 10,\r\n \"guid\": 11,\r\n \"boolean\": 12,\r\n \"identity\": 13,\r\n \"picklistInteger\": 14,\r\n \"picklistString\": 15,\r\n \"picklistDouble\": 16,\r\n \"teamProject\": 17\r\n }\r\n },\r\n SubscriptionFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"groupSubscription\": 1,\r\n \"contributedSubscription\": 2,\r\n \"canOptOut\": 4,\r\n \"teamSubscription\": 8,\r\n \"oneActorMatches\": 16\r\n }\r\n },\r\n SubscriptionPermissions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"view\": 1,\r\n \"edit\": 2,\r\n \"delete\": 4\r\n }\r\n },\r\n SubscriptionQuery: {},\r\n SubscriptionQueryCondition: {},\r\n SubscriptionQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeInvalidSubscriptions\": 2,\r\n \"includeDeletedSubscriptions\": 4,\r\n \"includeFilterDetails\": 8,\r\n \"alwaysReturnBasicInformation\": 16,\r\n \"includeSystemSubscriptions\": 32\r\n }\r\n },\r\n SubscriptionStatus: {\r\n enumValues: {\r\n \"jailedByNotificationsVolume\": -200,\r\n \"pendingDeletion\": -100,\r\n \"disabledArgumentException\": -12,\r\n \"disabledProjectInvalid\": -11,\r\n \"disabledMissingPermissions\": -10,\r\n \"disabledFromProbation\": -9,\r\n \"disabledInactiveIdentity\": -8,\r\n \"disabledMessageQueueNotSupported\": -7,\r\n \"disabledMissingIdentity\": -6,\r\n \"disabledInvalidRoleExpression\": -5,\r\n \"disabledInvalidPathClause\": -4,\r\n \"disabledAsDuplicateOfDefault\": -3,\r\n \"disabledByAdmin\": -2,\r\n \"disabled\": -1,\r\n \"enabled\": 0,\r\n \"enabledOnProbation\": 1\r\n }\r\n },\r\n SubscriptionTemplateQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeUser\": 1,\r\n \"includeGroup\": 2,\r\n \"includeUserAndGroup\": 4,\r\n \"includeEventTypeInformation\": 22\r\n }\r\n },\r\n SubscriptionTemplateType: {\r\n enumValues: {\r\n \"user\": 0,\r\n \"team\": 1,\r\n \"both\": 2,\r\n \"none\": 3\r\n }\r\n },\r\n SubscriptionTraceDiagnosticLog: {},\r\n SubscriptionTraceEventProcessingLog: {},\r\n SubscriptionTraceNotificationDeliveryLog: {},\r\n SubscriptionTracing: {},\r\n};\r\nexports.TypeInfo.ActorNotificationReason.fields = {\r\n notificationReasonType: {\r\n enumType: exports.TypeInfo.NotificationReasonType\r\n }\r\n};\r\nexports.TypeInfo.BatchNotificationOperation.fields = {\r\n notificationOperation: {\r\n enumType: exports.TypeInfo.NotificationOperation\r\n }\r\n};\r\nexports.TypeInfo.EventBacklogStatus.fields = {\r\n captureTime: {\r\n isDate: true,\r\n },\r\n lastEventBatchStartTime: {\r\n isDate: true,\r\n },\r\n lastEventProcessedTime: {\r\n isDate: true,\r\n },\r\n lastJobBatchStartTime: {\r\n isDate: true,\r\n },\r\n lastJobProcessedTime: {\r\n isDate: true,\r\n },\r\n oldestPendingEventTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.EventProcessingLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.INotificationDiagnosticLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationAdminSettings.fields = {\r\n defaultGroupDeliveryPreference: {\r\n enumType: exports.TypeInfo.DefaultGroupDeliveryPreference\r\n }\r\n};\r\nexports.TypeInfo.NotificationAdminSettingsUpdateParameters.fields = {\r\n defaultGroupDeliveryPreference: {\r\n enumType: exports.TypeInfo.DefaultGroupDeliveryPreference\r\n }\r\n};\r\nexports.TypeInfo.NotificationBacklogStatus.fields = {\r\n captureTime: {\r\n isDate: true,\r\n },\r\n lastJobBatchStartTime: {\r\n isDate: true,\r\n },\r\n lastJobProcessedTime: {\r\n isDate: true,\r\n },\r\n lastNotificationBatchStartTime: {\r\n isDate: true,\r\n },\r\n lastNotificationProcessedTime: {\r\n isDate: true,\r\n },\r\n oldestPendingNotificationTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationDeliveryLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationDiagnosticLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationEventBacklogStatus.fields = {\r\n eventBacklogStatus: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.EventBacklogStatus\r\n },\r\n notificationBacklogStatus: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.NotificationBacklogStatus\r\n }\r\n};\r\nexports.TypeInfo.NotificationEventField.fields = {\r\n fieldType: {\r\n typeInfo: exports.TypeInfo.NotificationEventFieldType\r\n }\r\n};\r\nexports.TypeInfo.NotificationEventFieldType.fields = {\r\n subscriptionFieldType: {\r\n enumType: exports.TypeInfo.SubscriptionFieldType\r\n }\r\n};\r\nexports.TypeInfo.NotificationEventType.fields = {\r\n fields: {\r\n isDictionary: true,\r\n dictionaryValueTypeInfo: exports.TypeInfo.NotificationEventField\r\n }\r\n};\r\nexports.TypeInfo.NotificationJobDiagnosticLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationReason.fields = {\r\n notificationReasonType: {\r\n enumType: exports.TypeInfo.NotificationReasonType\r\n }\r\n};\r\nexports.TypeInfo.NotificationStatistic.fields = {\r\n date: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.NotificationStatisticType\r\n }\r\n};\r\nexports.TypeInfo.NotificationStatisticsQuery.fields = {\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.NotificationStatisticsQueryConditions\r\n }\r\n};\r\nexports.TypeInfo.NotificationStatisticsQueryConditions.fields = {\r\n endDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.NotificationStatisticType\r\n }\r\n};\r\nexports.TypeInfo.NotificationSubscriber.fields = {\r\n deliveryPreference: {\r\n enumType: exports.TypeInfo.NotificationSubscriberDeliveryPreference\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.SubscriberFlags\r\n }\r\n};\r\nexports.TypeInfo.NotificationSubscriberUpdateParameters.fields = {\r\n deliveryPreference: {\r\n enumType: exports.TypeInfo.NotificationSubscriberDeliveryPreference\r\n }\r\n};\r\nexports.TypeInfo.NotificationSubscription.fields = {\r\n diagnostics: {\r\n typeInfo: exports.TypeInfo.SubscriptionDiagnostics\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.SubscriptionFlags\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n permissions: {\r\n enumType: exports.TypeInfo.SubscriptionPermissions\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.SubscriptionStatus\r\n }\r\n};\r\nexports.TypeInfo.NotificationSubscriptionTemplate.fields = {\r\n notificationEventInformation: {\r\n typeInfo: exports.TypeInfo.NotificationEventType\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.SubscriptionTemplateType\r\n }\r\n};\r\nexports.TypeInfo.NotificationSubscriptionUpdateParameters.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.SubscriptionStatus\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionDiagnostics.fields = {\r\n deliveryResults: {\r\n typeInfo: exports.TypeInfo.SubscriptionTracing\r\n },\r\n deliveryTracing: {\r\n typeInfo: exports.TypeInfo.SubscriptionTracing\r\n },\r\n evaluationTracing: {\r\n typeInfo: exports.TypeInfo.SubscriptionTracing\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionEvaluationRequest.fields = {\r\n minEventsCreatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionEvaluationResult.fields = {\r\n evaluationJobStatus: {\r\n enumType: exports.TypeInfo.EvaluationOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionQuery.fields = {\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.SubscriptionQueryCondition\r\n },\r\n queryFlags: {\r\n enumType: exports.TypeInfo.SubscriptionQueryFlags\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionQueryCondition.fields = {\r\n flags: {\r\n enumType: exports.TypeInfo.SubscriptionFlags\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionTraceDiagnosticLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionTraceEventProcessingLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionTraceNotificationDeliveryLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionTracing.fields = {\r\n endDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Status of a policy which is running against a specific pull request.\r\n */\r\nvar PolicyEvaluationStatus;\r\n(function (PolicyEvaluationStatus) {\r\n /**\r\n * The policy is either queued to run, or is waiting for some event before progressing.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"Queued\"] = 0] = \"Queued\";\r\n /**\r\n * The policy is currently running.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"Running\"] = 1] = \"Running\";\r\n /**\r\n * The policy has been fulfilled for this pull request.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"Approved\"] = 2] = \"Approved\";\r\n /**\r\n * The policy has rejected this pull request.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"Rejected\"] = 3] = \"Rejected\";\r\n /**\r\n * The policy does not apply to this pull request.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"NotApplicable\"] = 4] = \"NotApplicable\";\r\n /**\r\n * The policy has encountered an unexpected error.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"Broken\"] = 5] = \"Broken\";\r\n})(PolicyEvaluationStatus = exports.PolicyEvaluationStatus || (exports.PolicyEvaluationStatus = {}));\r\nexports.TypeInfo = {\r\n PolicyConfiguration: {},\r\n PolicyEvaluationRecord: {},\r\n PolicyEvaluationStatus: {\r\n enumValues: {\r\n \"queued\": 0,\r\n \"running\": 1,\r\n \"approved\": 2,\r\n \"rejected\": 3,\r\n \"notApplicable\": 4,\r\n \"broken\": 5\r\n }\r\n },\r\n};\r\nexports.TypeInfo.PolicyConfiguration.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.PolicyEvaluationRecord.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n configuration: {\r\n typeInfo: exports.TypeInfo.PolicyConfiguration\r\n },\r\n startedDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.PolicyEvaluationStatus\r\n }\r\n};\r\n","/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*/\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AvatarSize;\r\n(function (AvatarSize) {\r\n AvatarSize[AvatarSize[\"Small\"] = 0] = \"Small\";\r\n AvatarSize[AvatarSize[\"Medium\"] = 1] = \"Medium\";\r\n AvatarSize[AvatarSize[\"Large\"] = 2] = \"Large\";\r\n})(AvatarSize = exports.AvatarSize || (exports.AvatarSize = {}));\r\nexports.TypeInfo = {\r\n AttributeDescriptor: {\r\n fields: null\r\n },\r\n AttributesContainer: {\r\n fields: null\r\n },\r\n Avatar: {\r\n fields: null\r\n },\r\n AvatarSize: {\r\n enumValues: {\r\n \"small\": 0,\r\n \"medium\": 1,\r\n \"large\": 2,\r\n }\r\n },\r\n CoreProfileAttribute: {\r\n fields: null\r\n },\r\n Country: {\r\n fields: null\r\n },\r\n CreateProfileContext: {\r\n fields: null\r\n },\r\n GeoRegion: {\r\n fields: null\r\n },\r\n Profile: {\r\n fields: null\r\n },\r\n ProfileAttribute: {\r\n fields: null\r\n },\r\n ProfileAttributeBase: {\r\n fields: null\r\n },\r\n ProfileRegion: {\r\n fields: null\r\n },\r\n ProfileRegions: {\r\n fields: null\r\n },\r\n};\r\nexports.TypeInfo.AttributeDescriptor.fields = {};\r\nexports.TypeInfo.AttributesContainer.fields = {\r\n attributes: {},\r\n};\r\nexports.TypeInfo.Avatar.fields = {\r\n size: {\r\n enumType: exports.TypeInfo.AvatarSize\r\n },\r\n timeStamp: {\r\n isDate: true,\r\n },\r\n};\r\nexports.TypeInfo.CoreProfileAttribute.fields = {\r\n descriptor: {\r\n typeInfo: exports.TypeInfo.AttributeDescriptor\r\n },\r\n timeStamp: {\r\n isDate: true,\r\n },\r\n};\r\nexports.TypeInfo.Country.fields = {};\r\nexports.TypeInfo.CreateProfileContext.fields = {};\r\nexports.TypeInfo.GeoRegion.fields = {};\r\nexports.TypeInfo.Profile.fields = {\r\n applicationContainer: {\r\n typeInfo: exports.TypeInfo.AttributesContainer\r\n },\r\n coreAttributes: {},\r\n timeStamp: {\r\n isDate: true,\r\n },\r\n};\r\nexports.TypeInfo.ProfileAttribute.fields = {\r\n descriptor: {\r\n typeInfo: exports.TypeInfo.AttributeDescriptor\r\n },\r\n timeStamp: {\r\n isDate: true,\r\n },\r\n};\r\nexports.TypeInfo.ProfileAttributeBase.fields = {\r\n descriptor: {\r\n typeInfo: exports.TypeInfo.AttributeDescriptor\r\n },\r\n timeStamp: {\r\n isDate: true,\r\n },\r\n};\r\nexports.TypeInfo.ProfileRegion.fields = {};\r\nexports.TypeInfo.ProfileRegions.fields = {\r\n regions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ProfileRegion\r\n },\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AggregationType;\r\n(function (AggregationType) {\r\n AggregationType[AggregationType[\"Hourly\"] = 0] = \"Hourly\";\r\n AggregationType[AggregationType[\"Daily\"] = 1] = \"Daily\";\r\n})(AggregationType = exports.AggregationType || (exports.AggregationType = {}));\r\nvar ResultPhase;\r\n(function (ResultPhase) {\r\n ResultPhase[ResultPhase[\"Preliminary\"] = 0] = \"Preliminary\";\r\n ResultPhase[ResultPhase[\"Full\"] = 1] = \"Full\";\r\n})(ResultPhase = exports.ResultPhase || (exports.ResultPhase = {}));\r\nexports.TypeInfo = {\r\n AggregationType: {\r\n enumValues: {\r\n \"hourly\": 0,\r\n \"daily\": 1\r\n }\r\n },\r\n CodeChangeTrendItem: {},\r\n ProjectActivityMetrics: {},\r\n ProjectLanguageAnalytics: {},\r\n RepositoryActivityMetrics: {},\r\n RepositoryLanguageAnalytics: {},\r\n ResultPhase: {\r\n enumValues: {\r\n \"preliminary\": 0,\r\n \"full\": 1\r\n }\r\n },\r\n};\r\nexports.TypeInfo.CodeChangeTrendItem.fields = {\r\n time: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ProjectActivityMetrics.fields = {\r\n codeChangesTrend: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.CodeChangeTrendItem\r\n }\r\n};\r\nexports.TypeInfo.ProjectLanguageAnalytics.fields = {\r\n repositoryLanguageAnalytics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RepositoryLanguageAnalytics\r\n },\r\n resultPhase: {\r\n enumType: exports.TypeInfo.ResultPhase\r\n }\r\n};\r\nexports.TypeInfo.RepositoryActivityMetrics.fields = {\r\n codeChangesTrend: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.CodeChangeTrendItem\r\n }\r\n};\r\nexports.TypeInfo.RepositoryLanguageAnalytics.fields = {\r\n resultPhase: {\r\n enumType: exports.TypeInfo.ResultPhase\r\n },\r\n updatedTime: {\r\n isDate: true,\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst FormInputInterfaces = require(\"../interfaces/common/FormInputInterfaces\");\r\nvar AgentArtifactType;\r\n(function (AgentArtifactType) {\r\n /**\r\n * Indicates XamlBuild artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"XamlBuild\"] = 0] = \"XamlBuild\";\r\n /**\r\n * Indicates Build artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"Build\"] = 1] = \"Build\";\r\n /**\r\n * Indicates Jenkins artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"Jenkins\"] = 2] = \"Jenkins\";\r\n /**\r\n * Indicates FileShare artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"FileShare\"] = 3] = \"FileShare\";\r\n /**\r\n * Indicates Nuget artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"Nuget\"] = 4] = \"Nuget\";\r\n /**\r\n * Indicates TfsOnPrem artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"TfsOnPrem\"] = 5] = \"TfsOnPrem\";\r\n /**\r\n * Indicates GitHub artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"GitHub\"] = 6] = \"GitHub\";\r\n /**\r\n * Indicates TFGit artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"TFGit\"] = 7] = \"TFGit\";\r\n /**\r\n * Indicates ExternalTfsBuild artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"ExternalTfsBuild\"] = 8] = \"ExternalTfsBuild\";\r\n /**\r\n * Indicates Custom artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"Custom\"] = 9] = \"Custom\";\r\n /**\r\n * Indicates Tfvc artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"Tfvc\"] = 10] = \"Tfvc\";\r\n})(AgentArtifactType = exports.AgentArtifactType || (exports.AgentArtifactType = {}));\r\nvar ApprovalExecutionOrder;\r\n(function (ApprovalExecutionOrder) {\r\n /**\r\n * Approvals shown before gates.\r\n */\r\n ApprovalExecutionOrder[ApprovalExecutionOrder[\"BeforeGates\"] = 1] = \"BeforeGates\";\r\n /**\r\n * Approvals shown after successful execution of gates.\r\n */\r\n ApprovalExecutionOrder[ApprovalExecutionOrder[\"AfterSuccessfulGates\"] = 2] = \"AfterSuccessfulGates\";\r\n /**\r\n * Approvals shown always after execution of gates.\r\n */\r\n ApprovalExecutionOrder[ApprovalExecutionOrder[\"AfterGatesAlways\"] = 4] = \"AfterGatesAlways\";\r\n})(ApprovalExecutionOrder = exports.ApprovalExecutionOrder || (exports.ApprovalExecutionOrder = {}));\r\nvar ApprovalFilters;\r\n(function (ApprovalFilters) {\r\n /**\r\n * No approvals or approval snapshots.\r\n */\r\n ApprovalFilters[ApprovalFilters[\"None\"] = 0] = \"None\";\r\n /**\r\n * Manual approval steps but no approval snapshots (Use with ApprovalSnapshots for snapshots).\r\n */\r\n ApprovalFilters[ApprovalFilters[\"ManualApprovals\"] = 1] = \"ManualApprovals\";\r\n /**\r\n * Automated approval steps but no approval snapshots (Use with ApprovalSnapshots for snapshots).\r\n */\r\n ApprovalFilters[ApprovalFilters[\"AutomatedApprovals\"] = 2] = \"AutomatedApprovals\";\r\n /**\r\n * No approval steps, but approval snapshots (Use with either ManualApprovals or AutomatedApprovals for approval steps).\r\n */\r\n ApprovalFilters[ApprovalFilters[\"ApprovalSnapshots\"] = 4] = \"ApprovalSnapshots\";\r\n /**\r\n * All approval steps and approval snapshots.\r\n */\r\n ApprovalFilters[ApprovalFilters[\"All\"] = 7] = \"All\";\r\n})(ApprovalFilters = exports.ApprovalFilters || (exports.ApprovalFilters = {}));\r\nvar ApprovalStatus;\r\n(function (ApprovalStatus) {\r\n /**\r\n * Indicates the approval does not have the status set.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Indicates the approval is pending.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Pending\"] = 1] = \"Pending\";\r\n /**\r\n * Indicates the approval is approved.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Approved\"] = 2] = \"Approved\";\r\n /**\r\n * Indicates the approval is rejected.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Rejected\"] = 4] = \"Rejected\";\r\n /**\r\n * Indicates the approval is reassigned.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Reassigned\"] = 6] = \"Reassigned\";\r\n /**\r\n * Indicates the approval is canceled.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Canceled\"] = 7] = \"Canceled\";\r\n /**\r\n * Indicates the approval is skipped.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Skipped\"] = 8] = \"Skipped\";\r\n})(ApprovalStatus = exports.ApprovalStatus || (exports.ApprovalStatus = {}));\r\nvar ApprovalType;\r\n(function (ApprovalType) {\r\n /**\r\n * Indicates the approval type does not set.\r\n */\r\n ApprovalType[ApprovalType[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Indicates the approvals which executed before deployment.\r\n */\r\n ApprovalType[ApprovalType[\"PreDeploy\"] = 1] = \"PreDeploy\";\r\n /**\r\n * Indicates the approvals which executed after deployment.\r\n */\r\n ApprovalType[ApprovalType[\"PostDeploy\"] = 2] = \"PostDeploy\";\r\n /**\r\n * Indicates all approvals.\r\n */\r\n ApprovalType[ApprovalType[\"All\"] = 3] = \"All\";\r\n})(ApprovalType = exports.ApprovalType || (exports.ApprovalType = {}));\r\nvar AuditAction;\r\n(function (AuditAction) {\r\n /**\r\n * Indicates the audit add.\r\n */\r\n AuditAction[AuditAction[\"Add\"] = 1] = \"Add\";\r\n /**\r\n * Indicates the audit update.\r\n */\r\n AuditAction[AuditAction[\"Update\"] = 2] = \"Update\";\r\n /**\r\n * Indicates the audit delete.\r\n */\r\n AuditAction[AuditAction[\"Delete\"] = 3] = \"Delete\";\r\n /**\r\n * Indicates the audit undelete.\r\n */\r\n AuditAction[AuditAction[\"Undelete\"] = 4] = \"Undelete\";\r\n})(AuditAction = exports.AuditAction || (exports.AuditAction = {}));\r\nvar AuthorizationHeaderFor;\r\n(function (AuthorizationHeaderFor) {\r\n AuthorizationHeaderFor[AuthorizationHeaderFor[\"RevalidateApproverIdentity\"] = 0] = \"RevalidateApproverIdentity\";\r\n AuthorizationHeaderFor[AuthorizationHeaderFor[\"OnBehalfOf\"] = 1] = \"OnBehalfOf\";\r\n})(AuthorizationHeaderFor = exports.AuthorizationHeaderFor || (exports.AuthorizationHeaderFor = {}));\r\nvar ConditionType;\r\n(function (ConditionType) {\r\n /**\r\n * The condition type is undefined.\r\n */\r\n ConditionType[ConditionType[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * The condition type is event.\r\n */\r\n ConditionType[ConditionType[\"Event\"] = 1] = \"Event\";\r\n /**\r\n * The condition type is environment state.\r\n */\r\n ConditionType[ConditionType[\"EnvironmentState\"] = 2] = \"EnvironmentState\";\r\n /**\r\n * The condition type is artifact.\r\n */\r\n ConditionType[ConditionType[\"Artifact\"] = 4] = \"Artifact\";\r\n})(ConditionType = exports.ConditionType || (exports.ConditionType = {}));\r\nvar DeploymentAuthorizationOwner;\r\n(function (DeploymentAuthorizationOwner) {\r\n DeploymentAuthorizationOwner[DeploymentAuthorizationOwner[\"Automatic\"] = 0] = \"Automatic\";\r\n DeploymentAuthorizationOwner[DeploymentAuthorizationOwner[\"DeploymentSubmitter\"] = 1] = \"DeploymentSubmitter\";\r\n DeploymentAuthorizationOwner[DeploymentAuthorizationOwner[\"FirstPreDeploymentApprover\"] = 2] = \"FirstPreDeploymentApprover\";\r\n})(DeploymentAuthorizationOwner = exports.DeploymentAuthorizationOwner || (exports.DeploymentAuthorizationOwner = {}));\r\nvar DeploymentExpands;\r\n(function (DeploymentExpands) {\r\n DeploymentExpands[DeploymentExpands[\"All\"] = 0] = \"All\";\r\n DeploymentExpands[DeploymentExpands[\"DeploymentOnly\"] = 1] = \"DeploymentOnly\";\r\n DeploymentExpands[DeploymentExpands[\"Approvals\"] = 2] = \"Approvals\";\r\n DeploymentExpands[DeploymentExpands[\"Artifacts\"] = 4] = \"Artifacts\";\r\n})(DeploymentExpands = exports.DeploymentExpands || (exports.DeploymentExpands = {}));\r\nvar DeploymentOperationStatus;\r\n(function (DeploymentOperationStatus) {\r\n /**\r\n * The deployment operation status is undefined.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * The deployment operation status is queued.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Queued\"] = 1] = \"Queued\";\r\n /**\r\n * The deployment operation status is scheduled.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Scheduled\"] = 2] = \"Scheduled\";\r\n /**\r\n * The deployment operation status is pending.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Pending\"] = 4] = \"Pending\";\r\n /**\r\n * The deployment operation status is approved.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Approved\"] = 8] = \"Approved\";\r\n /**\r\n * The deployment operation status is rejected.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Rejected\"] = 16] = \"Rejected\";\r\n /**\r\n * The deployment operation status is deferred.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Deferred\"] = 32] = \"Deferred\";\r\n /**\r\n * The deployment operation status is queued for agent.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"QueuedForAgent\"] = 64] = \"QueuedForAgent\";\r\n /**\r\n * The deployment operation status is phase in progress.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"PhaseInProgress\"] = 128] = \"PhaseInProgress\";\r\n /**\r\n * The deployment operation status is phase succeeded.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"PhaseSucceeded\"] = 256] = \"PhaseSucceeded\";\r\n /**\r\n * The deployment operation status is phase partially succeeded.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"PhasePartiallySucceeded\"] = 512] = \"PhasePartiallySucceeded\";\r\n /**\r\n * The deployment operation status is phase failed.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"PhaseFailed\"] = 1024] = \"PhaseFailed\";\r\n /**\r\n * The deployment operation status is canceled.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Canceled\"] = 2048] = \"Canceled\";\r\n /**\r\n * The deployment operation status is phase canceled.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"PhaseCanceled\"] = 4096] = \"PhaseCanceled\";\r\n /**\r\n * The deployment operation status is manualintervention pending.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"ManualInterventionPending\"] = 8192] = \"ManualInterventionPending\";\r\n /**\r\n * The deployment operation status is queued for pipeline.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"QueuedForPipeline\"] = 16384] = \"QueuedForPipeline\";\r\n /**\r\n * The deployment operation status is cancelling.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Cancelling\"] = 32768] = \"Cancelling\";\r\n /**\r\n * The deployment operation status is EvaluatingGates.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"EvaluatingGates\"] = 65536] = \"EvaluatingGates\";\r\n /**\r\n * The deployment operation status is GateFailed.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"GateFailed\"] = 131072] = \"GateFailed\";\r\n /**\r\n * The deployment operation status is all.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"All\"] = 258047] = \"All\";\r\n})(DeploymentOperationStatus = exports.DeploymentOperationStatus || (exports.DeploymentOperationStatus = {}));\r\nvar DeploymentReason;\r\n(function (DeploymentReason) {\r\n /**\r\n * The deployment reason is none.\r\n */\r\n DeploymentReason[DeploymentReason[\"None\"] = 0] = \"None\";\r\n /**\r\n * The deployment reason is manual.\r\n */\r\n DeploymentReason[DeploymentReason[\"Manual\"] = 1] = \"Manual\";\r\n /**\r\n * The deployment reason is automated.\r\n */\r\n DeploymentReason[DeploymentReason[\"Automated\"] = 2] = \"Automated\";\r\n /**\r\n * The deployment reason is scheduled.\r\n */\r\n DeploymentReason[DeploymentReason[\"Scheduled\"] = 4] = \"Scheduled\";\r\n /**\r\n * The deployment reason is RedeployTrigger.\r\n */\r\n DeploymentReason[DeploymentReason[\"RedeployTrigger\"] = 8] = \"RedeployTrigger\";\r\n})(DeploymentReason = exports.DeploymentReason || (exports.DeploymentReason = {}));\r\nvar DeploymentsQueryType;\r\n(function (DeploymentsQueryType) {\r\n DeploymentsQueryType[DeploymentsQueryType[\"Regular\"] = 1] = \"Regular\";\r\n DeploymentsQueryType[DeploymentsQueryType[\"FailingSince\"] = 2] = \"FailingSince\";\r\n})(DeploymentsQueryType = exports.DeploymentsQueryType || (exports.DeploymentsQueryType = {}));\r\nvar DeploymentStatus;\r\n(function (DeploymentStatus) {\r\n /**\r\n * The deployment status is undefined.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * The deployment status is not deployed.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"NotDeployed\"] = 1] = \"NotDeployed\";\r\n /**\r\n * The deployment status is in progress.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The deployment status is succeeded.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"Succeeded\"] = 4] = \"Succeeded\";\r\n /**\r\n * The deployment status is partiallysucceeded.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"PartiallySucceeded\"] = 8] = \"PartiallySucceeded\";\r\n /**\r\n * The deployment status is failed.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"Failed\"] = 16] = \"Failed\";\r\n /**\r\n * The deployment status is all.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"All\"] = 31] = \"All\";\r\n})(DeploymentStatus = exports.DeploymentStatus || (exports.DeploymentStatus = {}));\r\nvar DeployPhaseStatus;\r\n(function (DeployPhaseStatus) {\r\n /**\r\n * Phase status not set.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Phase execution not started.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"NotStarted\"] = 1] = \"NotStarted\";\r\n /**\r\n * Phase execution in progress.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * Phase execution partially succeeded.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"PartiallySucceeded\"] = 4] = \"PartiallySucceeded\";\r\n /**\r\n * Phase execution succeeded.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Succeeded\"] = 8] = \"Succeeded\";\r\n /**\r\n * Phase execution failed.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Failed\"] = 16] = \"Failed\";\r\n /**\r\n * Phase execution canceled.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Canceled\"] = 32] = \"Canceled\";\r\n /**\r\n * Phase execution skipped.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Skipped\"] = 64] = \"Skipped\";\r\n /**\r\n * Phase is in cancelling state.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Cancelling\"] = 128] = \"Cancelling\";\r\n})(DeployPhaseStatus = exports.DeployPhaseStatus || (exports.DeployPhaseStatus = {}));\r\nvar DeployPhaseTypes;\r\n(function (DeployPhaseTypes) {\r\n /**\r\n * Phase type not defined. Don't use this.\r\n */\r\n DeployPhaseTypes[DeployPhaseTypes[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Phase type which contains tasks executed on agent.\r\n */\r\n DeployPhaseTypes[DeployPhaseTypes[\"AgentBasedDeployment\"] = 1] = \"AgentBasedDeployment\";\r\n /**\r\n * Phase type which contains tasks executed by server.\r\n */\r\n DeployPhaseTypes[DeployPhaseTypes[\"RunOnServer\"] = 2] = \"RunOnServer\";\r\n /**\r\n * Phase type which contains tasks executed on deployment group machines.\r\n */\r\n DeployPhaseTypes[DeployPhaseTypes[\"MachineGroupBasedDeployment\"] = 4] = \"MachineGroupBasedDeployment\";\r\n /**\r\n * Phase type which contains tasks which acts as Gates for the deployment to go forward.\r\n */\r\n DeployPhaseTypes[DeployPhaseTypes[\"DeploymentGates\"] = 8] = \"DeploymentGates\";\r\n})(DeployPhaseTypes = exports.DeployPhaseTypes || (exports.DeployPhaseTypes = {}));\r\nvar EnvironmentStatus;\r\n(function (EnvironmentStatus) {\r\n /**\r\n * Environment status not set.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Environment is in not started state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"NotStarted\"] = 1] = \"NotStarted\";\r\n /**\r\n * Environment is in progress state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * Environment is in succeeded state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Succeeded\"] = 4] = \"Succeeded\";\r\n /**\r\n * Environment is in canceled state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Canceled\"] = 8] = \"Canceled\";\r\n /**\r\n * Environment is in rejected state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Rejected\"] = 16] = \"Rejected\";\r\n /**\r\n * Environment is in queued state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Queued\"] = 32] = \"Queued\";\r\n /**\r\n * Environment is in scheduled state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Scheduled\"] = 64] = \"Scheduled\";\r\n /**\r\n * Environment is in partially succeeded state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"PartiallySucceeded\"] = 128] = \"PartiallySucceeded\";\r\n})(EnvironmentStatus = exports.EnvironmentStatus || (exports.EnvironmentStatus = {}));\r\nvar EnvironmentTriggerType;\r\n(function (EnvironmentTriggerType) {\r\n /**\r\n * Environment trigger type undefined.\r\n */\r\n EnvironmentTriggerType[EnvironmentTriggerType[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Environment trigger type is deployment group redeploy.\r\n */\r\n EnvironmentTriggerType[EnvironmentTriggerType[\"DeploymentGroupRedeploy\"] = 1] = \"DeploymentGroupRedeploy\";\r\n /**\r\n * Environment trigger type is Rollback.\r\n */\r\n EnvironmentTriggerType[EnvironmentTriggerType[\"RollbackRedeploy\"] = 2] = \"RollbackRedeploy\";\r\n})(EnvironmentTriggerType = exports.EnvironmentTriggerType || (exports.EnvironmentTriggerType = {}));\r\nvar FolderPathQueryOrder;\r\n(function (FolderPathQueryOrder) {\r\n /**\r\n * No order.\r\n */\r\n FolderPathQueryOrder[FolderPathQueryOrder[\"None\"] = 0] = \"None\";\r\n /**\r\n * Order by folder name and path ascending.\r\n */\r\n FolderPathQueryOrder[FolderPathQueryOrder[\"Ascending\"] = 1] = \"Ascending\";\r\n /**\r\n * Order by folder name and path descending.\r\n */\r\n FolderPathQueryOrder[FolderPathQueryOrder[\"Descending\"] = 2] = \"Descending\";\r\n})(FolderPathQueryOrder = exports.FolderPathQueryOrder || (exports.FolderPathQueryOrder = {}));\r\nvar GateStatus;\r\n(function (GateStatus) {\r\n /**\r\n * The gate does not have the status set.\r\n */\r\n GateStatus[GateStatus[\"None\"] = 0] = \"None\";\r\n /**\r\n * The gate is in pending state.\r\n */\r\n GateStatus[GateStatus[\"Pending\"] = 1] = \"Pending\";\r\n /**\r\n * The gate is currently in progress.\r\n */\r\n GateStatus[GateStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The gate completed successfully.\r\n */\r\n GateStatus[GateStatus[\"Succeeded\"] = 4] = \"Succeeded\";\r\n /**\r\n * The gate execution failed.\r\n */\r\n GateStatus[GateStatus[\"Failed\"] = 8] = \"Failed\";\r\n /**\r\n * The gate execution cancelled.\r\n */\r\n GateStatus[GateStatus[\"Canceled\"] = 16] = \"Canceled\";\r\n})(GateStatus = exports.GateStatus || (exports.GateStatus = {}));\r\nvar IssueSource;\r\n(function (IssueSource) {\r\n IssueSource[IssueSource[\"None\"] = 0] = \"None\";\r\n IssueSource[IssueSource[\"User\"] = 1] = \"User\";\r\n IssueSource[IssueSource[\"System\"] = 2] = \"System\";\r\n})(IssueSource = exports.IssueSource || (exports.IssueSource = {}));\r\nvar MailSectionType;\r\n(function (MailSectionType) {\r\n MailSectionType[MailSectionType[\"Details\"] = 0] = \"Details\";\r\n MailSectionType[MailSectionType[\"Environments\"] = 1] = \"Environments\";\r\n MailSectionType[MailSectionType[\"Issues\"] = 2] = \"Issues\";\r\n MailSectionType[MailSectionType[\"TestResults\"] = 3] = \"TestResults\";\r\n MailSectionType[MailSectionType[\"WorkItems\"] = 4] = \"WorkItems\";\r\n MailSectionType[MailSectionType[\"ReleaseInfo\"] = 5] = \"ReleaseInfo\";\r\n})(MailSectionType = exports.MailSectionType || (exports.MailSectionType = {}));\r\n/**\r\n * Describes manual intervention status\r\n */\r\nvar ManualInterventionStatus;\r\n(function (ManualInterventionStatus) {\r\n /**\r\n * The manual intervention does not have the status set.\r\n */\r\n ManualInterventionStatus[ManualInterventionStatus[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * The manual intervention is pending.\r\n */\r\n ManualInterventionStatus[ManualInterventionStatus[\"Pending\"] = 1] = \"Pending\";\r\n /**\r\n * The manual intervention is rejected.\r\n */\r\n ManualInterventionStatus[ManualInterventionStatus[\"Rejected\"] = 2] = \"Rejected\";\r\n /**\r\n * The manual intervention is approved.\r\n */\r\n ManualInterventionStatus[ManualInterventionStatus[\"Approved\"] = 4] = \"Approved\";\r\n /**\r\n * The manual intervention is canceled.\r\n */\r\n ManualInterventionStatus[ManualInterventionStatus[\"Canceled\"] = 8] = \"Canceled\";\r\n})(ManualInterventionStatus = exports.ManualInterventionStatus || (exports.ManualInterventionStatus = {}));\r\nvar ParallelExecutionTypes;\r\n(function (ParallelExecutionTypes) {\r\n ParallelExecutionTypes[ParallelExecutionTypes[\"None\"] = 0] = \"None\";\r\n ParallelExecutionTypes[ParallelExecutionTypes[\"MultiConfiguration\"] = 1] = \"MultiConfiguration\";\r\n ParallelExecutionTypes[ParallelExecutionTypes[\"MultiMachine\"] = 2] = \"MultiMachine\";\r\n})(ParallelExecutionTypes = exports.ParallelExecutionTypes || (exports.ParallelExecutionTypes = {}));\r\nvar PipelineProcessTypes;\r\n(function (PipelineProcessTypes) {\r\n PipelineProcessTypes[PipelineProcessTypes[\"Designer\"] = 1] = \"Designer\";\r\n PipelineProcessTypes[PipelineProcessTypes[\"Yaml\"] = 2] = \"Yaml\";\r\n})(PipelineProcessTypes = exports.PipelineProcessTypes || (exports.PipelineProcessTypes = {}));\r\nvar PropertySelectorType;\r\n(function (PropertySelectorType) {\r\n /**\r\n * Include in property selector.\r\n */\r\n PropertySelectorType[PropertySelectorType[\"Inclusion\"] = 0] = \"Inclusion\";\r\n /**\r\n * Exclude in property selector.\r\n */\r\n PropertySelectorType[PropertySelectorType[\"Exclusion\"] = 1] = \"Exclusion\";\r\n})(PropertySelectorType = exports.PropertySelectorType || (exports.PropertySelectorType = {}));\r\nvar PullRequestSystemType;\r\n(function (PullRequestSystemType) {\r\n PullRequestSystemType[PullRequestSystemType[\"None\"] = 0] = \"None\";\r\n PullRequestSystemType[PullRequestSystemType[\"TfsGit\"] = 1] = \"TfsGit\";\r\n PullRequestSystemType[PullRequestSystemType[\"GitHub\"] = 2] = \"GitHub\";\r\n})(PullRequestSystemType = exports.PullRequestSystemType || (exports.PullRequestSystemType = {}));\r\nvar ReleaseDefinitionExpands;\r\n(function (ReleaseDefinitionExpands) {\r\n /**\r\n * Returns top level properties of object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include environments in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"Environments\"] = 2] = \"Environments\";\r\n /**\r\n * Include artifacts in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"Artifacts\"] = 4] = \"Artifacts\";\r\n /**\r\n * Include triggers in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"Triggers\"] = 8] = \"Triggers\";\r\n /**\r\n * Include variables in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"Variables\"] = 16] = \"Variables\";\r\n /**\r\n * Include tags in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"Tags\"] = 32] = \"Tags\";\r\n /**\r\n * Include last release in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"LastRelease\"] = 64] = \"LastRelease\";\r\n})(ReleaseDefinitionExpands = exports.ReleaseDefinitionExpands || (exports.ReleaseDefinitionExpands = {}));\r\nvar ReleaseDefinitionQueryOrder;\r\n(function (ReleaseDefinitionQueryOrder) {\r\n /**\r\n * Return results based on release definition Id ascending order.\r\n */\r\n ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder[\"IdAscending\"] = 0] = \"IdAscending\";\r\n /**\r\n * Return results based on release definition Id descending order.\r\n */\r\n ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder[\"IdDescending\"] = 1] = \"IdDescending\";\r\n /**\r\n * Return results based on release definition name ascending order.\r\n */\r\n ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder[\"NameAscending\"] = 2] = \"NameAscending\";\r\n /**\r\n * Return results based on release definition name descending order.\r\n */\r\n ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder[\"NameDescending\"] = 3] = \"NameDescending\";\r\n})(ReleaseDefinitionQueryOrder = exports.ReleaseDefinitionQueryOrder || (exports.ReleaseDefinitionQueryOrder = {}));\r\nvar ReleaseDefinitionSource;\r\n(function (ReleaseDefinitionSource) {\r\n /**\r\n * Indicates ReleaseDefinition source not defined.\r\n */\r\n ReleaseDefinitionSource[ReleaseDefinitionSource[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Indicates ReleaseDefinition created using REST API.\r\n */\r\n ReleaseDefinitionSource[ReleaseDefinitionSource[\"RestApi\"] = 1] = \"RestApi\";\r\n /**\r\n * Indicates ReleaseDefinition created using UI.\r\n */\r\n ReleaseDefinitionSource[ReleaseDefinitionSource[\"UserInterface\"] = 2] = \"UserInterface\";\r\n /**\r\n * Indicates ReleaseDefinition created from Ibiza.\r\n */\r\n ReleaseDefinitionSource[ReleaseDefinitionSource[\"Ibiza\"] = 4] = \"Ibiza\";\r\n /**\r\n * Indicates ReleaseDefinition created from PortalExtension API.\r\n */\r\n ReleaseDefinitionSource[ReleaseDefinitionSource[\"PortalExtensionApi\"] = 8] = \"PortalExtensionApi\";\r\n})(ReleaseDefinitionSource = exports.ReleaseDefinitionSource || (exports.ReleaseDefinitionSource = {}));\r\nvar ReleaseEnvironmentExpands;\r\n(function (ReleaseEnvironmentExpands) {\r\n /**\r\n * Return top level properties of object.\r\n */\r\n ReleaseEnvironmentExpands[ReleaseEnvironmentExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Expand environment with tasks.\r\n */\r\n ReleaseEnvironmentExpands[ReleaseEnvironmentExpands[\"Tasks\"] = 1] = \"Tasks\";\r\n})(ReleaseEnvironmentExpands = exports.ReleaseEnvironmentExpands || (exports.ReleaseEnvironmentExpands = {}));\r\nvar ReleaseExpands;\r\n(function (ReleaseExpands) {\r\n ReleaseExpands[ReleaseExpands[\"None\"] = 0] = \"None\";\r\n ReleaseExpands[ReleaseExpands[\"Environments\"] = 2] = \"Environments\";\r\n ReleaseExpands[ReleaseExpands[\"Artifacts\"] = 4] = \"Artifacts\";\r\n ReleaseExpands[ReleaseExpands[\"Approvals\"] = 8] = \"Approvals\";\r\n ReleaseExpands[ReleaseExpands[\"ManualInterventions\"] = 16] = \"ManualInterventions\";\r\n ReleaseExpands[ReleaseExpands[\"Variables\"] = 32] = \"Variables\";\r\n ReleaseExpands[ReleaseExpands[\"Tags\"] = 64] = \"Tags\";\r\n})(ReleaseExpands = exports.ReleaseExpands || (exports.ReleaseExpands = {}));\r\nvar ReleaseQueryOrder;\r\n(function (ReleaseQueryOrder) {\r\n /**\r\n * Return results in descending order.\r\n */\r\n ReleaseQueryOrder[ReleaseQueryOrder[\"Descending\"] = 0] = \"Descending\";\r\n /**\r\n * Return results in ascending order.\r\n */\r\n ReleaseQueryOrder[ReleaseQueryOrder[\"Ascending\"] = 1] = \"Ascending\";\r\n})(ReleaseQueryOrder = exports.ReleaseQueryOrder || (exports.ReleaseQueryOrder = {}));\r\nvar ReleaseReason;\r\n(function (ReleaseReason) {\r\n /**\r\n * Indicates the release triggered reason not set.\r\n */\r\n ReleaseReason[ReleaseReason[\"None\"] = 0] = \"None\";\r\n /**\r\n * Indicates the release triggered manually.\r\n */\r\n ReleaseReason[ReleaseReason[\"Manual\"] = 1] = \"Manual\";\r\n /**\r\n * Indicates the release triggered by continuous integration.\r\n */\r\n ReleaseReason[ReleaseReason[\"ContinuousIntegration\"] = 2] = \"ContinuousIntegration\";\r\n /**\r\n * Indicates the release triggered by schedule.\r\n */\r\n ReleaseReason[ReleaseReason[\"Schedule\"] = 3] = \"Schedule\";\r\n /**\r\n * Indicates the release triggered by PullRequest.\r\n */\r\n ReleaseReason[ReleaseReason[\"PullRequest\"] = 4] = \"PullRequest\";\r\n})(ReleaseReason = exports.ReleaseReason || (exports.ReleaseReason = {}));\r\nvar ReleaseStatus;\r\n(function (ReleaseStatus) {\r\n /**\r\n * Release status not set.\r\n */\r\n ReleaseStatus[ReleaseStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Release is in draft state.\r\n */\r\n ReleaseStatus[ReleaseStatus[\"Draft\"] = 1] = \"Draft\";\r\n /**\r\n * Release status is in active.\r\n */\r\n ReleaseStatus[ReleaseStatus[\"Active\"] = 2] = \"Active\";\r\n /**\r\n * Release status is in abandoned.\r\n */\r\n ReleaseStatus[ReleaseStatus[\"Abandoned\"] = 4] = \"Abandoned\";\r\n})(ReleaseStatus = exports.ReleaseStatus || (exports.ReleaseStatus = {}));\r\nvar ReleaseTriggerType;\r\n(function (ReleaseTriggerType) {\r\n /**\r\n * Release trigger type not set.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Artifact based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"ArtifactSource\"] = 1] = \"ArtifactSource\";\r\n /**\r\n * Schedule based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"Schedule\"] = 2] = \"Schedule\";\r\n /**\r\n * Source repository based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"SourceRepo\"] = 3] = \"SourceRepo\";\r\n /**\r\n * Container image based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"ContainerImage\"] = 4] = \"ContainerImage\";\r\n /**\r\n * Package based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"Package\"] = 5] = \"Package\";\r\n /**\r\n * Pull request based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"PullRequest\"] = 6] = \"PullRequest\";\r\n})(ReleaseTriggerType = exports.ReleaseTriggerType || (exports.ReleaseTriggerType = {}));\r\nvar ScheduleDays;\r\n(function (ScheduleDays) {\r\n /**\r\n * Scheduled day not set.\r\n */\r\n ScheduleDays[ScheduleDays[\"None\"] = 0] = \"None\";\r\n /**\r\n * Scheduled on Monday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Monday\"] = 1] = \"Monday\";\r\n /**\r\n * Scheduled on Tuesday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Tuesday\"] = 2] = \"Tuesday\";\r\n /**\r\n * Scheduled on Wednesday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Wednesday\"] = 4] = \"Wednesday\";\r\n /**\r\n * Scheduled on Thursday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Thursday\"] = 8] = \"Thursday\";\r\n /**\r\n * Scheduled on Friday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Friday\"] = 16] = \"Friday\";\r\n /**\r\n * Scheduled on Saturday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Saturday\"] = 32] = \"Saturday\";\r\n /**\r\n * Scheduled on Sunday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Sunday\"] = 64] = \"Sunday\";\r\n /**\r\n * Scheduled on all the days in week.\r\n */\r\n ScheduleDays[ScheduleDays[\"All\"] = 127] = \"All\";\r\n})(ScheduleDays = exports.ScheduleDays || (exports.ScheduleDays = {}));\r\nvar SenderType;\r\n(function (SenderType) {\r\n SenderType[SenderType[\"ServiceAccount\"] = 1] = \"ServiceAccount\";\r\n SenderType[SenderType[\"RequestingUser\"] = 2] = \"RequestingUser\";\r\n})(SenderType = exports.SenderType || (exports.SenderType = {}));\r\nvar SingleReleaseExpands;\r\n(function (SingleReleaseExpands) {\r\n /**\r\n * Return top level properties of object.\r\n */\r\n SingleReleaseExpands[SingleReleaseExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Expand release with tasks.\r\n */\r\n SingleReleaseExpands[SingleReleaseExpands[\"Tasks\"] = 1] = \"Tasks\";\r\n})(SingleReleaseExpands = exports.SingleReleaseExpands || (exports.SingleReleaseExpands = {}));\r\nvar TaskStatus;\r\n(function (TaskStatus) {\r\n /**\r\n * The task does not have the status set.\r\n */\r\n TaskStatus[TaskStatus[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * The task is in pending status.\r\n */\r\n TaskStatus[TaskStatus[\"Pending\"] = 1] = \"Pending\";\r\n /**\r\n * The task is currently in progress.\r\n */\r\n TaskStatus[TaskStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The task completed successfully.\r\n */\r\n TaskStatus[TaskStatus[\"Success\"] = 3] = \"Success\";\r\n /**\r\n * The task execution failed.\r\n */\r\n TaskStatus[TaskStatus[\"Failure\"] = 4] = \"Failure\";\r\n /**\r\n * The task execution canceled.\r\n */\r\n TaskStatus[TaskStatus[\"Canceled\"] = 5] = \"Canceled\";\r\n /**\r\n * The task execution skipped.\r\n */\r\n TaskStatus[TaskStatus[\"Skipped\"] = 6] = \"Skipped\";\r\n /**\r\n * The task completed successfully.\r\n */\r\n TaskStatus[TaskStatus[\"Succeeded\"] = 7] = \"Succeeded\";\r\n /**\r\n * The task execution failed.\r\n */\r\n TaskStatus[TaskStatus[\"Failed\"] = 8] = \"Failed\";\r\n /**\r\n * The task execution partially succeeded.\r\n */\r\n TaskStatus[TaskStatus[\"PartiallySucceeded\"] = 9] = \"PartiallySucceeded\";\r\n})(TaskStatus = exports.TaskStatus || (exports.TaskStatus = {}));\r\nvar VariableGroupActionFilter;\r\n(function (VariableGroupActionFilter) {\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"None\"] = 0] = \"None\";\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(VariableGroupActionFilter = exports.VariableGroupActionFilter || (exports.VariableGroupActionFilter = {}));\r\nvar YamlFileSourceTypes;\r\n(function (YamlFileSourceTypes) {\r\n YamlFileSourceTypes[YamlFileSourceTypes[\"None\"] = 0] = \"None\";\r\n YamlFileSourceTypes[YamlFileSourceTypes[\"TFSGit\"] = 1] = \"TFSGit\";\r\n})(YamlFileSourceTypes = exports.YamlFileSourceTypes || (exports.YamlFileSourceTypes = {}));\r\nexports.TypeInfo = {\r\n AgentArtifactDefinition: {},\r\n AgentArtifactType: {\r\n enumValues: {\r\n \"xamlBuild\": 0,\r\n \"build\": 1,\r\n \"jenkins\": 2,\r\n \"fileShare\": 3,\r\n \"nuget\": 4,\r\n \"tfsOnPrem\": 5,\r\n \"gitHub\": 6,\r\n \"tfGit\": 7,\r\n \"externalTfsBuild\": 8,\r\n \"custom\": 9,\r\n \"tfvc\": 10\r\n }\r\n },\r\n AgentBasedDeployPhase: {},\r\n AgentDeploymentInput: {},\r\n ApprovalExecutionOrder: {\r\n enumValues: {\r\n \"beforeGates\": 1,\r\n \"afterSuccessfulGates\": 2,\r\n \"afterGatesAlways\": 4\r\n }\r\n },\r\n ApprovalFilters: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manualApprovals\": 1,\r\n \"automatedApprovals\": 2,\r\n \"approvalSnapshots\": 4,\r\n \"all\": 7\r\n }\r\n },\r\n ApprovalOptions: {},\r\n ApprovalStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"pending\": 1,\r\n \"approved\": 2,\r\n \"rejected\": 4,\r\n \"reassigned\": 6,\r\n \"canceled\": 7,\r\n \"skipped\": 8\r\n }\r\n },\r\n ApprovalType: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"preDeploy\": 1,\r\n \"postDeploy\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n ArtifactContributionDefinition: {},\r\n ArtifactMetadata: {},\r\n ArtifactSourceTrigger: {},\r\n ArtifactTypeDefinition: {},\r\n ArtifactVersion: {},\r\n ArtifactVersionQueryResult: {},\r\n AuditAction: {\r\n enumValues: {\r\n \"add\": 1,\r\n \"update\": 2,\r\n \"delete\": 3,\r\n \"undelete\": 4\r\n }\r\n },\r\n AuthorizationHeaderFor: {\r\n enumValues: {\r\n \"revalidateApproverIdentity\": 0,\r\n \"onBehalfOf\": 1\r\n }\r\n },\r\n AutoTriggerIssue: {},\r\n AzureKeyVaultVariableGroupProviderData: {},\r\n AzureKeyVaultVariableValue: {},\r\n BuildVersion: {},\r\n Change: {},\r\n CodeRepositoryReference: {},\r\n Condition: {},\r\n ConditionType: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"event\": 1,\r\n \"environmentState\": 2,\r\n \"artifact\": 4\r\n }\r\n },\r\n ContainerImageTrigger: {},\r\n ContinuousDeploymentTriggerIssue: {},\r\n Deployment: {},\r\n DeploymentApprovalCompletedEvent: {},\r\n DeploymentApprovalPendingEvent: {},\r\n DeploymentAttempt: {},\r\n DeploymentAuthorizationInfo: {},\r\n DeploymentAuthorizationOwner: {\r\n enumValues: {\r\n \"automatic\": 0,\r\n \"deploymentSubmitter\": 1,\r\n \"firstPreDeploymentApprover\": 2\r\n }\r\n },\r\n DeploymentCompletedEvent: {},\r\n DeploymentExpands: {\r\n enumValues: {\r\n \"all\": 0,\r\n \"deploymentOnly\": 1,\r\n \"approvals\": 2,\r\n \"artifacts\": 4\r\n }\r\n },\r\n DeploymentJob: {},\r\n DeploymentManualInterventionPendingEvent: {},\r\n DeploymentOperationStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"queued\": 1,\r\n \"scheduled\": 2,\r\n \"pending\": 4,\r\n \"approved\": 8,\r\n \"rejected\": 16,\r\n \"deferred\": 32,\r\n \"queuedForAgent\": 64,\r\n \"phaseInProgress\": 128,\r\n \"phaseSucceeded\": 256,\r\n \"phasePartiallySucceeded\": 512,\r\n \"phaseFailed\": 1024,\r\n \"canceled\": 2048,\r\n \"phaseCanceled\": 4096,\r\n \"manualInterventionPending\": 8192,\r\n \"queuedForPipeline\": 16384,\r\n \"cancelling\": 32768,\r\n \"evaluatingGates\": 65536,\r\n \"gateFailed\": 131072,\r\n \"all\": 258047\r\n }\r\n },\r\n DeploymentQueryParameters: {},\r\n DeploymentReason: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manual\": 1,\r\n \"automated\": 2,\r\n \"scheduled\": 4,\r\n \"redeployTrigger\": 8\r\n }\r\n },\r\n DeploymentsQueryType: {\r\n enumValues: {\r\n \"regular\": 1,\r\n \"failingSince\": 2\r\n }\r\n },\r\n DeploymentStartedEvent: {},\r\n DeploymentStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"notDeployed\": 1,\r\n \"inProgress\": 2,\r\n \"succeeded\": 4,\r\n \"partiallySucceeded\": 8,\r\n \"failed\": 16,\r\n \"all\": 31\r\n }\r\n },\r\n DeployPhase: {},\r\n DeployPhaseStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"notStarted\": 1,\r\n \"inProgress\": 2,\r\n \"partiallySucceeded\": 4,\r\n \"succeeded\": 8,\r\n \"failed\": 16,\r\n \"canceled\": 32,\r\n \"skipped\": 64,\r\n \"cancelling\": 128\r\n }\r\n },\r\n DeployPhaseTypes: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"agentBasedDeployment\": 1,\r\n \"runOnServer\": 2,\r\n \"machineGroupBasedDeployment\": 4,\r\n \"deploymentGates\": 8\r\n }\r\n },\r\n EnvironmentStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"notStarted\": 1,\r\n \"inProgress\": 2,\r\n \"succeeded\": 4,\r\n \"canceled\": 8,\r\n \"rejected\": 16,\r\n \"queued\": 32,\r\n \"scheduled\": 64,\r\n \"partiallySucceeded\": 128\r\n }\r\n },\r\n EnvironmentTrigger: {},\r\n EnvironmentTriggerType: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"deploymentGroupRedeploy\": 1,\r\n \"rollbackRedeploy\": 2\r\n }\r\n },\r\n ExecutionInput: {},\r\n Folder: {},\r\n FolderPathQueryOrder: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"ascending\": 1,\r\n \"descending\": 2\r\n }\r\n },\r\n GatesDeployPhase: {},\r\n GateStatus: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"pending\": 1,\r\n \"inProgress\": 2,\r\n \"succeeded\": 4,\r\n \"failed\": 8,\r\n \"canceled\": 16\r\n }\r\n },\r\n IgnoredGate: {},\r\n IssueSource: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"user\": 1,\r\n \"system\": 2\r\n }\r\n },\r\n MachineGroupBasedDeployPhase: {},\r\n MailMessage: {},\r\n MailSectionType: {\r\n enumValues: {\r\n \"details\": 0,\r\n \"environments\": 1,\r\n \"issues\": 2,\r\n \"testResults\": 3,\r\n \"workItems\": 4,\r\n \"releaseInfo\": 5\r\n }\r\n },\r\n ManualIntervention: {},\r\n ManualInterventionStatus: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"pending\": 1,\r\n \"rejected\": 2,\r\n \"approved\": 4,\r\n \"canceled\": 8\r\n }\r\n },\r\n ManualInterventionUpdateMetadata: {},\r\n MultiConfigInput: {},\r\n MultiMachineInput: {},\r\n PackageTrigger: {},\r\n ParallelExecutionInputBase: {},\r\n ParallelExecutionTypes: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"multiConfiguration\": 1,\r\n \"multiMachine\": 2\r\n }\r\n },\r\n PipelineProcess: {},\r\n PipelineProcessTypes: {\r\n enumValues: {\r\n \"designer\": 1,\r\n \"yaml\": 2\r\n }\r\n },\r\n PropertySelector: {},\r\n PropertySelectorType: {\r\n enumValues: {\r\n \"inclusion\": 0,\r\n \"exclusion\": 1\r\n }\r\n },\r\n PullRequestConfiguration: {},\r\n PullRequestSystemType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"tfsGit\": 1,\r\n \"gitHub\": 2\r\n }\r\n },\r\n PullRequestTrigger: {},\r\n Release: {},\r\n ReleaseAbandonedEvent: {},\r\n ReleaseApproval: {},\r\n ReleaseApprovalHistory: {},\r\n ReleaseApprovalPendingEvent: {},\r\n ReleaseCondition: {},\r\n ReleaseCreatedEvent: {},\r\n ReleaseDefinition: {},\r\n ReleaseDefinitionApprovals: {},\r\n ReleaseDefinitionEnvironment: {},\r\n ReleaseDefinitionEnvironmentTemplate: {},\r\n ReleaseDefinitionExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"environments\": 2,\r\n \"artifacts\": 4,\r\n \"triggers\": 8,\r\n \"variables\": 16,\r\n \"tags\": 32,\r\n \"lastRelease\": 64\r\n }\r\n },\r\n ReleaseDefinitionQueryOrder: {\r\n enumValues: {\r\n \"idAscending\": 0,\r\n \"idDescending\": 1,\r\n \"nameAscending\": 2,\r\n \"nameDescending\": 3\r\n }\r\n },\r\n ReleaseDefinitionRevision: {},\r\n ReleaseDefinitionSource: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"restApi\": 1,\r\n \"userInterface\": 2,\r\n \"ibiza\": 4,\r\n \"portalExtensionApi\": 8\r\n }\r\n },\r\n ReleaseDefinitionSummary: {},\r\n ReleaseDeployPhase: {},\r\n ReleaseEnvironment: {},\r\n ReleaseEnvironmentCompletedEvent: {},\r\n ReleaseEnvironmentExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"tasks\": 1\r\n }\r\n },\r\n ReleaseEnvironmentStatusUpdatedEvent: {},\r\n ReleaseEnvironmentUpdateMetadata: {},\r\n ReleaseExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"environments\": 2,\r\n \"artifacts\": 4,\r\n \"approvals\": 8,\r\n \"manualInterventions\": 16,\r\n \"variables\": 32,\r\n \"tags\": 64\r\n }\r\n },\r\n ReleaseGates: {},\r\n ReleaseGatesPhase: {},\r\n ReleaseNotCreatedEvent: {},\r\n ReleaseQueryOrder: {\r\n enumValues: {\r\n \"descending\": 0,\r\n \"ascending\": 1\r\n }\r\n },\r\n ReleaseReason: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manual\": 1,\r\n \"continuousIntegration\": 2,\r\n \"schedule\": 3,\r\n \"pullRequest\": 4\r\n }\r\n },\r\n ReleaseReference: {},\r\n ReleaseRevision: {},\r\n ReleaseSchedule: {},\r\n ReleaseStartMetadata: {},\r\n ReleaseStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"draft\": 1,\r\n \"active\": 2,\r\n \"abandoned\": 4\r\n }\r\n },\r\n ReleaseTask: {},\r\n ReleaseTaskAttachment: {},\r\n ReleaseTasksUpdatedEvent: {},\r\n ReleaseTriggerBase: {},\r\n ReleaseTriggerType: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"artifactSource\": 1,\r\n \"schedule\": 2,\r\n \"sourceRepo\": 3,\r\n \"containerImage\": 4,\r\n \"package\": 5,\r\n \"pullRequest\": 6\r\n }\r\n },\r\n ReleaseUpdatedEvent: {},\r\n ReleaseUpdateMetadata: {},\r\n RunOnServerDeployPhase: {},\r\n ScheduleDays: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"monday\": 1,\r\n \"tuesday\": 2,\r\n \"wednesday\": 4,\r\n \"thursday\": 8,\r\n \"friday\": 16,\r\n \"saturday\": 32,\r\n \"sunday\": 64,\r\n \"all\": 127\r\n }\r\n },\r\n ScheduledReleaseTrigger: {},\r\n SenderType: {\r\n enumValues: {\r\n \"serviceAccount\": 1,\r\n \"requestingUser\": 2\r\n }\r\n },\r\n ServerDeploymentInput: {},\r\n SingleReleaseExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"tasks\": 1\r\n }\r\n },\r\n SourcePullRequestVersion: {},\r\n SourceRepoTrigger: {},\r\n SummaryMailSection: {},\r\n TaskStatus: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"pending\": 1,\r\n \"inProgress\": 2,\r\n \"success\": 3,\r\n \"failure\": 4,\r\n \"canceled\": 5,\r\n \"skipped\": 6,\r\n \"succeeded\": 7,\r\n \"failed\": 8,\r\n \"partiallySucceeded\": 9\r\n }\r\n },\r\n VariableGroup: {},\r\n VariableGroupActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n YamlFileSource: {},\r\n YamlFileSourceTypes: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"tfsGit\": 1\r\n }\r\n },\r\n YamlPipelineProcess: {},\r\n};\r\nexports.TypeInfo.AgentArtifactDefinition.fields = {\r\n artifactType: {\r\n enumType: exports.TypeInfo.AgentArtifactType\r\n }\r\n};\r\nexports.TypeInfo.AgentBasedDeployPhase.fields = {\r\n deploymentInput: {\r\n typeInfo: exports.TypeInfo.AgentDeploymentInput\r\n },\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n }\r\n};\r\nexports.TypeInfo.AgentDeploymentInput.fields = {\r\n parallelExecution: {\r\n typeInfo: exports.TypeInfo.ExecutionInput\r\n }\r\n};\r\nexports.TypeInfo.ApprovalOptions.fields = {\r\n executionOrder: {\r\n enumType: exports.TypeInfo.ApprovalExecutionOrder\r\n }\r\n};\r\nexports.TypeInfo.ArtifactContributionDefinition.fields = {\r\n inputDescriptors: {\r\n isArray: true,\r\n typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor\r\n }\r\n};\r\nexports.TypeInfo.ArtifactMetadata.fields = {\r\n instanceReference: {\r\n typeInfo: exports.TypeInfo.BuildVersion\r\n }\r\n};\r\nexports.TypeInfo.ArtifactSourceTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ArtifactTypeDefinition.fields = {\r\n inputDescriptors: {\r\n isArray: true,\r\n typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor\r\n }\r\n};\r\nexports.TypeInfo.ArtifactVersion.fields = {\r\n defaultVersion: {\r\n typeInfo: exports.TypeInfo.BuildVersion\r\n },\r\n versions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildVersion\r\n }\r\n};\r\nexports.TypeInfo.ArtifactVersionQueryResult.fields = {\r\n artifactVersions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ArtifactVersion\r\n }\r\n};\r\nexports.TypeInfo.AutoTriggerIssue.fields = {\r\n issueSource: {\r\n enumType: exports.TypeInfo.IssueSource\r\n },\r\n releaseTriggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.AzureKeyVaultVariableGroupProviderData.fields = {\r\n lastRefreshedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AzureKeyVaultVariableValue.fields = {\r\n expires: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildVersion.fields = {\r\n sourcePullRequestVersion: {\r\n typeInfo: exports.TypeInfo.SourcePullRequestVersion\r\n }\r\n};\r\nexports.TypeInfo.Change.fields = {\r\n timestamp: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CodeRepositoryReference.fields = {\r\n systemType: {\r\n enumType: exports.TypeInfo.PullRequestSystemType\r\n }\r\n};\r\nexports.TypeInfo.Condition.fields = {\r\n conditionType: {\r\n enumType: exports.TypeInfo.ConditionType\r\n }\r\n};\r\nexports.TypeInfo.ContainerImageTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ContinuousDeploymentTriggerIssue.fields = {\r\n issueSource: {\r\n enumType: exports.TypeInfo.IssueSource\r\n },\r\n releaseTriggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.Deployment.fields = {\r\n completedOn: {\r\n isDate: true,\r\n },\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Condition\r\n },\r\n deploymentStatus: {\r\n enumType: exports.TypeInfo.DeploymentStatus\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n operationStatus: {\r\n enumType: exports.TypeInfo.DeploymentOperationStatus\r\n },\r\n postDeployApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n preDeployApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n queuedOn: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.DeploymentReason\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n },\r\n scheduledDeploymentTime: {\r\n isDate: true,\r\n },\r\n startedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.DeploymentApprovalCompletedEvent.fields = {\r\n approval: {\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.DeploymentApprovalPendingEvent.fields = {\r\n approval: {\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n approvalOptions: {\r\n typeInfo: exports.TypeInfo.ApprovalOptions\r\n },\r\n completedApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n deployment: {\r\n typeInfo: exports.TypeInfo.Deployment\r\n },\r\n pendingApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.DeploymentAttempt.fields = {\r\n job: {\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n operationStatus: {\r\n enumType: exports.TypeInfo.DeploymentOperationStatus\r\n },\r\n postDeploymentGates: {\r\n typeInfo: exports.TypeInfo.ReleaseGates\r\n },\r\n preDeploymentGates: {\r\n typeInfo: exports.TypeInfo.ReleaseGates\r\n },\r\n queuedOn: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.DeploymentReason\r\n },\r\n releaseDeployPhases: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseDeployPhase\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.DeploymentStatus\r\n },\r\n tasks: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n }\r\n};\r\nexports.TypeInfo.DeploymentAuthorizationInfo.fields = {\r\n authorizationHeaderFor: {\r\n enumType: exports.TypeInfo.AuthorizationHeaderFor\r\n }\r\n};\r\nexports.TypeInfo.DeploymentCompletedEvent.fields = {\r\n deployment: {\r\n typeInfo: exports.TypeInfo.Deployment\r\n },\r\n environment: {\r\n typeInfo: exports.TypeInfo.ReleaseEnvironment\r\n }\r\n};\r\nexports.TypeInfo.DeploymentJob.fields = {\r\n job: {\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n },\r\n tasks: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n }\r\n};\r\nexports.TypeInfo.DeploymentManualInterventionPendingEvent.fields = {\r\n deployment: {\r\n typeInfo: exports.TypeInfo.Deployment\r\n },\r\n manualIntervention: {\r\n typeInfo: exports.TypeInfo.ManualIntervention\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.DeploymentQueryParameters.fields = {\r\n deploymentStatus: {\r\n enumType: exports.TypeInfo.DeploymentStatus\r\n },\r\n expands: {\r\n enumType: exports.TypeInfo.DeploymentExpands\r\n },\r\n maxModifiedTime: {\r\n isDate: true,\r\n },\r\n minModifiedTime: {\r\n isDate: true,\r\n },\r\n operationStatus: {\r\n enumType: exports.TypeInfo.DeploymentOperationStatus\r\n },\r\n queryOrder: {\r\n enumType: exports.TypeInfo.ReleaseQueryOrder\r\n },\r\n queryType: {\r\n enumType: exports.TypeInfo.DeploymentsQueryType\r\n }\r\n};\r\nexports.TypeInfo.DeploymentStartedEvent.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.ReleaseEnvironment\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.DeployPhase.fields = {\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.EnvironmentTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ExecutionInput.fields = {\r\n parallelExecutionType: {\r\n enumType: exports.TypeInfo.ParallelExecutionTypes\r\n }\r\n};\r\nexports.TypeInfo.Folder.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastChangedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GatesDeployPhase.fields = {\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n }\r\n};\r\nexports.TypeInfo.IgnoredGate.fields = {\r\n lastModifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.MachineGroupBasedDeployPhase.fields = {\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n }\r\n};\r\nexports.TypeInfo.MailMessage.fields = {\r\n replyBy: {\r\n isDate: true,\r\n },\r\n sections: {\r\n isArray: true,\r\n enumType: exports.TypeInfo.MailSectionType\r\n },\r\n senderType: {\r\n enumType: exports.TypeInfo.SenderType\r\n }\r\n};\r\nexports.TypeInfo.ManualIntervention.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ManualInterventionStatus\r\n }\r\n};\r\nexports.TypeInfo.ManualInterventionUpdateMetadata.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.ManualInterventionStatus\r\n }\r\n};\r\nexports.TypeInfo.MultiConfigInput.fields = {\r\n parallelExecutionType: {\r\n enumType: exports.TypeInfo.ParallelExecutionTypes\r\n }\r\n};\r\nexports.TypeInfo.MultiMachineInput.fields = {\r\n parallelExecutionType: {\r\n enumType: exports.TypeInfo.ParallelExecutionTypes\r\n }\r\n};\r\nexports.TypeInfo.PackageTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ParallelExecutionInputBase.fields = {\r\n parallelExecutionType: {\r\n enumType: exports.TypeInfo.ParallelExecutionTypes\r\n }\r\n};\r\nexports.TypeInfo.PipelineProcess.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.PipelineProcessTypes\r\n }\r\n};\r\nexports.TypeInfo.PropertySelector.fields = {\r\n selectorType: {\r\n enumType: exports.TypeInfo.PropertySelectorType\r\n }\r\n};\r\nexports.TypeInfo.PullRequestConfiguration.fields = {\r\n codeRepositoryReference: {\r\n typeInfo: exports.TypeInfo.CodeRepositoryReference\r\n }\r\n};\r\nexports.TypeInfo.PullRequestTrigger.fields = {\r\n pullRequestConfiguration: {\r\n typeInfo: exports.TypeInfo.PullRequestConfiguration\r\n },\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.Release.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n environments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseEnvironment\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.ReleaseReason\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ReleaseStatus\r\n },\r\n variableGroups: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.VariableGroup\r\n }\r\n};\r\nexports.TypeInfo.ReleaseAbandonedEvent.fields = {\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.ReleaseApproval.fields = {\r\n approvalType: {\r\n enumType: exports.TypeInfo.ApprovalType\r\n },\r\n createdOn: {\r\n isDate: true,\r\n },\r\n history: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApprovalHistory\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ApprovalStatus\r\n }\r\n};\r\nexports.TypeInfo.ReleaseApprovalHistory.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseApprovalPendingEvent.fields = {\r\n approval: {\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n approvalOptions: {\r\n typeInfo: exports.TypeInfo.ApprovalOptions\r\n },\r\n completedApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n deployment: {\r\n typeInfo: exports.TypeInfo.Deployment\r\n },\r\n environments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseEnvironment\r\n },\r\n pendingApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n }\r\n};\r\nexports.TypeInfo.ReleaseCondition.fields = {\r\n conditionType: {\r\n enumType: exports.TypeInfo.ConditionType\r\n }\r\n};\r\nexports.TypeInfo.ReleaseCreatedEvent.fields = {\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinition.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n environments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionEnvironment\r\n },\r\n lastRelease: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n pipelineProcess: {\r\n typeInfo: exports.TypeInfo.PipelineProcess\r\n },\r\n source: {\r\n enumType: exports.TypeInfo.ReleaseDefinitionSource\r\n },\r\n triggers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseTriggerBase\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinitionApprovals.fields = {\r\n approvalOptions: {\r\n typeInfo: exports.TypeInfo.ApprovalOptions\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinitionEnvironment.fields = {\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Condition\r\n },\r\n deployPhases: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeployPhase\r\n },\r\n environmentTriggers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.EnvironmentTrigger\r\n },\r\n postDeployApprovals: {\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals\r\n },\r\n preDeployApprovals: {\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals\r\n },\r\n schedules: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseSchedule\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinitionEnvironmentTemplate.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionEnvironment\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinitionRevision.fields = {\r\n changedDate: {\r\n isDate: true,\r\n },\r\n changeType: {\r\n enumType: exports.TypeInfo.AuditAction\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinitionSummary.fields = {\r\n releases: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDeployPhase.fields = {\r\n deploymentJobs: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentJob\r\n },\r\n manualInterventions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ManualIntervention\r\n },\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n },\r\n startedOn: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.DeployPhaseStatus\r\n }\r\n};\r\nexports.TypeInfo.ReleaseEnvironment.fields = {\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseCondition\r\n },\r\n createdOn: {\r\n isDate: true,\r\n },\r\n deployPhasesSnapshot: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeployPhase\r\n },\r\n deploySteps: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentAttempt\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n nextScheduledUtcTime: {\r\n isDate: true,\r\n },\r\n postApprovalsSnapshot: {\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals\r\n },\r\n postDeployApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n preApprovalsSnapshot: {\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals\r\n },\r\n preDeployApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n scheduledDeploymentTime: {\r\n isDate: true,\r\n },\r\n schedules: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseSchedule\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.EnvironmentStatus\r\n },\r\n variableGroups: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.VariableGroup\r\n }\r\n};\r\nexports.TypeInfo.ReleaseEnvironmentCompletedEvent.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.ReleaseEnvironment\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.DeploymentReason\r\n }\r\n};\r\nexports.TypeInfo.ReleaseEnvironmentStatusUpdatedEvent.fields = {\r\n environmentStatus: {\r\n enumType: exports.TypeInfo.EnvironmentStatus\r\n },\r\n latestDeploymentOperationStatus: {\r\n enumType: exports.TypeInfo.DeploymentOperationStatus\r\n },\r\n latestDeploymentStatus: {\r\n enumType: exports.TypeInfo.DeploymentStatus\r\n }\r\n};\r\nexports.TypeInfo.ReleaseEnvironmentUpdateMetadata.fields = {\r\n scheduledDeploymentTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.EnvironmentStatus\r\n }\r\n};\r\nexports.TypeInfo.ReleaseGates.fields = {\r\n deploymentJobs: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentJob\r\n },\r\n ignoredGates: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.IgnoredGate\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n stabilizationCompletedOn: {\r\n isDate: true,\r\n },\r\n startedOn: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.GateStatus\r\n },\r\n succeedingSince: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseGatesPhase.fields = {\r\n deploymentJobs: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentJob\r\n },\r\n ignoredGates: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.IgnoredGate\r\n },\r\n manualInterventions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ManualIntervention\r\n },\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n },\r\n stabilizationCompletedOn: {\r\n isDate: true,\r\n },\r\n startedOn: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.DeployPhaseStatus\r\n },\r\n succeedingSince: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseNotCreatedEvent.fields = {\r\n releaseReason: {\r\n enumType: exports.TypeInfo.ReleaseReason\r\n }\r\n};\r\nexports.TypeInfo.ReleaseReference.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.ReleaseReason\r\n }\r\n};\r\nexports.TypeInfo.ReleaseRevision.fields = {\r\n changedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseSchedule.fields = {\r\n daysToRelease: {\r\n enumType: exports.TypeInfo.ScheduleDays\r\n }\r\n};\r\nexports.TypeInfo.ReleaseStartMetadata.fields = {\r\n artifacts: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ArtifactMetadata\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.ReleaseReason\r\n }\r\n};\r\nexports.TypeInfo.ReleaseTask.fields = {\r\n dateEnded: {\r\n isDate: true,\r\n },\r\n dateStarted: {\r\n isDate: true,\r\n },\r\n finishTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.TaskStatus\r\n }\r\n};\r\nexports.TypeInfo.ReleaseTaskAttachment.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseTasksUpdatedEvent.fields = {\r\n job: {\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n },\r\n tasks: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n }\r\n};\r\nexports.TypeInfo.ReleaseTriggerBase.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ReleaseUpdatedEvent.fields = {\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.ReleaseUpdateMetadata.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.ReleaseStatus\r\n }\r\n};\r\nexports.TypeInfo.RunOnServerDeployPhase.fields = {\r\n deploymentInput: {\r\n typeInfo: exports.TypeInfo.ServerDeploymentInput\r\n },\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n }\r\n};\r\nexports.TypeInfo.ScheduledReleaseTrigger.fields = {\r\n schedule: {\r\n typeInfo: exports.TypeInfo.ReleaseSchedule\r\n },\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ServerDeploymentInput.fields = {\r\n parallelExecution: {\r\n typeInfo: exports.TypeInfo.ExecutionInput\r\n }\r\n};\r\nexports.TypeInfo.SourcePullRequestVersion.fields = {\r\n pullRequestMergedAt: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SourceRepoTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.SummaryMailSection.fields = {\r\n sectionType: {\r\n enumType: exports.TypeInfo.MailSectionType\r\n }\r\n};\r\nexports.TypeInfo.VariableGroup.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.YamlFileSource.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.YamlFileSourceTypes\r\n }\r\n};\r\nexports.TypeInfo.YamlPipelineProcess.fields = {\r\n fileSource: {\r\n typeInfo: exports.TypeInfo.YamlFileSource\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.PipelineProcessTypes\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar RoleAccess;\r\n(function (RoleAccess) {\r\n /**\r\n * Access has been explicitly set.\r\n */\r\n RoleAccess[RoleAccess[\"Assigned\"] = 1] = \"Assigned\";\r\n /**\r\n * Access has been inherited from a higher scope.\r\n */\r\n RoleAccess[RoleAccess[\"Inherited\"] = 2] = \"Inherited\";\r\n})(RoleAccess = exports.RoleAccess || (exports.RoleAccess = {}));\r\nexports.TypeInfo = {\r\n RoleAccess: {\r\n enumValues: {\r\n \"assigned\": 1,\r\n \"inherited\": 2\r\n }\r\n },\r\n RoleAssignment: {},\r\n};\r\nexports.TypeInfo.RoleAssignment.fields = {\r\n access: {\r\n enumType: exports.TypeInfo.RoleAccess\r\n },\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst FormInputInterfaces = require(\"../interfaces/common/FormInputInterfaces\");\r\nvar AadLoginPromptOption;\r\n(function (AadLoginPromptOption) {\r\n /**\r\n * Do not provide a prompt option\r\n */\r\n AadLoginPromptOption[AadLoginPromptOption[\"NoOption\"] = 0] = \"NoOption\";\r\n /**\r\n * Force the user to login again.\r\n */\r\n AadLoginPromptOption[AadLoginPromptOption[\"Login\"] = 1] = \"Login\";\r\n /**\r\n * Force the user to select which account they are logging in with instead of automatically picking the user up from the session state. NOTE: This does not work for switching between the variants of a dual-homed user.\r\n */\r\n AadLoginPromptOption[AadLoginPromptOption[\"SelectAccount\"] = 2] = \"SelectAccount\";\r\n /**\r\n * Force the user to login again. Ignore current authentication state and force the user to authenticate again. This option should be used instead of Login. \r\n */\r\n AadLoginPromptOption[AadLoginPromptOption[\"FreshLogin\"] = 3] = \"FreshLogin\";\r\n /**\r\n * Force the user to login again with mfa. Ignore current authentication state and force the user to authenticate again. This option should be used instead of Login, if MFA is required. \r\n */\r\n AadLoginPromptOption[AadLoginPromptOption[\"FreshLoginWithMfa\"] = 4] = \"FreshLoginWithMfa\";\r\n})(AadLoginPromptOption = exports.AadLoginPromptOption || (exports.AadLoginPromptOption = {}));\r\nvar AuditAction;\r\n(function (AuditAction) {\r\n AuditAction[AuditAction[\"Add\"] = 1] = \"Add\";\r\n AuditAction[AuditAction[\"Update\"] = 2] = \"Update\";\r\n AuditAction[AuditAction[\"Delete\"] = 3] = \"Delete\";\r\n AuditAction[AuditAction[\"Undelete\"] = 4] = \"Undelete\";\r\n})(AuditAction = exports.AuditAction || (exports.AuditAction = {}));\r\nvar DemandSourceType;\r\n(function (DemandSourceType) {\r\n DemandSourceType[DemandSourceType[\"Task\"] = 0] = \"Task\";\r\n DemandSourceType[DemandSourceType[\"Feature\"] = 1] = \"Feature\";\r\n})(DemandSourceType = exports.DemandSourceType || (exports.DemandSourceType = {}));\r\n/**\r\n * This is useful in getting a list of deployment groups, filtered for which caller has permissions to take a particular action.\r\n */\r\nvar DeploymentGroupActionFilter;\r\n(function (DeploymentGroupActionFilter) {\r\n /**\r\n * All deployment groups.\r\n */\r\n DeploymentGroupActionFilter[DeploymentGroupActionFilter[\"None\"] = 0] = \"None\";\r\n /**\r\n * Only deployment groups for which caller has **manage** permission.\r\n */\r\n DeploymentGroupActionFilter[DeploymentGroupActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n /**\r\n * Only deployment groups for which caller has **use** permission.\r\n */\r\n DeploymentGroupActionFilter[DeploymentGroupActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(DeploymentGroupActionFilter = exports.DeploymentGroupActionFilter || (exports.DeploymentGroupActionFilter = {}));\r\n/**\r\n * Properties to be included or expanded in deployment group objects. This is useful when getting a single or list of deployment grouops.\r\n */\r\nvar DeploymentGroupExpands;\r\n(function (DeploymentGroupExpands) {\r\n /**\r\n * No additional properties.\r\n */\r\n DeploymentGroupExpands[DeploymentGroupExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Deprecated: Include all the deployment targets.\r\n */\r\n DeploymentGroupExpands[DeploymentGroupExpands[\"Machines\"] = 2] = \"Machines\";\r\n /**\r\n * Include unique list of tags across all deployment targets.\r\n */\r\n DeploymentGroupExpands[DeploymentGroupExpands[\"Tags\"] = 4] = \"Tags\";\r\n})(DeploymentGroupExpands = exports.DeploymentGroupExpands || (exports.DeploymentGroupExpands = {}));\r\nvar DeploymentMachineExpands;\r\n(function (DeploymentMachineExpands) {\r\n DeploymentMachineExpands[DeploymentMachineExpands[\"None\"] = 0] = \"None\";\r\n DeploymentMachineExpands[DeploymentMachineExpands[\"Capabilities\"] = 2] = \"Capabilities\";\r\n DeploymentMachineExpands[DeploymentMachineExpands[\"AssignedRequest\"] = 4] = \"AssignedRequest\";\r\n})(DeploymentMachineExpands = exports.DeploymentMachineExpands || (exports.DeploymentMachineExpands = {}));\r\n/**\r\n * Properties to be included or expanded in deployment pool summary objects. This is useful when getting a single or list of deployment pool summaries.\r\n */\r\nvar DeploymentPoolSummaryExpands;\r\n(function (DeploymentPoolSummaryExpands) {\r\n /**\r\n * No additional properties\r\n */\r\n DeploymentPoolSummaryExpands[DeploymentPoolSummaryExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include deployment groups referring to the deployment pool.\r\n */\r\n DeploymentPoolSummaryExpands[DeploymentPoolSummaryExpands[\"DeploymentGroups\"] = 2] = \"DeploymentGroups\";\r\n /**\r\n * Include Resource referring to the deployment pool.\r\n */\r\n DeploymentPoolSummaryExpands[DeploymentPoolSummaryExpands[\"Resource\"] = 4] = \"Resource\";\r\n})(DeploymentPoolSummaryExpands = exports.DeploymentPoolSummaryExpands || (exports.DeploymentPoolSummaryExpands = {}));\r\n/**\r\n * Properties to be included or expanded in deployment target objects. This is useful when getting a single or list of deployment targets.\r\n */\r\nvar DeploymentTargetExpands;\r\n(function (DeploymentTargetExpands) {\r\n /**\r\n * No additional properties.\r\n */\r\n DeploymentTargetExpands[DeploymentTargetExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include capabilities of the deployment agent.\r\n */\r\n DeploymentTargetExpands[DeploymentTargetExpands[\"Capabilities\"] = 2] = \"Capabilities\";\r\n /**\r\n * Include the job request assigned to the deployment agent.\r\n */\r\n DeploymentTargetExpands[DeploymentTargetExpands[\"AssignedRequest\"] = 4] = \"AssignedRequest\";\r\n /**\r\n * Include the last completed job request of the deployment agent.\r\n */\r\n DeploymentTargetExpands[DeploymentTargetExpands[\"LastCompletedRequest\"] = 8] = \"LastCompletedRequest\";\r\n})(DeploymentTargetExpands = exports.DeploymentTargetExpands || (exports.DeploymentTargetExpands = {}));\r\nvar ElasticAgentState;\r\n(function (ElasticAgentState) {\r\n ElasticAgentState[ElasticAgentState[\"None\"] = 0] = \"None\";\r\n ElasticAgentState[ElasticAgentState[\"Enabled\"] = 1] = \"Enabled\";\r\n ElasticAgentState[ElasticAgentState[\"Online\"] = 2] = \"Online\";\r\n ElasticAgentState[ElasticAgentState[\"Assigned\"] = 4] = \"Assigned\";\r\n})(ElasticAgentState = exports.ElasticAgentState || (exports.ElasticAgentState = {}));\r\nvar ElasticComputeState;\r\n(function (ElasticComputeState) {\r\n ElasticComputeState[ElasticComputeState[\"None\"] = 0] = \"None\";\r\n ElasticComputeState[ElasticComputeState[\"Healthy\"] = 1] = \"Healthy\";\r\n ElasticComputeState[ElasticComputeState[\"Creating\"] = 2] = \"Creating\";\r\n ElasticComputeState[ElasticComputeState[\"Deleting\"] = 3] = \"Deleting\";\r\n ElasticComputeState[ElasticComputeState[\"Failed\"] = 4] = \"Failed\";\r\n ElasticComputeState[ElasticComputeState[\"Stopped\"] = 5] = \"Stopped\";\r\n})(ElasticComputeState = exports.ElasticComputeState || (exports.ElasticComputeState = {}));\r\nvar ElasticNodeState;\r\n(function (ElasticNodeState) {\r\n ElasticNodeState[ElasticNodeState[\"None\"] = 0] = \"None\";\r\n ElasticNodeState[ElasticNodeState[\"New\"] = 1] = \"New\";\r\n ElasticNodeState[ElasticNodeState[\"CreatingCompute\"] = 2] = \"CreatingCompute\";\r\n ElasticNodeState[ElasticNodeState[\"StartingAgent\"] = 3] = \"StartingAgent\";\r\n ElasticNodeState[ElasticNodeState[\"Idle\"] = 4] = \"Idle\";\r\n ElasticNodeState[ElasticNodeState[\"Assigned\"] = 5] = \"Assigned\";\r\n ElasticNodeState[ElasticNodeState[\"Offline\"] = 6] = \"Offline\";\r\n ElasticNodeState[ElasticNodeState[\"PendingReimage\"] = 7] = \"PendingReimage\";\r\n ElasticNodeState[ElasticNodeState[\"PendingDelete\"] = 8] = \"PendingDelete\";\r\n ElasticNodeState[ElasticNodeState[\"Saved\"] = 9] = \"Saved\";\r\n ElasticNodeState[ElasticNodeState[\"DeletingCompute\"] = 10] = \"DeletingCompute\";\r\n ElasticNodeState[ElasticNodeState[\"Deleted\"] = 11] = \"Deleted\";\r\n ElasticNodeState[ElasticNodeState[\"Lost\"] = 12] = \"Lost\";\r\n})(ElasticNodeState = exports.ElasticNodeState || (exports.ElasticNodeState = {}));\r\nvar ElasticPoolState;\r\n(function (ElasticPoolState) {\r\n /**\r\n * Online and healthy\r\n */\r\n ElasticPoolState[ElasticPoolState[\"Online\"] = 0] = \"Online\";\r\n ElasticPoolState[ElasticPoolState[\"Offline\"] = 1] = \"Offline\";\r\n ElasticPoolState[ElasticPoolState[\"Unhealthy\"] = 2] = \"Unhealthy\";\r\n ElasticPoolState[ElasticPoolState[\"New\"] = 3] = \"New\";\r\n})(ElasticPoolState = exports.ElasticPoolState || (exports.ElasticPoolState = {}));\r\n/**\r\n * This is useful in getting a list of Environments, filtered for which caller has permissions to take a particular action.\r\n */\r\nvar EnvironmentActionFilter;\r\n(function (EnvironmentActionFilter) {\r\n /**\r\n * All environments for which user has **view** permission.\r\n */\r\n EnvironmentActionFilter[EnvironmentActionFilter[\"None\"] = 0] = \"None\";\r\n /**\r\n * Only environments for which caller has **manage** permission.\r\n */\r\n EnvironmentActionFilter[EnvironmentActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n /**\r\n * Only environments for which caller has **use** permission.\r\n */\r\n EnvironmentActionFilter[EnvironmentActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(EnvironmentActionFilter = exports.EnvironmentActionFilter || (exports.EnvironmentActionFilter = {}));\r\n/**\r\n * Properties to be included or expanded in environment objects. This is useful when getting a single environment.\r\n */\r\nvar EnvironmentExpands;\r\n(function (EnvironmentExpands) {\r\n /**\r\n * No additional properties\r\n */\r\n EnvironmentExpands[EnvironmentExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include resource references referring to the environment.\r\n */\r\n EnvironmentExpands[EnvironmentExpands[\"ResourceReferences\"] = 1] = \"ResourceReferences\";\r\n})(EnvironmentExpands = exports.EnvironmentExpands || (exports.EnvironmentExpands = {}));\r\n/**\r\n * EnvironmentResourceType.\r\n */\r\nvar EnvironmentResourceType;\r\n(function (EnvironmentResourceType) {\r\n EnvironmentResourceType[EnvironmentResourceType[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Unknown resource type\r\n */\r\n EnvironmentResourceType[EnvironmentResourceType[\"Generic\"] = 1] = \"Generic\";\r\n /**\r\n * Virtual machine resource type\r\n */\r\n EnvironmentResourceType[EnvironmentResourceType[\"VirtualMachine\"] = 2] = \"VirtualMachine\";\r\n /**\r\n * Kubernetes resource type\r\n */\r\n EnvironmentResourceType[EnvironmentResourceType[\"Kubernetes\"] = 4] = \"Kubernetes\";\r\n})(EnvironmentResourceType = exports.EnvironmentResourceType || (exports.EnvironmentResourceType = {}));\r\nvar IssueType;\r\n(function (IssueType) {\r\n IssueType[IssueType[\"Error\"] = 1] = \"Error\";\r\n IssueType[IssueType[\"Warning\"] = 2] = \"Warning\";\r\n})(IssueType = exports.IssueType || (exports.IssueType = {}));\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\r\n LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\r\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\r\n})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));\r\nvar MachineGroupActionFilter;\r\n(function (MachineGroupActionFilter) {\r\n MachineGroupActionFilter[MachineGroupActionFilter[\"None\"] = 0] = \"None\";\r\n MachineGroupActionFilter[MachineGroupActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n MachineGroupActionFilter[MachineGroupActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(MachineGroupActionFilter = exports.MachineGroupActionFilter || (exports.MachineGroupActionFilter = {}));\r\nvar MaskType;\r\n(function (MaskType) {\r\n MaskType[MaskType[\"Variable\"] = 1] = \"Variable\";\r\n MaskType[MaskType[\"Regex\"] = 2] = \"Regex\";\r\n})(MaskType = exports.MaskType || (exports.MaskType = {}));\r\nvar OperatingSystemType;\r\n(function (OperatingSystemType) {\r\n OperatingSystemType[OperatingSystemType[\"Windows\"] = 0] = \"Windows\";\r\n OperatingSystemType[OperatingSystemType[\"Linux\"] = 1] = \"Linux\";\r\n})(OperatingSystemType = exports.OperatingSystemType || (exports.OperatingSystemType = {}));\r\nvar OperationType;\r\n(function (OperationType) {\r\n OperationType[OperationType[\"ConfigurationJob\"] = 0] = \"ConfigurationJob\";\r\n OperationType[OperationType[\"SizingJob\"] = 1] = \"SizingJob\";\r\n OperationType[OperationType[\"IncreaseCapacity\"] = 2] = \"IncreaseCapacity\";\r\n OperationType[OperationType[\"Reimage\"] = 3] = \"Reimage\";\r\n OperationType[OperationType[\"DeleteVMs\"] = 4] = \"DeleteVMs\";\r\n})(OperationType = exports.OperationType || (exports.OperationType = {}));\r\nvar PlanGroupStatus;\r\n(function (PlanGroupStatus) {\r\n PlanGroupStatus[PlanGroupStatus[\"Running\"] = 1] = \"Running\";\r\n PlanGroupStatus[PlanGroupStatus[\"Queued\"] = 2] = \"Queued\";\r\n PlanGroupStatus[PlanGroupStatus[\"All\"] = 3] = \"All\";\r\n})(PlanGroupStatus = exports.PlanGroupStatus || (exports.PlanGroupStatus = {}));\r\nvar PlanGroupStatusFilter;\r\n(function (PlanGroupStatusFilter) {\r\n PlanGroupStatusFilter[PlanGroupStatusFilter[\"Running\"] = 1] = \"Running\";\r\n PlanGroupStatusFilter[PlanGroupStatusFilter[\"Queued\"] = 2] = \"Queued\";\r\n PlanGroupStatusFilter[PlanGroupStatusFilter[\"All\"] = 3] = \"All\";\r\n})(PlanGroupStatusFilter = exports.PlanGroupStatusFilter || (exports.PlanGroupStatusFilter = {}));\r\nvar ResourceLockStatus;\r\n(function (ResourceLockStatus) {\r\n ResourceLockStatus[ResourceLockStatus[\"Queued\"] = 0] = \"Queued\";\r\n ResourceLockStatus[ResourceLockStatus[\"InUse\"] = 1] = \"InUse\";\r\n ResourceLockStatus[ResourceLockStatus[\"Finished\"] = 2] = \"Finished\";\r\n ResourceLockStatus[ResourceLockStatus[\"TimedOut\"] = 3] = \"TimedOut\";\r\n ResourceLockStatus[ResourceLockStatus[\"Canceled\"] = 4] = \"Canceled\";\r\n ResourceLockStatus[ResourceLockStatus[\"Abandoned\"] = 5] = \"Abandoned\";\r\n})(ResourceLockStatus = exports.ResourceLockStatus || (exports.ResourceLockStatus = {}));\r\nvar SecureFileActionFilter;\r\n(function (SecureFileActionFilter) {\r\n SecureFileActionFilter[SecureFileActionFilter[\"None\"] = 0] = \"None\";\r\n SecureFileActionFilter[SecureFileActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n SecureFileActionFilter[SecureFileActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(SecureFileActionFilter = exports.SecureFileActionFilter || (exports.SecureFileActionFilter = {}));\r\n/**\r\n * This is useful in getting a list of deployment targets, filtered by the result of their last job.\r\n */\r\nvar TaskAgentJobResultFilter;\r\n(function (TaskAgentJobResultFilter) {\r\n /**\r\n * Only those deployment targets on which last job failed (**Abandoned**, **Canceled**, **Failed**, **Skipped**).\r\n */\r\n TaskAgentJobResultFilter[TaskAgentJobResultFilter[\"Failed\"] = 1] = \"Failed\";\r\n /**\r\n * Only those deployment targets on which last job Passed (**Succeeded**, **Succeeded with issues**).\r\n */\r\n TaskAgentJobResultFilter[TaskAgentJobResultFilter[\"Passed\"] = 2] = \"Passed\";\r\n /**\r\n * Only those deployment targets that never executed a job.\r\n */\r\n TaskAgentJobResultFilter[TaskAgentJobResultFilter[\"NeverDeployed\"] = 4] = \"NeverDeployed\";\r\n /**\r\n * All deployment targets.\r\n */\r\n TaskAgentJobResultFilter[TaskAgentJobResultFilter[\"All\"] = 7] = \"All\";\r\n})(TaskAgentJobResultFilter = exports.TaskAgentJobResultFilter || (exports.TaskAgentJobResultFilter = {}));\r\nvar TaskAgentJobStepType;\r\n(function (TaskAgentJobStepType) {\r\n TaskAgentJobStepType[TaskAgentJobStepType[\"Task\"] = 1] = \"Task\";\r\n TaskAgentJobStepType[TaskAgentJobStepType[\"Action\"] = 2] = \"Action\";\r\n})(TaskAgentJobStepType = exports.TaskAgentJobStepType || (exports.TaskAgentJobStepType = {}));\r\n/**\r\n * Filters pools based on whether the calling user has permission to use or manage the pool.\r\n */\r\nvar TaskAgentPoolActionFilter;\r\n(function (TaskAgentPoolActionFilter) {\r\n TaskAgentPoolActionFilter[TaskAgentPoolActionFilter[\"None\"] = 0] = \"None\";\r\n TaskAgentPoolActionFilter[TaskAgentPoolActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n TaskAgentPoolActionFilter[TaskAgentPoolActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(TaskAgentPoolActionFilter = exports.TaskAgentPoolActionFilter || (exports.TaskAgentPoolActionFilter = {}));\r\nvar TaskAgentPoolMaintenanceJobResult;\r\n(function (TaskAgentPoolMaintenanceJobResult) {\r\n TaskAgentPoolMaintenanceJobResult[TaskAgentPoolMaintenanceJobResult[\"Succeeded\"] = 1] = \"Succeeded\";\r\n TaskAgentPoolMaintenanceJobResult[TaskAgentPoolMaintenanceJobResult[\"Failed\"] = 2] = \"Failed\";\r\n TaskAgentPoolMaintenanceJobResult[TaskAgentPoolMaintenanceJobResult[\"Canceled\"] = 4] = \"Canceled\";\r\n})(TaskAgentPoolMaintenanceJobResult = exports.TaskAgentPoolMaintenanceJobResult || (exports.TaskAgentPoolMaintenanceJobResult = {}));\r\nvar TaskAgentPoolMaintenanceJobStatus;\r\n(function (TaskAgentPoolMaintenanceJobStatus) {\r\n TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus[\"Completed\"] = 2] = \"Completed\";\r\n TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus[\"Cancelling\"] = 4] = \"Cancelling\";\r\n TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus[\"Queued\"] = 8] = \"Queued\";\r\n})(TaskAgentPoolMaintenanceJobStatus = exports.TaskAgentPoolMaintenanceJobStatus || (exports.TaskAgentPoolMaintenanceJobStatus = {}));\r\nvar TaskAgentPoolMaintenanceScheduleDays;\r\n(function (TaskAgentPoolMaintenanceScheduleDays) {\r\n /**\r\n * Do not run.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"None\"] = 0] = \"None\";\r\n /**\r\n * Run on Monday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Monday\"] = 1] = \"Monday\";\r\n /**\r\n * Run on Tuesday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Tuesday\"] = 2] = \"Tuesday\";\r\n /**\r\n * Run on Wednesday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Wednesday\"] = 4] = \"Wednesday\";\r\n /**\r\n * Run on Thursday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Thursday\"] = 8] = \"Thursday\";\r\n /**\r\n * Run on Friday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Friday\"] = 16] = \"Friday\";\r\n /**\r\n * Run on Saturday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Saturday\"] = 32] = \"Saturday\";\r\n /**\r\n * Run on Sunday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Sunday\"] = 64] = \"Sunday\";\r\n /**\r\n * Run on all days of the week.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"All\"] = 127] = \"All\";\r\n})(TaskAgentPoolMaintenanceScheduleDays = exports.TaskAgentPoolMaintenanceScheduleDays || (exports.TaskAgentPoolMaintenanceScheduleDays = {}));\r\n/**\r\n * Additional settings and descriptors for a TaskAgentPool\r\n */\r\nvar TaskAgentPoolOptions;\r\n(function (TaskAgentPoolOptions) {\r\n TaskAgentPoolOptions[TaskAgentPoolOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * TaskAgentPool backed by the Elastic pool service\r\n */\r\n TaskAgentPoolOptions[TaskAgentPoolOptions[\"ElasticPool\"] = 1] = \"ElasticPool\";\r\n /**\r\n * Set to true if agents are re-imaged after each TaskAgentJobRequest\r\n */\r\n TaskAgentPoolOptions[TaskAgentPoolOptions[\"SingleUseAgents\"] = 2] = \"SingleUseAgents\";\r\n /**\r\n * Set to true if agents are held for investigation after a TaskAgentJobRequest failure\r\n */\r\n TaskAgentPoolOptions[TaskAgentPoolOptions[\"PreserveAgentOnJobFailure\"] = 4] = \"PreserveAgentOnJobFailure\";\r\n})(TaskAgentPoolOptions = exports.TaskAgentPoolOptions || (exports.TaskAgentPoolOptions = {}));\r\n/**\r\n * The type of agent pool.\r\n */\r\nvar TaskAgentPoolType;\r\n(function (TaskAgentPoolType) {\r\n /**\r\n * A typical pool of task agents\r\n */\r\n TaskAgentPoolType[TaskAgentPoolType[\"Automation\"] = 1] = \"Automation\";\r\n /**\r\n * A deployment pool\r\n */\r\n TaskAgentPoolType[TaskAgentPoolType[\"Deployment\"] = 2] = \"Deployment\";\r\n})(TaskAgentPoolType = exports.TaskAgentPoolType || (exports.TaskAgentPoolType = {}));\r\n/**\r\n * Filters queues based on whether the calling user has permission to use or manage the queue.\r\n */\r\nvar TaskAgentQueueActionFilter;\r\n(function (TaskAgentQueueActionFilter) {\r\n TaskAgentQueueActionFilter[TaskAgentQueueActionFilter[\"None\"] = 0] = \"None\";\r\n TaskAgentQueueActionFilter[TaskAgentQueueActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n TaskAgentQueueActionFilter[TaskAgentQueueActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(TaskAgentQueueActionFilter = exports.TaskAgentQueueActionFilter || (exports.TaskAgentQueueActionFilter = {}));\r\nvar TaskAgentRequestUpdateOptions;\r\n(function (TaskAgentRequestUpdateOptions) {\r\n TaskAgentRequestUpdateOptions[TaskAgentRequestUpdateOptions[\"None\"] = 0] = \"None\";\r\n TaskAgentRequestUpdateOptions[TaskAgentRequestUpdateOptions[\"BumpRequestToTop\"] = 1] = \"BumpRequestToTop\";\r\n})(TaskAgentRequestUpdateOptions = exports.TaskAgentRequestUpdateOptions || (exports.TaskAgentRequestUpdateOptions = {}));\r\nvar TaskAgentStatus;\r\n(function (TaskAgentStatus) {\r\n TaskAgentStatus[TaskAgentStatus[\"Offline\"] = 1] = \"Offline\";\r\n TaskAgentStatus[TaskAgentStatus[\"Online\"] = 2] = \"Online\";\r\n})(TaskAgentStatus = exports.TaskAgentStatus || (exports.TaskAgentStatus = {}));\r\n/**\r\n * This is useful in getting a list of deployment targets, filtered by the deployment agent status.\r\n */\r\nvar TaskAgentStatusFilter;\r\n(function (TaskAgentStatusFilter) {\r\n /**\r\n * Only deployment targets that are offline.\r\n */\r\n TaskAgentStatusFilter[TaskAgentStatusFilter[\"Offline\"] = 1] = \"Offline\";\r\n /**\r\n * Only deployment targets that are online.\r\n */\r\n TaskAgentStatusFilter[TaskAgentStatusFilter[\"Online\"] = 2] = \"Online\";\r\n /**\r\n * All deployment targets.\r\n */\r\n TaskAgentStatusFilter[TaskAgentStatusFilter[\"All\"] = 3] = \"All\";\r\n})(TaskAgentStatusFilter = exports.TaskAgentStatusFilter || (exports.TaskAgentStatusFilter = {}));\r\nvar TaskAgentUpdateReasonType;\r\n(function (TaskAgentUpdateReasonType) {\r\n TaskAgentUpdateReasonType[TaskAgentUpdateReasonType[\"Manual\"] = 1] = \"Manual\";\r\n TaskAgentUpdateReasonType[TaskAgentUpdateReasonType[\"MinAgentVersionRequired\"] = 2] = \"MinAgentVersionRequired\";\r\n TaskAgentUpdateReasonType[TaskAgentUpdateReasonType[\"Downgrade\"] = 3] = \"Downgrade\";\r\n})(TaskAgentUpdateReasonType = exports.TaskAgentUpdateReasonType || (exports.TaskAgentUpdateReasonType = {}));\r\nvar TaskCommandMode;\r\n(function (TaskCommandMode) {\r\n TaskCommandMode[TaskCommandMode[\"Any\"] = 0] = \"Any\";\r\n TaskCommandMode[TaskCommandMode[\"Restricted\"] = 1] = \"Restricted\";\r\n})(TaskCommandMode = exports.TaskCommandMode || (exports.TaskCommandMode = {}));\r\nvar TaskDefinitionStatus;\r\n(function (TaskDefinitionStatus) {\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"Preinstalled\"] = 1] = \"Preinstalled\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"ReceivedInstallOrUpdate\"] = 2] = \"ReceivedInstallOrUpdate\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"Installed\"] = 3] = \"Installed\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"ReceivedUninstall\"] = 4] = \"ReceivedUninstall\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"Uninstalled\"] = 5] = \"Uninstalled\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"RequestedUpdate\"] = 6] = \"RequestedUpdate\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"Updated\"] = 7] = \"Updated\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"AlreadyUpToDate\"] = 8] = \"AlreadyUpToDate\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"InlineUpdateReceived\"] = 9] = \"InlineUpdateReceived\";\r\n})(TaskDefinitionStatus = exports.TaskDefinitionStatus || (exports.TaskDefinitionStatus = {}));\r\nvar TaskGroupExpands;\r\n(function (TaskGroupExpands) {\r\n TaskGroupExpands[TaskGroupExpands[\"None\"] = 0] = \"None\";\r\n TaskGroupExpands[TaskGroupExpands[\"Tasks\"] = 2] = \"Tasks\";\r\n})(TaskGroupExpands = exports.TaskGroupExpands || (exports.TaskGroupExpands = {}));\r\n/**\r\n * Specifies the desired ordering of taskGroups.\r\n */\r\nvar TaskGroupQueryOrder;\r\n(function (TaskGroupQueryOrder) {\r\n /**\r\n * Order by createdon ascending.\r\n */\r\n TaskGroupQueryOrder[TaskGroupQueryOrder[\"CreatedOnAscending\"] = 0] = \"CreatedOnAscending\";\r\n /**\r\n * Order by createdon descending.\r\n */\r\n TaskGroupQueryOrder[TaskGroupQueryOrder[\"CreatedOnDescending\"] = 1] = \"CreatedOnDescending\";\r\n})(TaskGroupQueryOrder = exports.TaskGroupQueryOrder || (exports.TaskGroupQueryOrder = {}));\r\nvar TaskOrchestrationItemType;\r\n(function (TaskOrchestrationItemType) {\r\n TaskOrchestrationItemType[TaskOrchestrationItemType[\"Container\"] = 0] = \"Container\";\r\n TaskOrchestrationItemType[TaskOrchestrationItemType[\"Job\"] = 1] = \"Job\";\r\n})(TaskOrchestrationItemType = exports.TaskOrchestrationItemType || (exports.TaskOrchestrationItemType = {}));\r\nvar TaskOrchestrationPlanState;\r\n(function (TaskOrchestrationPlanState) {\r\n TaskOrchestrationPlanState[TaskOrchestrationPlanState[\"InProgress\"] = 1] = \"InProgress\";\r\n TaskOrchestrationPlanState[TaskOrchestrationPlanState[\"Queued\"] = 2] = \"Queued\";\r\n TaskOrchestrationPlanState[TaskOrchestrationPlanState[\"Completed\"] = 4] = \"Completed\";\r\n TaskOrchestrationPlanState[TaskOrchestrationPlanState[\"Throttled\"] = 8] = \"Throttled\";\r\n})(TaskOrchestrationPlanState = exports.TaskOrchestrationPlanState || (exports.TaskOrchestrationPlanState = {}));\r\nvar TaskResult;\r\n(function (TaskResult) {\r\n TaskResult[TaskResult[\"Succeeded\"] = 0] = \"Succeeded\";\r\n TaskResult[TaskResult[\"SucceededWithIssues\"] = 1] = \"SucceededWithIssues\";\r\n TaskResult[TaskResult[\"Failed\"] = 2] = \"Failed\";\r\n TaskResult[TaskResult[\"Canceled\"] = 3] = \"Canceled\";\r\n TaskResult[TaskResult[\"Skipped\"] = 4] = \"Skipped\";\r\n TaskResult[TaskResult[\"Abandoned\"] = 5] = \"Abandoned\";\r\n})(TaskResult = exports.TaskResult || (exports.TaskResult = {}));\r\nvar TimelineRecordState;\r\n(function (TimelineRecordState) {\r\n TimelineRecordState[TimelineRecordState[\"Pending\"] = 0] = \"Pending\";\r\n TimelineRecordState[TimelineRecordState[\"InProgress\"] = 1] = \"InProgress\";\r\n TimelineRecordState[TimelineRecordState[\"Completed\"] = 2] = \"Completed\";\r\n})(TimelineRecordState = exports.TimelineRecordState || (exports.TimelineRecordState = {}));\r\nvar VariableGroupActionFilter;\r\n(function (VariableGroupActionFilter) {\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"None\"] = 0] = \"None\";\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(VariableGroupActionFilter = exports.VariableGroupActionFilter || (exports.VariableGroupActionFilter = {}));\r\n/**\r\n * Specifies the desired ordering of variableGroups.\r\n */\r\nvar VariableGroupQueryOrder;\r\n(function (VariableGroupQueryOrder) {\r\n /**\r\n * Order by id ascending.\r\n */\r\n VariableGroupQueryOrder[VariableGroupQueryOrder[\"IdAscending\"] = 0] = \"IdAscending\";\r\n /**\r\n * Order by id descending.\r\n */\r\n VariableGroupQueryOrder[VariableGroupQueryOrder[\"IdDescending\"] = 1] = \"IdDescending\";\r\n})(VariableGroupQueryOrder = exports.VariableGroupQueryOrder || (exports.VariableGroupQueryOrder = {}));\r\nexports.TypeInfo = {\r\n AadLoginPromptOption: {\r\n enumValues: {\r\n \"noOption\": 0,\r\n \"login\": 1,\r\n \"selectAccount\": 2,\r\n \"freshLogin\": 3,\r\n \"freshLoginWithMfa\": 4\r\n }\r\n },\r\n AgentChangeEvent: {},\r\n AgentJobRequestMessage: {},\r\n AgentPoolEvent: {},\r\n AgentQueueEvent: {},\r\n AgentQueuesEvent: {},\r\n AuditAction: {\r\n enumValues: {\r\n \"add\": 1,\r\n \"update\": 2,\r\n \"delete\": 3,\r\n \"undelete\": 4\r\n }\r\n },\r\n AzureKeyVaultVariableGroupProviderData: {},\r\n AzureKeyVaultVariableValue: {},\r\n DemandMinimumVersion: {},\r\n DemandSource: {},\r\n DemandSourceType: {\r\n enumValues: {\r\n \"task\": 0,\r\n \"feature\": 1\r\n }\r\n },\r\n DeploymentGroup: {},\r\n DeploymentGroupActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n DeploymentGroupExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"machines\": 2,\r\n \"tags\": 4\r\n }\r\n },\r\n DeploymentGroupMetrics: {},\r\n DeploymentGroupReference: {},\r\n DeploymentMachine: {},\r\n DeploymentMachineChangedData: {},\r\n DeploymentMachineExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"capabilities\": 2,\r\n \"assignedRequest\": 4\r\n }\r\n },\r\n DeploymentMachineGroup: {},\r\n DeploymentMachineGroupReference: {},\r\n DeploymentMachinesChangeEvent: {},\r\n DeploymentPoolSummary: {},\r\n DeploymentPoolSummaryExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"deploymentGroups\": 2,\r\n \"resource\": 4\r\n }\r\n },\r\n DeploymentTargetExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"capabilities\": 2,\r\n \"assignedRequest\": 4,\r\n \"lastCompletedRequest\": 8\r\n }\r\n },\r\n ElasticAgentState: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"enabled\": 1,\r\n \"online\": 2,\r\n \"assigned\": 4\r\n }\r\n },\r\n ElasticComputeState: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"healthy\": 1,\r\n \"creating\": 2,\r\n \"deleting\": 3,\r\n \"failed\": 4,\r\n \"stopped\": 5\r\n }\r\n },\r\n ElasticNode: {},\r\n ElasticNodeSettings: {},\r\n ElasticNodeState: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"new\": 1,\r\n \"creatingCompute\": 2,\r\n \"startingAgent\": 3,\r\n \"idle\": 4,\r\n \"assigned\": 5,\r\n \"offline\": 6,\r\n \"pendingReimage\": 7,\r\n \"pendingDelete\": 8,\r\n \"saved\": 9,\r\n \"deletingCompute\": 10,\r\n \"deleted\": 11,\r\n \"lost\": 12\r\n }\r\n },\r\n ElasticPool: {},\r\n ElasticPoolCreationResult: {},\r\n ElasticPoolLog: {},\r\n ElasticPoolSettings: {},\r\n ElasticPoolState: {\r\n enumValues: {\r\n \"online\": 0,\r\n \"offline\": 1,\r\n \"unhealthy\": 2,\r\n \"new\": 3\r\n }\r\n },\r\n EnvironmentActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n EnvironmentDeploymentExecutionRecord: {},\r\n EnvironmentExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"resourceReferences\": 1\r\n }\r\n },\r\n EnvironmentInstance: {},\r\n EnvironmentResource: {},\r\n EnvironmentResourceDeploymentExecutionRecord: {},\r\n EnvironmentResourceReference: {},\r\n EnvironmentResourceType: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"generic\": 1,\r\n \"virtualMachine\": 2,\r\n \"kubernetes\": 4\r\n }\r\n },\r\n Issue: {},\r\n IssueType: {\r\n enumValues: {\r\n \"error\": 1,\r\n \"warning\": 2\r\n }\r\n },\r\n JobAssignedEvent: {},\r\n JobCompletedEvent: {},\r\n JobEnvironment: {},\r\n JobRequestMessage: {},\r\n KubernetesResource: {},\r\n LogLevel: {\r\n enumValues: {\r\n \"error\": 0,\r\n \"warning\": 1,\r\n \"info\": 2\r\n }\r\n },\r\n MachineGroupActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n MaskHint: {},\r\n MaskType: {\r\n enumValues: {\r\n \"variable\": 1,\r\n \"regex\": 2\r\n }\r\n },\r\n OperatingSystemType: {\r\n enumValues: {\r\n \"windows\": 0,\r\n \"linux\": 1\r\n }\r\n },\r\n OperationType: {\r\n enumValues: {\r\n \"configurationJob\": 0,\r\n \"sizingJob\": 1,\r\n \"increaseCapacity\": 2,\r\n \"reimage\": 3,\r\n \"deleteVMs\": 4\r\n }\r\n },\r\n PackageMetadata: {},\r\n PlanEnvironment: {},\r\n PlanGroupStatus: {\r\n enumValues: {\r\n \"running\": 1,\r\n \"queued\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n PlanGroupStatusFilter: {\r\n enumValues: {\r\n \"running\": 1,\r\n \"queued\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n ResourceLockRequest: {},\r\n ResourceLockStatus: {\r\n enumValues: {\r\n \"queued\": 0,\r\n \"inUse\": 1,\r\n \"finished\": 2,\r\n \"timedOut\": 3,\r\n \"canceled\": 4,\r\n \"abandoned\": 5\r\n }\r\n },\r\n ResourceUsage: {},\r\n SecureFile: {},\r\n SecureFileActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n SecureFileEvent: {},\r\n ServerTaskRequestMessage: {},\r\n ServiceEndpointAuthenticationScheme: {},\r\n ServiceEndpointExecutionData: {},\r\n ServiceEndpointExecutionRecord: {},\r\n ServiceEndpointExecutionRecordsInput: {},\r\n ServiceEndpointRequestResult: {},\r\n ServiceEndpointType: {},\r\n TaskAgent: {},\r\n TaskAgentCloudRequest: {},\r\n TaskAgentCloudType: {},\r\n TaskAgentDowngrade: {},\r\n TaskAgentJob: {},\r\n TaskAgentJobRequest: {},\r\n TaskAgentJobResultFilter: {\r\n enumValues: {\r\n \"failed\": 1,\r\n \"passed\": 2,\r\n \"neverDeployed\": 4,\r\n \"all\": 7\r\n }\r\n },\r\n TaskAgentJobStep: {},\r\n TaskAgentJobStepType: {\r\n enumValues: {\r\n \"task\": 1,\r\n \"action\": 2\r\n }\r\n },\r\n TaskAgentManualUpdate: {},\r\n TaskAgentMinAgentVersionRequiredUpdate: {},\r\n TaskAgentPool: {},\r\n TaskAgentPoolActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n TaskAgentPoolMaintenanceDefinition: {},\r\n TaskAgentPoolMaintenanceJob: {},\r\n TaskAgentPoolMaintenanceJobResult: {\r\n enumValues: {\r\n \"succeeded\": 1,\r\n \"failed\": 2,\r\n \"canceled\": 4\r\n }\r\n },\r\n TaskAgentPoolMaintenanceJobStatus: {\r\n enumValues: {\r\n \"inProgress\": 1,\r\n \"completed\": 2,\r\n \"cancelling\": 4,\r\n \"queued\": 8\r\n }\r\n },\r\n TaskAgentPoolMaintenanceJobTargetAgent: {},\r\n TaskAgentPoolMaintenanceSchedule: {},\r\n TaskAgentPoolMaintenanceScheduleDays: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"monday\": 1,\r\n \"tuesday\": 2,\r\n \"wednesday\": 4,\r\n \"thursday\": 8,\r\n \"friday\": 16,\r\n \"saturday\": 32,\r\n \"sunday\": 64,\r\n \"all\": 127\r\n }\r\n },\r\n TaskAgentPoolOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"elasticPool\": 1,\r\n \"singleUseAgents\": 2,\r\n \"preserveAgentOnJobFailure\": 4\r\n }\r\n },\r\n TaskAgentPoolReference: {},\r\n TaskAgentPoolStatus: {},\r\n TaskAgentPoolSummary: {},\r\n TaskAgentPoolType: {\r\n enumValues: {\r\n \"automation\": 1,\r\n \"deployment\": 2\r\n }\r\n },\r\n TaskAgentQueue: {},\r\n TaskAgentQueueActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n TaskAgentReference: {},\r\n TaskAgentRequestUpdateOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"bumpRequestToTop\": 1\r\n }\r\n },\r\n TaskAgentSession: {},\r\n TaskAgentStatus: {\r\n enumValues: {\r\n \"offline\": 1,\r\n \"online\": 2\r\n }\r\n },\r\n TaskAgentStatusFilter: {\r\n enumValues: {\r\n \"offline\": 1,\r\n \"online\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n TaskAgentUpdate: {},\r\n TaskAgentUpdateReason: {},\r\n TaskAgentUpdateReasonType: {\r\n enumValues: {\r\n \"manual\": 1,\r\n \"minAgentVersionRequired\": 2,\r\n \"downgrade\": 3\r\n }\r\n },\r\n TaskAttachment: {},\r\n TaskCommandMode: {\r\n enumValues: {\r\n \"any\": 0,\r\n \"restricted\": 1\r\n }\r\n },\r\n TaskCommandRestrictions: {},\r\n TaskCompletedEvent: {},\r\n TaskDefinition: {},\r\n TaskDefinitionStatus: {\r\n enumValues: {\r\n \"preinstalled\": 1,\r\n \"receivedInstallOrUpdate\": 2,\r\n \"installed\": 3,\r\n \"receivedUninstall\": 4,\r\n \"uninstalled\": 5,\r\n \"requestedUpdate\": 6,\r\n \"updated\": 7,\r\n \"alreadyUpToDate\": 8,\r\n \"inlineUpdateReceived\": 9\r\n }\r\n },\r\n TaskGroup: {},\r\n TaskGroupExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"tasks\": 2\r\n }\r\n },\r\n TaskGroupQueryOrder: {\r\n enumValues: {\r\n \"createdOnAscending\": 0,\r\n \"createdOnDescending\": 1\r\n }\r\n },\r\n TaskGroupRevision: {},\r\n TaskLog: {},\r\n TaskOrchestrationContainer: {},\r\n TaskOrchestrationItem: {},\r\n TaskOrchestrationItemType: {\r\n enumValues: {\r\n \"container\": 0,\r\n \"job\": 1\r\n }\r\n },\r\n TaskOrchestrationJob: {},\r\n TaskOrchestrationPlan: {},\r\n TaskOrchestrationPlanGroup: {},\r\n TaskOrchestrationPlanGroupsQueueMetrics: {},\r\n TaskOrchestrationPlanState: {\r\n enumValues: {\r\n \"inProgress\": 1,\r\n \"queued\": 2,\r\n \"completed\": 4,\r\n \"throttled\": 8\r\n }\r\n },\r\n TaskOrchestrationQueuedPlan: {},\r\n TaskOrchestrationQueuedPlanGroup: {},\r\n TaskRestrictions: {},\r\n TaskResult: {\r\n enumValues: {\r\n \"succeeded\": 0,\r\n \"succeededWithIssues\": 1,\r\n \"failed\": 2,\r\n \"canceled\": 3,\r\n \"skipped\": 4,\r\n \"abandoned\": 5\r\n }\r\n },\r\n Timeline: {},\r\n TimelineRecord: {},\r\n TimelineRecordState: {\r\n enumValues: {\r\n \"pending\": 0,\r\n \"inProgress\": 1,\r\n \"completed\": 2\r\n }\r\n },\r\n VariableGroup: {},\r\n VariableGroupActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n VariableGroupQueryOrder: {\r\n enumValues: {\r\n \"idAscending\": 0,\r\n \"idDescending\": 1\r\n }\r\n },\r\n VirtualMachine: {},\r\n VirtualMachineGroup: {},\r\n VirtualMachineResource: {},\r\n VirtualMachineResourceCreateParameters: {},\r\n};\r\nexports.TypeInfo.AgentChangeEvent.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgent\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n timeStamp: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AgentJobRequestMessage.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.JobEnvironment\r\n },\r\n lockedUntil: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AgentPoolEvent.fields = {\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPool\r\n }\r\n};\r\nexports.TypeInfo.AgentQueueEvent.fields = {\r\n queue: {\r\n typeInfo: exports.TypeInfo.TaskAgentQueue\r\n }\r\n};\r\nexports.TypeInfo.AgentQueuesEvent.fields = {\r\n queues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentQueue\r\n }\r\n};\r\nexports.TypeInfo.AzureKeyVaultVariableGroupProviderData.fields = {\r\n lastRefreshedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AzureKeyVaultVariableValue.fields = {\r\n expires: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.DemandMinimumVersion.fields = {\r\n source: {\r\n typeInfo: exports.TypeInfo.DemandSource\r\n }\r\n};\r\nexports.TypeInfo.DemandSource.fields = {\r\n sourceType: {\r\n enumType: exports.TypeInfo.DemandSourceType\r\n }\r\n};\r\nexports.TypeInfo.DeploymentGroup.fields = {\r\n machines: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentMachine\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n }\r\n};\r\nexports.TypeInfo.DeploymentGroupMetrics.fields = {\r\n deploymentGroup: {\r\n typeInfo: exports.TypeInfo.DeploymentGroupReference\r\n }\r\n};\r\nexports.TypeInfo.DeploymentGroupReference.fields = {\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n }\r\n};\r\nexports.TypeInfo.DeploymentMachine.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgent\r\n }\r\n};\r\nexports.TypeInfo.DeploymentMachineChangedData.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgent\r\n }\r\n};\r\nexports.TypeInfo.DeploymentMachineGroup.fields = {\r\n machines: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentMachine\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n }\r\n};\r\nexports.TypeInfo.DeploymentMachineGroupReference.fields = {\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n }\r\n};\r\nexports.TypeInfo.DeploymentMachinesChangeEvent.fields = {\r\n machineGroupReference: {\r\n typeInfo: exports.TypeInfo.DeploymentGroupReference\r\n },\r\n machines: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentMachineChangedData\r\n }\r\n};\r\nexports.TypeInfo.DeploymentPoolSummary.fields = {\r\n deploymentGroups: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentGroupReference\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n resource: {\r\n typeInfo: exports.TypeInfo.EnvironmentResourceReference\r\n }\r\n};\r\nexports.TypeInfo.ElasticNode.fields = {\r\n agentState: {\r\n enumType: exports.TypeInfo.ElasticAgentState\r\n },\r\n computeState: {\r\n enumType: exports.TypeInfo.ElasticComputeState\r\n },\r\n desiredState: {\r\n enumType: exports.TypeInfo.ElasticNodeState\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.ElasticNodeState\r\n },\r\n stateChangedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ElasticNodeSettings.fields = {\r\n state: {\r\n enumType: exports.TypeInfo.ElasticNodeState\r\n }\r\n};\r\nexports.TypeInfo.ElasticPool.fields = {\r\n offlineSince: {\r\n isDate: true,\r\n },\r\n osType: {\r\n enumType: exports.TypeInfo.OperatingSystemType\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.ElasticPoolState\r\n }\r\n};\r\nexports.TypeInfo.ElasticPoolCreationResult.fields = {\r\n agentPool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPool\r\n },\r\n agentQueue: {\r\n typeInfo: exports.TypeInfo.TaskAgentQueue\r\n },\r\n elasticPool: {\r\n typeInfo: exports.TypeInfo.ElasticPool\r\n }\r\n};\r\nexports.TypeInfo.ElasticPoolLog.fields = {\r\n level: {\r\n enumType: exports.TypeInfo.LogLevel\r\n },\r\n operation: {\r\n enumType: exports.TypeInfo.OperationType\r\n },\r\n timestamp: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ElasticPoolSettings.fields = {\r\n osType: {\r\n enumType: exports.TypeInfo.OperatingSystemType\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentDeploymentExecutionRecord.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentInstance.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n resources: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.EnvironmentResourceReference\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentResource.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.EnvironmentResourceType\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentResourceDeploymentExecutionRecord.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentResourceReference.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.EnvironmentResourceType\r\n }\r\n};\r\nexports.TypeInfo.Issue.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.IssueType\r\n }\r\n};\r\nexports.TypeInfo.JobAssignedEvent.fields = {\r\n request: {\r\n typeInfo: exports.TypeInfo.TaskAgentJobRequest\r\n }\r\n};\r\nexports.TypeInfo.JobCompletedEvent.fields = {\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n }\r\n};\r\nexports.TypeInfo.JobEnvironment.fields = {\r\n mask: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.MaskHint\r\n },\r\n secureFiles: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.SecureFile\r\n }\r\n};\r\nexports.TypeInfo.JobRequestMessage.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.JobEnvironment\r\n }\r\n};\r\nexports.TypeInfo.KubernetesResource.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.EnvironmentResourceType\r\n }\r\n};\r\nexports.TypeInfo.MaskHint.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.MaskType\r\n }\r\n};\r\nexports.TypeInfo.PackageMetadata.fields = {\r\n createdOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.PlanEnvironment.fields = {\r\n mask: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.MaskHint\r\n }\r\n};\r\nexports.TypeInfo.ResourceLockRequest.fields = {\r\n assignTime: {\r\n isDate: true,\r\n },\r\n finishTime: {\r\n isDate: true,\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ResourceLockStatus\r\n }\r\n};\r\nexports.TypeInfo.ResourceUsage.fields = {\r\n runningRequests: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentJobRequest\r\n }\r\n};\r\nexports.TypeInfo.SecureFile.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SecureFileEvent.fields = {\r\n secureFiles: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.SecureFile\r\n }\r\n};\r\nexports.TypeInfo.ServerTaskRequestMessage.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.JobEnvironment\r\n },\r\n taskDefinition: {\r\n typeInfo: exports.TypeInfo.TaskDefinition\r\n }\r\n};\r\nexports.TypeInfo.ServiceEndpointAuthenticationScheme.fields = {\r\n inputDescriptors: {\r\n isArray: true,\r\n typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor\r\n }\r\n};\r\nexports.TypeInfo.ServiceEndpointExecutionData.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ServiceEndpointExecutionRecord.fields = {\r\n data: {\r\n typeInfo: exports.TypeInfo.ServiceEndpointExecutionData\r\n }\r\n};\r\nexports.TypeInfo.ServiceEndpointExecutionRecordsInput.fields = {\r\n data: {\r\n typeInfo: exports.TypeInfo.ServiceEndpointExecutionData\r\n }\r\n};\r\nexports.TypeInfo.ServiceEndpointRequestResult.fields = {};\r\nexports.TypeInfo.ServiceEndpointType.fields = {\r\n authenticationSchemes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ServiceEndpointAuthenticationScheme\r\n },\r\n inputDescriptors: {\r\n isArray: true,\r\n typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor\r\n }\r\n};\r\nexports.TypeInfo.TaskAgent.fields = {\r\n assignedAgentCloudRequest: {\r\n typeInfo: exports.TypeInfo.TaskAgentCloudRequest\r\n },\r\n assignedRequest: {\r\n typeInfo: exports.TypeInfo.TaskAgentJobRequest\r\n },\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastCompletedRequest: {\r\n typeInfo: exports.TypeInfo.TaskAgentJobRequest\r\n },\r\n pendingUpdate: {\r\n typeInfo: exports.TypeInfo.TaskAgentUpdate\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.TaskAgentStatus\r\n },\r\n statusChangedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentCloudRequest.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgentReference\r\n },\r\n agentConnectedTime: {\r\n isDate: true,\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n provisionedTime: {\r\n isDate: true,\r\n },\r\n provisionRequestTime: {\r\n isDate: true,\r\n },\r\n releaseRequestTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentCloudType.fields = {\r\n inputDescriptors: {\r\n isArray: true,\r\n typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentDowngrade.fields = {\r\n code: {\r\n enumType: exports.TypeInfo.TaskAgentUpdateReasonType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentJob.fields = {\r\n steps: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentJobStep\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentJobRequest.fields = {\r\n assignTime: {\r\n isDate: true,\r\n },\r\n finishTime: {\r\n isDate: true,\r\n },\r\n lockedUntil: {\r\n isDate: true,\r\n },\r\n matchedAgents: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentReference\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n receiveTime: {\r\n isDate: true,\r\n },\r\n reservedAgent: {\r\n typeInfo: exports.TypeInfo.TaskAgentReference\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentJobStep.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.TaskAgentJobStepType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentManualUpdate.fields = {\r\n code: {\r\n enumType: exports.TypeInfo.TaskAgentUpdateReasonType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentMinAgentVersionRequiredUpdate.fields = {\r\n code: {\r\n enumType: exports.TypeInfo.TaskAgentUpdateReasonType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPool.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n options: {\r\n enumType: exports.TypeInfo.TaskAgentPoolOptions\r\n },\r\n poolType: {\r\n enumType: exports.TypeInfo.TaskAgentPoolType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolMaintenanceDefinition.fields = {\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n scheduleSetting: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolMaintenanceSchedule\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolMaintenanceJob.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobStatus\r\n },\r\n targetAgents: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentPoolMaintenanceJobTargetAgent\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolMaintenanceJobTargetAgent.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgentReference\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobResult\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobStatus\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolMaintenanceSchedule.fields = {\r\n daysToBuild: {\r\n enumType: exports.TypeInfo.TaskAgentPoolMaintenanceScheduleDays\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolReference.fields = {\r\n options: {\r\n enumType: exports.TypeInfo.TaskAgentPoolOptions\r\n },\r\n poolType: {\r\n enumType: exports.TypeInfo.TaskAgentPoolType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolStatus.fields = {\r\n options: {\r\n enumType: exports.TypeInfo.TaskAgentPoolOptions\r\n },\r\n poolType: {\r\n enumType: exports.TypeInfo.TaskAgentPoolType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolSummary.fields = {\r\n deploymentGroups: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentGroupReference\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n queues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentQueue\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentQueue.fields = {\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentReference.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.TaskAgentStatus\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentSession.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgentReference\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentUpdate.fields = {\r\n reason: {\r\n typeInfo: exports.TypeInfo.TaskAgentUpdateReason\r\n },\r\n requestTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentUpdateReason.fields = {\r\n code: {\r\n enumType: exports.TypeInfo.TaskAgentUpdateReasonType\r\n }\r\n};\r\nexports.TypeInfo.TaskAttachment.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastChangedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskCommandRestrictions.fields = {\r\n mode: {\r\n enumType: exports.TypeInfo.TaskCommandMode\r\n }\r\n};\r\nexports.TypeInfo.TaskCompletedEvent.fields = {\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n }\r\n};\r\nexports.TypeInfo.TaskDefinition.fields = {\r\n restrictions: {\r\n typeInfo: exports.TypeInfo.TaskRestrictions\r\n }\r\n};\r\nexports.TypeInfo.TaskGroup.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n restrictions: {\r\n typeInfo: exports.TypeInfo.TaskRestrictions\r\n }\r\n};\r\nexports.TypeInfo.TaskGroupRevision.fields = {\r\n changedDate: {\r\n isDate: true,\r\n },\r\n changeType: {\r\n enumType: exports.TypeInfo.AuditAction\r\n }\r\n};\r\nexports.TypeInfo.TaskLog.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastChangedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationContainer.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskOrchestrationItem\r\n },\r\n itemType: {\r\n enumType: exports.TypeInfo.TaskOrchestrationItemType\r\n },\r\n rollback: {\r\n typeInfo: exports.TypeInfo.TaskOrchestrationContainer\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationItem.fields = {\r\n itemType: {\r\n enumType: exports.TypeInfo.TaskOrchestrationItemType\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationJob.fields = {\r\n itemType: {\r\n enumType: exports.TypeInfo.TaskOrchestrationItemType\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationPlan.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.PlanEnvironment\r\n },\r\n finishTime: {\r\n isDate: true,\r\n },\r\n implementation: {\r\n typeInfo: exports.TypeInfo.TaskOrchestrationContainer\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TaskOrchestrationPlanState\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationPlanGroup.fields = {\r\n runningRequests: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentJobRequest\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationPlanGroupsQueueMetrics.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.PlanGroupStatus\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationQueuedPlan.fields = {\r\n assignTime: {\r\n isDate: true,\r\n },\r\n queueTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationQueuedPlanGroup.fields = {\r\n plans: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskOrchestrationQueuedPlan\r\n }\r\n};\r\nexports.TypeInfo.TaskRestrictions.fields = {\r\n commands: {\r\n typeInfo: exports.TypeInfo.TaskCommandRestrictions\r\n }\r\n};\r\nexports.TypeInfo.Timeline.fields = {\r\n lastChangedOn: {\r\n isDate: true,\r\n },\r\n records: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineRecord\r\n }\r\n};\r\nexports.TypeInfo.TimelineRecord.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n issues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Issue\r\n },\r\n lastModified: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TimelineRecordState\r\n }\r\n};\r\nexports.TypeInfo.VariableGroup.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.VirtualMachine.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgent\r\n }\r\n};\r\nexports.TypeInfo.VirtualMachineGroup.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.EnvironmentResourceType\r\n }\r\n};\r\nexports.TypeInfo.VirtualMachineResource.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgent\r\n },\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.EnvironmentResourceType\r\n }\r\n};\r\nexports.TypeInfo.VirtualMachineResourceCreateParameters.fields = {\r\n virtualMachineResource: {\r\n typeInfo: exports.TypeInfo.VirtualMachineResource\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst SystemData = require(\"../interfaces/common/SystemDataInterfaces\");\r\nconst TfsCoreInterfaces = require(\"../interfaces/CoreInterfaces\");\r\n/**\r\n * The types of test attachments.\r\n */\r\nvar AttachmentType;\r\n(function (AttachmentType) {\r\n /**\r\n * Attachment type GeneralAttachment , use this as default type unless you have other type.\r\n */\r\n AttachmentType[AttachmentType[\"GeneralAttachment\"] = 0] = \"GeneralAttachment\";\r\n AttachmentType[AttachmentType[\"AfnStrip\"] = 1] = \"AfnStrip\";\r\n AttachmentType[AttachmentType[\"BugFilingData\"] = 2] = \"BugFilingData\";\r\n /**\r\n * Attachment type CodeCoverage.\r\n */\r\n AttachmentType[AttachmentType[\"CodeCoverage\"] = 3] = \"CodeCoverage\";\r\n AttachmentType[AttachmentType[\"IntermediateCollectorData\"] = 4] = \"IntermediateCollectorData\";\r\n AttachmentType[AttachmentType[\"RunConfig\"] = 5] = \"RunConfig\";\r\n AttachmentType[AttachmentType[\"TestImpactDetails\"] = 6] = \"TestImpactDetails\";\r\n AttachmentType[AttachmentType[\"TmiTestRunDeploymentFiles\"] = 7] = \"TmiTestRunDeploymentFiles\";\r\n AttachmentType[AttachmentType[\"TmiTestRunReverseDeploymentFiles\"] = 8] = \"TmiTestRunReverseDeploymentFiles\";\r\n AttachmentType[AttachmentType[\"TmiTestResultDetail\"] = 9] = \"TmiTestResultDetail\";\r\n AttachmentType[AttachmentType[\"TmiTestRunSummary\"] = 10] = \"TmiTestRunSummary\";\r\n /**\r\n * Attachment type ConsoleLog.\r\n */\r\n AttachmentType[AttachmentType[\"ConsoleLog\"] = 11] = \"ConsoleLog\";\r\n})(AttachmentType = exports.AttachmentType || (exports.AttachmentType = {}));\r\n/**\r\n * Enum of type Clone Operation Type.\r\n */\r\nvar CloneOperationState;\r\n(function (CloneOperationState) {\r\n /**\r\n * value for Failed State\r\n */\r\n CloneOperationState[CloneOperationState[\"Failed\"] = 2] = \"Failed\";\r\n /**\r\n * value for Inprogress state\r\n */\r\n CloneOperationState[CloneOperationState[\"InProgress\"] = 1] = \"InProgress\";\r\n /**\r\n * Value for Queued State\r\n */\r\n CloneOperationState[CloneOperationState[\"Queued\"] = 0] = \"Queued\";\r\n /**\r\n * value for Success state\r\n */\r\n CloneOperationState[CloneOperationState[\"Succeeded\"] = 3] = \"Succeeded\";\r\n})(CloneOperationState = exports.CloneOperationState || (exports.CloneOperationState = {}));\r\n/**\r\n * Used to choose which coverage data is returned by a QueryXXXCoverage() call.\r\n */\r\nvar CoverageQueryFlags;\r\n(function (CoverageQueryFlags) {\r\n /**\r\n * If set, the Coverage.Modules property will be populated.\r\n */\r\n CoverageQueryFlags[CoverageQueryFlags[\"Modules\"] = 1] = \"Modules\";\r\n /**\r\n * If set, the ModuleCoverage.Functions properties will be populated.\r\n */\r\n CoverageQueryFlags[CoverageQueryFlags[\"Functions\"] = 2] = \"Functions\";\r\n /**\r\n * If set, the ModuleCoverage.CoverageData field will be populated.\r\n */\r\n CoverageQueryFlags[CoverageQueryFlags[\"BlockData\"] = 4] = \"BlockData\";\r\n})(CoverageQueryFlags = exports.CoverageQueryFlags || (exports.CoverageQueryFlags = {}));\r\nvar CoverageStatus;\r\n(function (CoverageStatus) {\r\n CoverageStatus[CoverageStatus[\"Covered\"] = 0] = \"Covered\";\r\n CoverageStatus[CoverageStatus[\"NotCovered\"] = 1] = \"NotCovered\";\r\n CoverageStatus[CoverageStatus[\"PartiallyCovered\"] = 2] = \"PartiallyCovered\";\r\n})(CoverageStatus = exports.CoverageStatus || (exports.CoverageStatus = {}));\r\n/**\r\n * Represents status of code coverage summary for a build\r\n */\r\nvar CoverageSummaryStatus;\r\n(function (CoverageSummaryStatus) {\r\n /**\r\n * No coverage status\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"None\"] = 0] = \"None\";\r\n /**\r\n * The summary evaluation is in progress\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n /**\r\n * The summary evaluation for the previous request is completed. Summary can change in future\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"Completed\"] = 2] = \"Completed\";\r\n /**\r\n * The summary evaluation is finalized and won't change\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"Finalized\"] = 3] = \"Finalized\";\r\n /**\r\n * The summary evaluation is pending\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"Pending\"] = 4] = \"Pending\";\r\n /**\r\n * Summary evaluation may be ongoing but another merge has been requested.\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"UpdateRequestQueued\"] = 5] = \"UpdateRequestQueued\";\r\n})(CoverageSummaryStatus = exports.CoverageSummaryStatus || (exports.CoverageSummaryStatus = {}));\r\nvar CustomTestFieldScope;\r\n(function (CustomTestFieldScope) {\r\n CustomTestFieldScope[CustomTestFieldScope[\"None\"] = 0] = \"None\";\r\n CustomTestFieldScope[CustomTestFieldScope[\"TestRun\"] = 1] = \"TestRun\";\r\n CustomTestFieldScope[CustomTestFieldScope[\"TestResult\"] = 2] = \"TestResult\";\r\n CustomTestFieldScope[CustomTestFieldScope[\"System\"] = 4] = \"System\";\r\n CustomTestFieldScope[CustomTestFieldScope[\"All\"] = 7] = \"All\";\r\n})(CustomTestFieldScope = exports.CustomTestFieldScope || (exports.CustomTestFieldScope = {}));\r\nvar CustomTestFieldType;\r\n(function (CustomTestFieldType) {\r\n CustomTestFieldType[CustomTestFieldType[\"Bit\"] = 2] = \"Bit\";\r\n CustomTestFieldType[CustomTestFieldType[\"DateTime\"] = 4] = \"DateTime\";\r\n CustomTestFieldType[CustomTestFieldType[\"Int\"] = 8] = \"Int\";\r\n CustomTestFieldType[CustomTestFieldType[\"Float\"] = 6] = \"Float\";\r\n CustomTestFieldType[CustomTestFieldType[\"String\"] = 12] = \"String\";\r\n CustomTestFieldType[CustomTestFieldType[\"Guid\"] = 14] = \"Guid\";\r\n})(CustomTestFieldType = exports.CustomTestFieldType || (exports.CustomTestFieldType = {}));\r\nvar FlakyDetectionType;\r\n(function (FlakyDetectionType) {\r\n /**\r\n * Custom defines manual detection type.\r\n */\r\n FlakyDetectionType[FlakyDetectionType[\"Custom\"] = 1] = \"Custom\";\r\n /**\r\n * Defines System detection type.\r\n */\r\n FlakyDetectionType[FlakyDetectionType[\"System\"] = 2] = \"System\";\r\n})(FlakyDetectionType = exports.FlakyDetectionType || (exports.FlakyDetectionType = {}));\r\n/**\r\n * Test summary metrics.\r\n */\r\nvar Metrics;\r\n(function (Metrics) {\r\n /**\r\n * To get results of all matrix.\r\n */\r\n Metrics[Metrics[\"All\"] = 1] = \"All\";\r\n /**\r\n * Get results summary by results outcome\r\n */\r\n Metrics[Metrics[\"ResultSummary\"] = 2] = \"ResultSummary\";\r\n /**\r\n * Get results analysis which include failure analysis, increase/decrease in results count analysis.\r\n */\r\n Metrics[Metrics[\"ResultsAnalysis\"] = 3] = \"ResultsAnalysis\";\r\n /**\r\n * Get runs summary\r\n */\r\n Metrics[Metrics[\"RunSummary\"] = 4] = \"RunSummary\";\r\n})(Metrics = exports.Metrics || (exports.Metrics = {}));\r\nvar OperationType;\r\n(function (OperationType) {\r\n OperationType[OperationType[\"Add\"] = 1] = \"Add\";\r\n OperationType[OperationType[\"Delete\"] = 2] = \"Delete\";\r\n})(OperationType = exports.OperationType || (exports.OperationType = {}));\r\n/**\r\n * Additional details with test result\r\n */\r\nvar ResultDetails;\r\n(function (ResultDetails) {\r\n /**\r\n * Core fields of test result. Core fields includes State, Outcome, Priority, AutomatedTestName, AutomatedTestStorage, Comments, ErrorMessage etc.\r\n */\r\n ResultDetails[ResultDetails[\"None\"] = 0] = \"None\";\r\n /**\r\n * Test iteration details in a test result.\r\n */\r\n ResultDetails[ResultDetails[\"Iterations\"] = 1] = \"Iterations\";\r\n /**\r\n * Workitems associated with a test result.\r\n */\r\n ResultDetails[ResultDetails[\"WorkItems\"] = 2] = \"WorkItems\";\r\n /**\r\n * Subresults in a test result.\r\n */\r\n ResultDetails[ResultDetails[\"SubResults\"] = 4] = \"SubResults\";\r\n /**\r\n * Point and plan detail in a test result.\r\n */\r\n ResultDetails[ResultDetails[\"Point\"] = 8] = \"Point\";\r\n})(ResultDetails = exports.ResultDetails || (exports.ResultDetails = {}));\r\n/**\r\n * Hierarchy type of the result/subresults.\r\n */\r\nvar ResultGroupType;\r\n(function (ResultGroupType) {\r\n /**\r\n * Leaf node of test result.\r\n */\r\n ResultGroupType[ResultGroupType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Hierarchy type of test result.\r\n */\r\n ResultGroupType[ResultGroupType[\"Rerun\"] = 1] = \"Rerun\";\r\n /**\r\n * Hierarchy type of test result.\r\n */\r\n ResultGroupType[ResultGroupType[\"DataDriven\"] = 2] = \"DataDriven\";\r\n /**\r\n * Hierarchy type of test result.\r\n */\r\n ResultGroupType[ResultGroupType[\"OrderedTest\"] = 3] = \"OrderedTest\";\r\n /**\r\n * Unknown hierarchy type.\r\n */\r\n ResultGroupType[ResultGroupType[\"Generic\"] = 4] = \"Generic\";\r\n})(ResultGroupType = exports.ResultGroupType || (exports.ResultGroupType = {}));\r\nvar ResultMetadata;\r\n(function (ResultMetadata) {\r\n /**\r\n * Rerun metadata\r\n */\r\n ResultMetadata[ResultMetadata[\"Rerun\"] = 1] = \"Rerun\";\r\n /**\r\n * Flaky metadata\r\n */\r\n ResultMetadata[ResultMetadata[\"Flaky\"] = 2] = \"Flaky\";\r\n})(ResultMetadata = exports.ResultMetadata || (exports.ResultMetadata = {}));\r\n/**\r\n * Additional details with test result metadata\r\n */\r\nvar ResultMetaDataDetails;\r\n(function (ResultMetaDataDetails) {\r\n /**\r\n * Core fields of test result metadata.\r\n */\r\n ResultMetaDataDetails[ResultMetaDataDetails[\"None\"] = 0] = \"None\";\r\n /**\r\n * Test FlakyIdentifiers details in test result metadata.\r\n */\r\n ResultMetaDataDetails[ResultMetaDataDetails[\"FlakyIdentifiers\"] = 1] = \"FlakyIdentifiers\";\r\n})(ResultMetaDataDetails = exports.ResultMetaDataDetails || (exports.ResultMetaDataDetails = {}));\r\n/**\r\n * The top level entity that is being cloned as part of a Clone operation\r\n */\r\nvar ResultObjectType;\r\n(function (ResultObjectType) {\r\n /**\r\n * Suite Clone\r\n */\r\n ResultObjectType[ResultObjectType[\"TestSuite\"] = 0] = \"TestSuite\";\r\n /**\r\n * Plan Clone\r\n */\r\n ResultObjectType[ResultObjectType[\"TestPlan\"] = 1] = \"TestPlan\";\r\n})(ResultObjectType = exports.ResultObjectType || (exports.ResultObjectType = {}));\r\nvar RunType;\r\n(function (RunType) {\r\n /**\r\n * Only used during an update to preserve the existing value.\r\n */\r\n RunType[RunType[\"Unspecified\"] = 0] = \"Unspecified\";\r\n /**\r\n * Normal test run.\r\n */\r\n RunType[RunType[\"Normal\"] = 1] = \"Normal\";\r\n /**\r\n * Test run created for the blocked result when a test point is blocked.\r\n */\r\n RunType[RunType[\"Blocking\"] = 2] = \"Blocking\";\r\n /**\r\n * Test run created from Web.\r\n */\r\n RunType[RunType[\"Web\"] = 4] = \"Web\";\r\n /**\r\n * Run initiated from web through MTR\r\n */\r\n RunType[RunType[\"MtrRunInitiatedFromWeb\"] = 8] = \"MtrRunInitiatedFromWeb\";\r\n /**\r\n * These test run would require DTL environment. These could be either of automated or manual test run.\r\n */\r\n RunType[RunType[\"RunWithDtlEnv\"] = 16] = \"RunWithDtlEnv\";\r\n /**\r\n * These test run may or may not have published test results but it will have summary like total test, passed test, failed test etc. These are automated tests.\r\n */\r\n RunType[RunType[\"NoConfigRun\"] = 32] = \"NoConfigRun\";\r\n})(RunType = exports.RunType || (exports.RunType = {}));\r\nvar Service;\r\n(function (Service) {\r\n Service[Service[\"Any\"] = 0] = \"Any\";\r\n Service[Service[\"Tcm\"] = 1] = \"Tcm\";\r\n Service[Service[\"Tfs\"] = 2] = \"Tfs\";\r\n})(Service = exports.Service || (exports.Service = {}));\r\n/**\r\n * Option to get details in response\r\n */\r\nvar SuiteExpand;\r\n(function (SuiteExpand) {\r\n /**\r\n * Include children in response.\r\n */\r\n SuiteExpand[SuiteExpand[\"Children\"] = 1] = \"Children\";\r\n /**\r\n * Include default testers in response.\r\n */\r\n SuiteExpand[SuiteExpand[\"DefaultTesters\"] = 2] = \"DefaultTesters\";\r\n})(SuiteExpand = exports.SuiteExpand || (exports.SuiteExpand = {}));\r\nvar TCMServiceDataMigrationStatus;\r\n(function (TCMServiceDataMigrationStatus) {\r\n /**\r\n * Migration Not Started\r\n */\r\n TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus[\"NotStarted\"] = 0] = \"NotStarted\";\r\n /**\r\n * Migration InProgress\r\n */\r\n TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n /**\r\n * Migration Completed\r\n */\r\n TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus[\"Completed\"] = 2] = \"Completed\";\r\n /**\r\n * Migration Failed\r\n */\r\n TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus[\"Failed\"] = 3] = \"Failed\";\r\n})(TCMServiceDataMigrationStatus = exports.TCMServiceDataMigrationStatus || (exports.TCMServiceDataMigrationStatus = {}));\r\n/**\r\n * Represents the state of an ITestConfiguration object.\r\n */\r\nvar TestConfigurationState;\r\n(function (TestConfigurationState) {\r\n /**\r\n * The configuration can be used for new test runs.\r\n */\r\n TestConfigurationState[TestConfigurationState[\"Active\"] = 1] = \"Active\";\r\n /**\r\n * The configuration has been retired and should not be used for new test runs.\r\n */\r\n TestConfigurationState[TestConfigurationState[\"Inactive\"] = 2] = \"Inactive\";\r\n})(TestConfigurationState = exports.TestConfigurationState || (exports.TestConfigurationState = {}));\r\n/**\r\n * Test Log Context\r\n */\r\nvar TestLogScope;\r\n(function (TestLogScope) {\r\n /**\r\n * Log file is associated with Run, result, subresult\r\n */\r\n TestLogScope[TestLogScope[\"Run\"] = 0] = \"Run\";\r\n /**\r\n * Log File associated with Build\r\n */\r\n TestLogScope[TestLogScope[\"Build\"] = 1] = \"Build\";\r\n /**\r\n * Log File associated with Release\r\n */\r\n TestLogScope[TestLogScope[\"Release\"] = 2] = \"Release\";\r\n})(TestLogScope = exports.TestLogScope || (exports.TestLogScope = {}));\r\n/**\r\n * Test Log Status codes.\r\n */\r\nvar TestLogStatusCode;\r\n(function (TestLogStatusCode) {\r\n /**\r\n * Operation is successful\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"Success\"] = 0] = \"Success\";\r\n /**\r\n * Operation failed\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"Failed\"] = 1] = \"Failed\";\r\n /**\r\n * Operation failed due to file already exist\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"FileAlreadyExists\"] = 2] = \"FileAlreadyExists\";\r\n /**\r\n * Invalid input provided by user\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"InvalidInput\"] = 3] = \"InvalidInput\";\r\n /**\r\n * Invalid file name provided by user\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"InvalidFileName\"] = 4] = \"InvalidFileName\";\r\n /**\r\n * Error occurred while operating on container\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"InvalidContainer\"] = 5] = \"InvalidContainer\";\r\n /**\r\n * Blob Transfer Error\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"TransferFailed\"] = 6] = \"TransferFailed\";\r\n /**\r\n * TestLogStore feature is not enabled\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"FeatureDisabled\"] = 7] = \"FeatureDisabled\";\r\n /**\r\n * Build for which operation is requested does not exist\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"BuildDoesNotExist\"] = 8] = \"BuildDoesNotExist\";\r\n /**\r\n * Run for which operation is requested does not exist\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"RunDoesNotExist\"] = 9] = \"RunDoesNotExist\";\r\n /**\r\n * Container cannot be created\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"ContainerNotCreated\"] = 10] = \"ContainerNotCreated\";\r\n /**\r\n * Api is not supported\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"APINotSupported\"] = 11] = \"APINotSupported\";\r\n /**\r\n * File size is greater than the limitation\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"FileSizeExceeds\"] = 12] = \"FileSizeExceeds\";\r\n /**\r\n * Container is not found for which operation is requested\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"ContainerNotFound\"] = 13] = \"ContainerNotFound\";\r\n /**\r\n * File cannot be found\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"FileNotFound\"] = 14] = \"FileNotFound\";\r\n /**\r\n * Directory cannot be found\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"DirectoryNotFound\"] = 15] = \"DirectoryNotFound\";\r\n /**\r\n * Storage capacity exceeded\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"StorageCapacityExceeded\"] = 16] = \"StorageCapacityExceeded\";\r\n})(TestLogStatusCode = exports.TestLogStatusCode || (exports.TestLogStatusCode = {}));\r\n/**\r\n * Specifies set of possible log store endpoint type.\r\n */\r\nvar TestLogStoreEndpointType;\r\n(function (TestLogStoreEndpointType) {\r\n /**\r\n * Endpoint type is scoped to root\r\n */\r\n TestLogStoreEndpointType[TestLogStoreEndpointType[\"Root\"] = 1] = \"Root\";\r\n /**\r\n * Endpoint type is scoped to file\r\n */\r\n TestLogStoreEndpointType[TestLogStoreEndpointType[\"File\"] = 2] = \"File\";\r\n})(TestLogStoreEndpointType = exports.TestLogStoreEndpointType || (exports.TestLogStoreEndpointType = {}));\r\n/**\r\n * Specifies set of possible operation type on log store.\r\n */\r\nvar TestLogStoreOperationType;\r\n(function (TestLogStoreOperationType) {\r\n /**\r\n * Operation is scoped to read data only.\r\n */\r\n TestLogStoreOperationType[TestLogStoreOperationType[\"Read\"] = 1] = \"Read\";\r\n /**\r\n * Operation is scoped to create data only.\r\n */\r\n TestLogStoreOperationType[TestLogStoreOperationType[\"Create\"] = 2] = \"Create\";\r\n /**\r\n * Operation is scoped to read and create data.\r\n */\r\n TestLogStoreOperationType[TestLogStoreOperationType[\"ReadAndCreate\"] = 3] = \"ReadAndCreate\";\r\n})(TestLogStoreOperationType = exports.TestLogStoreOperationType || (exports.TestLogStoreOperationType = {}));\r\n/**\r\n * Test Log Types\r\n */\r\nvar TestLogType;\r\n(function (TestLogType) {\r\n /**\r\n * Any gereric attachment.\r\n */\r\n TestLogType[TestLogType[\"GeneralAttachment\"] = 1] = \"GeneralAttachment\";\r\n /**\r\n * Code Coverage files\r\n */\r\n TestLogType[TestLogType[\"CodeCoverage\"] = 2] = \"CodeCoverage\";\r\n /**\r\n * Test Impact details.\r\n */\r\n TestLogType[TestLogType[\"TestImpact\"] = 3] = \"TestImpact\";\r\n /**\r\n * Temporary files\r\n */\r\n TestLogType[TestLogType[\"Intermediate\"] = 4] = \"Intermediate\";\r\n /**\r\n * Subresult Attachment\r\n */\r\n TestLogType[TestLogType[\"System\"] = 5] = \"System\";\r\n})(TestLogType = exports.TestLogType || (exports.TestLogType = {}));\r\n/**\r\n * Valid TestOutcome values.\r\n */\r\nvar TestOutcome;\r\n(function (TestOutcome) {\r\n /**\r\n * Only used during an update to preserve the existing value.\r\n */\r\n TestOutcome[TestOutcome[\"Unspecified\"] = 0] = \"Unspecified\";\r\n /**\r\n * Test has not been completed, or the test type does not report pass/failure.\r\n */\r\n TestOutcome[TestOutcome[\"None\"] = 1] = \"None\";\r\n /**\r\n * Test was executed w/o any issues.\r\n */\r\n TestOutcome[TestOutcome[\"Passed\"] = 2] = \"Passed\";\r\n /**\r\n * Test was executed, but there were issues. Issues may involve exceptions or failed assertions.\r\n */\r\n TestOutcome[TestOutcome[\"Failed\"] = 3] = \"Failed\";\r\n /**\r\n * Test has completed, but we can't say if it passed or failed. May be used for aborted tests...\r\n */\r\n TestOutcome[TestOutcome[\"Inconclusive\"] = 4] = \"Inconclusive\";\r\n /**\r\n * The test timed out\r\n */\r\n TestOutcome[TestOutcome[\"Timeout\"] = 5] = \"Timeout\";\r\n /**\r\n * Test was aborted. This was not caused by a user gesture, but rather by a framework decision.\r\n */\r\n TestOutcome[TestOutcome[\"Aborted\"] = 6] = \"Aborted\";\r\n /**\r\n * Test had it chance for been executed but was not, as ITestElement.IsRunnable == false.\r\n */\r\n TestOutcome[TestOutcome[\"Blocked\"] = 7] = \"Blocked\";\r\n /**\r\n * Test was not executed. This was caused by a user gesture - e.g. user hit stop button.\r\n */\r\n TestOutcome[TestOutcome[\"NotExecuted\"] = 8] = \"NotExecuted\";\r\n /**\r\n * To be used by Run level results. This is not a failure.\r\n */\r\n TestOutcome[TestOutcome[\"Warning\"] = 9] = \"Warning\";\r\n /**\r\n * There was a system error while we were trying to execute a test.\r\n */\r\n TestOutcome[TestOutcome[\"Error\"] = 10] = \"Error\";\r\n /**\r\n * Test is Not Applicable for execution.\r\n */\r\n TestOutcome[TestOutcome[\"NotApplicable\"] = 11] = \"NotApplicable\";\r\n /**\r\n * Test is paused.\r\n */\r\n TestOutcome[TestOutcome[\"Paused\"] = 12] = \"Paused\";\r\n /**\r\n * Test is currently executing. Added this for TCM charts\r\n */\r\n TestOutcome[TestOutcome[\"InProgress\"] = 13] = \"InProgress\";\r\n /**\r\n * Test is not impacted. Added fot TIA.\r\n */\r\n TestOutcome[TestOutcome[\"NotImpacted\"] = 14] = \"NotImpacted\";\r\n TestOutcome[TestOutcome[\"MaxValue\"] = 14] = \"MaxValue\";\r\n})(TestOutcome = exports.TestOutcome || (exports.TestOutcome = {}));\r\nvar TestPointState;\r\n(function (TestPointState) {\r\n /**\r\n * Default\r\n */\r\n TestPointState[TestPointState[\"None\"] = 0] = \"None\";\r\n /**\r\n * The test point needs to be executed in order for the test pass to be considered complete. Either the test has not been run before or the previous run failed.\r\n */\r\n TestPointState[TestPointState[\"Ready\"] = 1] = \"Ready\";\r\n /**\r\n * The test has passed successfully and does not need to be re-run for the test pass to be considered complete.\r\n */\r\n TestPointState[TestPointState[\"Completed\"] = 2] = \"Completed\";\r\n /**\r\n * The test point needs to be executed but is not able to.\r\n */\r\n TestPointState[TestPointState[\"NotReady\"] = 3] = \"NotReady\";\r\n /**\r\n * The test is being executed.\r\n */\r\n TestPointState[TestPointState[\"InProgress\"] = 4] = \"InProgress\";\r\n TestPointState[TestPointState[\"MaxValue\"] = 4] = \"MaxValue\";\r\n})(TestPointState = exports.TestPointState || (exports.TestPointState = {}));\r\n/**\r\n * Group by for results\r\n */\r\nvar TestResultGroupBy;\r\n(function (TestResultGroupBy) {\r\n /**\r\n * Group the results by branches\r\n */\r\n TestResultGroupBy[TestResultGroupBy[\"Branch\"] = 1] = \"Branch\";\r\n /**\r\n * Group the results by environment\r\n */\r\n TestResultGroupBy[TestResultGroupBy[\"Environment\"] = 2] = \"Environment\";\r\n})(TestResultGroupBy = exports.TestResultGroupBy || (exports.TestResultGroupBy = {}));\r\nvar TestResultsContextType;\r\n(function (TestResultsContextType) {\r\n TestResultsContextType[TestResultsContextType[\"Build\"] = 1] = \"Build\";\r\n TestResultsContextType[TestResultsContextType[\"Release\"] = 2] = \"Release\";\r\n TestResultsContextType[TestResultsContextType[\"Pipeline\"] = 3] = \"Pipeline\";\r\n})(TestResultsContextType = exports.TestResultsContextType || (exports.TestResultsContextType = {}));\r\nvar TestResultsSettingsType;\r\n(function (TestResultsSettingsType) {\r\n /**\r\n * Returns All Test Settings.\r\n */\r\n TestResultsSettingsType[TestResultsSettingsType[\"All\"] = 1] = \"All\";\r\n /**\r\n * Returns Flaky Test Settings.\r\n */\r\n TestResultsSettingsType[TestResultsSettingsType[\"Flaky\"] = 2] = \"Flaky\";\r\n /**\r\n * Returns whether to log new tests or not\r\n */\r\n TestResultsSettingsType[TestResultsSettingsType[\"NewTestLogging\"] = 3] = \"NewTestLogging\";\r\n})(TestResultsSettingsType = exports.TestResultsSettingsType || (exports.TestResultsSettingsType = {}));\r\n/**\r\n * The types of outcomes for test run.\r\n */\r\nvar TestRunOutcome;\r\n(function (TestRunOutcome) {\r\n /**\r\n * Run with zero failed tests and has at least one impacted test\r\n */\r\n TestRunOutcome[TestRunOutcome[\"Passed\"] = 0] = \"Passed\";\r\n /**\r\n * Run with at-least one failed test.\r\n */\r\n TestRunOutcome[TestRunOutcome[\"Failed\"] = 1] = \"Failed\";\r\n /**\r\n * Run with no impacted tests.\r\n */\r\n TestRunOutcome[TestRunOutcome[\"NotImpacted\"] = 2] = \"NotImpacted\";\r\n /**\r\n * Runs with All tests in other category.\r\n */\r\n TestRunOutcome[TestRunOutcome[\"Others\"] = 3] = \"Others\";\r\n})(TestRunOutcome = exports.TestRunOutcome || (exports.TestRunOutcome = {}));\r\n/**\r\n * The types of publish context for run.\r\n */\r\nvar TestRunPublishContext;\r\n(function (TestRunPublishContext) {\r\n /**\r\n * Run is published for Build Context.\r\n */\r\n TestRunPublishContext[TestRunPublishContext[\"Build\"] = 1] = \"Build\";\r\n /**\r\n * Run is published for Release Context.\r\n */\r\n TestRunPublishContext[TestRunPublishContext[\"Release\"] = 2] = \"Release\";\r\n /**\r\n * Run is published for any Context.\r\n */\r\n TestRunPublishContext[TestRunPublishContext[\"All\"] = 3] = \"All\";\r\n})(TestRunPublishContext = exports.TestRunPublishContext || (exports.TestRunPublishContext = {}));\r\n/**\r\n * The types of states for test run.\r\n */\r\nvar TestRunState;\r\n(function (TestRunState) {\r\n /**\r\n * Only used during an update to preserve the existing value.\r\n */\r\n TestRunState[TestRunState[\"Unspecified\"] = 0] = \"Unspecified\";\r\n /**\r\n * The run is still being created. No tests have started yet.\r\n */\r\n TestRunState[TestRunState[\"NotStarted\"] = 1] = \"NotStarted\";\r\n /**\r\n * Tests are running.\r\n */\r\n TestRunState[TestRunState[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * All tests have completed or been skipped.\r\n */\r\n TestRunState[TestRunState[\"Completed\"] = 3] = \"Completed\";\r\n /**\r\n * Run is stopped and remaining tests have been aborted\r\n */\r\n TestRunState[TestRunState[\"Aborted\"] = 4] = \"Aborted\";\r\n /**\r\n * Run is currently initializing This is a legacy state and should not be used any more\r\n */\r\n TestRunState[TestRunState[\"Waiting\"] = 5] = \"Waiting\";\r\n /**\r\n * Run requires investigation because of a test point failure This is a legacy state and should not be used any more\r\n */\r\n TestRunState[TestRunState[\"NeedsInvestigation\"] = 6] = \"NeedsInvestigation\";\r\n})(TestRunState = exports.TestRunState || (exports.TestRunState = {}));\r\n/**\r\n * The types of sub states for test run. It gives the user more info about the test run beyond the high level test run state\r\n */\r\nvar TestRunSubstate;\r\n(function (TestRunSubstate) {\r\n /**\r\n * Run with noState.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"None\"] = 0] = \"None\";\r\n /**\r\n * Run state while Creating Environment.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"CreatingEnvironment\"] = 1] = \"CreatingEnvironment\";\r\n /**\r\n * Run state while Running Tests.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"RunningTests\"] = 2] = \"RunningTests\";\r\n /**\r\n * Run state while Creating Environment.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"CanceledByUser\"] = 3] = \"CanceledByUser\";\r\n /**\r\n * Run state when it is Aborted By the System.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"AbortedBySystem\"] = 4] = \"AbortedBySystem\";\r\n /**\r\n * Run state when run has timedOut.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"TimedOut\"] = 5] = \"TimedOut\";\r\n /**\r\n * Run state while Pending Analysis.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"PendingAnalysis\"] = 6] = \"PendingAnalysis\";\r\n /**\r\n * Run state after being Analysed.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"Analyzed\"] = 7] = \"Analyzed\";\r\n /**\r\n * Run state when cancellation is in Progress.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"CancellationInProgress\"] = 8] = \"CancellationInProgress\";\r\n})(TestRunSubstate = exports.TestRunSubstate || (exports.TestRunSubstate = {}));\r\n/**\r\n * Represents the source from which the test session was created\r\n */\r\nvar TestSessionSource;\r\n(function (TestSessionSource) {\r\n /**\r\n * Source of test session uncertain as it is stale\r\n */\r\n TestSessionSource[TestSessionSource[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * The session was created from Microsoft Test Manager exploratory desktop tool.\r\n */\r\n TestSessionSource[TestSessionSource[\"XTDesktop\"] = 1] = \"XTDesktop\";\r\n /**\r\n * The session was created from feedback client.\r\n */\r\n TestSessionSource[TestSessionSource[\"FeedbackDesktop\"] = 2] = \"FeedbackDesktop\";\r\n /**\r\n * The session was created from browser extension.\r\n */\r\n TestSessionSource[TestSessionSource[\"XTWeb\"] = 3] = \"XTWeb\";\r\n /**\r\n * The session was created from browser extension.\r\n */\r\n TestSessionSource[TestSessionSource[\"FeedbackWeb\"] = 4] = \"FeedbackWeb\";\r\n /**\r\n * The session was created from web access using Microsoft Test Manager exploratory desktop tool.\r\n */\r\n TestSessionSource[TestSessionSource[\"XTDesktop2\"] = 5] = \"XTDesktop2\";\r\n /**\r\n * To show sessions from all supported sources.\r\n */\r\n TestSessionSource[TestSessionSource[\"SessionInsightsForAll\"] = 6] = \"SessionInsightsForAll\";\r\n})(TestSessionSource = exports.TestSessionSource || (exports.TestSessionSource = {}));\r\n/**\r\n * Represents the state of the test session.\r\n */\r\nvar TestSessionState;\r\n(function (TestSessionState) {\r\n /**\r\n * Only used during an update to preserve the existing value.\r\n */\r\n TestSessionState[TestSessionState[\"Unspecified\"] = 0] = \"Unspecified\";\r\n /**\r\n * The session is still being created.\r\n */\r\n TestSessionState[TestSessionState[\"NotStarted\"] = 1] = \"NotStarted\";\r\n /**\r\n * The session is running.\r\n */\r\n TestSessionState[TestSessionState[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The session has paused.\r\n */\r\n TestSessionState[TestSessionState[\"Paused\"] = 3] = \"Paused\";\r\n /**\r\n * The session has completed.\r\n */\r\n TestSessionState[TestSessionState[\"Completed\"] = 4] = \"Completed\";\r\n /**\r\n * This is required for Feedback session which are declined\r\n */\r\n TestSessionState[TestSessionState[\"Declined\"] = 5] = \"Declined\";\r\n})(TestSessionState = exports.TestSessionState || (exports.TestSessionState = {}));\r\nexports.TypeInfo = {\r\n AfnStrip: {},\r\n AggregatedDataForResultTrend: {},\r\n AggregatedResultDetailsByOutcome: {},\r\n AggregatedResultsAnalysis: {},\r\n AggregatedResultsByOutcome: {},\r\n AggregatedRunsByOutcome: {},\r\n AggregatedRunsByState: {},\r\n AttachmentType: {\r\n enumValues: {\r\n \"generalAttachment\": 0,\r\n \"afnStrip\": 1,\r\n \"bugFilingData\": 2,\r\n \"codeCoverage\": 3,\r\n \"intermediateCollectorData\": 4,\r\n \"runConfig\": 5,\r\n \"testImpactDetails\": 6,\r\n \"tmiTestRunDeploymentFiles\": 7,\r\n \"tmiTestRunReverseDeploymentFiles\": 8,\r\n \"tmiTestResultDetail\": 9,\r\n \"tmiTestRunSummary\": 10,\r\n \"consoleLog\": 11\r\n }\r\n },\r\n BatchResponse: {},\r\n BuildConfiguration: {},\r\n BuildCoverage: {},\r\n BuildReference2: {},\r\n BulkResultUpdateRequest: {},\r\n CloneOperationInformation: {},\r\n CloneOperationState: {\r\n enumValues: {\r\n \"failed\": 2,\r\n \"inProgress\": 1,\r\n \"queued\": 0,\r\n \"succeeded\": 3\r\n }\r\n },\r\n CodeCoverageSummary: {},\r\n Coverage2: {},\r\n CoverageQueryFlags: {\r\n enumValues: {\r\n \"modules\": 1,\r\n \"functions\": 2,\r\n \"blockData\": 4\r\n }\r\n },\r\n CoverageStatus: {\r\n enumValues: {\r\n \"covered\": 0,\r\n \"notCovered\": 1,\r\n \"partiallyCovered\": 2\r\n }\r\n },\r\n CoverageSummaryStatus: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"inProgress\": 1,\r\n \"completed\": 2,\r\n \"finalized\": 3,\r\n \"pending\": 4,\r\n \"updateRequestQueued\": 5\r\n }\r\n },\r\n CreateTestMessageLogEntryRequest: {},\r\n CreateTestResultsRequest: {},\r\n CreateTestRunRequest: {},\r\n CustomTestFieldDefinition: {},\r\n CustomTestFieldScope: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"testRun\": 1,\r\n \"testResult\": 2,\r\n \"system\": 4,\r\n \"all\": 7\r\n }\r\n },\r\n CustomTestFieldType: {\r\n enumValues: {\r\n \"bit\": 2,\r\n \"dateTime\": 4,\r\n \"int\": 8,\r\n \"float\": 6,\r\n \"string\": 12,\r\n \"guid\": 14\r\n }\r\n },\r\n DatedTestFieldData: {},\r\n FailingSince: {},\r\n FetchTestResultsResponse: {},\r\n FlakyDetection: {},\r\n FlakyDetectionType: {\r\n enumValues: {\r\n \"custom\": 1,\r\n \"system\": 2\r\n }\r\n },\r\n FlakySettings: {},\r\n LastResultDetails: {},\r\n LegacyBuildConfiguration: {},\r\n LegacyReleaseReference: {},\r\n LegacyTestCaseResult: {},\r\n LegacyTestRun: {},\r\n LegacyTestSettings: {},\r\n Metrics: {\r\n enumValues: {\r\n \"all\": 1,\r\n \"resultSummary\": 2,\r\n \"resultsAnalysis\": 3,\r\n \"runSummary\": 4\r\n }\r\n },\r\n OperationType: {\r\n enumValues: {\r\n \"add\": 1,\r\n \"delete\": 2\r\n }\r\n },\r\n PipelineTestMetrics: {},\r\n PointLastResult: {},\r\n PointsResults2: {},\r\n QueryTestActionResultResponse: {},\r\n ReleaseReference: {},\r\n ReleaseReference2: {},\r\n RequirementsToTestsMapping2: {},\r\n Response: {},\r\n ResultDetails: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"iterations\": 1,\r\n \"workItems\": 2,\r\n \"subResults\": 4,\r\n \"point\": 8\r\n }\r\n },\r\n ResultGroupType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"rerun\": 1,\r\n \"dataDriven\": 2,\r\n \"orderedTest\": 3,\r\n \"generic\": 4\r\n }\r\n },\r\n ResultMetadata: {\r\n enumValues: {\r\n \"rerun\": 1,\r\n \"flaky\": 2\r\n }\r\n },\r\n ResultMetaDataDetails: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"flakyIdentifiers\": 1\r\n }\r\n },\r\n ResultObjectType: {\r\n enumValues: {\r\n \"testSuite\": 0,\r\n \"testPlan\": 1\r\n }\r\n },\r\n ResultRetentionSettings: {},\r\n ResultsByQueryResponse: {},\r\n ResultsFilter: {},\r\n ResultsSummaryByOutcome: {},\r\n ResultSummary: {},\r\n ResultUpdateRequest: {},\r\n ResultUpdateRequestModel: {},\r\n ResultUpdateResponse: {},\r\n RunCreateModel: {},\r\n RunStatistic: {},\r\n RunSummary: {},\r\n RunSummaryModel: {},\r\n RunType: {\r\n enumValues: {\r\n \"unspecified\": 0,\r\n \"normal\": 1,\r\n \"blocking\": 2,\r\n \"web\": 4,\r\n \"mtrRunInitiatedFromWeb\": 8,\r\n \"runWithDtlEnv\": 16,\r\n \"noConfigRun\": 32\r\n }\r\n },\r\n RunUpdateModel: {},\r\n Service: {\r\n enumValues: {\r\n \"any\": 0,\r\n \"tcm\": 1,\r\n \"tfs\": 2\r\n }\r\n },\r\n SuiteExpand: {\r\n enumValues: {\r\n \"children\": 1,\r\n \"defaultTesters\": 2\r\n }\r\n },\r\n TCMServiceDataMigrationStatus: {\r\n enumValues: {\r\n \"notStarted\": 0,\r\n \"inProgress\": 1,\r\n \"completed\": 2,\r\n \"failed\": 3\r\n }\r\n },\r\n TestActionResult: {},\r\n TestActionResult2: {},\r\n TestActionResultModel: {},\r\n TestAttachment: {},\r\n TestAuthoringDetails: {},\r\n TestCaseReference2: {},\r\n TestCaseResult: {},\r\n TestConfiguration: {},\r\n TestConfigurationState: {\r\n enumValues: {\r\n \"active\": 1,\r\n \"inactive\": 2\r\n }\r\n },\r\n TestExecutionReportData: {},\r\n TestExtensionField: {},\r\n TestExtensionFieldDetails: {},\r\n TestFailuresAnalysis: {},\r\n TestHistoryQuery: {},\r\n TestIterationDetailsModel: {},\r\n TestLog: {},\r\n TestLogReference: {},\r\n TestLogScope: {\r\n enumValues: {\r\n \"run\": 0,\r\n \"build\": 1,\r\n \"release\": 2\r\n }\r\n },\r\n TestLogStatus: {},\r\n TestLogStatusCode: {\r\n enumValues: {\r\n \"success\": 0,\r\n \"failed\": 1,\r\n \"fileAlreadyExists\": 2,\r\n \"invalidInput\": 3,\r\n \"invalidFileName\": 4,\r\n \"invalidContainer\": 5,\r\n \"transferFailed\": 6,\r\n \"featureDisabled\": 7,\r\n \"buildDoesNotExist\": 8,\r\n \"runDoesNotExist\": 9,\r\n \"containerNotCreated\": 10,\r\n \"apiNotSupported\": 11,\r\n \"fileSizeExceeds\": 12,\r\n \"containerNotFound\": 13,\r\n \"fileNotFound\": 14,\r\n \"directoryNotFound\": 15,\r\n \"storageCapacityExceeded\": 16\r\n }\r\n },\r\n TestLogStoreEndpointDetails: {},\r\n TestLogStoreEndpointType: {\r\n enumValues: {\r\n \"root\": 1,\r\n \"file\": 2\r\n }\r\n },\r\n TestLogStoreOperationType: {\r\n enumValues: {\r\n \"read\": 1,\r\n \"create\": 2,\r\n \"readAndCreate\": 3\r\n }\r\n },\r\n TestLogType: {\r\n enumValues: {\r\n \"generalAttachment\": 1,\r\n \"codeCoverage\": 2,\r\n \"testImpact\": 3,\r\n \"intermediate\": 4,\r\n \"system\": 5\r\n }\r\n },\r\n TestMessageLogDetails: {},\r\n TestMessageLogEntry: {},\r\n TestMessageLogEntry2: {},\r\n TestOutcome: {\r\n enumValues: {\r\n \"unspecified\": 0,\r\n \"none\": 1,\r\n \"passed\": 2,\r\n \"failed\": 3,\r\n \"inconclusive\": 4,\r\n \"timeout\": 5,\r\n \"aborted\": 6,\r\n \"blocked\": 7,\r\n \"notExecuted\": 8,\r\n \"warning\": 9,\r\n \"error\": 10,\r\n \"notApplicable\": 11,\r\n \"paused\": 12,\r\n \"inProgress\": 13,\r\n \"notImpacted\": 14,\r\n \"maxValue\": 14\r\n }\r\n },\r\n TestParameter2: {},\r\n TestPlan: {},\r\n TestPlanCloneRequest: {},\r\n TestPlanHubData: {},\r\n TestPlansWithSelection: {},\r\n TestPoint: {},\r\n TestPointReference: {},\r\n TestPointsEvent: {},\r\n TestPointsQuery: {},\r\n TestPointState: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"ready\": 1,\r\n \"completed\": 2,\r\n \"notReady\": 3,\r\n \"inProgress\": 4,\r\n \"maxValue\": 4\r\n }\r\n },\r\n TestPointsUpdatedEvent: {},\r\n TestResult2: {},\r\n TestResultAcrossProjectResponse: {},\r\n TestResultAttachment: {},\r\n TestResultGroupBy: {\r\n enumValues: {\r\n \"branch\": 1,\r\n \"environment\": 2\r\n }\r\n },\r\n TestResultHistory: {},\r\n TestResultHistoryDetailsForGroup: {},\r\n TestResultHistoryForGroup: {},\r\n TestResultModelBase: {},\r\n TestResultReset2: {},\r\n TestResultsContext: {},\r\n TestResultsContextType: {\r\n enumValues: {\r\n \"build\": 1,\r\n \"release\": 2,\r\n \"pipeline\": 3\r\n }\r\n },\r\n TestResultsDetails: {},\r\n TestResultsDetailsForGroup: {},\r\n TestResultsEx2: {},\r\n TestResultsQuery: {},\r\n TestResultsSettings: {},\r\n TestResultsSettingsType: {\r\n enumValues: {\r\n \"all\": 1,\r\n \"flaky\": 2,\r\n \"newTestLogging\": 3\r\n }\r\n },\r\n TestResultSummary: {},\r\n TestResultsUpdateSettings: {},\r\n TestResultsWithWatermark: {},\r\n TestResultTrendFilter: {},\r\n TestRun: {},\r\n TestRun2: {},\r\n TestRunCanceledEvent: {},\r\n TestRunCreatedEvent: {},\r\n TestRunEvent: {},\r\n TestRunEx2: {},\r\n TestRunOutcome: {\r\n enumValues: {\r\n \"passed\": 0,\r\n \"failed\": 1,\r\n \"notImpacted\": 2,\r\n \"others\": 3\r\n }\r\n },\r\n TestRunPublishContext: {\r\n enumValues: {\r\n \"build\": 1,\r\n \"release\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n TestRunStartedEvent: {},\r\n TestRunState: {\r\n enumValues: {\r\n \"unspecified\": 0,\r\n \"notStarted\": 1,\r\n \"inProgress\": 2,\r\n \"completed\": 3,\r\n \"aborted\": 4,\r\n \"waiting\": 5,\r\n \"needsInvestigation\": 6\r\n }\r\n },\r\n TestRunStatistic: {},\r\n TestRunSubstate: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"creatingEnvironment\": 1,\r\n \"runningTests\": 2,\r\n \"canceledByUser\": 3,\r\n \"abortedBySystem\": 4,\r\n \"timedOut\": 5,\r\n \"pendingAnalysis\": 6,\r\n \"analyzed\": 7,\r\n \"cancellationInProgress\": 8\r\n }\r\n },\r\n TestRunSummary2: {},\r\n TestRunWithDtlEnvEvent: {},\r\n TestSession: {},\r\n TestSessionExploredWorkItemReference: {},\r\n TestSessionSource: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"xtDesktop\": 1,\r\n \"feedbackDesktop\": 2,\r\n \"xtWeb\": 3,\r\n \"feedbackWeb\": 4,\r\n \"xtDesktop2\": 5,\r\n \"sessionInsightsForAll\": 6\r\n }\r\n },\r\n TestSessionState: {\r\n enumValues: {\r\n \"unspecified\": 0,\r\n \"notStarted\": 1,\r\n \"inProgress\": 2,\r\n \"paused\": 3,\r\n \"completed\": 4,\r\n \"declined\": 5\r\n }\r\n },\r\n TestSettings2: {},\r\n TestSubResult: {},\r\n TestSuite: {},\r\n TestSummaryForWorkItem: {},\r\n UpdatedProperties: {},\r\n UpdateTestRunRequest: {},\r\n UpdateTestRunResponse: {},\r\n WorkItemToTestLinks: {},\r\n};\r\nexports.TypeInfo.AfnStrip.fields = {\r\n creationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AggregatedDataForResultTrend.fields = {\r\n resultsByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome\r\n },\r\n runSummaryByState: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunState,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedRunsByState\r\n },\r\n testResultsContext: {\r\n typeInfo: exports.TypeInfo.TestResultsContext\r\n }\r\n};\r\nexports.TypeInfo.AggregatedResultDetailsByOutcome.fields = {\r\n outcome: {\r\n enumType: exports.TypeInfo.TestOutcome\r\n }\r\n};\r\nexports.TypeInfo.AggregatedResultsAnalysis.fields = {\r\n notReportedResultsByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome\r\n },\r\n previousContext: {\r\n typeInfo: exports.TypeInfo.TestResultsContext\r\n },\r\n resultsByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome\r\n },\r\n runSummaryByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedRunsByOutcome\r\n },\r\n runSummaryByState: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunState,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedRunsByState\r\n }\r\n};\r\nexports.TypeInfo.AggregatedResultsByOutcome.fields = {\r\n outcome: {\r\n enumType: exports.TypeInfo.TestOutcome\r\n }\r\n};\r\nexports.TypeInfo.AggregatedRunsByOutcome.fields = {\r\n outcome: {\r\n enumType: exports.TypeInfo.TestRunOutcome\r\n }\r\n};\r\nexports.TypeInfo.AggregatedRunsByState.fields = {\r\n resultsByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TestRunState\r\n }\r\n};\r\nexports.TypeInfo.BatchResponse.fields = {\r\n responses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Response\r\n },\r\n};\r\nexports.TypeInfo.BuildConfiguration.fields = {\r\n creationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildCoverage.fields = {\r\n configuration: {\r\n typeInfo: exports.TypeInfo.BuildConfiguration\r\n }\r\n};\r\nexports.TypeInfo.BuildReference2.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BulkResultUpdateRequest.fields = {\r\n requests: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ResultUpdateRequest\r\n }\r\n};\r\nexports.TypeInfo.CloneOperationInformation.fields = {\r\n completionDate: {\r\n isDate: true,\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n resultObjectType: {\r\n enumType: exports.TypeInfo.ResultObjectType\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.CloneOperationState\r\n }\r\n};\r\nexports.TypeInfo.CodeCoverageSummary.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.CoverageSummaryStatus\r\n }\r\n};\r\nexports.TypeInfo.Coverage2.fields = {\r\n dateCreated: {\r\n isDate: true,\r\n },\r\n dateModified: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CreateTestMessageLogEntryRequest.fields = {\r\n testMessageLogEntry: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestMessageLogEntry\r\n }\r\n};\r\nexports.TypeInfo.CreateTestResultsRequest.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.CreateTestRunRequest.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n },\r\n testRun: {\r\n typeInfo: exports.TypeInfo.LegacyTestRun\r\n },\r\n testSettings: {\r\n typeInfo: exports.TypeInfo.LegacyTestSettings\r\n }\r\n};\r\nexports.TypeInfo.CustomTestFieldDefinition.fields = {\r\n fieldType: {\r\n enumType: exports.TypeInfo.CustomTestFieldType\r\n },\r\n scope: {\r\n enumType: exports.TypeInfo.CustomTestFieldScope\r\n }\r\n};\r\nexports.TypeInfo.DatedTestFieldData.fields = {\r\n date: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.FailingSince.fields = {\r\n date: {\r\n isDate: true,\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n }\r\n};\r\nexports.TypeInfo.FetchTestResultsResponse.fields = {\r\n actionResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResult\r\n },\r\n attachments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultAttachment\r\n },\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.FlakyDetection.fields = {\r\n flakyDetectionType: {\r\n enumType: exports.TypeInfo.FlakyDetectionType\r\n }\r\n};\r\nexports.TypeInfo.FlakySettings.fields = {\r\n flakyDetection: {\r\n typeInfo: exports.TypeInfo.FlakyDetection\r\n }\r\n};\r\nexports.TypeInfo.LastResultDetails.fields = {\r\n dateCompleted: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.LegacyBuildConfiguration.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.LegacyReleaseReference.fields = {\r\n environmentCreationDate: {\r\n isDate: true,\r\n },\r\n releaseCreationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.LegacyTestCaseResult.fields = {\r\n buildReference: {\r\n typeInfo: exports.TypeInfo.LegacyBuildConfiguration\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n customFields: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestExtensionField\r\n },\r\n dateCompleted: {\r\n isDate: true,\r\n },\r\n dateStarted: {\r\n isDate: true,\r\n },\r\n failingSince: {\r\n typeInfo: exports.TypeInfo.FailingSince\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n releaseReference: {\r\n typeInfo: exports.TypeInfo.LegacyReleaseReference\r\n },\r\n resultGroupType: {\r\n enumType: exports.TypeInfo.ResultGroupType\r\n },\r\n stackTrace: {\r\n typeInfo: exports.TypeInfo.TestExtensionField\r\n }\r\n};\r\nexports.TypeInfo.LegacyTestRun.fields = {\r\n buildReference: {\r\n typeInfo: exports.TypeInfo.LegacyBuildConfiguration\r\n },\r\n completeDate: {\r\n isDate: true,\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n customFields: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestExtensionField\r\n },\r\n dueDate: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n releaseReference: {\r\n typeInfo: exports.TypeInfo.LegacyReleaseReference\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n testMessageLogEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestMessageLogDetails\r\n }\r\n};\r\nexports.TypeInfo.LegacyTestSettings.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.PipelineTestMetrics.fields = {\r\n resultSummary: {\r\n typeInfo: exports.TypeInfo.ResultSummary\r\n },\r\n runSummary: {\r\n typeInfo: exports.TypeInfo.RunSummary\r\n },\r\n summaryAtChild: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PipelineTestMetrics\r\n }\r\n};\r\nexports.TypeInfo.PointLastResult.fields = {\r\n lastUpdatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.PointsResults2.fields = {\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.QueryTestActionResultResponse.fields = {\r\n testActionResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResult\r\n },\r\n testAttachments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultAttachment\r\n }\r\n};\r\nexports.TypeInfo.ReleaseReference.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n environmentCreationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseReference2.fields = {\r\n environmentCreationDate: {\r\n isDate: true,\r\n },\r\n releaseCreationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.RequirementsToTestsMapping2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n deletionDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Response.fields = {};\r\nexports.TypeInfo.ResultRetentionSettings.fields = {\r\n lastUpdatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ResultsByQueryResponse.fields = {\r\n testResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.ResultsFilter.fields = {\r\n executedIn: {\r\n enumType: exports.TypeInfo.Service\r\n },\r\n maxCompleteDate: {\r\n isDate: true,\r\n },\r\n testResultsContext: {\r\n typeInfo: exports.TypeInfo.TestResultsContext\r\n }\r\n};\r\nexports.TypeInfo.ResultsSummaryByOutcome.fields = {\r\n aggregatedResultDetailsByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultDetailsByOutcome\r\n }\r\n};\r\nexports.TypeInfo.ResultSummary.fields = {\r\n resultSummaryByRunState: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunState,\r\n dictionaryValueTypeInfo: exports.TypeInfo.ResultsSummaryByOutcome\r\n }\r\n};\r\nexports.TypeInfo.ResultUpdateRequest.fields = {\r\n actionResultDeletes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResult\r\n },\r\n actionResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResult\r\n },\r\n attachments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultAttachment\r\n },\r\n testCaseResult: {\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.ResultUpdateRequestModel.fields = {\r\n actionResultDeletes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResultModel\r\n },\r\n actionResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResultModel\r\n }\r\n};\r\nexports.TypeInfo.ResultUpdateResponse.fields = {\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.RunCreateModel.fields = {\r\n buildReference: {\r\n typeInfo: exports.TypeInfo.BuildConfiguration\r\n },\r\n releaseReference: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n },\r\n runSummary: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RunSummaryModel\r\n }\r\n};\r\nexports.TypeInfo.RunStatistic.fields = {\r\n resultMetadata: {\r\n enumType: exports.TypeInfo.ResultMetadata\r\n }\r\n};\r\nexports.TypeInfo.RunSummary.fields = {\r\n runSummaryByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunOutcome,\r\n },\r\n runSummaryByState: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunState,\r\n }\r\n};\r\nexports.TypeInfo.RunSummaryModel.fields = {\r\n testOutcome: {\r\n enumType: exports.TypeInfo.TestOutcome\r\n }\r\n};\r\nexports.TypeInfo.RunUpdateModel.fields = {\r\n logEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestMessageLogDetails\r\n },\r\n runSummary: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RunSummaryModel\r\n },\r\n substate: {\r\n enumType: exports.TypeInfo.TestRunSubstate\r\n }\r\n};\r\nexports.TypeInfo.TestActionResult.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n dateCompleted: {\r\n isDate: true,\r\n },\r\n dateStarted: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestActionResult2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n dateCompleted: {\r\n isDate: true,\r\n },\r\n dateStarted: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestActionResultModel.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n startedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestAttachment.fields = {\r\n attachmentType: {\r\n enumType: exports.TypeInfo.AttachmentType\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestAuthoringDetails.fields = {\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TestPointState\r\n }\r\n};\r\nexports.TypeInfo.TestCaseReference2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n lastRefTestRunDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestCaseResult.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n failingSince: {\r\n typeInfo: exports.TypeInfo.FailingSince\r\n },\r\n iterationDetails: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestIterationDetailsModel\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n releaseReference: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n },\r\n resultGroupType: {\r\n enumType: exports.TypeInfo.ResultGroupType\r\n },\r\n startedDate: {\r\n isDate: true,\r\n },\r\n subResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestSubResult\r\n }\r\n};\r\nexports.TypeInfo.TestConfiguration.fields = {\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TestConfigurationState\r\n }\r\n};\r\nexports.TypeInfo.TestExecutionReportData.fields = {\r\n reportData: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DatedTestFieldData\r\n }\r\n};\r\nexports.TypeInfo.TestExtensionField.fields = {\r\n field: {\r\n typeInfo: exports.TypeInfo.TestExtensionFieldDetails\r\n }\r\n};\r\nexports.TypeInfo.TestExtensionFieldDetails.fields = {\r\n type: {\r\n enumType: SystemData.TypeInfo.SqlDbType\r\n }\r\n};\r\nexports.TypeInfo.TestFailuresAnalysis.fields = {\r\n previousContext: {\r\n typeInfo: exports.TypeInfo.TestResultsContext\r\n }\r\n};\r\nexports.TypeInfo.TestHistoryQuery.fields = {\r\n groupBy: {\r\n enumType: exports.TypeInfo.TestResultGroupBy\r\n },\r\n maxCompleteDate: {\r\n isDate: true,\r\n },\r\n resultsForGroup: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultHistoryForGroup\r\n }\r\n};\r\nexports.TypeInfo.TestIterationDetailsModel.fields = {\r\n actionResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResultModel\r\n },\r\n completedDate: {\r\n isDate: true,\r\n },\r\n startedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestLog.fields = {\r\n logReference: {\r\n typeInfo: exports.TypeInfo.TestLogReference\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestLogReference.fields = {\r\n scope: {\r\n enumType: exports.TypeInfo.TestLogScope\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.TestLogType\r\n }\r\n};\r\nexports.TypeInfo.TestLogStatus.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.TestLogStatusCode\r\n }\r\n};\r\nexports.TypeInfo.TestLogStoreEndpointDetails.fields = {\r\n endpointType: {\r\n enumType: exports.TypeInfo.TestLogStoreEndpointType\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.TestLogStatusCode\r\n }\r\n};\r\nexports.TypeInfo.TestMessageLogDetails.fields = {\r\n dateCreated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestMessageLogEntry.fields = {\r\n dateCreated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestMessageLogEntry2.fields = {\r\n dateCreated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestParameter2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n dateModified: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestPlan.fields = {\r\n endDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestPlanCloneRequest.fields = {\r\n destinationTestPlan: {\r\n typeInfo: exports.TypeInfo.TestPlan\r\n }\r\n};\r\nexports.TypeInfo.TestPlanHubData.fields = {\r\n testPlan: {\r\n typeInfo: exports.TypeInfo.TestPlan\r\n },\r\n testPoints: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestPoint\r\n },\r\n testSuites: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestSuite\r\n }\r\n};\r\nexports.TypeInfo.TestPlansWithSelection.fields = {\r\n plans: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestPlan\r\n }\r\n};\r\nexports.TypeInfo.TestPoint.fields = {\r\n lastResetToActive: {\r\n isDate: true,\r\n },\r\n lastResultDetails: {\r\n typeInfo: exports.TypeInfo.LastResultDetails\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestPointReference.fields = {\r\n state: {\r\n enumType: exports.TypeInfo.TestPointState\r\n }\r\n};\r\nexports.TypeInfo.TestPointsEvent.fields = {\r\n testPoints: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestPointReference\r\n }\r\n};\r\nexports.TypeInfo.TestPointsQuery.fields = {\r\n points: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestPoint\r\n }\r\n};\r\nexports.TypeInfo.TestPointsUpdatedEvent.fields = {\r\n testPoints: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestPointReference\r\n }\r\n};\r\nexports.TypeInfo.TestResult2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n dateCompleted: {\r\n isDate: true,\r\n },\r\n dateStarted: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestResultAcrossProjectResponse.fields = {\r\n testResult: {\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.TestResultAttachment.fields = {\r\n attachmentType: {\r\n enumType: exports.TypeInfo.AttachmentType\r\n },\r\n creationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestResultHistory.fields = {\r\n resultsForGroup: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultHistoryDetailsForGroup\r\n }\r\n};\r\nexports.TypeInfo.TestResultHistoryDetailsForGroup.fields = {\r\n latestResult: {\r\n typeInfo: exports.TypeInfo.TestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.TestResultHistoryForGroup.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.TestResultModelBase.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n startedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestResultReset2.fields = {\r\n dateModified: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestResultsContext.fields = {\r\n contextType: {\r\n enumType: exports.TypeInfo.TestResultsContextType\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n }\r\n};\r\nexports.TypeInfo.TestResultsDetails.fields = {\r\n resultsForGroup: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultsDetailsForGroup\r\n }\r\n};\r\nexports.TypeInfo.TestResultsDetailsForGroup.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestCaseResult\r\n },\r\n resultsCountByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome\r\n }\r\n};\r\nexports.TypeInfo.TestResultsEx2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n dateTimeValue: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestResultsQuery.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestCaseResult\r\n },\r\n resultsFilter: {\r\n typeInfo: exports.TypeInfo.ResultsFilter\r\n }\r\n};\r\nexports.TypeInfo.TestResultsSettings.fields = {\r\n flakySettings: {\r\n typeInfo: exports.TypeInfo.FlakySettings\r\n }\r\n};\r\nexports.TypeInfo.TestResultSummary.fields = {\r\n aggregatedResultsAnalysis: {\r\n typeInfo: exports.TypeInfo.AggregatedResultsAnalysis\r\n },\r\n teamProject: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n testFailures: {\r\n typeInfo: exports.TypeInfo.TestFailuresAnalysis\r\n },\r\n testResultsContext: {\r\n typeInfo: exports.TypeInfo.TestResultsContext\r\n }\r\n};\r\nexports.TypeInfo.TestResultsUpdateSettings.fields = {\r\n flakySettings: {\r\n typeInfo: exports.TypeInfo.FlakySettings\r\n }\r\n};\r\nexports.TypeInfo.TestResultsWithWatermark.fields = {\r\n changedDate: {\r\n isDate: true,\r\n },\r\n pointsResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PointsResults2\r\n }\r\n};\r\nexports.TypeInfo.TestResultTrendFilter.fields = {\r\n maxCompleteDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestRun.fields = {\r\n buildConfiguration: {\r\n typeInfo: exports.TypeInfo.BuildConfiguration\r\n },\r\n completedDate: {\r\n isDate: true,\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n dueDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n },\r\n runStatistics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RunStatistic\r\n },\r\n startedDate: {\r\n isDate: true,\r\n },\r\n substate: {\r\n enumType: exports.TypeInfo.TestRunSubstate\r\n }\r\n};\r\nexports.TypeInfo.TestRun2.fields = {\r\n completeDate: {\r\n isDate: true,\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n deletedOn: {\r\n isDate: true,\r\n },\r\n dueDate: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestRunCanceledEvent.fields = {\r\n testRun: {\r\n typeInfo: exports.TypeInfo.TestRun\r\n }\r\n};\r\nexports.TypeInfo.TestRunCreatedEvent.fields = {\r\n testRun: {\r\n typeInfo: exports.TypeInfo.TestRun\r\n }\r\n};\r\nexports.TypeInfo.TestRunEvent.fields = {\r\n testRun: {\r\n typeInfo: exports.TypeInfo.TestRun\r\n }\r\n};\r\nexports.TypeInfo.TestRunEx2.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n dateTimeValue: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestRunStartedEvent.fields = {\r\n testRun: {\r\n typeInfo: exports.TypeInfo.TestRun\r\n }\r\n};\r\nexports.TypeInfo.TestRunStatistic.fields = {\r\n runStatistics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RunStatistic\r\n }\r\n};\r\nexports.TypeInfo.TestRunSummary2.fields = {\r\n testRunCompletedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestRunWithDtlEnvEvent.fields = {\r\n testRun: {\r\n typeInfo: exports.TypeInfo.TestRun\r\n }\r\n};\r\nexports.TypeInfo.TestSession.fields = {\r\n endDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n source: {\r\n enumType: exports.TypeInfo.TestSessionSource\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TestSessionState\r\n }\r\n};\r\nexports.TypeInfo.TestSessionExploredWorkItemReference.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestSettings2.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestSubResult.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n resultGroupType: {\r\n enumType: exports.TypeInfo.ResultGroupType\r\n },\r\n startedDate: {\r\n isDate: true,\r\n },\r\n subResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestSubResult\r\n }\r\n};\r\nexports.TypeInfo.TestSuite.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestSuite\r\n },\r\n lastPopulatedDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestSummaryForWorkItem.fields = {\r\n summary: {\r\n typeInfo: exports.TypeInfo.AggregatedDataForResultTrend\r\n }\r\n};\r\nexports.TypeInfo.UpdatedProperties.fields = {\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.UpdateTestRunRequest.fields = {\r\n attachmentsToAdd: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultAttachment\r\n },\r\n testRun: {\r\n typeInfo: exports.TypeInfo.LegacyTestRun\r\n }\r\n};\r\nexports.TypeInfo.UpdateTestRunResponse.fields = {\r\n updatedProperties: {\r\n typeInfo: exports.TypeInfo.UpdatedProperties\r\n }\r\n};\r\nexports.TypeInfo.WorkItemToTestLinks.fields = {\r\n executedIn: {\r\n enumType: exports.TypeInfo.Service\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst TfsCoreInterfaces = require(\"../interfaces/CoreInterfaces\");\r\nvar ItemContentType;\r\n(function (ItemContentType) {\r\n ItemContentType[ItemContentType[\"RawText\"] = 0] = \"RawText\";\r\n ItemContentType[ItemContentType[\"Base64Encoded\"] = 1] = \"Base64Encoded\";\r\n})(ItemContentType = exports.ItemContentType || (exports.ItemContentType = {}));\r\n/**\r\n * Options for Version handling.\r\n */\r\nvar TfvcVersionOption;\r\n(function (TfvcVersionOption) {\r\n /**\r\n * None.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"None\"] = 0] = \"None\";\r\n /**\r\n * Return the previous version.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"Previous\"] = 1] = \"Previous\";\r\n /**\r\n * Only usuable with versiontype MergeSource and integer versions, uses RenameSource identifier instead of Merge identifier.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"UseRename\"] = 2] = \"UseRename\";\r\n})(TfvcVersionOption = exports.TfvcVersionOption || (exports.TfvcVersionOption = {}));\r\n/**\r\n * Type of Version object\r\n */\r\nvar TfvcVersionType;\r\n(function (TfvcVersionType) {\r\n /**\r\n * Version is treated as a ChangesetId.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Version is treated as a ChangesetId.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Changeset\"] = 1] = \"Changeset\";\r\n /**\r\n * Version is treated as a Shelveset name and owner.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Shelveset\"] = 2] = \"Shelveset\";\r\n /**\r\n * Version is treated as a Change.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Change\"] = 3] = \"Change\";\r\n /**\r\n * Version is treated as a Date.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Date\"] = 4] = \"Date\";\r\n /**\r\n * If Version is defined the Latest of that Version will be used, if no version is defined the latest ChangesetId will be used.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Latest\"] = 5] = \"Latest\";\r\n /**\r\n * Version will be treated as a Tip, if no version is defined latest will be used.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Tip\"] = 6] = \"Tip\";\r\n /**\r\n * Version will be treated as a MergeSource.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"MergeSource\"] = 7] = \"MergeSource\";\r\n})(TfvcVersionType = exports.TfvcVersionType || (exports.TfvcVersionType = {}));\r\nvar VersionControlChangeType;\r\n(function (VersionControlChangeType) {\r\n VersionControlChangeType[VersionControlChangeType[\"None\"] = 0] = \"None\";\r\n VersionControlChangeType[VersionControlChangeType[\"Add\"] = 1] = \"Add\";\r\n VersionControlChangeType[VersionControlChangeType[\"Edit\"] = 2] = \"Edit\";\r\n VersionControlChangeType[VersionControlChangeType[\"Encoding\"] = 4] = \"Encoding\";\r\n VersionControlChangeType[VersionControlChangeType[\"Rename\"] = 8] = \"Rename\";\r\n VersionControlChangeType[VersionControlChangeType[\"Delete\"] = 16] = \"Delete\";\r\n VersionControlChangeType[VersionControlChangeType[\"Undelete\"] = 32] = \"Undelete\";\r\n VersionControlChangeType[VersionControlChangeType[\"Branch\"] = 64] = \"Branch\";\r\n VersionControlChangeType[VersionControlChangeType[\"Merge\"] = 128] = \"Merge\";\r\n VersionControlChangeType[VersionControlChangeType[\"Lock\"] = 256] = \"Lock\";\r\n VersionControlChangeType[VersionControlChangeType[\"Rollback\"] = 512] = \"Rollback\";\r\n VersionControlChangeType[VersionControlChangeType[\"SourceRename\"] = 1024] = \"SourceRename\";\r\n VersionControlChangeType[VersionControlChangeType[\"TargetRename\"] = 2048] = \"TargetRename\";\r\n VersionControlChangeType[VersionControlChangeType[\"Property\"] = 4096] = \"Property\";\r\n VersionControlChangeType[VersionControlChangeType[\"All\"] = 8191] = \"All\";\r\n})(VersionControlChangeType = exports.VersionControlChangeType || (exports.VersionControlChangeType = {}));\r\nvar VersionControlRecursionType;\r\n(function (VersionControlRecursionType) {\r\n /**\r\n * Only return the specified item.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Return the specified item and its direct children.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"OneLevel\"] = 1] = \"OneLevel\";\r\n /**\r\n * Return the specified item and its direct children, as well as recursive chains of nested child folders that only contain a single folder.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"OneLevelPlusNestedEmptyFolders\"] = 4] = \"OneLevelPlusNestedEmptyFolders\";\r\n /**\r\n * Return specified item and all descendants\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"Full\"] = 120] = \"Full\";\r\n})(VersionControlRecursionType = exports.VersionControlRecursionType || (exports.VersionControlRecursionType = {}));\r\nexports.TypeInfo = {\r\n Change: {},\r\n GitRepository: {},\r\n GitRepositoryRef: {},\r\n ItemContent: {},\r\n ItemContentType: {\r\n enumValues: {\r\n \"rawText\": 0,\r\n \"base64Encoded\": 1\r\n }\r\n },\r\n TfvcBranch: {},\r\n TfvcBranchRef: {},\r\n TfvcChange: {},\r\n TfvcChangeset: {},\r\n TfvcChangesetRef: {},\r\n TfvcItem: {},\r\n TfvcItemDescriptor: {},\r\n TfvcItemRequestData: {},\r\n TfvcLabel: {},\r\n TfvcLabelRef: {},\r\n TfvcShelveset: {},\r\n TfvcShelvesetRef: {},\r\n TfvcVersionDescriptor: {},\r\n TfvcVersionOption: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"previous\": 1,\r\n \"useRename\": 2\r\n }\r\n },\r\n TfvcVersionType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"changeset\": 1,\r\n \"shelveset\": 2,\r\n \"change\": 3,\r\n \"date\": 4,\r\n \"latest\": 5,\r\n \"tip\": 6,\r\n \"mergeSource\": 7\r\n }\r\n },\r\n VersionControlChangeType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"add\": 1,\r\n \"edit\": 2,\r\n \"encoding\": 4,\r\n \"rename\": 8,\r\n \"delete\": 16,\r\n \"undelete\": 32,\r\n \"branch\": 64,\r\n \"merge\": 128,\r\n \"lock\": 256,\r\n \"rollback\": 512,\r\n \"sourceRename\": 1024,\r\n \"targetRename\": 2048,\r\n \"property\": 4096,\r\n \"all\": 8191\r\n }\r\n },\r\n VersionControlProjectInfo: {},\r\n VersionControlRecursionType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"oneLevel\": 1,\r\n \"oneLevelPlusNestedEmptyFolders\": 4,\r\n \"full\": 120\r\n }\r\n },\r\n};\r\nexports.TypeInfo.Change.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.GitRepository.fields = {\r\n parentRepository: {\r\n typeInfo: exports.TypeInfo.GitRepositoryRef\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GitRepositoryRef.fields = {\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.ItemContent.fields = {\r\n contentType: {\r\n enumType: exports.TypeInfo.ItemContentType\r\n }\r\n};\r\nexports.TypeInfo.TfvcBranch.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcBranch\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcBranchRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcChange.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.TfvcChangeset.fields = {\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcChange\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcChangesetRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcItem.fields = {\r\n changeDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcItemDescriptor.fields = {\r\n recursionLevel: {\r\n enumType: exports.TypeInfo.VersionControlRecursionType\r\n },\r\n versionOption: {\r\n enumType: exports.TypeInfo.TfvcVersionOption\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.TfvcVersionType\r\n }\r\n};\r\nexports.TypeInfo.TfvcItemRequestData.fields = {\r\n itemDescriptors: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcItemDescriptor\r\n }\r\n};\r\nexports.TypeInfo.TfvcLabel.fields = {\r\n items: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcItem\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcLabelRef.fields = {\r\n modifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcShelveset.fields = {\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcChange\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcShelvesetRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcVersionDescriptor.fields = {\r\n versionOption: {\r\n enumType: exports.TypeInfo.TfvcVersionOption\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.TfvcVersionType\r\n }\r\n};\r\nexports.TypeInfo.VersionControlProjectInfo.fields = {\r\n defaultSourceControlType: {\r\n enumType: TfsCoreInterfaces.TypeInfo.SourceControlTypes\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst GitInterfaces = require(\"../interfaces/GitInterfaces\");\r\n/**\r\n * Wiki types.\r\n */\r\nvar WikiType;\r\n(function (WikiType) {\r\n /**\r\n * Indicates that the wiki is provisioned for the team project\r\n */\r\n WikiType[WikiType[\"ProjectWiki\"] = 0] = \"ProjectWiki\";\r\n /**\r\n * Indicates that the wiki is published from a git repository\r\n */\r\n WikiType[WikiType[\"CodeWiki\"] = 1] = \"CodeWiki\";\r\n})(WikiType = exports.WikiType || (exports.WikiType = {}));\r\nexports.TypeInfo = {\r\n Wiki: {},\r\n WikiCreateBaseParameters: {},\r\n WikiCreateParametersV2: {},\r\n WikiPageDetail: {},\r\n WikiPageStat: {},\r\n WikiPageViewStats: {},\r\n WikiType: {\r\n enumValues: {\r\n \"projectWiki\": 0,\r\n \"codeWiki\": 1\r\n }\r\n },\r\n WikiUpdateParameters: {},\r\n WikiV2: {},\r\n};\r\nexports.TypeInfo.Wiki.fields = {\r\n repository: {\r\n typeInfo: GitInterfaces.TypeInfo.GitRepository\r\n }\r\n};\r\nexports.TypeInfo.WikiCreateBaseParameters.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.WikiType\r\n }\r\n};\r\nexports.TypeInfo.WikiCreateParametersV2.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.WikiType\r\n },\r\n version: {\r\n typeInfo: GitInterfaces.TypeInfo.GitVersionDescriptor\r\n }\r\n};\r\nexports.TypeInfo.WikiPageDetail.fields = {\r\n viewStats: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WikiPageStat\r\n }\r\n};\r\nexports.TypeInfo.WikiPageStat.fields = {\r\n day: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.WikiPageViewStats.fields = {\r\n lastViewedTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.WikiUpdateParameters.fields = {\r\n versions: {\r\n isArray: true,\r\n typeInfo: GitInterfaces.TypeInfo.GitVersionDescriptor\r\n }\r\n};\r\nexports.TypeInfo.WikiV2.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.WikiType\r\n },\r\n versions: {\r\n isArray: true,\r\n typeInfo: GitInterfaces.TypeInfo.GitVersionDescriptor\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst SystemInterfaces = require(\"../interfaces/common/System\");\r\n/**\r\n * Definition of the type of backlog level\r\n */\r\nvar BacklogType;\r\n(function (BacklogType) {\r\n /**\r\n * Portfolio backlog level\r\n */\r\n BacklogType[BacklogType[\"Portfolio\"] = 0] = \"Portfolio\";\r\n /**\r\n * Requirement backlog level\r\n */\r\n BacklogType[BacklogType[\"Requirement\"] = 1] = \"Requirement\";\r\n /**\r\n * Task backlog level\r\n */\r\n BacklogType[BacklogType[\"Task\"] = 2] = \"Task\";\r\n})(BacklogType = exports.BacklogType || (exports.BacklogType = {}));\r\n/**\r\n * Determines what columns to include on the board badge\r\n */\r\nvar BoardBadgeColumnOptions;\r\n(function (BoardBadgeColumnOptions) {\r\n /**\r\n * Only include In Progress columns\r\n */\r\n BoardBadgeColumnOptions[BoardBadgeColumnOptions[\"InProgressColumns\"] = 0] = \"InProgressColumns\";\r\n /**\r\n * Include all columns\r\n */\r\n BoardBadgeColumnOptions[BoardBadgeColumnOptions[\"AllColumns\"] = 1] = \"AllColumns\";\r\n /**\r\n * Include a custom set of columns\r\n */\r\n BoardBadgeColumnOptions[BoardBadgeColumnOptions[\"CustomColumns\"] = 2] = \"CustomColumns\";\r\n})(BoardBadgeColumnOptions = exports.BoardBadgeColumnOptions || (exports.BoardBadgeColumnOptions = {}));\r\nvar BoardColumnType;\r\n(function (BoardColumnType) {\r\n BoardColumnType[BoardColumnType[\"Incoming\"] = 0] = \"Incoming\";\r\n BoardColumnType[BoardColumnType[\"InProgress\"] = 1] = \"InProgress\";\r\n BoardColumnType[BoardColumnType[\"Outgoing\"] = 2] = \"Outgoing\";\r\n})(BoardColumnType = exports.BoardColumnType || (exports.BoardColumnType = {}));\r\n/**\r\n * The behavior of the work item types that are in the work item category specified in the BugWorkItems section in the Process Configuration\r\n */\r\nvar BugsBehavior;\r\n(function (BugsBehavior) {\r\n BugsBehavior[BugsBehavior[\"Off\"] = 0] = \"Off\";\r\n BugsBehavior[BugsBehavior[\"AsRequirements\"] = 1] = \"AsRequirements\";\r\n BugsBehavior[BugsBehavior[\"AsTasks\"] = 2] = \"AsTasks\";\r\n})(BugsBehavior = exports.BugsBehavior || (exports.BugsBehavior = {}));\r\nvar FieldType;\r\n(function (FieldType) {\r\n FieldType[FieldType[\"String\"] = 0] = \"String\";\r\n FieldType[FieldType[\"PlainText\"] = 1] = \"PlainText\";\r\n FieldType[FieldType[\"Integer\"] = 2] = \"Integer\";\r\n FieldType[FieldType[\"DateTime\"] = 3] = \"DateTime\";\r\n FieldType[FieldType[\"TreePath\"] = 4] = \"TreePath\";\r\n FieldType[FieldType[\"Boolean\"] = 5] = \"Boolean\";\r\n FieldType[FieldType[\"Double\"] = 6] = \"Double\";\r\n})(FieldType = exports.FieldType || (exports.FieldType = {}));\r\n/**\r\n * Enum for the various modes of identity picker\r\n */\r\nvar IdentityDisplayFormat;\r\n(function (IdentityDisplayFormat) {\r\n /**\r\n * Display avatar only\r\n */\r\n IdentityDisplayFormat[IdentityDisplayFormat[\"AvatarOnly\"] = 0] = \"AvatarOnly\";\r\n /**\r\n * Display Full name only\r\n */\r\n IdentityDisplayFormat[IdentityDisplayFormat[\"FullName\"] = 1] = \"FullName\";\r\n /**\r\n * Display Avatar and Full name\r\n */\r\n IdentityDisplayFormat[IdentityDisplayFormat[\"AvatarAndFullName\"] = 2] = \"AvatarAndFullName\";\r\n})(IdentityDisplayFormat = exports.IdentityDisplayFormat || (exports.IdentityDisplayFormat = {}));\r\n/**\r\n * Enum for the various types of plans\r\n */\r\nvar PlanType;\r\n(function (PlanType) {\r\n PlanType[PlanType[\"DeliveryTimelineView\"] = 0] = \"DeliveryTimelineView\";\r\n})(PlanType = exports.PlanType || (exports.PlanType = {}));\r\n/**\r\n * Flag for permissions a user can have for this plan.\r\n */\r\nvar PlanUserPermissions;\r\n(function (PlanUserPermissions) {\r\n /**\r\n * None\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Permission to view this plan.\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"View\"] = 1] = \"View\";\r\n /**\r\n * Permission to update this plan.\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"Edit\"] = 2] = \"Edit\";\r\n /**\r\n * Permission to delete this plan.\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"Delete\"] = 4] = \"Delete\";\r\n /**\r\n * Permission to manage this plan.\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"Manage\"] = 8] = \"Manage\";\r\n /**\r\n * Full control permission for this plan.\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"AllPermissions\"] = 15] = \"AllPermissions\";\r\n})(PlanUserPermissions = exports.PlanUserPermissions || (exports.PlanUserPermissions = {}));\r\nvar TimeFrame;\r\n(function (TimeFrame) {\r\n TimeFrame[TimeFrame[\"Past\"] = 0] = \"Past\";\r\n TimeFrame[TimeFrame[\"Current\"] = 1] = \"Current\";\r\n TimeFrame[TimeFrame[\"Future\"] = 2] = \"Future\";\r\n})(TimeFrame = exports.TimeFrame || (exports.TimeFrame = {}));\r\nvar TimelineCriteriaStatusCode;\r\n(function (TimelineCriteriaStatusCode) {\r\n /**\r\n * No error - filter is good.\r\n */\r\n TimelineCriteriaStatusCode[TimelineCriteriaStatusCode[\"OK\"] = 0] = \"OK\";\r\n /**\r\n * One of the filter clause is invalid.\r\n */\r\n TimelineCriteriaStatusCode[TimelineCriteriaStatusCode[\"InvalidFilterClause\"] = 1] = \"InvalidFilterClause\";\r\n /**\r\n * Unknown error.\r\n */\r\n TimelineCriteriaStatusCode[TimelineCriteriaStatusCode[\"Unknown\"] = 2] = \"Unknown\";\r\n})(TimelineCriteriaStatusCode = exports.TimelineCriteriaStatusCode || (exports.TimelineCriteriaStatusCode = {}));\r\nvar TimelineIterationStatusCode;\r\n(function (TimelineIterationStatusCode) {\r\n /**\r\n * No error - iteration data is good.\r\n */\r\n TimelineIterationStatusCode[TimelineIterationStatusCode[\"OK\"] = 0] = \"OK\";\r\n /**\r\n * This iteration overlaps with another iteration, no data is returned for this iteration.\r\n */\r\n TimelineIterationStatusCode[TimelineIterationStatusCode[\"IsOverlapping\"] = 1] = \"IsOverlapping\";\r\n})(TimelineIterationStatusCode = exports.TimelineIterationStatusCode || (exports.TimelineIterationStatusCode = {}));\r\nvar TimelineTeamStatusCode;\r\n(function (TimelineTeamStatusCode) {\r\n /**\r\n * No error - all data for team is good.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"OK\"] = 0] = \"OK\";\r\n /**\r\n * Team does not exist or access is denied.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"DoesntExistOrAccessDenied\"] = 1] = \"DoesntExistOrAccessDenied\";\r\n /**\r\n * Maximum number of teams was exceeded. No team data will be returned for this team.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"MaxTeamsExceeded\"] = 2] = \"MaxTeamsExceeded\";\r\n /**\r\n * Maximum number of team fields (ie Area paths) have been exceeded. No team data will be returned for this team.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"MaxTeamFieldsExceeded\"] = 3] = \"MaxTeamFieldsExceeded\";\r\n /**\r\n * Backlog does not exist or is missing crucial information.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"BacklogInError\"] = 4] = \"BacklogInError\";\r\n /**\r\n * Team field value is not set for this team. No team data will be returned for this team\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"MissingTeamFieldValue\"] = 5] = \"MissingTeamFieldValue\";\r\n /**\r\n * Team does not have a single iteration with date range.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"NoIterationsExist\"] = 6] = \"NoIterationsExist\";\r\n})(TimelineTeamStatusCode = exports.TimelineTeamStatusCode || (exports.TimelineTeamStatusCode = {}));\r\nexports.TypeInfo = {\r\n BacklogConfiguration: {},\r\n BacklogLevelConfiguration: {},\r\n BacklogType: {\r\n enumValues: {\r\n \"portfolio\": 0,\r\n \"requirement\": 1,\r\n \"task\": 2\r\n }\r\n },\r\n Board: {},\r\n BoardBadgeColumnOptions: {\r\n enumValues: {\r\n \"inProgressColumns\": 0,\r\n \"allColumns\": 1,\r\n \"customColumns\": 2\r\n }\r\n },\r\n BoardColumn: {},\r\n BoardColumnType: {\r\n enumValues: {\r\n \"incoming\": 0,\r\n \"inProgress\": 1,\r\n \"outgoing\": 2\r\n }\r\n },\r\n BugsBehavior: {\r\n enumValues: {\r\n \"off\": 0,\r\n \"asRequirements\": 1,\r\n \"asTasks\": 2\r\n }\r\n },\r\n CapacityContractBase: {},\r\n CapacityPatch: {},\r\n CardFieldSettings: {},\r\n CardSettings: {},\r\n CreatePlan: {},\r\n DateRange: {},\r\n DeliveryViewData: {},\r\n DeliveryViewPropertyCollection: {},\r\n FieldInfo: {},\r\n FieldType: {\r\n enumValues: {\r\n \"string\": 0,\r\n \"plainText\": 1,\r\n \"integer\": 2,\r\n \"dateTime\": 3,\r\n \"treePath\": 4,\r\n \"boolean\": 5,\r\n \"double\": 6\r\n }\r\n },\r\n IdentityDisplayFormat: {\r\n enumValues: {\r\n \"avatarOnly\": 0,\r\n \"fullName\": 1,\r\n \"avatarAndFullName\": 2\r\n }\r\n },\r\n Marker: {},\r\n Plan: {},\r\n PlanMetadata: {},\r\n PlanType: {\r\n enumValues: {\r\n \"deliveryTimelineView\": 0\r\n }\r\n },\r\n PlanUserPermissions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"view\": 1,\r\n \"edit\": 2,\r\n \"delete\": 4,\r\n \"manage\": 8,\r\n \"allPermissions\": 15\r\n }\r\n },\r\n TeamCapacity: {},\r\n TeamIterationAttributes: {},\r\n TeamMemberCapacity: {},\r\n TeamMemberCapacityIdentityRef: {},\r\n TeamSetting: {},\r\n TeamSettingsDaysOff: {},\r\n TeamSettingsDaysOffPatch: {},\r\n TeamSettingsIteration: {},\r\n TeamSettingsPatch: {},\r\n TimeFrame: {\r\n enumValues: {\r\n \"past\": 0,\r\n \"current\": 1,\r\n \"future\": 2\r\n }\r\n },\r\n TimelineCriteriaStatus: {},\r\n TimelineCriteriaStatusCode: {\r\n enumValues: {\r\n \"ok\": 0,\r\n \"invalidFilterClause\": 1,\r\n \"unknown\": 2\r\n }\r\n },\r\n TimelineIterationStatus: {},\r\n TimelineIterationStatusCode: {\r\n enumValues: {\r\n \"ok\": 0,\r\n \"isOverlapping\": 1\r\n }\r\n },\r\n TimelineTeamData: {},\r\n TimelineTeamIteration: {},\r\n TimelineTeamStatus: {},\r\n TimelineTeamStatusCode: {\r\n enumValues: {\r\n \"ok\": 0,\r\n \"doesntExistOrAccessDenied\": 1,\r\n \"maxTeamsExceeded\": 2,\r\n \"maxTeamFieldsExceeded\": 3,\r\n \"backlogInError\": 4,\r\n \"missingTeamFieldValue\": 5,\r\n \"noIterationsExist\": 6\r\n }\r\n },\r\n UpdatePlan: {},\r\n};\r\nexports.TypeInfo.BacklogConfiguration.fields = {\r\n bugsBehavior: {\r\n enumType: exports.TypeInfo.BugsBehavior\r\n },\r\n portfolioBacklogs: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BacklogLevelConfiguration\r\n },\r\n requirementBacklog: {\r\n typeInfo: exports.TypeInfo.BacklogLevelConfiguration\r\n },\r\n taskBacklog: {\r\n typeInfo: exports.TypeInfo.BacklogLevelConfiguration\r\n }\r\n};\r\nexports.TypeInfo.BacklogLevelConfiguration.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.BacklogType\r\n }\r\n};\r\nexports.TypeInfo.Board.fields = {\r\n columns: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BoardColumn\r\n }\r\n};\r\nexports.TypeInfo.BoardColumn.fields = {\r\n columnType: {\r\n enumType: exports.TypeInfo.BoardColumnType\r\n }\r\n};\r\nexports.TypeInfo.CapacityContractBase.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.CapacityPatch.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.CardFieldSettings.fields = {\r\n additionalFields: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.FieldInfo\r\n },\r\n assignedToDisplayFormat: {\r\n enumType: exports.TypeInfo.IdentityDisplayFormat\r\n },\r\n coreFields: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.FieldInfo\r\n }\r\n};\r\nexports.TypeInfo.CardSettings.fields = {\r\n fields: {\r\n typeInfo: exports.TypeInfo.CardFieldSettings\r\n }\r\n};\r\nexports.TypeInfo.CreatePlan.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.PlanType\r\n }\r\n};\r\nexports.TypeInfo.DateRange.fields = {\r\n end: {\r\n isDate: true,\r\n },\r\n start: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.DeliveryViewData.fields = {\r\n criteriaStatus: {\r\n typeInfo: exports.TypeInfo.TimelineCriteriaStatus\r\n },\r\n endDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n teams: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineTeamData\r\n }\r\n};\r\nexports.TypeInfo.DeliveryViewPropertyCollection.fields = {\r\n cardSettings: {\r\n typeInfo: exports.TypeInfo.CardSettings\r\n },\r\n markers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Marker\r\n }\r\n};\r\nexports.TypeInfo.FieldInfo.fields = {\r\n fieldType: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.Marker.fields = {\r\n date: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Plan.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.PlanType\r\n },\r\n userPermissions: {\r\n enumType: exports.TypeInfo.PlanUserPermissions\r\n }\r\n};\r\nexports.TypeInfo.PlanMetadata.fields = {\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n userPermissions: {\r\n enumType: exports.TypeInfo.PlanUserPermissions\r\n }\r\n};\r\nexports.TypeInfo.TeamCapacity.fields = {\r\n teamMembers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TeamMemberCapacityIdentityRef\r\n }\r\n};\r\nexports.TypeInfo.TeamIterationAttributes.fields = {\r\n finishDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n timeFrame: {\r\n enumType: exports.TypeInfo.TimeFrame\r\n }\r\n};\r\nexports.TypeInfo.TeamMemberCapacity.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.TeamMemberCapacityIdentityRef.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.TeamSetting.fields = {\r\n backlogIteration: {\r\n typeInfo: exports.TypeInfo.TeamSettingsIteration\r\n },\r\n bugsBehavior: {\r\n enumType: exports.TypeInfo.BugsBehavior\r\n },\r\n defaultIteration: {\r\n typeInfo: exports.TypeInfo.TeamSettingsIteration\r\n },\r\n workingDays: {\r\n isArray: true,\r\n enumType: SystemInterfaces.TypeInfo.DayOfWeek\r\n }\r\n};\r\nexports.TypeInfo.TeamSettingsDaysOff.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.TeamSettingsDaysOffPatch.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.TeamSettingsIteration.fields = {\r\n attributes: {\r\n typeInfo: exports.TypeInfo.TeamIterationAttributes\r\n }\r\n};\r\nexports.TypeInfo.TeamSettingsPatch.fields = {\r\n bugsBehavior: {\r\n enumType: exports.TypeInfo.BugsBehavior\r\n },\r\n workingDays: {\r\n isArray: true,\r\n enumType: SystemInterfaces.TypeInfo.DayOfWeek\r\n }\r\n};\r\nexports.TypeInfo.TimelineCriteriaStatus.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.TimelineCriteriaStatusCode\r\n }\r\n};\r\nexports.TypeInfo.TimelineIterationStatus.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.TimelineIterationStatusCode\r\n }\r\n};\r\nexports.TypeInfo.TimelineTeamData.fields = {\r\n iterations: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineTeamIteration\r\n },\r\n status: {\r\n typeInfo: exports.TypeInfo.TimelineTeamStatus\r\n }\r\n};\r\nexports.TypeInfo.TimelineTeamIteration.fields = {\r\n finishDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n typeInfo: exports.TypeInfo.TimelineIterationStatus\r\n }\r\n};\r\nexports.TypeInfo.TimelineTeamStatus.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.TimelineTeamStatusCode\r\n }\r\n};\r\nexports.TypeInfo.UpdatePlan.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.PlanType\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Flag to control error policy in a batch classification nodes get request.\r\n */\r\nvar ClassificationNodesErrorPolicy;\r\n(function (ClassificationNodesErrorPolicy) {\r\n ClassificationNodesErrorPolicy[ClassificationNodesErrorPolicy[\"Fail\"] = 1] = \"Fail\";\r\n ClassificationNodesErrorPolicy[ClassificationNodesErrorPolicy[\"Omit\"] = 2] = \"Omit\";\r\n})(ClassificationNodesErrorPolicy = exports.ClassificationNodesErrorPolicy || (exports.ClassificationNodesErrorPolicy = {}));\r\n/**\r\n * Specifies the additional data retrieval options for work item comments.\r\n */\r\nvar CommentExpandOptions;\r\n(function (CommentExpandOptions) {\r\n CommentExpandOptions[CommentExpandOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include comment reactions.\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"Reactions\"] = 1] = \"Reactions\";\r\n /**\r\n * Include the rendered text (html) in addition to MD text.\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"RenderedText\"] = 8] = \"RenderedText\";\r\n /**\r\n * If specified, then ONLY rendered text (html) will be returned, w/o markdown. Supposed to be used internally from data provides for optimization purposes.\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"RenderedTextOnly\"] = 16] = \"RenderedTextOnly\";\r\n CommentExpandOptions[CommentExpandOptions[\"All\"] = -17] = \"All\";\r\n})(CommentExpandOptions = exports.CommentExpandOptions || (exports.CommentExpandOptions = {}));\r\n/**\r\n * Represents different reaction types for a work item comment.\r\n */\r\nvar CommentReactionType;\r\n(function (CommentReactionType) {\r\n CommentReactionType[CommentReactionType[\"Like\"] = 0] = \"Like\";\r\n CommentReactionType[CommentReactionType[\"Dislike\"] = 1] = \"Dislike\";\r\n CommentReactionType[CommentReactionType[\"Heart\"] = 2] = \"Heart\";\r\n CommentReactionType[CommentReactionType[\"Hooray\"] = 3] = \"Hooray\";\r\n CommentReactionType[CommentReactionType[\"Smile\"] = 4] = \"Smile\";\r\n CommentReactionType[CommentReactionType[\"Confused\"] = 5] = \"Confused\";\r\n})(CommentReactionType = exports.CommentReactionType || (exports.CommentReactionType = {}));\r\nvar CommentSortOrder;\r\n(function (CommentSortOrder) {\r\n /**\r\n * The results will be sorted in Ascending order.\r\n */\r\n CommentSortOrder[CommentSortOrder[\"Asc\"] = 1] = \"Asc\";\r\n /**\r\n * The results will be sorted in Descending order.\r\n */\r\n CommentSortOrder[CommentSortOrder[\"Desc\"] = 2] = \"Desc\";\r\n})(CommentSortOrder = exports.CommentSortOrder || (exports.CommentSortOrder = {}));\r\n/**\r\n * Enum for field types.\r\n */\r\nvar FieldType;\r\n(function (FieldType) {\r\n /**\r\n * String field type.\r\n */\r\n FieldType[FieldType[\"String\"] = 0] = \"String\";\r\n /**\r\n * Integer field type.\r\n */\r\n FieldType[FieldType[\"Integer\"] = 1] = \"Integer\";\r\n /**\r\n * Datetime field type.\r\n */\r\n FieldType[FieldType[\"DateTime\"] = 2] = \"DateTime\";\r\n /**\r\n * Plain text field type.\r\n */\r\n FieldType[FieldType[\"PlainText\"] = 3] = \"PlainText\";\r\n /**\r\n * HTML (Multiline) field type.\r\n */\r\n FieldType[FieldType[\"Html\"] = 4] = \"Html\";\r\n /**\r\n * Treepath field type.\r\n */\r\n FieldType[FieldType[\"TreePath\"] = 5] = \"TreePath\";\r\n /**\r\n * History field type.\r\n */\r\n FieldType[FieldType[\"History\"] = 6] = \"History\";\r\n /**\r\n * Double field type.\r\n */\r\n FieldType[FieldType[\"Double\"] = 7] = \"Double\";\r\n /**\r\n * Guid field type.\r\n */\r\n FieldType[FieldType[\"Guid\"] = 8] = \"Guid\";\r\n /**\r\n * Boolean field type.\r\n */\r\n FieldType[FieldType[\"Boolean\"] = 9] = \"Boolean\";\r\n /**\r\n * Identity field type.\r\n */\r\n FieldType[FieldType[\"Identity\"] = 10] = \"Identity\";\r\n /**\r\n * String picklist field type. When creating a string picklist field from REST API, use \"String\" FieldType.\r\n */\r\n FieldType[FieldType[\"PicklistString\"] = 11] = \"PicklistString\";\r\n /**\r\n * Integer picklist field type. When creating a integer picklist field from REST API, use \"Integer\" FieldType.\r\n */\r\n FieldType[FieldType[\"PicklistInteger\"] = 12] = \"PicklistInteger\";\r\n /**\r\n * Double picklist field type. When creating a double picklist field from REST API, use \"Double\" FieldType.\r\n */\r\n FieldType[FieldType[\"PicklistDouble\"] = 13] = \"PicklistDouble\";\r\n})(FieldType = exports.FieldType || (exports.FieldType = {}));\r\n/**\r\n * Enum for field usages.\r\n */\r\nvar FieldUsage;\r\n(function (FieldUsage) {\r\n /**\r\n * Empty usage.\r\n */\r\n FieldUsage[FieldUsage[\"None\"] = 0] = \"None\";\r\n /**\r\n * Work item field usage.\r\n */\r\n FieldUsage[FieldUsage[\"WorkItem\"] = 1] = \"WorkItem\";\r\n /**\r\n * Work item link field usage.\r\n */\r\n FieldUsage[FieldUsage[\"WorkItemLink\"] = 2] = \"WorkItemLink\";\r\n /**\r\n * Treenode field usage.\r\n */\r\n FieldUsage[FieldUsage[\"Tree\"] = 3] = \"Tree\";\r\n /**\r\n * Work Item Type Extension usage.\r\n */\r\n FieldUsage[FieldUsage[\"WorkItemTypeExtension\"] = 4] = \"WorkItemTypeExtension\";\r\n})(FieldUsage = exports.FieldUsage || (exports.FieldUsage = {}));\r\n/**\r\n * Flag to expand types of fields.\r\n */\r\nvar GetFieldsExpand;\r\n(function (GetFieldsExpand) {\r\n /**\r\n * Default behavior.\r\n */\r\n GetFieldsExpand[GetFieldsExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * Adds extension fields to the response.\r\n */\r\n GetFieldsExpand[GetFieldsExpand[\"ExtensionFields\"] = 1] = \"ExtensionFields\";\r\n /**\r\n * Includes fields that have been deleted.\r\n */\r\n GetFieldsExpand[GetFieldsExpand[\"IncludeDeleted\"] = 2] = \"IncludeDeleted\";\r\n})(GetFieldsExpand = exports.GetFieldsExpand || (exports.GetFieldsExpand = {}));\r\n/**\r\n * The link query mode which determines the behavior of the query.\r\n */\r\nvar LinkQueryMode;\r\n(function (LinkQueryMode) {\r\n /**\r\n * Returns flat list of work items.\r\n */\r\n LinkQueryMode[LinkQueryMode[\"WorkItems\"] = 0] = \"WorkItems\";\r\n /**\r\n * Returns work items where the source, target, and link criteria are all satisfied.\r\n */\r\n LinkQueryMode[LinkQueryMode[\"LinksOneHopMustContain\"] = 1] = \"LinksOneHopMustContain\";\r\n /**\r\n * Returns work items that satisfy the source and link criteria, even if no linked work item satisfies the target criteria.\r\n */\r\n LinkQueryMode[LinkQueryMode[\"LinksOneHopMayContain\"] = 2] = \"LinksOneHopMayContain\";\r\n /**\r\n * Returns work items that satisfy the source, only if no linked work item satisfies the link and target criteria.\r\n */\r\n LinkQueryMode[LinkQueryMode[\"LinksOneHopDoesNotContain\"] = 3] = \"LinksOneHopDoesNotContain\";\r\n LinkQueryMode[LinkQueryMode[\"LinksRecursiveMustContain\"] = 4] = \"LinksRecursiveMustContain\";\r\n /**\r\n * Returns work items a hierarchy of work items that by default satisfy the source\r\n */\r\n LinkQueryMode[LinkQueryMode[\"LinksRecursiveMayContain\"] = 5] = \"LinksRecursiveMayContain\";\r\n LinkQueryMode[LinkQueryMode[\"LinksRecursiveDoesNotContain\"] = 6] = \"LinksRecursiveDoesNotContain\";\r\n})(LinkQueryMode = exports.LinkQueryMode || (exports.LinkQueryMode = {}));\r\nvar LogicalOperation;\r\n(function (LogicalOperation) {\r\n LogicalOperation[LogicalOperation[\"NONE\"] = 0] = \"NONE\";\r\n LogicalOperation[LogicalOperation[\"AND\"] = 1] = \"AND\";\r\n LogicalOperation[LogicalOperation[\"OR\"] = 2] = \"OR\";\r\n})(LogicalOperation = exports.LogicalOperation || (exports.LogicalOperation = {}));\r\n/**\r\n * Enumerates the possible provisioning actions that can be triggered on process template update.\r\n */\r\nvar ProvisioningActionType;\r\n(function (ProvisioningActionType) {\r\n ProvisioningActionType[ProvisioningActionType[\"Import\"] = 0] = \"Import\";\r\n ProvisioningActionType[ProvisioningActionType[\"Validate\"] = 1] = \"Validate\";\r\n})(ProvisioningActionType = exports.ProvisioningActionType || (exports.ProvisioningActionType = {}));\r\n/**\r\n * Enum to control error policy in a query batch request.\r\n */\r\nvar QueryErrorPolicy;\r\n(function (QueryErrorPolicy) {\r\n QueryErrorPolicy[QueryErrorPolicy[\"Fail\"] = 1] = \"Fail\";\r\n QueryErrorPolicy[QueryErrorPolicy[\"Omit\"] = 2] = \"Omit\";\r\n})(QueryErrorPolicy = exports.QueryErrorPolicy || (exports.QueryErrorPolicy = {}));\r\n/**\r\n * Determines which set of additional query properties to display\r\n */\r\nvar QueryExpand;\r\n(function (QueryExpand) {\r\n /**\r\n * Expands Columns, Links and ChangeInfo\r\n */\r\n QueryExpand[QueryExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * Expands Columns, Links, ChangeInfo and WIQL text\r\n */\r\n QueryExpand[QueryExpand[\"Wiql\"] = 1] = \"Wiql\";\r\n /**\r\n * Expands Columns, Links, ChangeInfo, WIQL text and clauses\r\n */\r\n QueryExpand[QueryExpand[\"Clauses\"] = 2] = \"Clauses\";\r\n /**\r\n * Expands all properties\r\n */\r\n QueryExpand[QueryExpand[\"All\"] = 3] = \"All\";\r\n /**\r\n * Displays minimal properties and the WIQL text\r\n */\r\n QueryExpand[QueryExpand[\"Minimal\"] = 4] = \"Minimal\";\r\n})(QueryExpand = exports.QueryExpand || (exports.QueryExpand = {}));\r\nvar QueryOption;\r\n(function (QueryOption) {\r\n QueryOption[QueryOption[\"Doing\"] = 1] = \"Doing\";\r\n QueryOption[QueryOption[\"Done\"] = 2] = \"Done\";\r\n QueryOption[QueryOption[\"Followed\"] = 3] = \"Followed\";\r\n})(QueryOption = exports.QueryOption || (exports.QueryOption = {}));\r\n/**\r\n * Determines whether a tree query matches parents or children first.\r\n */\r\nvar QueryRecursionOption;\r\n(function (QueryRecursionOption) {\r\n /**\r\n * Returns work items that satisfy the source, even if no linked work item satisfies the target and link criteria.\r\n */\r\n QueryRecursionOption[QueryRecursionOption[\"ParentFirst\"] = 0] = \"ParentFirst\";\r\n /**\r\n * Returns work items that satisfy the target criteria, even if no work item satisfies the source and link criteria.\r\n */\r\n QueryRecursionOption[QueryRecursionOption[\"ChildFirst\"] = 1] = \"ChildFirst\";\r\n})(QueryRecursionOption = exports.QueryRecursionOption || (exports.QueryRecursionOption = {}));\r\n/**\r\n * The query result type\r\n */\r\nvar QueryResultType;\r\n(function (QueryResultType) {\r\n /**\r\n * A list of work items (for flat queries).\r\n */\r\n QueryResultType[QueryResultType[\"WorkItem\"] = 1] = \"WorkItem\";\r\n /**\r\n * A list of work item links (for OneHop and Tree queries).\r\n */\r\n QueryResultType[QueryResultType[\"WorkItemLink\"] = 2] = \"WorkItemLink\";\r\n})(QueryResultType = exports.QueryResultType || (exports.QueryResultType = {}));\r\n/**\r\n * The type of query.\r\n */\r\nvar QueryType;\r\n(function (QueryType) {\r\n /**\r\n * Gets a flat list of work items.\r\n */\r\n QueryType[QueryType[\"Flat\"] = 1] = \"Flat\";\r\n /**\r\n * Gets a tree of work items showing their link hierarchy.\r\n */\r\n QueryType[QueryType[\"Tree\"] = 2] = \"Tree\";\r\n /**\r\n * Gets a list of work items and their direct links.\r\n */\r\n QueryType[QueryType[\"OneHop\"] = 3] = \"OneHop\";\r\n})(QueryType = exports.QueryType || (exports.QueryType = {}));\r\n/**\r\n * The reporting revision expand level.\r\n */\r\nvar ReportingRevisionsExpand;\r\n(function (ReportingRevisionsExpand) {\r\n /**\r\n * Default behavior.\r\n */\r\n ReportingRevisionsExpand[ReportingRevisionsExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * Add fields to the response.\r\n */\r\n ReportingRevisionsExpand[ReportingRevisionsExpand[\"Fields\"] = 1] = \"Fields\";\r\n})(ReportingRevisionsExpand = exports.ReportingRevisionsExpand || (exports.ReportingRevisionsExpand = {}));\r\n/**\r\n * Enumerates types of supported xml templates used for customization.\r\n */\r\nvar TemplateType;\r\n(function (TemplateType) {\r\n TemplateType[TemplateType[\"WorkItemType\"] = 0] = \"WorkItemType\";\r\n TemplateType[TemplateType[\"GlobalWorkflow\"] = 1] = \"GlobalWorkflow\";\r\n})(TemplateType = exports.TemplateType || (exports.TemplateType = {}));\r\n/**\r\n * Types of tree node structures.\r\n */\r\nvar TreeNodeStructureType;\r\n(function (TreeNodeStructureType) {\r\n /**\r\n * Area type.\r\n */\r\n TreeNodeStructureType[TreeNodeStructureType[\"Area\"] = 0] = \"Area\";\r\n /**\r\n * Iteration type.\r\n */\r\n TreeNodeStructureType[TreeNodeStructureType[\"Iteration\"] = 1] = \"Iteration\";\r\n})(TreeNodeStructureType = exports.TreeNodeStructureType || (exports.TreeNodeStructureType = {}));\r\n/**\r\n * Types of tree structures groups.\r\n */\r\nvar TreeStructureGroup;\r\n(function (TreeStructureGroup) {\r\n TreeStructureGroup[TreeStructureGroup[\"Areas\"] = 0] = \"Areas\";\r\n TreeStructureGroup[TreeStructureGroup[\"Iterations\"] = 1] = \"Iterations\";\r\n})(TreeStructureGroup = exports.TreeStructureGroup || (exports.TreeStructureGroup = {}));\r\n/**\r\n * Enum to control error policy in a bulk get work items request.\r\n */\r\nvar WorkItemErrorPolicy;\r\n(function (WorkItemErrorPolicy) {\r\n /**\r\n * Fail work error policy.\r\n */\r\n WorkItemErrorPolicy[WorkItemErrorPolicy[\"Fail\"] = 1] = \"Fail\";\r\n /**\r\n * Omit work error policy.\r\n */\r\n WorkItemErrorPolicy[WorkItemErrorPolicy[\"Omit\"] = 2] = \"Omit\";\r\n})(WorkItemErrorPolicy = exports.WorkItemErrorPolicy || (exports.WorkItemErrorPolicy = {}));\r\n/**\r\n * Flag to control payload properties from get work item command.\r\n */\r\nvar WorkItemExpand;\r\n(function (WorkItemExpand) {\r\n /**\r\n * Default behavior.\r\n */\r\n WorkItemExpand[WorkItemExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * Relations work item expand.\r\n */\r\n WorkItemExpand[WorkItemExpand[\"Relations\"] = 1] = \"Relations\";\r\n /**\r\n * Fields work item expand.\r\n */\r\n WorkItemExpand[WorkItemExpand[\"Fields\"] = 2] = \"Fields\";\r\n /**\r\n * Links work item expand.\r\n */\r\n WorkItemExpand[WorkItemExpand[\"Links\"] = 3] = \"Links\";\r\n /**\r\n * Expands all.\r\n */\r\n WorkItemExpand[WorkItemExpand[\"All\"] = 4] = \"All\";\r\n})(WorkItemExpand = exports.WorkItemExpand || (exports.WorkItemExpand = {}));\r\n/**\r\n * Type of the activity\r\n */\r\nvar WorkItemRecentActivityType;\r\n(function (WorkItemRecentActivityType) {\r\n WorkItemRecentActivityType[WorkItemRecentActivityType[\"Visited\"] = 0] = \"Visited\";\r\n WorkItemRecentActivityType[WorkItemRecentActivityType[\"Edited\"] = 1] = \"Edited\";\r\n WorkItemRecentActivityType[WorkItemRecentActivityType[\"Deleted\"] = 2] = \"Deleted\";\r\n WorkItemRecentActivityType[WorkItemRecentActivityType[\"Restored\"] = 3] = \"Restored\";\r\n})(WorkItemRecentActivityType = exports.WorkItemRecentActivityType || (exports.WorkItemRecentActivityType = {}));\r\n/**\r\n * Expand options for the work item field(s) request.\r\n */\r\nvar WorkItemTypeFieldsExpandLevel;\r\n(function (WorkItemTypeFieldsExpandLevel) {\r\n /**\r\n * Includes only basic properties of the field.\r\n */\r\n WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel[\"None\"] = 0] = \"None\";\r\n /**\r\n * Includes allowed values for the field.\r\n */\r\n WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel[\"AllowedValues\"] = 1] = \"AllowedValues\";\r\n /**\r\n * Includes dependent fields of the field.\r\n */\r\n WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel[\"DependentFields\"] = 2] = \"DependentFields\";\r\n /**\r\n * Includes allowed values and dependent fields of the field.\r\n */\r\n WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel[\"All\"] = 3] = \"All\";\r\n})(WorkItemTypeFieldsExpandLevel = exports.WorkItemTypeFieldsExpandLevel || (exports.WorkItemTypeFieldsExpandLevel = {}));\r\nexports.TypeInfo = {\r\n AccountMyWorkResult: {},\r\n AccountRecentActivityWorkItemModel: {},\r\n AccountRecentActivityWorkItemModel2: {},\r\n AccountRecentActivityWorkItemModelBase: {},\r\n AccountRecentMentionWorkItemModel: {},\r\n AccountWorkWorkItemModel: {},\r\n ClassificationNodesErrorPolicy: {\r\n enumValues: {\r\n \"fail\": 1,\r\n \"omit\": 2\r\n }\r\n },\r\n Comment: {},\r\n CommentExpandOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"reactions\": 1,\r\n \"renderedText\": 8,\r\n \"renderedTextOnly\": 16,\r\n \"all\": -17\r\n }\r\n },\r\n CommentList: {},\r\n CommentReaction: {},\r\n CommentReactionType: {\r\n enumValues: {\r\n \"like\": 0,\r\n \"dislike\": 1,\r\n \"heart\": 2,\r\n \"hooray\": 3,\r\n \"smile\": 4,\r\n \"confused\": 5\r\n }\r\n },\r\n CommentSortOrder: {\r\n enumValues: {\r\n \"asc\": 1,\r\n \"desc\": 2\r\n }\r\n },\r\n CommentVersion: {},\r\n ExternalDeployment: {},\r\n FieldType: {\r\n enumValues: {\r\n \"string\": 0,\r\n \"integer\": 1,\r\n \"dateTime\": 2,\r\n \"plainText\": 3,\r\n \"html\": 4,\r\n \"treePath\": 5,\r\n \"history\": 6,\r\n \"double\": 7,\r\n \"guid\": 8,\r\n \"boolean\": 9,\r\n \"identity\": 10,\r\n \"picklistString\": 11,\r\n \"picklistInteger\": 12,\r\n \"picklistDouble\": 13\r\n }\r\n },\r\n FieldUsage: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"workItem\": 1,\r\n \"workItemLink\": 2,\r\n \"tree\": 3,\r\n \"workItemTypeExtension\": 4\r\n }\r\n },\r\n GetFieldsExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"extensionFields\": 1,\r\n \"includeDeleted\": 2\r\n }\r\n },\r\n LinkQueryMode: {\r\n enumValues: {\r\n \"workItems\": 0,\r\n \"linksOneHopMustContain\": 1,\r\n \"linksOneHopMayContain\": 2,\r\n \"linksOneHopDoesNotContain\": 3,\r\n \"linksRecursiveMustContain\": 4,\r\n \"linksRecursiveMayContain\": 5,\r\n \"linksRecursiveDoesNotContain\": 6\r\n }\r\n },\r\n LogicalOperation: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"and\": 1,\r\n \"or\": 2\r\n }\r\n },\r\n ProvisioningActionType: {\r\n enumValues: {\r\n \"import\": 0,\r\n \"validate\": 1\r\n }\r\n },\r\n QueryBatchGetRequest: {},\r\n QueryErrorPolicy: {\r\n enumValues: {\r\n \"fail\": 1,\r\n \"omit\": 2\r\n }\r\n },\r\n QueryExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"wiql\": 1,\r\n \"clauses\": 2,\r\n \"all\": 3,\r\n \"minimal\": 4\r\n }\r\n },\r\n QueryHierarchyItem: {},\r\n QueryHierarchyItemsResult: {},\r\n QueryOption: {\r\n enumValues: {\r\n \"doing\": 1,\r\n \"done\": 2,\r\n \"followed\": 3\r\n }\r\n },\r\n QueryRecursionOption: {\r\n enumValues: {\r\n \"parentFirst\": 0,\r\n \"childFirst\": 1\r\n }\r\n },\r\n QueryResultType: {\r\n enumValues: {\r\n \"workItem\": 1,\r\n \"workItemLink\": 2\r\n }\r\n },\r\n QueryType: {\r\n enumValues: {\r\n \"flat\": 1,\r\n \"tree\": 2,\r\n \"oneHop\": 3\r\n }\r\n },\r\n ReportingRevisionsExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"fields\": 1\r\n }\r\n },\r\n TemplateType: {\r\n enumValues: {\r\n \"workItemType\": 0,\r\n \"globalWorkflow\": 1\r\n }\r\n },\r\n TreeNodeStructureType: {\r\n enumValues: {\r\n \"area\": 0,\r\n \"iteration\": 1\r\n }\r\n },\r\n TreeStructureGroup: {\r\n enumValues: {\r\n \"areas\": 0,\r\n \"iterations\": 1\r\n }\r\n },\r\n WorkItemBatchGetRequest: {},\r\n WorkItemClassificationNode: {},\r\n WorkItemComment: {},\r\n WorkItemComments: {},\r\n WorkItemErrorPolicy: {\r\n enumValues: {\r\n \"fail\": 1,\r\n \"omit\": 2\r\n }\r\n },\r\n WorkItemExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"relations\": 1,\r\n \"fields\": 2,\r\n \"links\": 3,\r\n \"all\": 4\r\n }\r\n },\r\n WorkItemField: {},\r\n WorkItemHistory: {},\r\n WorkItemQueryClause: {},\r\n WorkItemQueryResult: {},\r\n WorkItemRecentActivityType: {\r\n enumValues: {\r\n \"visited\": 0,\r\n \"edited\": 1,\r\n \"deleted\": 2,\r\n \"restored\": 3\r\n }\r\n },\r\n WorkItemTypeFieldsExpandLevel: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"allowedValues\": 1,\r\n \"dependentFields\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n WorkItemTypeTemplateUpdateModel: {},\r\n WorkItemUpdate: {},\r\n};\r\nexports.TypeInfo.AccountMyWorkResult.fields = {\r\n workItemDetails: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.AccountWorkWorkItemModel\r\n }\r\n};\r\nexports.TypeInfo.AccountRecentActivityWorkItemModel.fields = {\r\n activityDate: {\r\n isDate: true,\r\n },\r\n activityType: {\r\n enumType: exports.TypeInfo.WorkItemRecentActivityType\r\n },\r\n changedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AccountRecentActivityWorkItemModel2.fields = {\r\n activityDate: {\r\n isDate: true,\r\n },\r\n activityType: {\r\n enumType: exports.TypeInfo.WorkItemRecentActivityType\r\n },\r\n changedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AccountRecentActivityWorkItemModelBase.fields = {\r\n activityDate: {\r\n isDate: true,\r\n },\r\n activityType: {\r\n enumType: exports.TypeInfo.WorkItemRecentActivityType\r\n },\r\n changedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AccountRecentMentionWorkItemModel.fields = {\r\n mentionedDateField: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AccountWorkWorkItemModel.fields = {\r\n changedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Comment.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n createdOnBehalfDate: {\r\n isDate: true,\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n reactions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.CommentReaction\r\n }\r\n};\r\nexports.TypeInfo.CommentList.fields = {\r\n comments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Comment\r\n }\r\n};\r\nexports.TypeInfo.CommentReaction.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.CommentReactionType\r\n }\r\n};\r\nexports.TypeInfo.CommentVersion.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n createdOnBehalfDate: {\r\n isDate: true,\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ExternalDeployment.fields = {\r\n statusDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.QueryBatchGetRequest.fields = {\r\n $expand: {\r\n enumType: exports.TypeInfo.QueryExpand\r\n },\r\n errorPolicy: {\r\n enumType: exports.TypeInfo.QueryErrorPolicy\r\n }\r\n};\r\nexports.TypeInfo.QueryHierarchyItem.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.QueryHierarchyItem\r\n },\r\n clauses: {\r\n typeInfo: exports.TypeInfo.WorkItemQueryClause\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n filterOptions: {\r\n enumType: exports.TypeInfo.LinkQueryMode\r\n },\r\n lastExecutedDate: {\r\n isDate: true,\r\n },\r\n lastModifiedDate: {\r\n isDate: true,\r\n },\r\n linkClauses: {\r\n typeInfo: exports.TypeInfo.WorkItemQueryClause\r\n },\r\n queryRecursionOption: {\r\n enumType: exports.TypeInfo.QueryRecursionOption\r\n },\r\n queryType: {\r\n enumType: exports.TypeInfo.QueryType\r\n },\r\n sourceClauses: {\r\n typeInfo: exports.TypeInfo.WorkItemQueryClause\r\n },\r\n targetClauses: {\r\n typeInfo: exports.TypeInfo.WorkItemQueryClause\r\n }\r\n};\r\nexports.TypeInfo.QueryHierarchyItemsResult.fields = {\r\n value: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.QueryHierarchyItem\r\n }\r\n};\r\nexports.TypeInfo.WorkItemBatchGetRequest.fields = {\r\n $expand: {\r\n enumType: exports.TypeInfo.WorkItemExpand\r\n },\r\n asOf: {\r\n isDate: true,\r\n },\r\n errorPolicy: {\r\n enumType: exports.TypeInfo.WorkItemErrorPolicy\r\n }\r\n};\r\nexports.TypeInfo.WorkItemClassificationNode.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkItemClassificationNode\r\n },\r\n structureType: {\r\n enumType: exports.TypeInfo.TreeNodeStructureType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemComment.fields = {\r\n revisedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.WorkItemComments.fields = {\r\n comments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkItemComment\r\n }\r\n};\r\nexports.TypeInfo.WorkItemField.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n },\r\n usage: {\r\n enumType: exports.TypeInfo.FieldUsage\r\n }\r\n};\r\nexports.TypeInfo.WorkItemHistory.fields = {\r\n revisedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.WorkItemQueryClause.fields = {\r\n clauses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkItemQueryClause\r\n },\r\n logicalOperator: {\r\n enumType: exports.TypeInfo.LogicalOperation\r\n }\r\n};\r\nexports.TypeInfo.WorkItemQueryResult.fields = {\r\n asOf: {\r\n isDate: true,\r\n },\r\n queryResultType: {\r\n enumType: exports.TypeInfo.QueryResultType\r\n },\r\n queryType: {\r\n enumType: exports.TypeInfo.QueryType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemTypeTemplateUpdateModel.fields = {\r\n actionType: {\r\n enumType: exports.TypeInfo.ProvisioningActionType\r\n },\r\n templateType: {\r\n enumType: exports.TypeInfo.TemplateType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemUpdate.fields = {\r\n revisedDate: {\r\n isDate: true,\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Enum for the type of a field.\r\n */\r\nvar FieldType;\r\n(function (FieldType) {\r\n /**\r\n * String field type.\r\n */\r\n FieldType[FieldType[\"String\"] = 1] = \"String\";\r\n /**\r\n * Integer field type.\r\n */\r\n FieldType[FieldType[\"Integer\"] = 2] = \"Integer\";\r\n /**\r\n * Datetime field type.\r\n */\r\n FieldType[FieldType[\"DateTime\"] = 3] = \"DateTime\";\r\n /**\r\n * Plain Text field type.\r\n */\r\n FieldType[FieldType[\"PlainText\"] = 5] = \"PlainText\";\r\n /**\r\n * HTML (Multiline) field type.\r\n */\r\n FieldType[FieldType[\"Html\"] = 7] = \"Html\";\r\n /**\r\n * Treepath field type.\r\n */\r\n FieldType[FieldType[\"TreePath\"] = 8] = \"TreePath\";\r\n /**\r\n * History field type.\r\n */\r\n FieldType[FieldType[\"History\"] = 9] = \"History\";\r\n /**\r\n * Double field type.\r\n */\r\n FieldType[FieldType[\"Double\"] = 10] = \"Double\";\r\n /**\r\n * Guid field type.\r\n */\r\n FieldType[FieldType[\"Guid\"] = 11] = \"Guid\";\r\n /**\r\n * Boolean field type.\r\n */\r\n FieldType[FieldType[\"Boolean\"] = 12] = \"Boolean\";\r\n /**\r\n * Identity field type.\r\n */\r\n FieldType[FieldType[\"Identity\"] = 13] = \"Identity\";\r\n /**\r\n * Integer picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistInteger\"] = 14] = \"PicklistInteger\";\r\n /**\r\n * String picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistString\"] = 15] = \"PicklistString\";\r\n /**\r\n * Double picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistDouble\"] = 16] = \"PicklistDouble\";\r\n})(FieldType = exports.FieldType || (exports.FieldType = {}));\r\nvar GetWorkItemTypeExpand;\r\n(function (GetWorkItemTypeExpand) {\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"None\"] = 0] = \"None\";\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"States\"] = 1] = \"States\";\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"Behaviors\"] = 2] = \"Behaviors\";\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"Layout\"] = 4] = \"Layout\";\r\n})(GetWorkItemTypeExpand = exports.GetWorkItemTypeExpand || (exports.GetWorkItemTypeExpand = {}));\r\n/**\r\n * Type of page\r\n */\r\nvar PageType;\r\n(function (PageType) {\r\n PageType[PageType[\"Custom\"] = 1] = \"Custom\";\r\n PageType[PageType[\"History\"] = 2] = \"History\";\r\n PageType[PageType[\"Links\"] = 3] = \"Links\";\r\n PageType[PageType[\"Attachments\"] = 4] = \"Attachments\";\r\n})(PageType = exports.PageType || (exports.PageType = {}));\r\n/**\r\n * Work item type classes'\r\n */\r\nvar WorkItemTypeClass;\r\n(function (WorkItemTypeClass) {\r\n WorkItemTypeClass[WorkItemTypeClass[\"System\"] = 0] = \"System\";\r\n WorkItemTypeClass[WorkItemTypeClass[\"Derived\"] = 1] = \"Derived\";\r\n WorkItemTypeClass[WorkItemTypeClass[\"Custom\"] = 2] = \"Custom\";\r\n})(WorkItemTypeClass = exports.WorkItemTypeClass || (exports.WorkItemTypeClass = {}));\r\nexports.TypeInfo = {\r\n FieldModel: {},\r\n FieldType: {\r\n enumValues: {\r\n \"string\": 1,\r\n \"integer\": 2,\r\n \"dateTime\": 3,\r\n \"plainText\": 5,\r\n \"html\": 7,\r\n \"treePath\": 8,\r\n \"history\": 9,\r\n \"double\": 10,\r\n \"guid\": 11,\r\n \"boolean\": 12,\r\n \"identity\": 13,\r\n \"picklistInteger\": 14,\r\n \"picklistString\": 15,\r\n \"picklistDouble\": 16\r\n }\r\n },\r\n FormLayout: {},\r\n GetWorkItemTypeExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"states\": 1,\r\n \"behaviors\": 2,\r\n \"layout\": 4\r\n }\r\n },\r\n Page: {},\r\n PageType: {\r\n enumValues: {\r\n \"custom\": 1,\r\n \"history\": 2,\r\n \"links\": 3,\r\n \"attachments\": 4\r\n }\r\n },\r\n WorkItemTypeClass: {\r\n enumValues: {\r\n \"system\": 0,\r\n \"derived\": 1,\r\n \"custom\": 2\r\n }\r\n },\r\n WorkItemTypeFieldModel: {},\r\n WorkItemTypeFieldModel2: {},\r\n WorkItemTypeModel: {},\r\n};\r\nexports.TypeInfo.FieldModel.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.FormLayout.fields = {\r\n pages: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Page\r\n }\r\n};\r\nexports.TypeInfo.Page.fields = {\r\n pageType: {\r\n enumType: exports.TypeInfo.PageType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemTypeFieldModel.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemTypeFieldModel2.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemTypeModel.fields = {\r\n class: {\r\n enumType: exports.TypeInfo.WorkItemTypeClass\r\n },\r\n layout: {\r\n typeInfo: exports.TypeInfo.FormLayout\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Indicates the customization-type. Customization-type is System if is system generated or by default. Customization-type is Inherited if the existing workitemtype of inherited process is customized. Customization-type is Custom if the newly created workitemtype is customized.\r\n */\r\nvar CustomizationType;\r\n(function (CustomizationType) {\r\n /**\r\n * Customization-type is System if is system generated workitemtype.\r\n */\r\n CustomizationType[CustomizationType[\"System\"] = 1] = \"System\";\r\n /**\r\n * Customization-type is Inherited if the existing workitemtype of inherited process is customized.\r\n */\r\n CustomizationType[CustomizationType[\"Inherited\"] = 2] = \"Inherited\";\r\n /**\r\n * Customization-type is Custom if the newly created workitemtype is customized.\r\n */\r\n CustomizationType[CustomizationType[\"Custom\"] = 3] = \"Custom\";\r\n})(CustomizationType = exports.CustomizationType || (exports.CustomizationType = {}));\r\n/**\r\n * Enum for the type of a field.\r\n */\r\nvar FieldType;\r\n(function (FieldType) {\r\n /**\r\n * String field type.\r\n */\r\n FieldType[FieldType[\"String\"] = 1] = \"String\";\r\n /**\r\n * Integer field type.\r\n */\r\n FieldType[FieldType[\"Integer\"] = 2] = \"Integer\";\r\n /**\r\n * DateTime field type.\r\n */\r\n FieldType[FieldType[\"DateTime\"] = 3] = \"DateTime\";\r\n /**\r\n * Plain text field type.\r\n */\r\n FieldType[FieldType[\"PlainText\"] = 5] = \"PlainText\";\r\n /**\r\n * HTML (Multiline) field type.\r\n */\r\n FieldType[FieldType[\"Html\"] = 7] = \"Html\";\r\n /**\r\n * Treepath field type.\r\n */\r\n FieldType[FieldType[\"TreePath\"] = 8] = \"TreePath\";\r\n /**\r\n * History field type.\r\n */\r\n FieldType[FieldType[\"History\"] = 9] = \"History\";\r\n /**\r\n * Double field type.\r\n */\r\n FieldType[FieldType[\"Double\"] = 10] = \"Double\";\r\n /**\r\n * Guid field type.\r\n */\r\n FieldType[FieldType[\"Guid\"] = 11] = \"Guid\";\r\n /**\r\n * Boolean field type.\r\n */\r\n FieldType[FieldType[\"Boolean\"] = 12] = \"Boolean\";\r\n /**\r\n * Identity field type.\r\n */\r\n FieldType[FieldType[\"Identity\"] = 13] = \"Identity\";\r\n /**\r\n * Integer picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistInteger\"] = 14] = \"PicklistInteger\";\r\n /**\r\n * String picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistString\"] = 15] = \"PicklistString\";\r\n /**\r\n * Double picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistDouble\"] = 16] = \"PicklistDouble\";\r\n})(FieldType = exports.FieldType || (exports.FieldType = {}));\r\n/**\r\n * Expand options to fetch fields for behaviors API.\r\n */\r\nvar GetBehaviorsExpand;\r\n(function (GetBehaviorsExpand) {\r\n /**\r\n * Default none option.\r\n */\r\n GetBehaviorsExpand[GetBehaviorsExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * This option returns fields associated with a behavior.\r\n */\r\n GetBehaviorsExpand[GetBehaviorsExpand[\"Fields\"] = 1] = \"Fields\";\r\n /**\r\n * This option returns fields associated with this behavior and all behaviors from which it inherits.\r\n */\r\n GetBehaviorsExpand[GetBehaviorsExpand[\"CombinedFields\"] = 2] = \"CombinedFields\";\r\n})(GetBehaviorsExpand = exports.GetBehaviorsExpand || (exports.GetBehaviorsExpand = {}));\r\n/**\r\n * The expand level of returned processes.\r\n */\r\nvar GetProcessExpandLevel;\r\n(function (GetProcessExpandLevel) {\r\n /**\r\n * No expand level.\r\n */\r\n GetProcessExpandLevel[GetProcessExpandLevel[\"None\"] = 0] = \"None\";\r\n /**\r\n * Projects expand level.\r\n */\r\n GetProcessExpandLevel[GetProcessExpandLevel[\"Projects\"] = 1] = \"Projects\";\r\n})(GetProcessExpandLevel = exports.GetProcessExpandLevel || (exports.GetProcessExpandLevel = {}));\r\n/**\r\n * Flag to define what properties to return in get work item type response.\r\n */\r\nvar GetWorkItemTypeExpand;\r\n(function (GetWorkItemTypeExpand) {\r\n /**\r\n * Returns no properties in get work item type response.\r\n */\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * Returns states property in get work item type response.\r\n */\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"States\"] = 1] = \"States\";\r\n /**\r\n * Returns behaviors property in get work item type response.\r\n */\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"Behaviors\"] = 2] = \"Behaviors\";\r\n /**\r\n * Returns layout property in get work item type response.\r\n */\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"Layout\"] = 4] = \"Layout\";\r\n})(GetWorkItemTypeExpand = exports.GetWorkItemTypeExpand || (exports.GetWorkItemTypeExpand = {}));\r\n/**\r\n * Enum for the types of pages in the work item form layout\r\n */\r\nvar PageType;\r\n(function (PageType) {\r\n /**\r\n * Custom page type.\r\n */\r\n PageType[PageType[\"Custom\"] = 1] = \"Custom\";\r\n /**\r\n * History page type.\r\n */\r\n PageType[PageType[\"History\"] = 2] = \"History\";\r\n /**\r\n * Link page type.\r\n */\r\n PageType[PageType[\"Links\"] = 3] = \"Links\";\r\n /**\r\n * Attachment page type.\r\n */\r\n PageType[PageType[\"Attachments\"] = 4] = \"Attachments\";\r\n})(PageType = exports.PageType || (exports.PageType = {}));\r\nvar ProcessClass;\r\n(function (ProcessClass) {\r\n ProcessClass[ProcessClass[\"System\"] = 0] = \"System\";\r\n ProcessClass[ProcessClass[\"Derived\"] = 1] = \"Derived\";\r\n ProcessClass[ProcessClass[\"Custom\"] = 2] = \"Custom\";\r\n})(ProcessClass = exports.ProcessClass || (exports.ProcessClass = {}));\r\n/**\r\n * Expand options for the work item field(s) request.\r\n */\r\nvar ProcessWorkItemTypeFieldsExpandLevel;\r\n(function (ProcessWorkItemTypeFieldsExpandLevel) {\r\n /**\r\n * Includes only basic properties of the field.\r\n */\r\n ProcessWorkItemTypeFieldsExpandLevel[ProcessWorkItemTypeFieldsExpandLevel[\"None\"] = 0] = \"None\";\r\n /**\r\n * Includes allowed values for the field.\r\n */\r\n ProcessWorkItemTypeFieldsExpandLevel[ProcessWorkItemTypeFieldsExpandLevel[\"AllowedValues\"] = 1] = \"AllowedValues\";\r\n /**\r\n * Includes allowed values and dependent fields of the field.\r\n */\r\n ProcessWorkItemTypeFieldsExpandLevel[ProcessWorkItemTypeFieldsExpandLevel[\"All\"] = 2] = \"All\";\r\n})(ProcessWorkItemTypeFieldsExpandLevel = exports.ProcessWorkItemTypeFieldsExpandLevel || (exports.ProcessWorkItemTypeFieldsExpandLevel = {}));\r\n/**\r\n * Type of action to take when the rule is triggered.\r\n */\r\nvar RuleActionType;\r\n(function (RuleActionType) {\r\n /**\r\n * Make the target field required. Example : {\"actionType\":\"$makeRequired\",\"targetField\":\"Microsoft.VSTS.Common.Activity\",\"value\":\"\"}\r\n */\r\n RuleActionType[RuleActionType[\"MakeRequired\"] = 1] = \"MakeRequired\";\r\n /**\r\n * Make the target field read-only. Example : {\"actionType\":\"$makeReadOnly\",\"targetField\":\"Microsoft.VSTS.Common.Activity\",\"value\":\"\"}\r\n */\r\n RuleActionType[RuleActionType[\"MakeReadOnly\"] = 2] = \"MakeReadOnly\";\r\n /**\r\n * Set a default value on the target field. This is used if the user creates a integer/string field and sets a default value of this field.\r\n */\r\n RuleActionType[RuleActionType[\"SetDefaultValue\"] = 3] = \"SetDefaultValue\";\r\n /**\r\n * Set the default value on the target field from server clock. This is used if user creates the field like Date/Time and uses default value.\r\n */\r\n RuleActionType[RuleActionType[\"SetDefaultFromClock\"] = 4] = \"SetDefaultFromClock\";\r\n /**\r\n * Set the default current user value on the target field. This is used if the user creates the field of type identity and uses default value.\r\n */\r\n RuleActionType[RuleActionType[\"SetDefaultFromCurrentUser\"] = 5] = \"SetDefaultFromCurrentUser\";\r\n /**\r\n * Set the default value on from existing field to the target field. This used wants to set a existing field value to the current field.\r\n */\r\n RuleActionType[RuleActionType[\"SetDefaultFromField\"] = 6] = \"SetDefaultFromField\";\r\n /**\r\n * Set the value of target field to given value. Example : {actionType: \"$copyValue\", targetField: \"ScrumInherited.mypicklist\", value: \"samplevalue\"}\r\n */\r\n RuleActionType[RuleActionType[\"CopyValue\"] = 7] = \"CopyValue\";\r\n /**\r\n * Set the value from clock.\r\n */\r\n RuleActionType[RuleActionType[\"CopyFromClock\"] = 8] = \"CopyFromClock\";\r\n /**\r\n * Set the current user to the target field. Example : {\"actionType\":\"$copyFromCurrentUser\",\"targetField\":\"System.AssignedTo\",\"value\":\"\"}.\r\n */\r\n RuleActionType[RuleActionType[\"CopyFromCurrentUser\"] = 9] = \"CopyFromCurrentUser\";\r\n /**\r\n * Copy the value from a specified field and set to target field. Example : {actionType: \"$copyFromField\", targetField: \"System.AssignedTo\", value:\"System.ChangedBy\"}. Here, value is copied from \"System.ChangedBy\" and set to \"System.AssingedTo\" field.\r\n */\r\n RuleActionType[RuleActionType[\"CopyFromField\"] = 10] = \"CopyFromField\";\r\n /**\r\n * Set the value of the target field to empty.\r\n */\r\n RuleActionType[RuleActionType[\"SetValueToEmpty\"] = 11] = \"SetValueToEmpty\";\r\n /**\r\n * Use the current time to set the value of the target field. Example : {actionType: \"$copyFromServerClock\", targetField: \"System.CreatedDate\", value: \"\"}\r\n */\r\n RuleActionType[RuleActionType[\"CopyFromServerClock\"] = 12] = \"CopyFromServerClock\";\r\n /**\r\n * Use the current user to set the value of the target field.\r\n */\r\n RuleActionType[RuleActionType[\"CopyFromServerCurrentUser\"] = 13] = \"CopyFromServerCurrentUser\";\r\n /**\r\n * Hides target field from the form. This is a server side only action.\r\n */\r\n RuleActionType[RuleActionType[\"HideTargetField\"] = 14] = \"HideTargetField\";\r\n /**\r\n * Disallows a field from being set to a specific value.\r\n */\r\n RuleActionType[RuleActionType[\"DisallowValue\"] = 15] = \"DisallowValue\";\r\n})(RuleActionType = exports.RuleActionType || (exports.RuleActionType = {}));\r\n/**\r\n * Type of rule condition.\r\n */\r\nvar RuleConditionType;\r\n(function (RuleConditionType) {\r\n /**\r\n * $When. This condition limits the execution of its children to cases when another field has a particular value, i.e. when the Is value of the referenced field is equal to the given literal value.\r\n */\r\n RuleConditionType[RuleConditionType[\"When\"] = 1] = \"When\";\r\n /**\r\n * $WhenNot.This condition limits the execution of its children to cases when another field does not have a particular value, i.e.when the Is value of the referenced field is not equal to the given literal value.\r\n */\r\n RuleConditionType[RuleConditionType[\"WhenNot\"] = 2] = \"WhenNot\";\r\n /**\r\n * $WhenChanged.This condition limits the execution of its children to cases when another field has changed, i.e.when the Is value of the referenced field is not equal to the Was value of that field.\r\n */\r\n RuleConditionType[RuleConditionType[\"WhenChanged\"] = 3] = \"WhenChanged\";\r\n /**\r\n * $WhenNotChanged.This condition limits the execution of its children to cases when another field has not changed, i.e.when the Is value of the referenced field is equal to the Was value of that field.\r\n */\r\n RuleConditionType[RuleConditionType[\"WhenNotChanged\"] = 4] = \"WhenNotChanged\";\r\n RuleConditionType[RuleConditionType[\"WhenWas\"] = 5] = \"WhenWas\";\r\n RuleConditionType[RuleConditionType[\"WhenStateChangedTo\"] = 6] = \"WhenStateChangedTo\";\r\n RuleConditionType[RuleConditionType[\"WhenStateChangedFromAndTo\"] = 7] = \"WhenStateChangedFromAndTo\";\r\n RuleConditionType[RuleConditionType[\"WhenWorkItemIsCreated\"] = 8] = \"WhenWorkItemIsCreated\";\r\n RuleConditionType[RuleConditionType[\"WhenValueIsDefined\"] = 9] = \"WhenValueIsDefined\";\r\n RuleConditionType[RuleConditionType[\"WhenValueIsNotDefined\"] = 10] = \"WhenValueIsNotDefined\";\r\n RuleConditionType[RuleConditionType[\"WhenCurrentUserIsMemberOfGroup\"] = 11] = \"WhenCurrentUserIsMemberOfGroup\";\r\n RuleConditionType[RuleConditionType[\"WhenCurrentUserIsNotMemberOfGroup\"] = 12] = \"WhenCurrentUserIsNotMemberOfGroup\";\r\n})(RuleConditionType = exports.RuleConditionType || (exports.RuleConditionType = {}));\r\nvar WorkItemTypeClass;\r\n(function (WorkItemTypeClass) {\r\n WorkItemTypeClass[WorkItemTypeClass[\"System\"] = 0] = \"System\";\r\n WorkItemTypeClass[WorkItemTypeClass[\"Derived\"] = 1] = \"Derived\";\r\n WorkItemTypeClass[WorkItemTypeClass[\"Custom\"] = 2] = \"Custom\";\r\n})(WorkItemTypeClass = exports.WorkItemTypeClass || (exports.WorkItemTypeClass = {}));\r\nexports.TypeInfo = {\r\n CreateProcessRuleRequest: {},\r\n CustomizationType: {\r\n enumValues: {\r\n \"system\": 1,\r\n \"inherited\": 2,\r\n \"custom\": 3\r\n }\r\n },\r\n FieldModel: {},\r\n FieldType: {\r\n enumValues: {\r\n \"string\": 1,\r\n \"integer\": 2,\r\n \"dateTime\": 3,\r\n \"plainText\": 5,\r\n \"html\": 7,\r\n \"treePath\": 8,\r\n \"history\": 9,\r\n \"double\": 10,\r\n \"guid\": 11,\r\n \"boolean\": 12,\r\n \"identity\": 13,\r\n \"picklistInteger\": 14,\r\n \"picklistString\": 15,\r\n \"picklistDouble\": 16\r\n }\r\n },\r\n FormLayout: {},\r\n GetBehaviorsExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"fields\": 1,\r\n \"combinedFields\": 2\r\n }\r\n },\r\n GetProcessExpandLevel: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"projects\": 1\r\n }\r\n },\r\n GetWorkItemTypeExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"states\": 1,\r\n \"behaviors\": 2,\r\n \"layout\": 4\r\n }\r\n },\r\n Page: {},\r\n PageType: {\r\n enumValues: {\r\n \"custom\": 1,\r\n \"history\": 2,\r\n \"links\": 3,\r\n \"attachments\": 4\r\n }\r\n },\r\n ProcessBehavior: {},\r\n ProcessClass: {\r\n enumValues: {\r\n \"system\": 0,\r\n \"derived\": 1,\r\n \"custom\": 2\r\n }\r\n },\r\n ProcessInfo: {},\r\n ProcessModel: {},\r\n ProcessProperties: {},\r\n ProcessRule: {},\r\n ProcessWorkItemType: {},\r\n ProcessWorkItemTypeField: {},\r\n ProcessWorkItemTypeFieldsExpandLevel: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"allowedValues\": 1,\r\n \"all\": 2\r\n }\r\n },\r\n RuleAction: {},\r\n RuleActionType: {\r\n enumValues: {\r\n \"makeRequired\": 1,\r\n \"makeReadOnly\": 2,\r\n \"setDefaultValue\": 3,\r\n \"setDefaultFromClock\": 4,\r\n \"setDefaultFromCurrentUser\": 5,\r\n \"setDefaultFromField\": 6,\r\n \"copyValue\": 7,\r\n \"copyFromClock\": 8,\r\n \"copyFromCurrentUser\": 9,\r\n \"copyFromField\": 10,\r\n \"setValueToEmpty\": 11,\r\n \"copyFromServerClock\": 12,\r\n \"copyFromServerCurrentUser\": 13,\r\n \"hideTargetField\": 14,\r\n \"disallowValue\": 15\r\n }\r\n },\r\n RuleCondition: {},\r\n RuleConditionType: {\r\n enumValues: {\r\n \"when\": 1,\r\n \"whenNot\": 2,\r\n \"whenChanged\": 3,\r\n \"whenNotChanged\": 4,\r\n \"whenWas\": 5,\r\n \"whenStateChangedTo\": 6,\r\n \"whenStateChangedFromAndTo\": 7,\r\n \"whenWorkItemIsCreated\": 8,\r\n \"whenValueIsDefined\": 9,\r\n \"whenValueIsNotDefined\": 10,\r\n \"whenCurrentUserIsMemberOfGroup\": 11,\r\n \"whenCurrentUserIsNotMemberOfGroup\": 12\r\n }\r\n },\r\n UpdateProcessRuleRequest: {},\r\n WorkItemStateResultModel: {},\r\n WorkItemTypeClass: {\r\n enumValues: {\r\n \"system\": 0,\r\n \"derived\": 1,\r\n \"custom\": 2\r\n }\r\n },\r\n WorkItemTypeModel: {},\r\n};\r\nexports.TypeInfo.CreateProcessRuleRequest.fields = {\r\n actions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleAction\r\n },\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleCondition\r\n }\r\n};\r\nexports.TypeInfo.FieldModel.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.FormLayout.fields = {\r\n pages: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Page\r\n }\r\n};\r\nexports.TypeInfo.Page.fields = {\r\n pageType: {\r\n enumType: exports.TypeInfo.PageType\r\n }\r\n};\r\nexports.TypeInfo.ProcessBehavior.fields = {\r\n customization: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n }\r\n};\r\nexports.TypeInfo.ProcessInfo.fields = {\r\n customizationType: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n }\r\n};\r\nexports.TypeInfo.ProcessModel.fields = {\r\n properties: {\r\n typeInfo: exports.TypeInfo.ProcessProperties\r\n }\r\n};\r\nexports.TypeInfo.ProcessProperties.fields = {\r\n class: {\r\n enumType: exports.TypeInfo.ProcessClass\r\n }\r\n};\r\nexports.TypeInfo.ProcessRule.fields = {\r\n actions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleAction\r\n },\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleCondition\r\n },\r\n customizationType: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n }\r\n};\r\nexports.TypeInfo.ProcessWorkItemType.fields = {\r\n customization: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n },\r\n layout: {\r\n typeInfo: exports.TypeInfo.FormLayout\r\n },\r\n states: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkItemStateResultModel\r\n }\r\n};\r\nexports.TypeInfo.ProcessWorkItemTypeField.fields = {\r\n customization: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.RuleAction.fields = {\r\n actionType: {\r\n enumType: exports.TypeInfo.RuleActionType\r\n }\r\n};\r\nexports.TypeInfo.RuleCondition.fields = {\r\n conditionType: {\r\n enumType: exports.TypeInfo.RuleConditionType\r\n }\r\n};\r\nexports.TypeInfo.UpdateProcessRuleRequest.fields = {\r\n actions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleAction\r\n },\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleCondition\r\n }\r\n};\r\nexports.TypeInfo.WorkItemStateResultModel.fields = {\r\n customizationType: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemTypeModel.fields = {\r\n class: {\r\n enumType: exports.TypeInfo.WorkItemTypeClass\r\n },\r\n layout: {\r\n typeInfo: exports.TypeInfo.FormLayout\r\n },\r\n states: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkItemStateResultModel\r\n }\r\n};\r\n","/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*\r\n* See following wiki page for instructions on how to regenerate:\r\n* https://vsowiki.com/index.php?title=Rest_Client_Generation\r\n*/\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar InputDataType;\r\n(function (InputDataType) {\r\n /**\r\n * No data type is specified.\r\n */\r\n InputDataType[InputDataType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Represents a textual value.\r\n */\r\n InputDataType[InputDataType[\"String\"] = 10] = \"String\";\r\n /**\r\n * Represents a numberic value.\r\n */\r\n InputDataType[InputDataType[\"Number\"] = 20] = \"Number\";\r\n /**\r\n * Represents a value of true or false.\r\n */\r\n InputDataType[InputDataType[\"Boolean\"] = 30] = \"Boolean\";\r\n /**\r\n * Represents a Guid.\r\n */\r\n InputDataType[InputDataType[\"Guid\"] = 40] = \"Guid\";\r\n /**\r\n * Represents a URI.\r\n */\r\n InputDataType[InputDataType[\"Uri\"] = 50] = \"Uri\";\r\n})(InputDataType = exports.InputDataType || (exports.InputDataType = {}));\r\nvar InputFilterOperator;\r\n(function (InputFilterOperator) {\r\n InputFilterOperator[InputFilterOperator[\"Equals\"] = 0] = \"Equals\";\r\n InputFilterOperator[InputFilterOperator[\"NotEquals\"] = 1] = \"NotEquals\";\r\n})(InputFilterOperator = exports.InputFilterOperator || (exports.InputFilterOperator = {}));\r\nvar InputMode;\r\n(function (InputMode) {\r\n /**\r\n * This input should not be shown in the UI\r\n */\r\n InputMode[InputMode[\"None\"] = 0] = \"None\";\r\n /**\r\n * An input text box should be shown\r\n */\r\n InputMode[InputMode[\"TextBox\"] = 10] = \"TextBox\";\r\n /**\r\n * An password input box should be shown\r\n */\r\n InputMode[InputMode[\"PasswordBox\"] = 20] = \"PasswordBox\";\r\n /**\r\n * A select/combo control should be shown\r\n */\r\n InputMode[InputMode[\"Combo\"] = 30] = \"Combo\";\r\n /**\r\n * Radio buttons should be shown\r\n */\r\n InputMode[InputMode[\"RadioButtons\"] = 40] = \"RadioButtons\";\r\n /**\r\n * Checkbox should be shown(for true/false values)\r\n */\r\n InputMode[InputMode[\"CheckBox\"] = 50] = \"CheckBox\";\r\n /**\r\n * A multi-line text area should be shown\r\n */\r\n InputMode[InputMode[\"TextArea\"] = 60] = \"TextArea\";\r\n})(InputMode = exports.InputMode || (exports.InputMode = {}));\r\nexports.TypeInfo = {\r\n InputDataType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"string\": 10,\r\n \"number\": 20,\r\n \"boolean\": 30,\r\n \"guid\": 40,\r\n \"uri\": 50,\r\n }\r\n },\r\n InputDescriptor: {\r\n fields: null\r\n },\r\n InputFilter: {\r\n fields: null\r\n },\r\n InputFilterCondition: {\r\n fields: null\r\n },\r\n InputFilterOperator: {\r\n enumValues: {\r\n \"equals\": 0,\r\n \"notEquals\": 1,\r\n }\r\n },\r\n InputMode: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"textBox\": 10,\r\n \"passwordBox\": 20,\r\n \"combo\": 30,\r\n \"radioButtons\": 40,\r\n \"checkBox\": 50,\r\n \"textArea\": 60,\r\n }\r\n },\r\n InputValidation: {\r\n fields: null\r\n },\r\n InputValue: {\r\n fields: null\r\n },\r\n InputValues: {\r\n fields: null\r\n },\r\n InputValuesError: {\r\n fields: null\r\n },\r\n InputValuesQuery: {\r\n fields: null\r\n },\r\n};\r\nexports.TypeInfo.InputDescriptor.fields = {\r\n inputMode: {\r\n enumType: exports.TypeInfo.InputMode\r\n },\r\n validation: {\r\n typeInfo: exports.TypeInfo.InputValidation\r\n },\r\n values: {\r\n typeInfo: exports.TypeInfo.InputValues\r\n },\r\n};\r\nexports.TypeInfo.InputFilter.fields = {\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.InputFilterCondition\r\n },\r\n};\r\nexports.TypeInfo.InputFilterCondition.fields = {\r\n operator: {\r\n enumType: exports.TypeInfo.InputFilterOperator\r\n },\r\n};\r\nexports.TypeInfo.InputValidation.fields = {\r\n dataType: {\r\n enumType: exports.TypeInfo.InputDataType\r\n },\r\n};\r\nexports.TypeInfo.InputValue.fields = {};\r\nexports.TypeInfo.InputValues.fields = {\r\n error: {\r\n typeInfo: exports.TypeInfo.InputValuesError\r\n },\r\n possibleValues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.InputValue\r\n },\r\n};\r\nexports.TypeInfo.InputValuesError.fields = {};\r\nexports.TypeInfo.InputValuesQuery.fields = {\r\n inputValues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.InputValues\r\n },\r\n};\r\n","/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*/\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar OperationStatus;\r\n(function (OperationStatus) {\r\n /**\r\n * The operation object does not have the status set.\r\n */\r\n OperationStatus[OperationStatus[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * The operation has been queued.\r\n */\r\n OperationStatus[OperationStatus[\"Queued\"] = 1] = \"Queued\";\r\n /**\r\n * The operation is in progress.\r\n */\r\n OperationStatus[OperationStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The operation was cancelled by the user.\r\n */\r\n OperationStatus[OperationStatus[\"Cancelled\"] = 3] = \"Cancelled\";\r\n /**\r\n * The operation completed successfully.\r\n */\r\n OperationStatus[OperationStatus[\"Succeeded\"] = 4] = \"Succeeded\";\r\n /**\r\n * The operation completed with a failure.\r\n */\r\n OperationStatus[OperationStatus[\"Failed\"] = 5] = \"Failed\";\r\n})(OperationStatus = exports.OperationStatus || (exports.OperationStatus = {}));\r\nexports.TypeInfo = {\r\n OperationReference: {\r\n fields: null\r\n },\r\n OperationStatus: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"queued\": 1,\r\n \"inProgress\": 2,\r\n \"cancelled\": 3,\r\n \"succeeded\": 4,\r\n \"failed\": 5,\r\n }\r\n },\r\n};\r\nexports.TypeInfo.OperationReference.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.OperationStatus\r\n },\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DayOfWeek;\r\n(function (DayOfWeek) {\r\n /**\r\n * Indicates Sunday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Sunday\"] = 0] = \"Sunday\";\r\n /**\r\n * Indicates Monday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Monday\"] = 1] = \"Monday\";\r\n /**\r\n * Indicates Tuesday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Tuesday\"] = 2] = \"Tuesday\";\r\n /**\r\n * Indicates Wednesday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Wednesday\"] = 3] = \"Wednesday\";\r\n /**\r\n * Indicates Thursday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Thursday\"] = 4] = \"Thursday\";\r\n /**\r\n * Indicates Friday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Friday\"] = 5] = \"Friday\";\r\n /**\r\n * Indicates Saturday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Saturday\"] = 6] = \"Saturday\";\r\n})(DayOfWeek = exports.DayOfWeek || (exports.DayOfWeek = {}));\r\nexports.TypeInfo = {\r\n DayOfWeek: {\r\n enumValues: {\r\n \"sunday\": 0,\r\n \"monday\": 1,\r\n \"tuesday\": 2,\r\n \"wednesday\": 3,\r\n \"thursday\": 4,\r\n \"friday\": 5,\r\n \"saturday\": 6\r\n }\r\n }\r\n};\r\n","\"use strict\";\r\n//----------------------------------------------------------\r\n// Copyright (C) Microsoft Corporation. All rights reserved.\r\n//----------------------------------------------------------\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Specifies SQL Server-specific data type of a field, property, for use in a System.Data.SqlClient.SqlParameter.\r\n */\r\nvar SqlDbType;\r\n(function (SqlDbType) {\r\n /**\r\n * A 64-bit signed integer.\r\n */\r\n SqlDbType[SqlDbType[\"BigInt\"] = 0] = \"BigInt\";\r\n /**\r\n * Array of type Byte. A fixed-length stream of binary data ranging between 1 and 8,000 bytes.\r\n */\r\n SqlDbType[SqlDbType[\"Binary\"] = 1] = \"Binary\";\r\n /**\r\n * Boolean. An unsigned numeric value that can be 0, 1, or null.\r\n */\r\n SqlDbType[SqlDbType[\"Bit\"] = 2] = \"Bit\";\r\n /**\r\n * String. A fixed-length stream of non-Unicode characters ranging between 1 and 8,000 characters.\r\n */\r\n SqlDbType[SqlDbType[\"Char\"] = 3] = \"Char\";\r\n /**\r\n * DateTime. Date and time data ranging in value from January 1, 1753 to December 31, 9999 to an accuracy of 3.33 milliseconds.\r\n */\r\n SqlDbType[SqlDbType[\"DateTime\"] = 4] = \"DateTime\";\r\n /**\r\n * Decimal. A fixed precision and scale numeric value between -10 38 -1 and 10 38 -1.\r\n */\r\n SqlDbType[SqlDbType[\"Decimal\"] = 5] = \"Decimal\";\r\n /**\r\n * Double. A floating point number within the range of -1.79E +308 through 1.79E +308.\r\n */\r\n SqlDbType[SqlDbType[\"Float\"] = 6] = \"Float\";\r\n /**\r\n * Array of type Byte. A variable-length stream of binary data ranging from 0 to 2 31 -1 (or 2,147,483,647) bytes.\r\n */\r\n SqlDbType[SqlDbType[\"Image\"] = 7] = \"Image\";\r\n /**\r\n * Int32. A 32-bit signed integer.\r\n */\r\n SqlDbType[SqlDbType[\"Int\"] = 8] = \"Int\";\r\n /**\r\n * Decimal. A currency value ranging from -2 63 (or -9,223,372,036,854,775,808) to 2 63 -1 (or +9,223,372,036,854,775,807) with an accuracy to a ten-thousandth of a currency unit.\r\n */\r\n SqlDbType[SqlDbType[\"Money\"] = 9] = \"Money\";\r\n /**\r\n * String. A fixed-length stream of Unicode characters ranging between 1 and 4,000 characters.\r\n */\r\n SqlDbType[SqlDbType[\"NChar\"] = 10] = \"NChar\";\r\n /**\r\n * String. A variable-length stream of Unicode data with a maximum length of 2 30 - 1 (or 1,073,741,823) characters.\r\n */\r\n SqlDbType[SqlDbType[\"NText\"] = 11] = \"NText\";\r\n /**\r\n * String. A variable-length stream of Unicode characters ranging between 1 and 4,000 characters. Implicit conversion fails if the string is greater than 4,000 characters. Explicitly set the object when working with strings longer than 4,000 characters. Use System.Data.SqlDbType.NVarChar when the database column is nvarchar(max).\r\n */\r\n SqlDbType[SqlDbType[\"NVarChar\"] = 12] = \"NVarChar\";\r\n /**\r\n * Single. A floating point number within the range of -3.40E +38 through 3.40E +38.\r\n */\r\n SqlDbType[SqlDbType[\"Real\"] = 13] = \"Real\";\r\n /**\r\n * Guid. A globally unique identifier (or GUID).\r\n */\r\n SqlDbType[SqlDbType[\"UniqueIdentifier\"] = 14] = \"UniqueIdentifier\";\r\n /**\r\n * DateTime. Date and time data ranging in value from January 1, 1900 to June 6, 2079 to an accuracy of one minute.\r\n */\r\n SqlDbType[SqlDbType[\"SmallDateTime\"] = 15] = \"SmallDateTime\";\r\n /**\r\n * Int16. A 16-bit signed integer.\r\n */\r\n SqlDbType[SqlDbType[\"SmallInt\"] = 16] = \"SmallInt\";\r\n /**\r\n * Decimal. A currency value ranging from -214,748.3648 to +214,748.3647 with an accuracy to a ten-thousandth of a currency unit.\r\n */\r\n SqlDbType[SqlDbType[\"SmallMoney\"] = 17] = \"SmallMoney\";\r\n /**\r\n * String. A variable-length stream of non-Unicode data with a maximum length of 2 31 -1 (or 2,147,483,647) characters.\r\n */\r\n SqlDbType[SqlDbType[\"Text\"] = 18] = \"Text\";\r\n /**\r\n * Array of type System.Byte. Automatically generated binary numbers, which are guaranteed to be unique within a database. timestamp is used typically as a mechanism for version-stamping table rows. The storage size is 8 bytes.\r\n */\r\n SqlDbType[SqlDbType[\"Timestamp\"] = 19] = \"Timestamp\";\r\n /**\r\n * Byte. An 8-bit unsigned integer.\r\n */\r\n SqlDbType[SqlDbType[\"TinyInt\"] = 20] = \"TinyInt\";\r\n /**\r\n * Array of type Byte. A variable-length stream of binary data ranging between 1 and 8,000 bytes. Implicit conversion fails if the byte array is greater than 8,000 bytes. Explicitly set the object when working with byte arrays larger than 8,000 bytes.\r\n */\r\n SqlDbType[SqlDbType[\"VarBinary\"] = 21] = \"VarBinary\";\r\n /**\r\n * String. A variable-length stream of non-Unicode characters ranging between 1 and 8,000 characters. Use System.Data.SqlDbType.VarChar when the database column is varchar(max).\r\n */\r\n SqlDbType[SqlDbType[\"VarChar\"] = 22] = \"VarChar\";\r\n /**\r\n * Object. A special data type that can contain numeric, string, binary, or date data as well as the SQL Server values Empty and Null, which is assumed if no other type is declared.\r\n */\r\n SqlDbType[SqlDbType[\"Variant\"] = 23] = \"Variant\";\r\n /**\r\n * An XML value. Obtain the XML as a string using the System.Data.SqlClient.SqlDataReader.GetValue(System.Int32) method or System.Data.SqlTypes.SqlXml.Value property, or as an System.Xml.XmlReader by calling the System.Data.SqlTypes.SqlXml.CreateReader method.\r\n */\r\n SqlDbType[SqlDbType[\"Xml\"] = 25] = \"Xml\";\r\n /**\r\n * A SQL Server user-defined type (UDT).\r\n */\r\n SqlDbType[SqlDbType[\"Udt\"] = 29] = \"Udt\";\r\n /**\r\n * A special data type for specifying structured data contained in table-valued parameters.\r\n */\r\n SqlDbType[SqlDbType[\"Structured\"] = 30] = \"Structured\";\r\n /**\r\n * Date data ranging in value from January 1,1 AD through December 31, 9999 AD.\r\n */\r\n SqlDbType[SqlDbType[\"Date\"] = 31] = \"Date\";\r\n /**\r\n * Time data based on a 24-hour clock. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds. Corresponds to a SQL Server time value.\r\n */\r\n SqlDbType[SqlDbType[\"Time\"] = 32] = \"Time\";\r\n /**\r\n * Date and time data. Date value range is from January 1,1 AD through December 31, 9999 AD. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds.\r\n */\r\n SqlDbType[SqlDbType[\"DateTime2\"] = 33] = \"DateTime2\";\r\n /**\r\n * Date and time data with time zone awareness. Date value range is from January 1,1 AD through December 31, 9999 AD. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds. Time zone value range is -14:00 through +14:00.\r\n */\r\n SqlDbType[SqlDbType[\"DateTimeOffset\"] = 34] = \"DateTimeOffset\";\r\n})(SqlDbType = exports.SqlDbType || (exports.SqlDbType = {}));\r\nexports.TypeInfo = {\r\n SqlDbType: {\r\n enumValues: {\r\n \"BigInt\": 0,\r\n \"Binary\": 1,\r\n \"Bit\": 2,\r\n \"Char\": 3,\r\n \"DateTime\": 4,\r\n \"Decimal\": 5,\r\n \"Float\": 6,\r\n \"Image\": 7,\r\n \"Int\": 8,\r\n \"Money\": 9,\r\n \"NChar\": 10,\r\n \"NText\": 11,\r\n \"NVarChar\": 12,\r\n \"Real\": 13,\r\n \"UniqueIdentifier\": 14,\r\n \"SmallDateTime\": 15,\r\n \"SmallInt\": 16,\r\n \"SmallMoney\": 17,\r\n \"Text\": 18,\r\n \"Timestamp\": 19,\r\n \"TinyInt\": 20,\r\n \"VarBinary\": 21,\r\n \"VarChar\": 22,\r\n \"Variant\": 23,\r\n \"Xml\": 25,\r\n \"Udt\": 29,\r\n \"Structured\": 30,\r\n \"Date\": 31,\r\n \"Time\": 32,\r\n \"DateTime2\": 33,\r\n \"DateTimeOffset\": 34\r\n }\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Enumeration of the options that can be passed in on Connect.\r\n */\r\nvar ConnectOptions;\r\n(function (ConnectOptions) {\r\n /**\r\n * Retrieve no optional data.\r\n */\r\n ConnectOptions[ConnectOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Includes information about AccessMappings and ServiceDefinitions.\r\n */\r\n ConnectOptions[ConnectOptions[\"IncludeServices\"] = 1] = \"IncludeServices\";\r\n /**\r\n * Includes the last user access for this host.\r\n */\r\n ConnectOptions[ConnectOptions[\"IncludeLastUserAccess\"] = 2] = \"IncludeLastUserAccess\";\r\n /**\r\n * This is only valid on the deployment host and when true. Will only return inherited definitions.\r\n */\r\n ConnectOptions[ConnectOptions[\"IncludeInheritedDefinitionsOnly\"] = 4] = \"IncludeInheritedDefinitionsOnly\";\r\n /**\r\n * When true will only return non inherited definitions. Only valid at non-deployment host.\r\n */\r\n ConnectOptions[ConnectOptions[\"IncludeNonInheritedDefinitionsOnly\"] = 8] = \"IncludeNonInheritedDefinitionsOnly\";\r\n})(ConnectOptions = exports.ConnectOptions || (exports.ConnectOptions = {}));\r\nvar DeploymentFlags;\r\n(function (DeploymentFlags) {\r\n DeploymentFlags[DeploymentFlags[\"None\"] = 0] = \"None\";\r\n DeploymentFlags[DeploymentFlags[\"Hosted\"] = 1] = \"Hosted\";\r\n DeploymentFlags[DeploymentFlags[\"OnPremises\"] = 2] = \"OnPremises\";\r\n})(DeploymentFlags = exports.DeploymentFlags || (exports.DeploymentFlags = {}));\r\nvar JWTAlgorithm;\r\n(function (JWTAlgorithm) {\r\n JWTAlgorithm[JWTAlgorithm[\"None\"] = 0] = \"None\";\r\n JWTAlgorithm[JWTAlgorithm[\"HS256\"] = 1] = \"HS256\";\r\n JWTAlgorithm[JWTAlgorithm[\"RS256\"] = 2] = \"RS256\";\r\n})(JWTAlgorithm = exports.JWTAlgorithm || (exports.JWTAlgorithm = {}));\r\nvar Operation;\r\n(function (Operation) {\r\n Operation[Operation[\"Add\"] = 0] = \"Add\";\r\n Operation[Operation[\"Remove\"] = 1] = \"Remove\";\r\n Operation[Operation[\"Replace\"] = 2] = \"Replace\";\r\n Operation[Operation[\"Move\"] = 3] = \"Move\";\r\n Operation[Operation[\"Copy\"] = 4] = \"Copy\";\r\n Operation[Operation[\"Test\"] = 5] = \"Test\";\r\n})(Operation = exports.Operation || (exports.Operation = {}));\r\nexports.TypeInfo = {\r\n ConnectOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeServices\": 1,\r\n \"includeLastUserAccess\": 2,\r\n \"includeInheritedDefinitionsOnly\": 4,\r\n \"includeNonInheritedDefinitionsOnly\": 8\r\n }\r\n },\r\n DeploymentFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"hosted\": 1,\r\n \"onPremises\": 2\r\n }\r\n },\r\n JsonPatchOperation: {},\r\n JWTAlgorithm: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"hS256\": 1,\r\n \"rS256\": 2\r\n }\r\n },\r\n Operation: {\r\n enumValues: {\r\n \"add\": 0,\r\n \"remove\": 1,\r\n \"replace\": 2,\r\n \"move\": 3,\r\n \"copy\": 4,\r\n \"test\": 5\r\n }\r\n },\r\n SignedUrl: {},\r\n TraceFilter: {},\r\n VssNotificationEvent: {},\r\n};\r\nexports.TypeInfo.JsonPatchOperation.fields = {\r\n op: {\r\n enumType: exports.TypeInfo.Operation\r\n }\r\n};\r\nexports.TypeInfo.SignedUrl.fields = {\r\n signatureExpires: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TraceFilter.fields = {\r\n timeCreated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.VssNotificationEvent.fields = {\r\n sourceEventCreatedTime: {\r\n isDate: true,\r\n }\r\n};\r\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar origSymbol = global.Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parse_url(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parse_url(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parse_url(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\nconst resolve_url = Url.resolve;\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tconst locationURL = location === null ? null : resolve_url(request.url, location);\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n if (sideChannel.has(object)) {\n throw new RangeError('Cyclic object value');\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = typeof key === 'object' && key.value !== undefined ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, true);\n var valueSideChannel = getSideChannel();\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar match = String.prototype.match;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nvar inspectCustom = require('./util.inspect').custom;\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\nvar toStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag !== 'undefined' ? Symbol.toStringTag : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('options \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n return String(obj);\n }\n if (typeof obj === 'bigint') {\n return String(obj) + 'n';\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = seen.slice();\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function') {\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + String(obj.nodeName).toLowerCase();\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + xs.join(', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n return obj[inspectSymbol]();\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + ys.join(', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return String(s).replace(/\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = str.replace(/(['\\\\])/g, '\\\\$1').replace(/[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase();\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = Array(opts.indent + 1).join(' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: Array(depth + 1).join(baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + xs.join(',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ((/[^\\w$]/).test(key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","module.exports = require('util').inspect;\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar basiccreds_1 = require(\"./handlers/basiccreds\");\nexports.BasicCredentialHandler = basiccreds_1.BasicCredentialHandler;\nvar bearertoken_1 = require(\"./handlers/bearertoken\");\nexports.BearerCredentialHandler = bearertoken_1.BearerCredentialHandler;\nvar ntlm_1 = require(\"./handlers/ntlm\");\nexports.NtlmCredentialHandler = ntlm_1.NtlmCredentialHandler;\nvar personalaccesstoken_1 = require(\"./handlers/personalaccesstoken\");\nexports.PersonalAccessTokenCredentialHandler = personalaccesstoken_1.PersonalAccessTokenCredentialHandler;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst url = require(\"url\");\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst util = require(\"./Util\");\nlet fs;\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nconst HttpRedirectCodes = [HttpCodes.MovedPermanently, HttpCodes.ResourceMoved, HttpCodes.SeeOther, HttpCodes.TemporaryRedirect, HttpCodes.PermanentRedirect];\nconst HttpResponseRetryCodes = [HttpCodes.BadGateway, HttpCodes.ServiceUnavailable, HttpCodes.GatewayTimeout];\nconst NetworkRetryErrors = ['ECONNRESET', 'ENOTFOUND', 'ESOCKETTIMEDOUT', 'ETIMEDOUT', 'ECONNREFUSED'];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n let buffer = Buffer.alloc(0);\n const encodingCharset = util.obtainContentCharset(this);\n // Extract Encoding from header: 'content-encoding'\n // Match `gzip`, `gzip, deflate` variations of GZIP encoding\n const contentEncoding = this.message.headers['content-encoding'] || '';\n const isGzippedEncoded = new RegExp('(gzip$)|(gzip, *deflate)').test(contentEncoding);\n this.message.on('data', function (data) {\n const chunk = (typeof data === 'string') ? Buffer.from(data, encodingCharset) : data;\n buffer = Buffer.concat([buffer, chunk]);\n }).on('end', function () {\n return __awaiter(this, void 0, void 0, function* () {\n if (isGzippedEncoded) { // Process GZipped Response Body HERE\n const gunzippedBody = yield util.decompressGzippedContent(buffer, encodingCharset);\n resolve(gunzippedBody);\n }\n else {\n resolve(buffer.toString(encodingCharset));\n }\n });\n }).on('error', function (err) {\n reject(err);\n });\n }));\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = url.parse(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nvar EnvironmentVariables;\n(function (EnvironmentVariables) {\n EnvironmentVariables[\"HTTP_PROXY\"] = \"HTTP_PROXY\";\n EnvironmentVariables[\"HTTPS_PROXY\"] = \"HTTPS_PROXY\";\n EnvironmentVariables[\"NO_PROXY\"] = \"NO_PROXY\";\n})(EnvironmentVariables || (EnvironmentVariables = {}));\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n let no_proxy = process.env[EnvironmentVariables.NO_PROXY];\n if (no_proxy) {\n this._httpProxyBypassHosts = [];\n no_proxy.split(',').forEach(bypass => {\n this._httpProxyBypassHosts.push(util.buildProxyBypassRegexFromEnv(bypass));\n });\n }\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n this._httpProxy = requestOptions.proxy;\n if (requestOptions.proxy && requestOptions.proxy.proxyBypassHosts) {\n this._httpProxyBypassHosts = [];\n requestOptions.proxy.proxyBypassHosts.forEach(bypass => {\n this._httpProxyBypassHosts.push(new RegExp(bypass, 'i'));\n });\n }\n this._certConfig = requestOptions.cert;\n if (this._certConfig) {\n // If using cert, need fs\n fs = require('fs');\n // cache the cert content into memory, so we don't have to read it from disk every time\n if (this._certConfig.caFile && fs.existsSync(this._certConfig.caFile)) {\n this._ca = fs.readFileSync(this._certConfig.caFile, 'utf8');\n }\n if (this._certConfig.certFile && fs.existsSync(this._certConfig.certFile)) {\n this._cert = fs.readFileSync(this._certConfig.certFile, 'utf8');\n }\n if (this._certConfig.keyFile && fs.existsSync(this._certConfig.keyFile)) {\n this._key = fs.readFileSync(this._certConfig.keyFile, 'utf8');\n }\n }\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error(\"Client has already been disposed.\");\n }\n let parsedUrl = url.parse(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = (this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1) ? this._maxRetries + 1 : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n try {\n response = yield this.requestRaw(info, data);\n }\n catch (err) {\n numTries++;\n if (err && err.code && NetworkRetryErrors.indexOf(err.code) > -1 && numTries < maxTries) {\n yield this._performExponentialBackoff(numTries);\n continue;\n }\n throw err;\n }\n // Check if it's an authentication challenge\n if (response && response.message && response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1\n && this._allowRedirects\n && redirectsRemaining > 0) {\n const redirectUrl = response.message.headers[\"location\"];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = url.parse(redirectUrl);\n if (parsedUrl.protocol == 'https:' && parsedUrl.protocol != parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) {\n throw new Error(\"Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.\");\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n }\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof (data) === 'string') {\n info.options.headers[\"Content-Length\"] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', (sock) => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.destroy();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof (data) === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof (data) !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port ? parseInt(info.parsedUrl.port) : defaultPort;\n info.options.path = (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.timeout = (this.requestOptions && this.requestOptions.socketTimeout) || this._socketTimeout;\n this._socketTimeout = info.options.timeout;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers[\"user-agent\"] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers && !this._isPresigned(url.format(requestUrl))) {\n this.handlers.forEach((handler) => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _isPresigned(requestUrl) {\n if (this.requestOptions && this.requestOptions.presignedUrlPatterns) {\n const patterns = this.requestOptions.presignedUrlPatterns;\n for (let i = 0; i < patterns.length; i++) {\n if (requestUrl.match(patterns[i])) {\n return true;\n }\n }\n }\n return false;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => (c[k.toLowerCase()] = obj[k], c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxy = this._getProxy(parsedUrl);\n let useProxy = proxy.proxyUrl && proxy.proxyUrl.hostname && !this._isMatchInBypassProxyList(parsedUrl);\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n proxyAuth: proxy.proxyAuth,\n host: proxy.proxyUrl.hostname,\n port: proxy.proxyUrl.port\n },\n };\n let tunnelAgent;\n const overHttps = proxy.proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, { rejectUnauthorized: false });\n }\n if (usingSsl && this._certConfig) {\n agent.options = Object.assign(agent.options || {}, { ca: this._ca, cert: this._cert, key: this._key, passphrase: this._certConfig.passphrase });\n }\n return agent;\n }\n _getProxy(parsedUrl) {\n let usingSsl = parsedUrl.protocol === 'https:';\n let proxyConfig = this._httpProxy;\n // fallback to http_proxy and https_proxy env\n let https_proxy = process.env[EnvironmentVariables.HTTPS_PROXY];\n let http_proxy = process.env[EnvironmentVariables.HTTP_PROXY];\n if (!proxyConfig) {\n if (https_proxy && usingSsl) {\n proxyConfig = {\n proxyUrl: https_proxy\n };\n }\n else if (http_proxy) {\n proxyConfig = {\n proxyUrl: http_proxy\n };\n }\n }\n let proxyUrl;\n let proxyAuth;\n if (proxyConfig) {\n if (proxyConfig.proxyUrl.length > 0) {\n proxyUrl = url.parse(proxyConfig.proxyUrl);\n }\n if (proxyConfig.proxyUsername || proxyConfig.proxyPassword) {\n proxyAuth = proxyConfig.proxyUsername + \":\" + proxyConfig.proxyPassword;\n }\n }\n return { proxyUrl: proxyUrl, proxyAuth: proxyAuth };\n }\n _isMatchInBypassProxyList(parsedUrl) {\n if (!this._httpProxyBypassHosts) {\n return false;\n }\n let bypass = false;\n this._httpProxyBypassHosts.forEach(bypassHost => {\n if (bypassHost.test(parsedUrl.href)) {\n bypass = true;\n }\n });\n return bypass;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst httpm = require(\"./HttpClient\");\nconst util = require(\"./Util\");\nclass RestClient {\n /**\n * Creates an instance of the RestClient\n * @constructor\n * @param {string} userAgent - userAgent for requests\n * @param {string} baseUrl - (Optional) If not specified, use full urls per request. If supplied and a function passes a relative url, it will be appended to this\n * @param {ifm.IRequestHandler[]} handlers - handlers are typically auth handlers (basic, bearer, ntlm supplied)\n * @param {ifm.IRequestOptions} requestOptions - options for each http requests (http proxy setting, socket timeout)\n */\n constructor(userAgent, baseUrl, handlers, requestOptions) {\n this.client = new httpm.HttpClient(userAgent, handlers, requestOptions);\n if (baseUrl) {\n this._baseUrl = baseUrl;\n }\n }\n /**\n * Gets a resource from an endpoint\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} requestUrl - fully qualified or relative url\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n options(requestUrl, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(requestUrl, this._baseUrl);\n let res = yield this.client.options(url, this._headersFromOptions(options));\n return this.processResponse(res, options);\n });\n }\n /**\n * Gets a resource from an endpoint\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} resource - fully qualified url or relative path\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n get(resource, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(resource, this._baseUrl, (options || {}).queryParameters);\n let res = yield this.client.get(url, this._headersFromOptions(options));\n return this.processResponse(res, options);\n });\n }\n /**\n * Deletes a resource from an endpoint\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} resource - fully qualified or relative url\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n del(resource, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(resource, this._baseUrl, (options || {}).queryParameters);\n let res = yield this.client.del(url, this._headersFromOptions(options));\n return this.processResponse(res, options);\n });\n }\n /**\n * Creates resource(s) from an endpoint\n * T type of object returned.\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} resource - fully qualified or relative url\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n create(resource, resources, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(resource, this._baseUrl);\n let headers = this._headersFromOptions(options, true);\n let data = JSON.stringify(resources, null, 2);\n let res = yield this.client.post(url, data, headers);\n return this.processResponse(res, options);\n });\n }\n /**\n * Updates resource(s) from an endpoint\n * T type of object returned.\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} resource - fully qualified or relative url\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n update(resource, resources, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(resource, this._baseUrl);\n let headers = this._headersFromOptions(options, true);\n let data = JSON.stringify(resources, null, 2);\n let res = yield this.client.patch(url, data, headers);\n return this.processResponse(res, options);\n });\n }\n /**\n * Replaces resource(s) from an endpoint\n * T type of object returned.\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} resource - fully qualified or relative url\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n replace(resource, resources, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(resource, this._baseUrl);\n let headers = this._headersFromOptions(options, true);\n let data = JSON.stringify(resources, null, 2);\n let res = yield this.client.put(url, data, headers);\n return this.processResponse(res, options);\n });\n }\n uploadStream(verb, requestUrl, stream, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(requestUrl, this._baseUrl);\n let headers = this._headersFromOptions(options, true);\n let res = yield this.client.sendStream(verb, url, stream, headers);\n return this.processResponse(res, options);\n });\n }\n _headersFromOptions(options, contentType) {\n options = options || {};\n let headers = options.additionalHeaders || {};\n headers[\"Accept\"] = options.acceptHeader || \"application/json\";\n if (contentType) {\n let found = false;\n for (let header in headers) {\n if (header.toLowerCase() == \"content-type\") {\n found = true;\n }\n }\n if (!found) {\n headers[\"Content-Type\"] = 'application/json; charset=utf-8';\n }\n }\n return headers;\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == httpm.HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, RestClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n if (options && options.responseProcessor) {\n response.result = options.responseProcessor(obj);\n }\n else {\n response.result = obj;\n }\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = \"Failed request: (\" + statusCode + \")\";\n }\n let err = new Error(msg);\n // attach statusCode and body obj (if available) to the error object\n err['statusCode'] = statusCode;\n if (response.result) {\n err['result'] = response.result;\n }\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.RestClient = RestClient;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qs = require(\"qs\");\nconst url = require(\"url\");\nconst path = require(\"path\");\nconst zlib = require(\"zlib\");\n/**\n * creates an url from a request url and optional base url (http://server:8080)\n * @param {string} resource - a fully qualified url or relative path\n * @param {string} baseUrl - an optional baseUrl (http://server:8080)\n * @param {IRequestOptions} options - an optional options object, could include QueryParameters e.g.\n * @return {string} - resultant url\n */\nfunction getUrl(resource, baseUrl, queryParams) {\n const pathApi = path.posix || path;\n let requestUrl = '';\n if (!baseUrl) {\n requestUrl = resource;\n }\n else if (!resource) {\n requestUrl = baseUrl;\n }\n else {\n const base = url.parse(baseUrl);\n const resultantUrl = url.parse(resource);\n // resource (specific per request) elements take priority\n resultantUrl.protocol = resultantUrl.protocol || base.protocol;\n resultantUrl.auth = resultantUrl.auth || base.auth;\n resultantUrl.host = resultantUrl.host || base.host;\n resultantUrl.pathname = pathApi.resolve(base.pathname, resultantUrl.pathname);\n if (!resultantUrl.pathname.endsWith('/') && resource.endsWith('/')) {\n resultantUrl.pathname += '/';\n }\n requestUrl = url.format(resultantUrl);\n }\n return queryParams ?\n getUrlWithParsedQueryParams(requestUrl, queryParams) :\n requestUrl;\n}\nexports.getUrl = getUrl;\n/**\n *\n * @param {string} requestUrl\n * @param {IRequestQueryParams} queryParams\n * @return {string} - Request's URL with Query Parameters appended/parsed.\n */\nfunction getUrlWithParsedQueryParams(requestUrl, queryParams) {\n const url = requestUrl.replace(/\\?$/g, ''); // Clean any extra end-of-string \"?\" character\n const parsedQueryParams = qs.stringify(queryParams.params, buildParamsStringifyOptions(queryParams));\n return `${url}${parsedQueryParams}`;\n}\n/**\n * Build options for QueryParams Stringifying.\n *\n * @param {IRequestQueryParams} queryParams\n * @return {object}\n */\nfunction buildParamsStringifyOptions(queryParams) {\n let options = {\n addQueryPrefix: true,\n delimiter: (queryParams.options || {}).separator || '&',\n allowDots: (queryParams.options || {}).shouldAllowDots || false,\n arrayFormat: (queryParams.options || {}).arrayFormat || 'repeat',\n encodeValuesOnly: (queryParams.options || {}).shouldOnlyEncodeValues || true\n };\n return options;\n}\n/**\n * Decompress/Decode gzip encoded JSON\n * Using Node.js built-in zlib module\n *\n * @param {Buffer} buffer\n * @param {string} charset? - optional; defaults to 'utf-8'\n * @return {Promise}\n */\nfunction decompressGzippedContent(buffer, charset) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n zlib.gunzip(buffer, function (error, buffer) {\n if (error) {\n reject(error);\n }\n resolve(buffer.toString(charset || 'utf-8'));\n });\n }));\n });\n}\nexports.decompressGzippedContent = decompressGzippedContent;\n/**\n * Builds a RegExp to test urls against for deciding\n * wether to bypass proxy from an entry of the\n * environment variable setting NO_PROXY\n *\n * @param {string} bypass\n * @return {RegExp}\n */\nfunction buildProxyBypassRegexFromEnv(bypass) {\n try {\n // We need to keep this around for back-compat purposes\n return new RegExp(bypass, 'i');\n }\n catch (err) {\n if (err instanceof SyntaxError && (bypass || \"\").startsWith(\"*\")) {\n let wildcardEscaped = bypass.replace('*', '(.*)');\n return new RegExp(wildcardEscaped, 'i');\n }\n throw err;\n }\n}\nexports.buildProxyBypassRegexFromEnv = buildProxyBypassRegexFromEnv;\n/**\n * Obtain Response's Content Charset.\n * Through inspecting `content-type` response header.\n * It Returns 'utf-8' if NO charset specified/matched.\n *\n * @param {IHttpClientResponse} response\n * @return {string} - Content Encoding Charset; Default=utf-8\n */\nfunction obtainContentCharset(response) {\n // Find the charset, if specified.\n // Search for the `charset=CHARSET` string, not including `;,\\r\\n`\n // Example: content-type: 'application/json;charset=utf-8'\n // |__ matches would be ['charset=utf-8', 'utf-8', index: 18, input: 'application/json; charset=utf-8']\n // |_____ matches[1] would have the charset :tada: , in our example it's utf-8\n // However, if the matches Array was empty or no charset found, 'utf-8' would be returned by default.\n const nodeSupportedEncodings = ['ascii', 'utf8', 'utf16le', 'ucs2', 'base64', 'binary', 'hex'];\n const contentType = response.message.headers['content-type'] || '';\n const matches = contentType.match(/charset=([^;,\\r\\n]+)/i);\n return (matches && matches[1] && nodeSupportedEncodings.indexOf(matches[1]) != -1) ? matches[1] : 'utf-8';\n}\nexports.obtainContentCharset = obtainContentCharset;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass BasicCredentialHandler {\n constructor(username, password, allowCrossOriginAuthentication) {\n this.username = username;\n this.password = password;\n this.allowCrossOriginAuthentication = allowCrossOriginAuthentication;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!this.origin) {\n this.origin = options.host;\n }\n // If this is a redirection, don't set the Authorization header\n if (this.origin === options.host || this.allowCrossOriginAuthentication) {\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n options.headers['X-TFS-FedAuthRedirect'] = 'Suppress';\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass BearerCredentialHandler {\n constructor(token, allowCrossOriginAuthentication) {\n this.token = token;\n this.allowCrossOriginAuthentication = allowCrossOriginAuthentication;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!this.origin) {\n this.origin = options.host;\n }\n // If this is a redirection, don't set the Authorization header\n if (this.origin === options.host || this.allowCrossOriginAuthentication) {\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n options.headers['X-TFS-FedAuthRedirect'] = 'Suppress';\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst _ = require(\"underscore\");\nconst ntlm = require(\"../opensource/Node-SMB/lib/ntlm\");\nclass NtlmCredentialHandler {\n constructor(username, password, workstation, domain) {\n this._ntlmOptions = {};\n this._ntlmOptions.username = username;\n this._ntlmOptions.password = password;\n this._ntlmOptions.domain = domain || '';\n this._ntlmOptions.workstation = workstation || '';\n }\n prepareRequest(options) {\n // No headers or options need to be set. We keep the credentials on the handler itself.\n // If a (proxy) agent is set, remove it as we don't support proxy for NTLM at this time\n if (options.agent) {\n delete options.agent;\n }\n }\n canHandleAuthentication(response) {\n if (response && response.message && response.message.statusCode === 401) {\n // Ensure that we're talking NTLM here\n // Once we have the www-authenticate header, split it so we can ensure we can talk NTLM\n const wwwAuthenticate = response.message.headers['www-authenticate'];\n return wwwAuthenticate && (wwwAuthenticate.split(', ').indexOf(\"NTLM\") >= 0);\n }\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return new Promise((resolve, reject) => {\n const callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n // We have to readbody on the response before continuing otherwise there is a hang.\n res.readBody().then(() => {\n resolve(res);\n });\n };\n this.handleAuthenticationPrivate(httpClient, requestInfo, objs, callbackForResult);\n });\n }\n handleAuthenticationPrivate(httpClient, requestInfo, objs, finalCallback) {\n // Set up the headers for NTLM authentication\n requestInfo.options = _.extend(requestInfo.options, {\n username: this._ntlmOptions.username,\n password: this._ntlmOptions.password,\n domain: this._ntlmOptions.domain,\n workstation: this._ntlmOptions.workstation\n });\n requestInfo.options.agent = httpClient.isSsl ?\n new https.Agent({ keepAlive: true }) :\n new http.Agent({ keepAlive: true });\n let self = this;\n // The following pattern of sending the type1 message following immediately (in a setImmediate) is\n // critical for the NTLM exchange to happen. If we removed setImmediate (or call in a different manner)\n // the NTLM exchange will always fail with a 401.\n this.sendType1Message(httpClient, requestInfo, objs, function (err, res) {\n if (err) {\n return finalCallback(err, null, null);\n }\n /// We have to readbody on the response before continuing otherwise there is a hang.\n res.readBody().then(() => {\n // It is critical that we have setImmediate here due to how connection requests are queued.\n // If setImmediate is removed then the NTLM handshake will not work.\n // setImmediate allows us to queue a second request on the same connection. If this second\n // request is not queued on the connection when the first request finishes then node closes\n // the connection. NTLM requires both requests to be on the same connection so we need this.\n setImmediate(function () {\n self.sendType3Message(httpClient, requestInfo, objs, res, finalCallback);\n });\n });\n });\n }\n // The following method is an adaptation of code found at https://github.com/SamDecrock/node-http-ntlm/blob/master/httpntlm.js\n sendType1Message(httpClient, requestInfo, objs, finalCallback) {\n const type1HexBuffer = ntlm.encodeType1(this._ntlmOptions.workstation, this._ntlmOptions.domain);\n const type1msg = `NTLM ${type1HexBuffer.toString('base64')}`;\n const type1options = {\n headers: {\n 'Connection': 'keep-alive',\n 'Authorization': type1msg\n },\n timeout: requestInfo.options.timeout || 0,\n agent: requestInfo.httpModule,\n };\n const type1info = {};\n type1info.httpModule = requestInfo.httpModule;\n type1info.parsedUrl = requestInfo.parsedUrl;\n type1info.options = _.extend(type1options, _.omit(requestInfo.options, 'headers'));\n return httpClient.requestRawWithCallback(type1info, objs, finalCallback);\n }\n // The following method is an adaptation of code found at https://github.com/SamDecrock/node-http-ntlm/blob/master/httpntlm.js\n sendType3Message(httpClient, requestInfo, objs, res, callback) {\n if (!res.message.headers && !res.message.headers['www-authenticate']) {\n throw new Error('www-authenticate not found on response of second request');\n }\n /**\n * Server will respond with challenge/nonce\n * assigned to response's \"WWW-AUTHENTICATE\" header\n * and should adhere to RegExp /^NTLM\\s+(.+?)(,|\\s+|$)/\n */\n const serverNonceRegex = /^NTLM\\s+(.+?)(,|\\s+|$)/;\n const serverNonce = Buffer.from((res.message.headers['www-authenticate'].match(serverNonceRegex) || [])[1], 'base64');\n let type2msg;\n /**\n * Wrap decoding the Server's challenge/nonce in\n * try-catch block to throw more comprehensive\n * Error with clear message to consumer\n */\n try {\n type2msg = ntlm.decodeType2(serverNonce);\n }\n catch (error) {\n throw new Error(`Decoding Server's Challenge to Obtain Type2Message failed with error: ${error.message}`);\n }\n const type3msg = ntlm.encodeType3(this._ntlmOptions.username, this._ntlmOptions.workstation, this._ntlmOptions.domain, type2msg, this._ntlmOptions.password).toString('base64');\n const type3options = {\n headers: {\n 'Authorization': `NTLM ${type3msg}`,\n 'Connection': 'Close'\n },\n agent: requestInfo.httpModule,\n };\n const type3info = {};\n type3info.httpModule = requestInfo.httpModule;\n type3info.parsedUrl = requestInfo.parsedUrl;\n type3options.headers = _.extend(type3options.headers, requestInfo.options.headers);\n type3info.options = _.extend(type3options, _.omit(requestInfo.options, 'headers'));\n return httpClient.requestRawWithCallback(type3info, objs, callback);\n }\n}\nexports.NtlmCredentialHandler = NtlmCredentialHandler;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass PersonalAccessTokenCredentialHandler {\n constructor(token, allowCrossOriginAuthentication) {\n this.token = token;\n this.allowCrossOriginAuthentication = allowCrossOriginAuthentication;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!this.origin) {\n this.origin = options.host;\n }\n // If this is a redirection, don't set the Authorization header\n if (this.origin === options.host || this.allowCrossOriginAuthentication) {\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n options.headers['X-TFS-FedAuthRedirect'] = 'Suppress';\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n","var crypto = require('crypto');\n\nfunction zeroextend(str, len)\n{\n while (str.length < len)\n str = '0' + str;\n return (str);\n}\n\n/*\n * Fix (odd) parity bits in a 64-bit DES key.\n */\nfunction oddpar(buf)\n{\n for (var j = 0; j < buf.length; j++) {\n var par = 1;\n for (var i = 1; i < 8; i++) {\n par = (par + ((buf[j] >> i) & 1)) % 2;\n }\n buf[j] |= par & 1;\n }\n return buf;\n}\n\n/*\n * Expand a 56-bit key buffer to the full 64-bits for DES.\n *\n * Based on code sample in:\n * http://www.innovation.ch/personal/ronald/ntlm.html\n */\nfunction expandkey(key56)\n{\n var key64 = new Buffer(8);\n\n key64[0] = key56[0] & 0xFE;\n key64[1] = ((key56[0] << 7) & 0xFF) | (key56[1] >> 1);\n key64[2] = ((key56[1] << 6) & 0xFF) | (key56[2] >> 2);\n key64[3] = ((key56[2] << 5) & 0xFF) | (key56[3] >> 3);\n key64[4] = ((key56[3] << 4) & 0xFF) | (key56[4] >> 4);\n key64[5] = ((key56[4] << 3) & 0xFF) | (key56[5] >> 5);\n key64[6] = ((key56[5] << 2) & 0xFF) | (key56[6] >> 6);\n key64[7] = (key56[6] << 1) & 0xFF;\n\n return key64;\n}\n\n/*\n * Convert a binary string to a hex string\n */\nfunction bintohex(bin)\n{\n var buf = (Buffer.isBuffer(buf) ? buf : new Buffer(bin, 'binary'));\n var str = buf.toString('hex').toUpperCase();\n return zeroextend(str, 32);\n}\n\n\nmodule.exports.zeroextend = zeroextend;\nmodule.exports.oddpar = oddpar;\nmodule.exports.expandkey = expandkey;\nmodule.exports.bintohex = bintohex;\n","var log = console.log;\nvar crypto = require('crypto');\nvar $ = require('./common');\nvar lmhashbuf = require('./smbhash').lmhashbuf;\nvar nthashbuf = require('./smbhash').nthashbuf;\n\n\nfunction encodeType1(hostname, ntdomain) {\n hostname = hostname.toUpperCase();\n ntdomain = ntdomain.toUpperCase();\n var hostnamelen = Buffer.byteLength(hostname, 'ascii');\n var ntdomainlen = Buffer.byteLength(ntdomain, 'ascii');\n\n var pos = 0;\n var buf = new Buffer(32 + hostnamelen + ntdomainlen);\n\n buf.write('NTLMSSP', pos, 7, 'ascii'); // byte protocol[8];\n pos += 7;\n buf.writeUInt8(0, pos);\n pos++;\n\n buf.writeUInt8(0x01, pos); // byte type;\n pos++;\n\n buf.fill(0x00, pos, pos + 3); // byte zero[3];\n pos += 3;\n\n buf.writeUInt16LE(0xb203, pos); // short flags;\n pos += 2;\n\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(ntdomainlen, pos); // short dom_len;\n pos += 2;\n buf.writeUInt16LE(ntdomainlen, pos); // short dom_len;\n pos += 2;\n\n var ntdomainoff = 0x20 + hostnamelen;\n buf.writeUInt16LE(ntdomainoff, pos); // short dom_off;\n pos += 2;\n\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(hostnamelen, pos); // short host_len;\n pos += 2;\n buf.writeUInt16LE(hostnamelen, pos); // short host_len;\n pos += 2;\n\n buf.writeUInt16LE(0x20, pos); // short host_off;\n pos += 2;\n\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.write(hostname, 0x20, hostnamelen, 'ascii');\n buf.write(ntdomain, ntdomainoff, ntdomainlen, 'ascii');\n\n return buf;\n}\n\n\n/*\n * \n */\nfunction decodeType2(buf)\n{\n var proto = buf.toString('ascii', 0, 7);\n if (buf[7] !== 0x00 || proto !== 'NTLMSSP')\n throw new Error('magic was not NTLMSSP');\n\n var type = buf.readUInt8(8);\n if (type !== 0x02)\n throw new Error('message was not NTLMSSP type 0x02');\n\n //var msg_len = buf.readUInt16LE(16);\n\n //var flags = buf.readUInt16LE(20);\n\n var nonce = buf.slice(24, 32);\n return nonce;\n}\n\nfunction encodeType3(username, hostname, ntdomain, nonce, password) {\n hostname = hostname.toUpperCase();\n ntdomain = ntdomain.toUpperCase();\n\n var lmh = new Buffer(21);\n lmhashbuf(password).copy(lmh);\n lmh.fill(0x00, 16); // null pad to 21 bytes\n var nth = new Buffer(21);\n nthashbuf(password).copy(nth);\n nth.fill(0x00, 16); // null pad to 21 bytes\n\n var lmr = makeResponse(lmh, nonce);\n var ntr = makeResponse(nth, nonce);\n\n var usernamelen = Buffer.byteLength(username, 'ucs2');\n var hostnamelen = Buffer.byteLength(hostname, 'ucs2');\n var ntdomainlen = Buffer.byteLength(ntdomain, 'ucs2');\n var lmrlen = 0x18;\n var ntrlen = 0x18;\n\n var ntdomainoff = 0x40;\n var usernameoff = ntdomainoff + ntdomainlen;\n var hostnameoff = usernameoff + usernamelen;\n var lmroff = hostnameoff + hostnamelen;\n var ntroff = lmroff + lmrlen;\n\n var pos = 0;\n var msg_len = 64 + ntdomainlen + usernamelen + hostnamelen + lmrlen + ntrlen;\n var buf = new Buffer(msg_len);\n\n buf.write('NTLMSSP', pos, 7, 'ascii'); // byte protocol[8];\n pos += 7;\n buf.writeUInt8(0, pos);\n pos++;\n\n buf.writeUInt8(0x03, pos); // byte type;\n pos++;\n\n buf.fill(0x00, pos, pos + 3); // byte zero[3];\n pos += 3;\n\n buf.writeUInt16LE(lmrlen, pos); // short lm_resp_len;\n pos += 2;\n buf.writeUInt16LE(lmrlen, pos); // short lm_resp_len;\n pos += 2;\n buf.writeUInt16LE(lmroff, pos); // short lm_resp_off;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(ntrlen, pos); // short nt_resp_len;\n pos += 2;\n buf.writeUInt16LE(ntrlen, pos); // short nt_resp_len;\n pos += 2;\n buf.writeUInt16LE(ntroff, pos); // short nt_resp_off;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(ntdomainlen, pos); // short dom_len;\n pos += 2;\n buf.writeUInt16LE(ntdomainlen, pos); // short dom_len;\n pos += 2;\n buf.writeUInt16LE(ntdomainoff, pos); // short dom_off;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(usernamelen, pos); // short user_len;\n pos += 2;\n buf.writeUInt16LE(usernamelen, pos); // short user_len;\n pos += 2;\n buf.writeUInt16LE(usernameoff, pos); // short user_off;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(hostnamelen, pos); // short host_len;\n pos += 2;\n buf.writeUInt16LE(hostnamelen, pos); // short host_len;\n pos += 2;\n buf.writeUInt16LE(hostnameoff, pos); // short host_off;\n pos += 2;\n buf.fill(0x00, pos, pos + 6); // byte zero[6];\n pos += 6;\n\n buf.writeUInt16LE(msg_len, pos); // short msg_len;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(0x8201, pos); // short flags;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.write(ntdomain, ntdomainoff, ntdomainlen, 'ucs2');\n buf.write(username, usernameoff, usernamelen, 'ucs2');\n buf.write(hostname, hostnameoff, hostnamelen, 'ucs2');\n lmr.copy(buf, lmroff, 0, lmrlen);\n ntr.copy(buf, ntroff, 0, ntrlen);\n\n return buf;\n}\n\nfunction makeResponse(hash, nonce)\n{\n var out = new Buffer(24);\n for (var i = 0; i < 3; i++) {\n var keybuf = $.oddpar($.expandkey(hash.slice(i * 7, i * 7 + 7)));\n var des = crypto.createCipheriv('DES-ECB', keybuf, '');\n var str = des.update(nonce.toString('binary'), 'binary', 'binary');\n out.write(str, i * 8, i * 8 + 8, 'binary');\n }\n return out;\n}\n\nexports.encodeType1 = encodeType1;\nexports.decodeType2 = decodeType2;\nexports.encodeType3 = encodeType3;\n\n// Convenience methods.\n\nexports.challengeHeader = function (hostname, domain) {\n return 'NTLM ' + exports.encodeType1(hostname, domain).toString('base64');\n};\n\nexports.responseHeader = function (res, url, domain, username, password) {\n var serverNonce = new Buffer((res.headers['www-authenticate'].match(/^NTLM\\s+(.+?)(,|\\s+|$)/) || [])[1], 'base64');\n var hostname = require('url').parse(url).hostname;\n return 'NTLM ' + exports.encodeType3(username, hostname, domain, exports.decodeType2(serverNonce), password).toString('base64')\n};\n\n// Import smbhash module.\n\nexports.smbhash = require('./smbhash');\n","var crypto = require('crypto');\nvar $ = require('./common');\n\n/*\n * Generate the LM Hash\n */\nfunction lmhashbuf(inputstr)\n{\n /* ASCII --> uppercase */\n var x = inputstr.substring(0, 14).toUpperCase();\n var xl = Buffer.byteLength(x, 'ascii');\n\n /* null pad to 14 bytes */\n var y = new Buffer(14);\n y.write(x, 0, xl, 'ascii');\n y.fill(0, xl);\n\n /* insert odd parity bits in key */\n var halves = [\n $.oddpar($.expandkey(y.slice(0, 7))),\n $.oddpar($.expandkey(y.slice(7, 14)))\n ];\n\n /* DES encrypt magic number \"KGS!@#$%\" to two\n * 8-byte ciphertexts, (ECB, no padding)\n */\n var buf = new Buffer(16);\n var pos = 0;\n var cts = halves.forEach(function(z) {\n var des = crypto.createCipheriv('DES-ECB', z, '');\n var str = des.update('KGS!@#$%', 'binary', 'binary');\n buf.write(str, pos, pos + 8, 'binary');\n pos += 8;\n });\n\n /* concat the two ciphertexts to form 16byte value,\n * the LM hash */\n return buf;\n}\n\nfunction nthashbuf(str)\n{\n /* take MD4 hash of UCS-2 encoded password */\n var ucs2 = new Buffer(str, 'ucs2');\n var md4 = crypto.createHash('md4');\n md4.update(ucs2);\n return new Buffer(md4.digest('binary'), 'binary');\n}\n\nfunction lmhash(is)\n{\n return $.bintohex(lmhashbuf(is));\n}\n\nfunction nthash(is)\n{\n return $.bintohex(nthashbuf(is));\n}\n\nmodule.exports.nthashbuf = nthashbuf;\nmodule.exports.lmhashbuf = lmhashbuf;\n\nmodule.exports.nthash = nthash;\nmodule.exports.lmhash = lmhash;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"// Underscore.js 1.13.1\n// https://underscorejs.org\n// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// Current version.\nvar VERSION = '1.13.1';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nvar root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nvar ArrayProto = Array.prototype, ObjProto = Object.prototype;\nvar SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nvar push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nvar supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nvar nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nvar _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nvar hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nvar MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n\n// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nfunction restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n\n// Is a given variable an object?\nfunction isObject(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n}\n\n// Is a given value equal to null?\nfunction isNull(obj) {\n return obj === null;\n}\n\n// Is a given variable undefined?\nfunction isUndefined(obj) {\n return obj === void 0;\n}\n\n// Is a given value a boolean?\nfunction isBoolean(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n\n// Is a given value a DOM element?\nfunction isElement(obj) {\n return !!(obj && obj.nodeType === 1);\n}\n\n// Internal function for creating a `toString`-based type tester.\nfunction tagTester(name) {\n var tag = '[object ' + name + ']';\n return function(obj) {\n return toString.call(obj) === tag;\n };\n}\n\nvar isString = tagTester('String');\n\nvar isNumber = tagTester('Number');\n\nvar isDate = tagTester('Date');\n\nvar isRegExp = tagTester('RegExp');\n\nvar isError = tagTester('Error');\n\nvar isSymbol = tagTester('Symbol');\n\nvar isArrayBuffer = tagTester('ArrayBuffer');\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\nvar isFunction$1 = isFunction;\n\nvar hasObjectTag = tagTester('Object');\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\nvar hasStringTagBug = (\n supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8)))\n ),\n isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\nfunction ie10IsDataView(obj) {\n return obj != null && isFunction$1(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nvar isDataView$1 = (hasStringTagBug ? ie10IsDataView : isDataView);\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nvar isArray = nativeIsArray || tagTester('Array');\n\n// Internal function to check whether `key` is an own property name of `obj`.\nfunction has$1(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n}\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return has$1(obj, 'callee');\n };\n }\n}());\n\nvar isArguments$1 = isArguments;\n\n// Is a given object a finite number?\nfunction isFinite$1(obj) {\n return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));\n}\n\n// Is the given value `NaN`?\nfunction isNaN$1(obj) {\n return isNumber(obj) && _isNaN(obj);\n}\n\n// Predicate-generating function. Often useful outside of Underscore.\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nfunction createSizePropertyCheck(getSizeProperty) {\n return function(collection) {\n var sizeProperty = getSizeProperty(collection);\n return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n }\n}\n\n// Internal helper to generate a function to obtain property `key` from `obj`.\nfunction shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n\n// Internal helper to obtain the `byteLength` property of an object.\nvar getByteLength = shallowProperty('byteLength');\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nvar isBufferLike = createSizePropertyCheck(getByteLength);\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n // Otherwise, fall back on the above regular expression.\n return nativeIsView ? (nativeIsView(obj) && !isDataView$1(obj)) :\n isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nvar isTypedArray$1 = supportsArrayBuffer ? isTypedArray : constant(false);\n\n// Internal helper to obtain the `length` property of an object.\nvar getLength = shallowProperty('length');\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n var hash = {};\n for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n return {\n contains: function(key) { return hash[key]; },\n push: function(key) {\n hash[key] = true;\n return keys.push(key);\n }\n };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nfunction collectNonEnumProps(obj, keys) {\n keys = emulatedSet(keys);\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = isFunction$1(constructor) && constructor.prototype || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has$1(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n keys.push(prop);\n }\n }\n}\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nfunction keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has$1(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nfunction isEmpty(obj) {\n if (obj == null) return true;\n // Skip the more expensive `toString`-based type checks if `obj` has no\n // `.length`.\n var length = getLength(obj);\n if (typeof length == 'number' && (\n isArray(obj) || isString(obj) || isArguments$1(obj)\n )) return length === 0;\n return getLength(keys(obj)) === 0;\n}\n\n// Returns whether an object has a given set of `key:value` pairs.\nfunction isMatch(object, attrs) {\n var _keys = keys(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nfunction _$1(obj) {\n if (obj instanceof _$1) return obj;\n if (!(this instanceof _$1)) return new _$1(obj);\n this._wrapped = obj;\n}\n\n_$1.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_$1.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_$1.prototype.valueOf = _$1.prototype.toJSON = _$1.prototype.value;\n\n_$1.prototype.toString = function() {\n return String(this._wrapped);\n};\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nfunction toBufferView(bufferSource) {\n return new Uint8Array(\n bufferSource.buffer || bufferSource,\n bufferSource.byteOffset || 0,\n getByteLength(bufferSource)\n );\n}\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction eq(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n}\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _$1) a = a._wrapped;\n if (b instanceof _$1) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n // Work around a bug in IE 10 - Edge 13.\n if (hasStringTagBug && className == '[object Object]' && isDataView$1(a)) {\n if (!isDataView$1(b)) return false;\n className = tagDataView;\n }\n switch (className) {\n // These types are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n case '[object ArrayBuffer]':\n case tagDataView:\n // Coerce to typed array so we can fall through.\n return deepEq(toBufferView(a), toBufferView(b), aStack, bStack);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays && isTypedArray$1(a)) {\n var byteLength = getByteLength(a);\n if (byteLength !== getByteLength(b)) return false;\n if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true;\n areArrays = true;\n }\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction$1(aCtor) && aCtor instanceof aCtor &&\n isFunction$1(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var _keys = keys(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!(has$1(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\n\n// Perform a deep comparison to check if two objects are equal.\nfunction isEqual(a, b) {\n return eq(a, b);\n}\n\n// Retrieve all the enumerable property names of an object.\nfunction allKeys(obj) {\n if (!isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nfunction ie11fingerprint(methods) {\n var length = getLength(methods);\n return function(obj) {\n if (obj == null) return false;\n // `Map`, `WeakMap` and `Set` have no enumerable keys.\n var keys = allKeys(obj);\n if (getLength(keys)) return false;\n for (var i = 0; i < length; i++) {\n if (!isFunction$1(obj[methods[i]])) return false;\n }\n // If we are testing against `WeakMap`, we need to ensure that\n // `obj` doesn't have a `forEach` method in order to distinguish\n // it from a regular `Map`.\n return methods !== weakMapMethods || !isFunction$1(obj[forEachName]);\n };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n hasName = 'has',\n commonInit = ['clear', 'delete'],\n mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nvar mapMethods = commonInit.concat(forEachName, mapTail),\n weakMapMethods = commonInit.concat(mapTail),\n setMethods = ['add'].concat(commonInit, forEachName, hasName);\n\nvar isMap = isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');\n\nvar isWeakMap = isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');\n\nvar isSet = isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');\n\nvar isWeakSet = tagTester('WeakSet');\n\n// Retrieve the values of an object's properties.\nfunction values(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nfunction pairs(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [_keys[i], obj[_keys[i]]];\n }\n return pairs;\n}\n\n// Invert the keys and values of an object. The values must be serializable.\nfunction invert(obj) {\n var result = {};\n var _keys = keys(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n\n// Return a sorted list of the function names available on the object.\nfunction functions(obj) {\n var names = [];\n for (var key in obj) {\n if (isFunction$1(obj[key])) names.push(key);\n }\n return names.sort();\n}\n\n// An internal function for creating assigner functions.\nfunction createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n\n// Extend a given object with all the properties in passed-in object(s).\nvar extend = createAssigner(allKeys);\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nvar extendOwn = createAssigner(keys);\n\n// Fill in a given object with default properties.\nvar defaults = createAssigner(allKeys, true);\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nfunction baseCreate(prototype) {\n if (!isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n var Ctor = ctor();\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nfunction create(prototype, props) {\n var result = baseCreate(prototype);\n if (props) extendOwn(result, props);\n return result;\n}\n\n// Create a (shallow-cloned) duplicate of an object.\nfunction clone(obj) {\n if (!isObject(obj)) return obj;\n return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n\n// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nfunction tap(obj, interceptor) {\n interceptor(obj);\n return obj;\n}\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nfunction toPath$1(path) {\n return isArray(path) ? path : [path];\n}\n_$1.toPath = toPath$1;\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nfunction toPath(path) {\n return _$1.toPath(path);\n}\n\n// Internal function to obtain a nested property in `obj` along `path`.\nfunction deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nfunction get(object, path, defaultValue) {\n var value = deepGet(object, toPath(path));\n return isUndefined(value) ? defaultValue : value;\n}\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nfunction has(obj, path) {\n path = toPath(path);\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (!has$1(obj, key)) return false;\n obj = obj[key];\n }\n return !!length;\n}\n\n// Keep the identity function around for default iteratees.\nfunction identity(value) {\n return value;\n}\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nfunction matcher(attrs) {\n attrs = extendOwn({}, attrs);\n return function(obj) {\n return isMatch(obj, attrs);\n };\n}\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nfunction property(path) {\n path = toPath(path);\n return function(obj) {\n return deepGet(obj, path);\n };\n}\n\n// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nfunction optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nfunction baseIteratee(value, context, argCount) {\n if (value == null) return identity;\n if (isFunction$1(value)) return optimizeCb(value, context, argCount);\n if (isObject(value) && !isArray(value)) return matcher(value);\n return property(value);\n}\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nfunction iteratee(value, context) {\n return baseIteratee(value, context, Infinity);\n}\n_$1.iteratee = iteratee;\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nfunction cb(value, context, argCount) {\n if (_$1.iteratee !== iteratee) return _$1.iteratee(value, context);\n return baseIteratee(value, context, argCount);\n}\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nfunction mapObject(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = keys(obj),\n length = _keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = _keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n// Predicate-generating function. Often useful outside of Underscore.\nfunction noop(){}\n\n// Generates a function for a given object that returns a given property.\nfunction propertyOf(obj) {\n if (obj == null) return noop;\n return function(path) {\n return get(obj, path);\n };\n}\n\n// Run a function **n** times.\nfunction times(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n}\n\n// Return a random integer between `min` and `max` (inclusive).\nfunction random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n\n// A (possibly faster) way to get the current timestamp as an integer.\nvar now = Date.now || function() {\n return new Date().getTime();\n};\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nfunction createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\n\n// Internal list of HTML entities for escaping.\nvar escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\n\n// Function for escaping strings to HTML interpolation.\nvar _escape = createEscaper(escapeMap);\n\n// Internal list of HTML entities for unescaping.\nvar unescapeMap = invert(escapeMap);\n\n// Function for unescaping strings from HTML interpolation.\nvar _unescape = createEscaper(unescapeMap);\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nvar templateSettings = _$1.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n};\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n return '\\\\' + escapes[match];\n}\n\n// In order to prevent third-party code injection through\n// `_.templateSettings.variable`, we test it against the following regular\n// expression. It is intentionally a bit more liberal than just matching valid\n// identifiers, but still prevents possible loopholes through defaults or\n// destructuring assignment.\nvar bareIdentifier = /^\\s*(\\w|\\$)+\\s*$/;\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nfunction template(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = defaults({}, settings, _$1.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n var argument = settings.variable;\n if (argument) {\n // Insure against third-party code injection. (CVE-2021-23358)\n if (!bareIdentifier.test(argument)) throw new Error(\n 'variable is not a bare identifier: ' + argument\n );\n } else {\n // If a variable is not specified, place data values in local scope.\n source = 'with(obj||{}){\\n' + source + '}\\n';\n argument = 'obj';\n }\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(argument, '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _$1);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n}\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nfunction result(obj, path, fallback) {\n path = toPath(path);\n var length = path.length;\n if (!length) {\n return isFunction$1(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = isFunction$1(prop) ? prop.call(obj) : prop;\n }\n return obj;\n}\n\n// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nfunction uniqueId(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n\n// Start chaining a wrapped Underscore object.\nfunction chain(obj) {\n var instance = _$1(obj);\n instance._chain = true;\n return instance;\n}\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nfunction executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (isObject(result)) return result;\n return self;\n}\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _$1;\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nvar bind = restArguments(function(func, context, args) {\n if (!isFunction$1(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n});\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nvar isArrayLike = createSizePropertyCheck(getLength);\n\n// Internal implementation of a recursive `flatten` function.\nfunction flatten$1(input, depth, strict, output) {\n output = output || [];\n if (!depth && depth !== 0) {\n depth = Infinity;\n } else if (depth <= 0) {\n return output.concat(input);\n }\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (isArray(value) || isArguments$1(value))) {\n // Flatten current level of array or arguments object.\n if (depth > 1) {\n flatten$1(value, depth - 1, strict, output);\n idx = output.length;\n } else {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nvar bindAll = restArguments(function(obj, keys) {\n keys = flatten$1(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = bind(obj[key], obj);\n }\n return obj;\n});\n\n// Memoize an expensive function by storing its results.\nfunction memoize(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has$1(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n}\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nvar delay = restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n});\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nvar defer = partial(delay, _$1, 1);\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nfunction throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var _now = now();\n if (!previous && options.leading === false) previous = _now;\n var remaining = wait - (_now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = _now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nfunction debounce(func, wait, immediate) {\n var timeout, previous, args, result, context;\n\n var later = function() {\n var passed = now() - previous;\n if (wait > passed) {\n timeout = setTimeout(later, wait - passed);\n } else {\n timeout = null;\n if (!immediate) result = func.apply(context, args);\n // This check is needed because `func` can recursively invoke `debounced`.\n if (!timeout) args = context = null;\n }\n };\n\n var debounced = restArguments(function(_args) {\n context = this;\n args = _args;\n previous = now();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n if (immediate) result = func.apply(context, args);\n }\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = args = context = null;\n };\n\n return debounced;\n}\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nfunction wrap(func, wrapper) {\n return partial(wrapper, func);\n}\n\n// Returns a negated version of the passed-in predicate.\nfunction negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n\n// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nfunction compose() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n// Returns a function that will only be executed on and after the Nth call.\nfunction after(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n\n// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nfunction before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nvar once = partial(before, 2);\n\n// Returns the first key on an object that passes a truth test.\nfunction findKey(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = keys(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nfunction createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n\n// Returns the first index on an array-like that passes a truth test.\nvar findIndex = createPredicateIndexFinder(1);\n\n// Returns the last index on an array-like that passes a truth test.\nvar findLastIndex = createPredicateIndexFinder(-1);\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nfunction sortedIndex(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nfunction createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), isNaN$1);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nvar indexOf = createIndexFinder(1, findIndex, sortedIndex);\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\nvar lastIndexOf = createIndexFinder(-1, findLastIndex);\n\n// Return the first value which passes a truth test.\nfunction find(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nfunction findWhere(obj, attrs) {\n return find(obj, matcher(attrs));\n}\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nfunction each(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = keys(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\n\n// Return the results of applying the iteratee to each element.\nfunction map(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n// Internal helper to create a reducing function, iterating left or right.\nfunction createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n}\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nvar reduce = createReduce(1);\n\n// The right-associative version of reduce, also known as `foldr`.\nvar reduceRight = createReduce(-1);\n\n// Return all the elements that pass a truth test.\nfunction filter(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\n\n// Return all the elements for which a truth test fails.\nfunction reject(obj, predicate, context) {\n return filter(obj, negate(cb(predicate)), context);\n}\n\n// Determine whether all of the elements pass a truth test.\nfunction every(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n}\n\n// Determine if at least one element in the object passes a truth test.\nfunction some(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n}\n\n// Determine if the array or object contains a given item (using `===`).\nfunction contains(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return indexOf(obj, item, fromIndex) >= 0;\n}\n\n// Invoke a method (with arguments) on every item in a collection.\nvar invoke = restArguments(function(obj, path, args) {\n var contextPath, func;\n if (isFunction$1(path)) {\n func = path;\n } else {\n path = toPath(path);\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n});\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nfunction pluck(obj, key) {\n return map(obj, property(key));\n}\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nfunction where(obj, attrs) {\n return filter(obj, matcher(attrs));\n}\n\n// Return the maximum element (or element-based computation).\nfunction max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n// Return the minimum element (or element-based computation).\nfunction min(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nfunction sample(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n return obj[random(obj.length - 1)];\n }\n var sample = isArrayLike(obj) ? clone(obj) : values(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n\n// Shuffle a collection.\nfunction shuffle(obj) {\n return sample(obj, Infinity);\n}\n\n// Sort the object's values by a criterion produced by an iteratee.\nfunction sortBy(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return pluck(map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n}\n\n// An internal function used for aggregate \"group by\" operations.\nfunction group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nvar groupBy = group(function(result, value, key) {\n if (has$1(result, key)) result[key].push(value); else result[key] = [value];\n});\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\nvar indexBy = group(function(result, value, key) {\n result[key] = value;\n});\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nvar countBy = group(function(result, value, key) {\n if (has$1(result, key)) result[key]++; else result[key] = 1;\n});\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\nvar partition = group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n}, true);\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nfunction toArray(obj) {\n if (!obj) return [];\n if (isArray(obj)) return slice.call(obj);\n if (isString(obj)) {\n // Keep surrogate pair characters together.\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return map(obj, identity);\n return values(obj);\n}\n\n// Return the number of elements in a collection.\nfunction size(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n\n// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nfunction keyInObj(value, key, obj) {\n return key in obj;\n}\n\n// Return a copy of the object only containing the allowed properties.\nvar pick = restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (isFunction$1(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten$1(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n});\n\n// Return a copy of the object without the disallowed properties.\nvar omit = restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (isFunction$1(iteratee)) {\n iteratee = negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = map(flatten$1(keys, false, false), String);\n iteratee = function(value, key) {\n return !contains(keys, key);\n };\n }\n return pick(obj, iteratee, context);\n});\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nfunction initial(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nfunction first(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[0];\n return initial(array, array.length - n);\n}\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nfunction rest(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n}\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nfunction last(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return rest(array, Math.max(0, array.length - n));\n}\n\n// Trim out all falsy values from an array.\nfunction compact(array) {\n return filter(array, Boolean);\n}\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nfunction flatten(array, depth) {\n return flatten$1(array, depth, false);\n}\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nvar difference = restArguments(function(array, rest) {\n rest = flatten$1(rest, true, true);\n return filter(array, function(value){\n return !contains(rest, value);\n });\n});\n\n// Return a version of the array that does not contain the specified value(s).\nvar without = restArguments(function(array, otherArrays) {\n return difference(array, otherArrays);\n});\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nfunction uniq(array, isSorted, iteratee, context) {\n if (!isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nvar union = restArguments(function(arrays) {\n return uniq(flatten$1(arrays, true, true));\n});\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nfunction intersection(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n}\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nfunction unzip(array) {\n var length = array && max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = pluck(array, index);\n }\n return result;\n}\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nvar zip = restArguments(unzip);\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nfunction object(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n}\n\n// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nfunction range(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n}\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nfunction chunk(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n}\n\n// Helper function to continue chaining intermediate results.\nfunction chainResult(instance, obj) {\n return instance._chain ? _$1(obj).chain() : obj;\n}\n\n// Add your own custom functions to the Underscore object.\nfunction mixin(obj) {\n each(functions(obj), function(name) {\n var func = _$1[name] = obj[name];\n _$1.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_$1, args));\n };\n });\n return _$1;\n}\n\n// Add all mutator `Array` functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _$1.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) {\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n delete obj[0];\n }\n }\n return chainResult(this, obj);\n };\n});\n\n// Add all accessor `Array` functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _$1.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) obj = method.apply(obj, arguments);\n return chainResult(this, obj);\n };\n});\n\n// Named Exports\n\nvar allExports = {\n __proto__: null,\n VERSION: VERSION,\n restArguments: restArguments,\n isObject: isObject,\n isNull: isNull,\n isUndefined: isUndefined,\n isBoolean: isBoolean,\n isElement: isElement,\n isString: isString,\n isNumber: isNumber,\n isDate: isDate,\n isRegExp: isRegExp,\n isError: isError,\n isSymbol: isSymbol,\n isArrayBuffer: isArrayBuffer,\n isDataView: isDataView$1,\n isArray: isArray,\n isFunction: isFunction$1,\n isArguments: isArguments$1,\n isFinite: isFinite$1,\n isNaN: isNaN$1,\n isTypedArray: isTypedArray$1,\n isEmpty: isEmpty,\n isMatch: isMatch,\n isEqual: isEqual,\n isMap: isMap,\n isWeakMap: isWeakMap,\n isSet: isSet,\n isWeakSet: isWeakSet,\n keys: keys,\n allKeys: allKeys,\n values: values,\n pairs: pairs,\n invert: invert,\n functions: functions,\n methods: functions,\n extend: extend,\n extendOwn: extendOwn,\n assign: extendOwn,\n defaults: defaults,\n create: create,\n clone: clone,\n tap: tap,\n get: get,\n has: has,\n mapObject: mapObject,\n identity: identity,\n constant: constant,\n noop: noop,\n toPath: toPath$1,\n property: property,\n propertyOf: propertyOf,\n matcher: matcher,\n matches: matcher,\n times: times,\n random: random,\n now: now,\n escape: _escape,\n unescape: _unescape,\n templateSettings: templateSettings,\n template: template,\n result: result,\n uniqueId: uniqueId,\n chain: chain,\n iteratee: iteratee,\n partial: partial,\n bind: bind,\n bindAll: bindAll,\n memoize: memoize,\n delay: delay,\n defer: defer,\n throttle: throttle,\n debounce: debounce,\n wrap: wrap,\n negate: negate,\n compose: compose,\n after: after,\n before: before,\n once: once,\n findKey: findKey,\n findIndex: findIndex,\n findLastIndex: findLastIndex,\n sortedIndex: sortedIndex,\n indexOf: indexOf,\n lastIndexOf: lastIndexOf,\n find: find,\n detect: find,\n findWhere: findWhere,\n each: each,\n forEach: each,\n map: map,\n collect: map,\n reduce: reduce,\n foldl: reduce,\n inject: reduce,\n reduceRight: reduceRight,\n foldr: reduceRight,\n filter: filter,\n select: filter,\n reject: reject,\n every: every,\n all: every,\n some: some,\n any: some,\n contains: contains,\n includes: contains,\n include: contains,\n invoke: invoke,\n pluck: pluck,\n where: where,\n max: max,\n min: min,\n shuffle: shuffle,\n sample: sample,\n sortBy: sortBy,\n groupBy: groupBy,\n indexBy: indexBy,\n countBy: countBy,\n partition: partition,\n toArray: toArray,\n size: size,\n pick: pick,\n omit: omit,\n first: first,\n head: first,\n take: first,\n initial: initial,\n last: last,\n rest: rest,\n tail: rest,\n drop: rest,\n compact: compact,\n flatten: flatten,\n without: without,\n uniq: uniq,\n unique: uniq,\n union: union,\n intersection: intersection,\n difference: difference,\n unzip: unzip,\n transpose: unzip,\n zip: zip,\n object: object,\n range: range,\n chunk: chunk,\n mixin: mixin,\n 'default': _$1\n};\n\n// Default Export\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API.\n_._ = _;\n\nexports.VERSION = VERSION;\nexports._ = _;\nexports._escape = _escape;\nexports._unescape = _unescape;\nexports.after = after;\nexports.allKeys = allKeys;\nexports.before = before;\nexports.bind = bind;\nexports.bindAll = bindAll;\nexports.chain = chain;\nexports.chunk = chunk;\nexports.clone = clone;\nexports.compact = compact;\nexports.compose = compose;\nexports.constant = constant;\nexports.contains = contains;\nexports.countBy = countBy;\nexports.create = create;\nexports.debounce = debounce;\nexports.defaults = defaults;\nexports.defer = defer;\nexports.delay = delay;\nexports.difference = difference;\nexports.each = each;\nexports.every = every;\nexports.extend = extend;\nexports.extendOwn = extendOwn;\nexports.filter = filter;\nexports.find = find;\nexports.findIndex = findIndex;\nexports.findKey = findKey;\nexports.findLastIndex = findLastIndex;\nexports.findWhere = findWhere;\nexports.first = first;\nexports.flatten = flatten;\nexports.functions = functions;\nexports.get = get;\nexports.groupBy = groupBy;\nexports.has = has;\nexports.identity = identity;\nexports.indexBy = indexBy;\nexports.indexOf = indexOf;\nexports.initial = initial;\nexports.intersection = intersection;\nexports.invert = invert;\nexports.invoke = invoke;\nexports.isArguments = isArguments$1;\nexports.isArray = isArray;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isBoolean = isBoolean;\nexports.isDataView = isDataView$1;\nexports.isDate = isDate;\nexports.isElement = isElement;\nexports.isEmpty = isEmpty;\nexports.isEqual = isEqual;\nexports.isError = isError;\nexports.isFinite = isFinite$1;\nexports.isFunction = isFunction$1;\nexports.isMap = isMap;\nexports.isMatch = isMatch;\nexports.isNaN = isNaN$1;\nexports.isNull = isNull;\nexports.isNumber = isNumber;\nexports.isObject = isObject;\nexports.isRegExp = isRegExp;\nexports.isSet = isSet;\nexports.isString = isString;\nexports.isSymbol = isSymbol;\nexports.isTypedArray = isTypedArray$1;\nexports.isUndefined = isUndefined;\nexports.isWeakMap = isWeakMap;\nexports.isWeakSet = isWeakSet;\nexports.iteratee = iteratee;\nexports.keys = keys;\nexports.last = last;\nexports.lastIndexOf = lastIndexOf;\nexports.map = map;\nexports.mapObject = mapObject;\nexports.matcher = matcher;\nexports.max = max;\nexports.memoize = memoize;\nexports.min = min;\nexports.mixin = mixin;\nexports.negate = negate;\nexports.noop = noop;\nexports.now = now;\nexports.object = object;\nexports.omit = omit;\nexports.once = once;\nexports.pairs = pairs;\nexports.partial = partial;\nexports.partition = partition;\nexports.pick = pick;\nexports.pluck = pluck;\nexports.property = property;\nexports.propertyOf = propertyOf;\nexports.random = random;\nexports.range = range;\nexports.reduce = reduce;\nexports.reduceRight = reduceRight;\nexports.reject = reject;\nexports.rest = rest;\nexports.restArguments = restArguments;\nexports.result = result;\nexports.sample = sample;\nexports.shuffle = shuffle;\nexports.size = size;\nexports.some = some;\nexports.sortBy = sortBy;\nexports.sortedIndex = sortedIndex;\nexports.tap = tap;\nexports.template = template;\nexports.templateSettings = templateSettings;\nexports.throttle = throttle;\nexports.times = times;\nexports.toArray = toArray;\nexports.toPath = toPath$1;\nexports.union = union;\nexports.uniq = uniq;\nexports.uniqueId = uniqueId;\nexports.unzip = unzip;\nexports.values = values;\nexports.where = where;\nexports.without = without;\nexports.wrap = wrap;\nexports.zip = zip;\n//# sourceMappingURL=underscore-node-f.cjs.map\n","// Underscore.js 1.13.1\n// https://underscorejs.org\n// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\nvar underscoreNodeF = require('./underscore-node-f.cjs');\n\n\n\nmodule.exports = underscoreNodeF._;\n//# sourceMappingURL=underscore-node.cjs.map\n","module.exports = require(\"assert\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(3109);\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACrSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACtvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC5/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC15BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACjeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACjwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC1OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACt2EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC74IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7mBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AClYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7eA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC3uFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC3LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC9QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACriJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACx9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACv1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC5PA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoJA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7vBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACh5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7xFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrsDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC13CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACl+CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC9MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACjLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACv5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC73EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACv2BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACnnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC9uDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AChvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC3iBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACx0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC3KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACnDA;AACA;AACA;AACA;AACA;;;A;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzCA;AACA;AACA;AACA;AACA;;;A;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AChnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACjSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC1PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC3HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;ACndA;;;A;;;;;ACAA;;;A;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACpfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC3NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AChCA;;;A;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC7mEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7BA;AACA;;;;ACDA;AACA;AACA;AACA;;;;A","sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../webpack://github-ado-chatops/./lib/azureDevOpsClient.js","../webpack://github-ado-chatops/./lib/azureDevOpsService.js","../webpack://github-ado-chatops/./lib/chatOpService.js","../webpack://github-ado-chatops/./lib/chatOps.js","../webpack://github-ado-chatops/./lib/configService.js","../webpack://github-ado-chatops/./lib/main.js","../webpack://github-ado-chatops/./node_modules/@actions/core/lib/command.js","../webpack://github-ado-chatops/./node_modules/@actions/core/lib/core.js","../webpack://github-ado-chatops/./node_modules/@actions/core/lib/file-command.js","../webpack://github-ado-chatops/./node_modules/@actions/core/lib/utils.js","../webpack://github-ado-chatops/./node_modules/@actions/github/lib/context.js","../webpack://github-ado-chatops/./node_modules/@actions/github/lib/github.js","../webpack://github-ado-chatops/./node_modules/@actions/github/lib/internal/utils.js","../webpack://github-ado-chatops/./node_modules/@actions/github/lib/utils.js","../webpack://github-ado-chatops/./node_modules/@actions/http-client/index.js","../webpack://github-ado-chatops/./node_modules/@actions/http-client/proxy.js","../webpack://github-ado-chatops/./node_modules/@octokit/auth-token/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/core/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/endpoint/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/graphql/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/plugin-paginate-rest/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/plugin-rest-endpoint-methods/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/request-error/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/@octokit/request/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/BuildApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/ClientApiBases.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/CoreApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/DashboardApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/ExtensionManagementApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/FeatureManagementApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/FileContainerApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/FileContainerApiBase.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/GalleryApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/GalleryCompatHttpClientBase.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/GitApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/LocationsApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/NotificationApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/PolicyApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/ProfileApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/ProjectAnalysisApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/ReleaseApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/SecurityRolesApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/Serialization.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/TaskAgentApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/TaskAgentApiBase.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/TaskApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/TestApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/TfvcApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/VsoClient.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WebApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WikiApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WorkApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WorkItemTrackingApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WorkItemTrackingProcessApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/WorkItemTrackingProcessDefinitionsApi.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/handlers/basiccreds.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/handlers/bearertoken.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/handlers/ntlm.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/handlers/personalaccesstoken.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/BuildInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/CommentsInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/CoreInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/DashboardInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/ExtensionManagementInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/FeatureManagementInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/FileContainerInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/GalleryInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/GitInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/LocationsInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/NotificationInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/PolicyInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/ProfileInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/ProjectAnalysisInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/ReleaseInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/SecurityRolesInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/TaskAgentInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/TestInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/TfvcInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/WikiInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/WorkInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/WorkItemTrackingInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/WorkItemTrackingProcessDefinitionsInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/WorkItemTrackingProcessInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/common/FormInputInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/common/OperationsInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/common/System.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/common/SystemDataInterfaces.js","../webpack://github-ado-chatops/./node_modules/azure-devops-node-api/interfaces/common/VSSInterfaces.js","../webpack://github-ado-chatops/./node_modules/before-after-hook/index.js","../webpack://github-ado-chatops/./node_modules/before-after-hook/lib/add.js","../webpack://github-ado-chatops/./node_modules/before-after-hook/lib/register.js","../webpack://github-ado-chatops/./node_modules/before-after-hook/lib/remove.js","../webpack://github-ado-chatops/./node_modules/call-bind/callBound.js","../webpack://github-ado-chatops/./node_modules/call-bind/index.js","../webpack://github-ado-chatops/./node_modules/deprecation/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/function-bind/implementation.js","../webpack://github-ado-chatops/./node_modules/function-bind/index.js","../webpack://github-ado-chatops/./node_modules/get-intrinsic/index.js","../webpack://github-ado-chatops/./node_modules/has-symbols/index.js","../webpack://github-ado-chatops/./node_modules/has-symbols/shams.js","../webpack://github-ado-chatops/./node_modules/has/src/index.js","../webpack://github-ado-chatops/./node_modules/is-plain-object/dist/is-plain-object.js","../webpack://github-ado-chatops/./node_modules/node-fetch/lib/index.js","../webpack://github-ado-chatops/./node_modules/once/once.js","../webpack://github-ado-chatops/./node_modules/qs/lib/formats.js","../webpack://github-ado-chatops/./node_modules/qs/lib/index.js","../webpack://github-ado-chatops/./node_modules/qs/lib/parse.js","../webpack://github-ado-chatops/./node_modules/qs/lib/stringify.js","../webpack://github-ado-chatops/./node_modules/qs/lib/utils.js","../webpack://github-ado-chatops/./node_modules/side-channel/index.js","../webpack://github-ado-chatops/./node_modules/side-channel/node_modules/object-inspect/index.js","../webpack://github-ado-chatops/./node_modules/side-channel/node_modules/object-inspect/util.inspect.js","../webpack://github-ado-chatops/./node_modules/tunnel/index.js","../webpack://github-ado-chatops/./node_modules/tunnel/lib/tunnel.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/Handlers.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/HttpClient.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/RestClient.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/Util.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/handlers/basiccreds.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/handlers/bearertoken.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/handlers/ntlm.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/handlers/personalaccesstoken.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/opensource/Node-SMB/lib/common.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/opensource/Node-SMB/lib/ntlm.js","../webpack://github-ado-chatops/./node_modules/typed-rest-client/opensource/Node-SMB/lib/smbhash.js","../webpack://github-ado-chatops/./node_modules/universal-user-agent/dist-node/index.js","../webpack://github-ado-chatops/./node_modules/wrappy/wrappy.js","../webpack://github-ado-chatops/./node_modules/@vercel/ncc/dist/ncc/@@notfound.js","../webpack://github-ado-chatops/./node_modules/underscore/underscore-node-f.cjs","../webpack://github-ado-chatops/./node_modules/underscore/underscore-node.cjs","../webpack://github-ado-chatops/external \"assert\"","../webpack://github-ado-chatops/external \"crypto\"","../webpack://github-ado-chatops/external \"events\"","../webpack://github-ado-chatops/external \"fs\"","../webpack://github-ado-chatops/external \"http\"","../webpack://github-ado-chatops/external \"https\"","../webpack://github-ado-chatops/external \"net\"","../webpack://github-ado-chatops/external \"os\"","../webpack://github-ado-chatops/external \"path\"","../webpack://github-ado-chatops/external \"stream\"","../webpack://github-ado-chatops/external \"tls\"","../webpack://github-ado-chatops/external \"url\"","../webpack://github-ado-chatops/external \"util\"","../webpack://github-ado-chatops/external \"zlib\"","../webpack://github-ado-chatops/webpack/bootstrap","../webpack://github-ado-chatops/webpack/runtime/compat","../webpack://github-ado-chatops/webpack/startup"],"sourcesContent":["\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AzureDevOpsClient = void 0;\nconst azdev = __importStar(require(\"azure-devops-node-api\"));\nconst core = __importStar(require(\"@actions/core\"));\nconst configService_1 = require(\"./configService\");\nclass AzureDevOpsClient {\n constructor(appConfig, azDevClient) {\n this._appConfig = configService_1.ConfigService.defaultAppConfig;\n this._appConfig = appConfig;\n this._azDevClient = azDevClient;\n }\n static build(configService) {\n return __awaiter(this, void 0, void 0, function* () {\n const appConfig = configService.appConfig;\n const orgUrl = `https://${appConfig.ado_domain}/${appConfig.ado_org}`;\n const authHandler = azdev.getPersonalAccessTokenHandler(appConfig.ado_pat);\n const azDevClient = new azdev.WebApi(orgUrl, authHandler);\n return new AzureDevOpsClient(appConfig, azDevClient);\n });\n }\n createBranch(branchName, options) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n core.info('Getting the ADO git API...');\n const gitClient = yield this._azDevClient.getGitApi();\n core.info('Got it.');\n core.info('Getting the repo...');\n const repo = yield this.getRepo(gitClient);\n core.info('Got it.');\n let sourceBranch = options.sourceBranch;\n if (!sourceBranch) {\n core.info('Getting the default branch in ADO...');\n sourceBranch = this.getDefaultBranch(repo);\n core.info('Got it.');\n }\n const result = yield this.createBranchInner(branchName, options, gitClient, repo);\n return result;\n }\n catch (error) {\n core.error(`Failed to create branch: ${branchName}`);\n throw new Error(`Failed to create branch: ${branchName}`);\n }\n });\n }\n deleteBranch(refName, refObjectId) {\n return __awaiter(this, void 0, void 0, function* () {\n const gitClient = yield this._azDevClient.getGitApi();\n const gitRefUpdates = [\n {\n oldObjectId: refObjectId,\n newObjectId: new Array(41).join('0'),\n name: refName\n }\n ];\n // create a new branch from the source\n const updateResults = yield gitClient.updateRefs(gitRefUpdates, this._appConfig.ado_repo, this._appConfig.ado_project);\n const refDeleteResult = updateResults[0];\n return refDeleteResult;\n });\n }\n createBranchInner(branchName, options, gitClient, repo) {\n return __awaiter(this, void 0, void 0, function* () {\n core.debug(`Creating branch from ${options.sourceBranch}.`);\n core.debug(`Getting ${options.sourceBranch} refs...`);\n const gitRefs = yield gitClient.getRefs(repo.id, this._appConfig.ado_project, options.sourceBranch);\n const sourceRef = gitRefs[0];\n core.debug(\"Got 'em.\");\n const gitRefUpdates = [\n {\n oldObjectId: new Array(41).join('0'),\n newObjectId: sourceRef.objectId,\n name: `refs/heads/${branchName}`\n }\n ];\n // create a new branch from the source\n core.debug('Creating the new branch...');\n const updateResults = yield gitClient.updateRefs(gitRefUpdates, this._appConfig.ado_repo, this._appConfig.ado_project);\n const refCreateResult = updateResults[0];\n return refCreateResult;\n });\n }\n getDefaultBranch(repo) {\n var _a;\n const defaultBranch = (_a = repo.defaultBranch) === null || _a === void 0 ? void 0 : _a.replace('refs/', '');\n if (!defaultBranch) {\n core.error(`${defaultBranch} does not exist`);\n throw new Error(`${defaultBranch} does not exist`);\n }\n return defaultBranch;\n }\n getRepo(gitClient) {\n return __awaiter(this, void 0, void 0, function* () {\n const repo = yield gitClient.getRepository(this._appConfig.ado_repo, this._appConfig.ado_project);\n if (!repo.id) {\n core.error(`Repo ${this._appConfig.ado_repo} does not exist in project ${this._appConfig.ado_project}`);\n throw new Error(`Repo ${this._appConfig.ado_repo} does not exist in project ${this._appConfig.ado_project}`);\n }\n return repo;\n });\n }\n}\nexports.AzureDevOpsClient = AzureDevOpsClient;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AzureDevOpsService = void 0;\nconst core = __importStar(require(\"@actions/core\"));\nconst azureDevOpsClient_1 = require(\"./azureDevOpsClient\");\nclass AzureDevOpsService {\n constructor(appConfig, adoClient) {\n // Maximum number of bytes in a git branch is 250\n // Therefore, trim branch name to 62 characters (assuming 32-bit/4-byte Unicode) => 238 bytes\n // (https://stackoverflow.com/questions/60045157/what-is-the-maximum-length-of-a-github-branch-name)\n this.maxNumOfChars = 62;\n this._appConfig = appConfig;\n this._adoClient = adoClient;\n }\n static build(configService) {\n return __awaiter(this, void 0, void 0, function* () {\n const appConfig = configService.appConfig;\n const adoClient = yield azureDevOpsClient_1.AzureDevOpsClient.build(configService);\n return new AzureDevOpsService(appConfig, adoClient);\n });\n }\n createBranch(options) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n // Build the branch name from the issue title\n core.info('Building branch name...');\n const branchName = this.buildBranchName(options);\n core.info(`Branch name: ${branchName}`);\n this._adoClient.createBranch(branchName, options);\n // Create a comment with a link to the newly created branch\n const successMessage = `Branch [${branchName}](${this.getBranchUrl(branchName)}) has been created in Azure DevOps`;\n return successMessage;\n }\n catch (e) {\n const errorMessage = `Failed creating the branch in ADO: ${e}`;\n core.error(errorMessage);\n return errorMessage;\n }\n });\n }\n getBranchUrl(branchName) {\n const uriEncodedBranchName = encodeURIComponent(branchName);\n return `https://${this._appConfig.ado_domain}/${this._appConfig.ado_org}/${this._appConfig.ado_project}/_git/${this._appConfig.ado_repo}?version=GB${uriEncodedBranchName}`;\n }\n buildBranchName(options) {\n const issueInfo = `${options.issueNumber}-${options.issueTitle.toLowerCase()}`;\n const branchName = `users/${this.makeGitSafe(options.username)}/${this.makeGitSafe(issueInfo)}`;\n return branchName.substr(0, this.maxNumOfChars);\n }\n makeGitSafe(s) {\n const replacementChar = '-';\n const regexp = /(?![-/])[\\W]+/g;\n const result = s.replace(regexp, replacementChar).replace(/[/]+$/, '');\n return result;\n }\n}\nexports.AzureDevOpsService = AzureDevOpsService;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChatOpService = void 0;\nconst chatOps_1 = require(\"./chatOps\");\nclass ChatOpService {\n constructor() { }\n static build() {\n return new ChatOpService();\n }\n getChatOpCommand(comment) {\n const command = this.getCommandString(comment);\n return chatOps_1.chatOps.find(op => op === command) || 'None';\n }\n getParameterValues(command, comment) {\n var _a;\n const possibleParams = ((_a = chatOps_1.chatOpInfo.find(info => info.commands.includes(command))) === null || _a === void 0 ? void 0 : _a.params) || [];\n if (possibleParams.length === 0)\n return {};\n const paramValueMap = {};\n for (const pp of possibleParams) {\n paramValueMap[pp] = this.getParamValue(pp, comment);\n }\n return paramValueMap;\n }\n getCommandString(comment) {\n const commentTrim = comment.trim();\n if (!commentTrim.startsWith('/'))\n return '';\n const command = commentTrim.split(' ')[0];\n return command;\n }\n getParamValue(param, comment) {\n const splitResult = comment.split(param);\n if (splitResult.length < 2)\n return '';\n const theRest = splitResult[1].trim();\n return theRest.split(' ')[0];\n }\n}\nexports.ChatOpService = ChatOpService;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.chatOps = exports.chatOpInfo = void 0;\nconst createBranchChatOpInfo = {\n commands: ['/cb-ado', '/create-branch-ado'],\n params: ['-branch', '-username']\n};\nconst chatOpInfo = [createBranchChatOpInfo];\nexports.chatOpInfo = chatOpInfo;\nconst chatOps = createBranchChatOpInfo.commands;\nexports.chatOps = chatOps;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigService = void 0;\nconst core = __importStar(require(\"@actions/core\"));\nclass ConfigService {\n constructor(appConfig) {\n this.appConfig = ConfigService.defaultAppConfig;\n this.appConfig = appConfig;\n }\n static build() {\n return __awaiter(this, void 0, void 0, function* () {\n const loadedConfig = this.loadConfig();\n const config = ConfigService.mergeDefaults(loadedConfig);\n const errorMessages = ConfigService.validateConfig(config);\n if (errorMessages.length > 0) {\n const errorStr = errorMessages.join('\\n');\n core.error(errorStr);\n throw new Error(errorStr);\n }\n return new ConfigService(config);\n });\n }\n static mergeDefaults(loadedConfig) {\n return {\n ado_domain: loadedConfig.ado_domain || ConfigService.defaultAppConfig.ado_domain,\n ado_org: loadedConfig.ado_org,\n ado_pat: loadedConfig.ado_pat,\n ado_project: loadedConfig.ado_project,\n ado_repo: loadedConfig.ado_repo,\n github_token: loadedConfig.github_token\n };\n }\n static validateConfig(config) {\n const errorMessages = [];\n // There are better ways to do this but I'm being lazy\n if (!config.ado_domain)\n errorMessages.push('No ado_org was found. Check your inputs');\n if (!config.ado_org)\n errorMessages.push('No ado_org was found. Check your inputs');\n if (!config.ado_pat)\n errorMessages.push('No ado_pat was found. Check your inputs');\n if (!config.ado_project)\n errorMessages.push('No ado_project was found. Check your inputs');\n if (!config.ado_repo)\n errorMessages.push('No ado_repo was found. Check your inputs');\n if (!config.github_token)\n errorMessages.push('No github_token was found. Check your inputs');\n return errorMessages;\n }\n}\nexports.ConfigService = ConfigService;\nConfigService.defaultAppConfig = {\n ado_domain: 'dev.azure.com',\n ado_org: '',\n ado_pat: '',\n ado_project: '',\n ado_repo: '',\n github_token: ''\n};\nConfigService.loadConfig = () => {\n const ado_domain = core.getInput('ado_domain');\n const ado_org = core.getInput('ado_org');\n const ado_project = core.getInput('ado_project');\n const ado_repo = core.getInput('ado_repo');\n const ado_pat = core.getInput('ado_pat');\n const github_token = core.getInput('github_token');\n // debug is only output if you set the secret `ACTIONS_RUNNER_DEBUG` to true\n core.info(`ado_domain: ${ado_domain}!`);\n core.info(`ado_org: ${ado_org}!`);\n core.info(`ado_project: ${ado_project}!`);\n core.info(`ado_repo: ${ado_repo}!`);\n core.info(`ado_pat: ${ado_pat != null ? '*******' : ''}!`);\n core.info(`github_token: ${github_token != null ? '*******' : ''}!`);\n return {\n ado_domain,\n ado_org,\n ado_project,\n ado_repo,\n ado_pat,\n github_token\n };\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core = __importStar(require(\"@actions/core\"));\nconst github = __importStar(require(\"@actions/github\"));\nconst azureDevOpsService_1 = require(\"./azureDevOpsService\");\nconst chatOpService_1 = require(\"./chatOpService\");\nconst configService_1 = require(\"./configService\");\nconst utils_1 = require(\"@actions/github/lib/utils\");\nfunction run() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n core.info('Running GitHub <> ADO ChatOps...');\n core.info(`Event: ${utils_1.context.eventName}`);\n core.info(`Action: ${utils_1.context.payload.action || 'Unknown'}`);\n core.info('Initializaing services...');\n const configService = yield configService_1.ConfigService.build();\n // This should be a token with access to your repository scoped in as a secret.\n // The YML workflow will need to set myToken with the GitHub Secret Token\n // github_token: ${{ secrets.GITHUB_TOKEN }}\n // https://help.github.com/en/actions/automating-your-workflow-with-github-actions/authenticating-with-the-github_token#about-the-github_token-secret\n const octokit = github.getOctokit(configService.appConfig.github_token);\n const chatOpService = chatOpService_1.ChatOpService.build();\n const azureDevOpsService = yield azureDevOpsService_1.AzureDevOpsService.build(configService);\n core.info('Done.');\n let resultMessage = '';\n if (utils_1.context.eventName === 'issue_comment') {\n const issueCommentPayload = utils_1.context.payload;\n if (issueCommentPayload.action === 'created') {\n const comment = issueCommentPayload.comment.body;\n core.info(`Comment: ${comment}`);\n const chatOpCommand = getChatOpCommand(chatOpService, comment);\n if (chatOpCommand === 'None')\n return core.info('Done.');\n const params = getParameters(chatOpService, chatOpCommand, comment);\n resultMessage = yield azureDevOpsService.createBranch({\n issueNumber: issueCommentPayload.issue.number,\n issueTitle: issueCommentPayload.issue.title,\n username: params['-username'] || issueCommentPayload.sender.login,\n sourceBranch: params['-branch']\n });\n yield octokit.rest.issues.createComment({\n owner: utils_1.context.issue.owner,\n repo: utils_1.context.issue.repo,\n issue_number: utils_1.context.issue.number,\n body: resultMessage || 'There was nothing to do!'\n });\n }\n }\n core.info(resultMessage);\n }\n catch (error) {\n core.setFailed((error === null || error === void 0 ? void 0 : error.message) || error || `An unknown error has occurred: ${error}`);\n }\n });\n}\nfunction getChatOpCommand(chatOpService, comment) {\n core.info('Checking for ChatOp command...');\n const chatOpCommand = chatOpService.getChatOpCommand(comment);\n core.info(`Found ChatOp: ${chatOpCommand}`);\n return chatOpCommand;\n}\nfunction getParameters(chatOpService, chatOpCommand, comment) {\n core.info('Getting parameters...');\n const paramValues = chatOpService.getParameterValues(chatOpCommand, comment);\n for (const key of Object.keys(paramValues)) {\n const value = paramValues[key];\n core.info(`Found ${key} ${value}`);\n }\n return paramValues;\n}\nrun();\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issue = exports.issueCommand = void 0;\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Commands\n *\n * Command Format:\n * ::name key=value,key=value::message\n *\n * Examples:\n * ::warning::This is the message\n * ::set-env name=MY_VAR::some value\n */\nfunction issueCommand(command, properties, message) {\n const cmd = new Command(command, properties, message);\n process.stdout.write(cmd.toString() + os.EOL);\n}\nexports.issueCommand = issueCommand;\nfunction issue(name, message = '') {\n issueCommand(name, {}, message);\n}\nexports.issue = issue;\nconst CMD_STRING = '::';\nclass Command {\n constructor(command, properties, message) {\n if (!command) {\n command = 'missing.command';\n }\n this.command = command;\n this.properties = properties;\n this.message = message;\n }\n toString() {\n let cmdStr = CMD_STRING + this.command;\n if (this.properties && Object.keys(this.properties).length > 0) {\n cmdStr += ' ';\n let first = true;\n for (const key in this.properties) {\n if (this.properties.hasOwnProperty(key)) {\n const val = this.properties[key];\n if (val) {\n if (first) {\n first = false;\n }\n else {\n cmdStr += ',';\n }\n cmdStr += `${key}=${escapeProperty(val)}`;\n }\n }\n }\n }\n cmdStr += `${CMD_STRING}${escapeData(this.message)}`;\n return cmdStr;\n }\n}\nfunction escapeData(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A');\n}\nfunction escapeProperty(s) {\n return utils_1.toCommandValue(s)\n .replace(/%/g, '%25')\n .replace(/\\r/g, '%0D')\n .replace(/\\n/g, '%0A')\n .replace(/:/g, '%3A')\n .replace(/,/g, '%2C');\n}\n//# sourceMappingURL=command.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;\nconst command_1 = require(\"./command\");\nconst file_command_1 = require(\"./file-command\");\nconst utils_1 = require(\"./utils\");\nconst os = __importStar(require(\"os\"));\nconst path = __importStar(require(\"path\"));\n/**\n * The code to exit an action\n */\nvar ExitCode;\n(function (ExitCode) {\n /**\n * A code indicating that the action was successful\n */\n ExitCode[ExitCode[\"Success\"] = 0] = \"Success\";\n /**\n * A code indicating that the action was a failure\n */\n ExitCode[ExitCode[\"Failure\"] = 1] = \"Failure\";\n})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));\n//-----------------------------------------------------------------------\n// Variables\n//-----------------------------------------------------------------------\n/**\n * Sets env variable for this action and future actions in the job\n * @param name the name of the variable to set\n * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction exportVariable(name, val) {\n const convertedVal = utils_1.toCommandValue(val);\n process.env[name] = convertedVal;\n const filePath = process.env['GITHUB_ENV'] || '';\n if (filePath) {\n const delimiter = '_GitHubActionsFileCommandDelimeter_';\n const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;\n file_command_1.issueCommand('ENV', commandValue);\n }\n else {\n command_1.issueCommand('set-env', { name }, convertedVal);\n }\n}\nexports.exportVariable = exportVariable;\n/**\n * Registers a secret which will get masked from logs\n * @param secret value of the secret\n */\nfunction setSecret(secret) {\n command_1.issueCommand('add-mask', {}, secret);\n}\nexports.setSecret = setSecret;\n/**\n * Prepends inputPath to the PATH (for this action and future actions)\n * @param inputPath\n */\nfunction addPath(inputPath) {\n const filePath = process.env['GITHUB_PATH'] || '';\n if (filePath) {\n file_command_1.issueCommand('PATH', inputPath);\n }\n else {\n command_1.issueCommand('add-path', {}, inputPath);\n }\n process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;\n}\nexports.addPath = addPath;\n/**\n * Gets the value of an input.\n * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed.\n * Returns an empty string if the value is not defined.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string\n */\nfunction getInput(name, options) {\n const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';\n if (options && options.required && !val) {\n throw new Error(`Input required and not supplied: ${name}`);\n }\n if (options && options.trimWhitespace === false) {\n return val;\n }\n return val.trim();\n}\nexports.getInput = getInput;\n/**\n * Gets the values of an multiline input. Each value is also trimmed.\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns string[]\n *\n */\nfunction getMultilineInput(name, options) {\n const inputs = getInput(name, options)\n .split('\\n')\n .filter(x => x !== '');\n return inputs;\n}\nexports.getMultilineInput = getMultilineInput;\n/**\n * Gets the input value of the boolean type in the YAML 1.2 \"core schema\" specification.\n * Support boolean input list: `true | True | TRUE | false | False | FALSE` .\n * The return value is also in boolean type.\n * ref: https://yaml.org/spec/1.2/spec.html#id2804923\n *\n * @param name name of the input to get\n * @param options optional. See InputOptions.\n * @returns boolean\n */\nfunction getBooleanInput(name, options) {\n const trueValue = ['true', 'True', 'TRUE'];\n const falseValue = ['false', 'False', 'FALSE'];\n const val = getInput(name, options);\n if (trueValue.includes(val))\n return true;\n if (falseValue.includes(val))\n return false;\n throw new TypeError(`Input does not meet YAML 1.2 \"Core Schema\" specification: ${name}\\n` +\n `Support boolean input list: \\`true | True | TRUE | false | False | FALSE\\``);\n}\nexports.getBooleanInput = getBooleanInput;\n/**\n * Sets the value of an output.\n *\n * @param name name of the output to set\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction setOutput(name, value) {\n process.stdout.write(os.EOL);\n command_1.issueCommand('set-output', { name }, value);\n}\nexports.setOutput = setOutput;\n/**\n * Enables or disables the echoing of commands into stdout for the rest of the step.\n * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.\n *\n */\nfunction setCommandEcho(enabled) {\n command_1.issue('echo', enabled ? 'on' : 'off');\n}\nexports.setCommandEcho = setCommandEcho;\n//-----------------------------------------------------------------------\n// Results\n//-----------------------------------------------------------------------\n/**\n * Sets the action status to failed.\n * When the action exits it will be with an exit code of 1\n * @param message add error issue message\n */\nfunction setFailed(message) {\n process.exitCode = ExitCode.Failure;\n error(message);\n}\nexports.setFailed = setFailed;\n//-----------------------------------------------------------------------\n// Logging Commands\n//-----------------------------------------------------------------------\n/**\n * Gets whether Actions Step Debug is on or not\n */\nfunction isDebug() {\n return process.env['RUNNER_DEBUG'] === '1';\n}\nexports.isDebug = isDebug;\n/**\n * Writes debug message to user log\n * @param message debug message\n */\nfunction debug(message) {\n command_1.issueCommand('debug', {}, message);\n}\nexports.debug = debug;\n/**\n * Adds an error issue\n * @param message error issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction error(message, properties = {}) {\n command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.error = error;\n/**\n * Adds a warning issue\n * @param message warning issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction warning(message, properties = {}) {\n command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.warning = warning;\n/**\n * Adds a notice issue\n * @param message notice issue message. Errors will be converted to string via toString()\n * @param properties optional properties to add to the annotation.\n */\nfunction notice(message, properties = {}) {\n command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);\n}\nexports.notice = notice;\n/**\n * Writes info to log with console.log.\n * @param message info message\n */\nfunction info(message) {\n process.stdout.write(message + os.EOL);\n}\nexports.info = info;\n/**\n * Begin an output group.\n *\n * Output until the next `groupEnd` will be foldable in this group\n *\n * @param name The name of the output group\n */\nfunction startGroup(name) {\n command_1.issue('group', name);\n}\nexports.startGroup = startGroup;\n/**\n * End an output group.\n */\nfunction endGroup() {\n command_1.issue('endgroup');\n}\nexports.endGroup = endGroup;\n/**\n * Wrap an asynchronous function call in a group.\n *\n * Returns the same type as the function itself.\n *\n * @param name The name of the group\n * @param fn The function to wrap in the group\n */\nfunction group(name, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n startGroup(name);\n let result;\n try {\n result = yield fn();\n }\n finally {\n endGroup();\n }\n return result;\n });\n}\nexports.group = group;\n//-----------------------------------------------------------------------\n// Wrapper action state\n//-----------------------------------------------------------------------\n/**\n * Saves state for current action, the state can only be retrieved by this action's post job execution.\n *\n * @param name name of the state to store\n * @param value value to store. Non-string values will be converted to a string via JSON.stringify\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction saveState(name, value) {\n command_1.issueCommand('save-state', { name }, value);\n}\nexports.saveState = saveState;\n/**\n * Gets the value of an state set by this action's main execution.\n *\n * @param name name of the state to get\n * @returns string\n */\nfunction getState(name) {\n return process.env[`STATE_${name}`] || '';\n}\nexports.getState = getState;\n//# sourceMappingURL=core.js.map","\"use strict\";\n// For internal use, subject to change.\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.issueCommand = void 0;\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst fs = __importStar(require(\"fs\"));\nconst os = __importStar(require(\"os\"));\nconst utils_1 = require(\"./utils\");\nfunction issueCommand(command, message) {\n const filePath = process.env[`GITHUB_${command}`];\n if (!filePath) {\n throw new Error(`Unable to find environment variable for file command ${command}`);\n }\n if (!fs.existsSync(filePath)) {\n throw new Error(`Missing file at path: ${filePath}`);\n }\n fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {\n encoding: 'utf8'\n });\n}\nexports.issueCommand = issueCommand;\n//# sourceMappingURL=file-command.js.map","\"use strict\";\n// We use any as a valid input type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toCommandProperties = exports.toCommandValue = void 0;\n/**\n * Sanitizes an input into a string so it can be passed into issueCommand safely\n * @param input input to sanitize into a string\n */\nfunction toCommandValue(input) {\n if (input === null || input === undefined) {\n return '';\n }\n else if (typeof input === 'string' || input instanceof String) {\n return input;\n }\n return JSON.stringify(input);\n}\nexports.toCommandValue = toCommandValue;\n/**\n *\n * @param annotationProperties\n * @returns The command properties to send with the actual annotation command\n * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646\n */\nfunction toCommandProperties(annotationProperties) {\n if (!Object.keys(annotationProperties).length) {\n return {};\n }\n return {\n title: annotationProperties.title,\n line: annotationProperties.startLine,\n endLine: annotationProperties.endLine,\n col: annotationProperties.startColumn,\n endColumn: annotationProperties.endColumn\n };\n}\nexports.toCommandProperties = toCommandProperties;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Context = void 0;\nconst fs_1 = require(\"fs\");\nconst os_1 = require(\"os\");\nclass Context {\n /**\n * Hydrate the context from the environment\n */\n constructor() {\n var _a, _b, _c;\n this.payload = {};\n if (process.env.GITHUB_EVENT_PATH) {\n if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) {\n this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' }));\n }\n else {\n const path = process.env.GITHUB_EVENT_PATH;\n process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`);\n }\n }\n this.eventName = process.env.GITHUB_EVENT_NAME;\n this.sha = process.env.GITHUB_SHA;\n this.ref = process.env.GITHUB_REF;\n this.workflow = process.env.GITHUB_WORKFLOW;\n this.action = process.env.GITHUB_ACTION;\n this.actor = process.env.GITHUB_ACTOR;\n this.job = process.env.GITHUB_JOB;\n this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10);\n this.runId = parseInt(process.env.GITHUB_RUN_ID, 10);\n this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`;\n this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`;\n this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`;\n }\n get issue() {\n const payload = this.payload;\n return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number });\n }\n get repo() {\n if (process.env.GITHUB_REPOSITORY) {\n const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/');\n return { owner, repo };\n }\n if (this.payload.repository) {\n return {\n owner: this.payload.repository.owner.login,\n repo: this.payload.repository.name\n };\n }\n throw new Error(\"context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'\");\n }\n}\nexports.Context = Context;\n//# sourceMappingURL=context.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokit = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst utils_1 = require(\"./utils\");\nexports.context = new Context.Context();\n/**\n * Returns a hydrated octokit ready to use for GitHub Actions\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokit(token, options) {\n return new utils_1.GitHub(utils_1.getOctokitOptions(token, options));\n}\nexports.getOctokit = getOctokit;\n//# sourceMappingURL=github.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0;\nconst httpClient = __importStar(require(\"@actions/http-client\"));\nfunction getAuthString(token, options) {\n if (!token && !options.auth) {\n throw new Error('Parameter token or opts.auth is required');\n }\n else if (token && options.auth) {\n throw new Error('Parameters token and opts.auth may not both be specified');\n }\n return typeof options.auth === 'string' ? options.auth : `token ${token}`;\n}\nexports.getAuthString = getAuthString;\nfunction getProxyAgent(destinationUrl) {\n const hc = new httpClient.HttpClient();\n return hc.getAgent(destinationUrl);\n}\nexports.getProxyAgent = getProxyAgent;\nfunction getApiBaseUrl() {\n return process.env['GITHUB_API_URL'] || 'https://api.github.com';\n}\nexports.getApiBaseUrl = getApiBaseUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOctokitOptions = exports.GitHub = exports.context = void 0;\nconst Context = __importStar(require(\"./context\"));\nconst Utils = __importStar(require(\"./internal/utils\"));\n// octokit + plugins\nconst core_1 = require(\"@octokit/core\");\nconst plugin_rest_endpoint_methods_1 = require(\"@octokit/plugin-rest-endpoint-methods\");\nconst plugin_paginate_rest_1 = require(\"@octokit/plugin-paginate-rest\");\nexports.context = new Context.Context();\nconst baseUrl = Utils.getApiBaseUrl();\nconst defaults = {\n baseUrl,\n request: {\n agent: Utils.getProxyAgent(baseUrl)\n }\n};\nexports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(defaults);\n/**\n * Convience function to correctly format Octokit Options to pass into the constructor.\n *\n * @param token the repo PAT or GITHUB_TOKEN\n * @param options other options to set\n */\nfunction getOctokitOptions(token, options) {\n const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller\n // Auth\n const auth = Utils.getAuthString(token, opts);\n if (auth) {\n opts.auth = auth;\n }\n return opts;\n}\nexports.getOctokitOptions = getOctokitOptions;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst pm = require(\"./proxy\");\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nvar Headers;\n(function (Headers) {\n Headers[\"Accept\"] = \"accept\";\n Headers[\"ContentType\"] = \"content-type\";\n})(Headers = exports.Headers || (exports.Headers = {}));\nvar MediaTypes;\n(function (MediaTypes) {\n MediaTypes[\"ApplicationJson\"] = \"application/json\";\n})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}));\n/**\n * Returns the proxy URL, depending upon the supplied url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\nfunction getProxyUrl(serverUrl) {\n let proxyUrl = pm.getProxyUrl(new URL(serverUrl));\n return proxyUrl ? proxyUrl.href : '';\n}\nexports.getProxyUrl = getProxyUrl;\nconst HttpRedirectCodes = [\n HttpCodes.MovedPermanently,\n HttpCodes.ResourceMoved,\n HttpCodes.SeeOther,\n HttpCodes.TemporaryRedirect,\n HttpCodes.PermanentRedirect\n];\nconst HttpResponseRetryCodes = [\n HttpCodes.BadGateway,\n HttpCodes.ServiceUnavailable,\n HttpCodes.GatewayTimeout\n];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientError extends Error {\n constructor(message, statusCode) {\n super(message);\n this.name = 'HttpClientError';\n this.statusCode = statusCode;\n Object.setPrototypeOf(this, HttpClientError.prototype);\n }\n}\nexports.HttpClientError = HttpClientError;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise(async (resolve, reject) => {\n let output = Buffer.alloc(0);\n this.message.on('data', (chunk) => {\n output = Buffer.concat([output, chunk]);\n });\n this.message.on('end', () => {\n resolve(output.toString());\n });\n });\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = new URL(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Gets a typed object from an endpoint\n * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise\n */\n async getJson(requestUrl, additionalHeaders = {}) {\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n let res = await this.get(requestUrl, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async postJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.post(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async putJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.put(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n async patchJson(requestUrl, obj, additionalHeaders = {}) {\n let data = JSON.stringify(obj, null, 2);\n additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson);\n additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson);\n let res = await this.patch(requestUrl, data, additionalHeaders);\n return this._processResponse(res, this.requestOptions);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n async request(verb, requestUrl, data, headers) {\n if (this._disposed) {\n throw new Error('Client has already been disposed.');\n }\n let parsedUrl = new URL(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1\n ? this._maxRetries + 1\n : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n response = await this.requestRaw(info, data);\n // Check if it's an authentication challenge\n if (response &&\n response.message &&\n response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1 &&\n this._allowRedirects &&\n redirectsRemaining > 0) {\n const redirectUrl = response.message.headers['location'];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = new URL(redirectUrl);\n if (parsedUrl.protocol == 'https:' &&\n parsedUrl.protocol != parsedRedirectUrl.protocol &&\n !this._allowRedirectDowngrade) {\n throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.');\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n await response.readBody();\n // strip authorization header if redirected to a different hostname\n if (parsedRedirectUrl.hostname !== parsedUrl.hostname) {\n for (let header in headers) {\n // header names are case insensitive\n if (header.toLowerCase() === 'authorization') {\n delete headers[header];\n }\n }\n }\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = await this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n await response.readBody();\n await this._performExponentialBackoff(numTries);\n }\n }\n return response;\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof data === 'string') {\n info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', sock => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.end();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof data === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof data !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n /**\n * Gets an http agent. This function is useful when you need an http agent that handles\n * routing through a proxy server - depending upon the url and proxy environment variables.\n * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com\n */\n getAgent(serverUrl) {\n let parsedUrl = new URL(serverUrl);\n return this._getAgent(parsedUrl);\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port\n ? parseInt(info.parsedUrl.port)\n : defaultPort;\n info.options.path =\n (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers['user-agent'] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers) {\n this.handlers.forEach(handler => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getExistingOrDefaultHeader(additionalHeaders, header, _default) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {});\n let clientHeader;\n if (this.requestOptions && this.requestOptions.headers) {\n clientHeader = lowercaseKeys(this.requestOptions.headers)[header];\n }\n return additionalHeaders[header] || clientHeader || _default;\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxyUrl = pm.getProxyUrl(parsedUrl);\n let useProxy = proxyUrl && proxyUrl.hostname;\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n ...((proxyUrl.username || proxyUrl.password) && {\n proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`\n }),\n host: proxyUrl.hostname,\n port: proxyUrl.port\n }\n };\n let tunnelAgent;\n const overHttps = proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, {\n rejectUnauthorized: false\n });\n }\n return agent;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n async _processResponse(res, options) {\n return new Promise(async (resolve, reject) => {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = await res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, HttpClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n response.result = obj;\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = 'Failed request: (' + statusCode + ')';\n }\n let err = new HttpClientError(msg, statusCode);\n err.result = response.result;\n reject(err);\n }\n else {\n resolve(response);\n }\n });\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction getProxyUrl(reqUrl) {\n let usingSsl = reqUrl.protocol === 'https:';\n let proxyUrl;\n if (checkBypass(reqUrl)) {\n return proxyUrl;\n }\n let proxyVar;\n if (usingSsl) {\n proxyVar = process.env['https_proxy'] || process.env['HTTPS_PROXY'];\n }\n else {\n proxyVar = process.env['http_proxy'] || process.env['HTTP_PROXY'];\n }\n if (proxyVar) {\n proxyUrl = new URL(proxyVar);\n }\n return proxyUrl;\n}\nexports.getProxyUrl = getProxyUrl;\nfunction checkBypass(reqUrl) {\n if (!reqUrl.hostname) {\n return false;\n }\n let noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || '';\n if (!noProxy) {\n return false;\n }\n // Determine the request port\n let reqPort;\n if (reqUrl.port) {\n reqPort = Number(reqUrl.port);\n }\n else if (reqUrl.protocol === 'http:') {\n reqPort = 80;\n }\n else if (reqUrl.protocol === 'https:') {\n reqPort = 443;\n }\n // Format the request hostname and hostname with port\n let upperReqHosts = [reqUrl.hostname.toUpperCase()];\n if (typeof reqPort === 'number') {\n upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`);\n }\n // Compare request host against noproxy\n for (let upperNoProxyItem of noProxy\n .split(',')\n .map(x => x.trim().toUpperCase())\n .filter(x => x)) {\n if (upperReqHosts.some(x => x === upperNoProxyItem)) {\n return true;\n }\n }\n return false;\n}\nexports.checkBypass = checkBypass;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nasync function auth(token) {\n const tokenType = token.split(/\\./).length === 3 ? \"app\" : /^v\\d+\\./.test(token) ? \"installation\" : \"oauth\";\n return {\n type: \"token\",\n token: token,\n tokenType\n };\n}\n\n/**\n * Prefix token for usage in the Authorization header\n *\n * @param token OAuth token or JSON Web Token\n */\nfunction withAuthorizationPrefix(token) {\n if (token.split(/\\./).length === 3) {\n return `bearer ${token}`;\n }\n\n return `token ${token}`;\n}\n\nasync function hook(token, request, route, parameters) {\n const endpoint = request.endpoint.merge(route, parameters);\n endpoint.headers.authorization = withAuthorizationPrefix(token);\n return request(endpoint);\n}\n\nconst createTokenAuth = function createTokenAuth(token) {\n if (!token) {\n throw new Error(\"[@octokit/auth-token] No token passed to createTokenAuth\");\n }\n\n if (typeof token !== \"string\") {\n throw new Error(\"[@octokit/auth-token] Token passed to createTokenAuth is not a string\");\n }\n\n token = token.replace(/^(token|bearer) +/i, \"\");\n return Object.assign(auth.bind(null, token), {\n hook: hook.bind(null, token)\n });\n};\n\nexports.createTokenAuth = createTokenAuth;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar universalUserAgent = require('universal-user-agent');\nvar beforeAfterHook = require('before-after-hook');\nvar request = require('@octokit/request');\nvar graphql = require('@octokit/graphql');\nvar authToken = require('@octokit/auth-token');\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nconst VERSION = \"3.5.1\";\n\nconst _excluded = [\"authStrategy\"];\nclass Octokit {\n constructor(options = {}) {\n const hook = new beforeAfterHook.Collection();\n const requestDefaults = {\n baseUrl: request.request.endpoint.DEFAULTS.baseUrl,\n headers: {},\n request: Object.assign({}, options.request, {\n // @ts-ignore internal usage only, no need to type\n hook: hook.bind(null, \"request\")\n }),\n mediaType: {\n previews: [],\n format: \"\"\n }\n }; // prepend default user agent with `options.userAgent` if set\n\n requestDefaults.headers[\"user-agent\"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(\" \");\n\n if (options.baseUrl) {\n requestDefaults.baseUrl = options.baseUrl;\n }\n\n if (options.previews) {\n requestDefaults.mediaType.previews = options.previews;\n }\n\n if (options.timeZone) {\n requestDefaults.headers[\"time-zone\"] = options.timeZone;\n }\n\n this.request = request.request.defaults(requestDefaults);\n this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults);\n this.log = Object.assign({\n debug: () => {},\n info: () => {},\n warn: console.warn.bind(console),\n error: console.error.bind(console)\n }, options.log);\n this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance\n // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered.\n // (2) If only `options.auth` is set, use the default token authentication strategy.\n // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance.\n // TODO: type `options.auth` based on `options.authStrategy`.\n\n if (!options.authStrategy) {\n if (!options.auth) {\n // (1)\n this.auth = async () => ({\n type: \"unauthenticated\"\n });\n } else {\n // (2)\n const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n }\n } else {\n const {\n authStrategy\n } = options,\n otherOptions = _objectWithoutProperties(options, _excluded);\n\n const auth = authStrategy(Object.assign({\n request: this.request,\n log: this.log,\n // we pass the current octokit instance as well as its constructor options\n // to allow for authentication strategies that return a new octokit instance\n // that shares the same internal state as the current one. The original\n // requirement for this was the \"event-octokit\" authentication strategy\n // of https://github.com/probot/octokit-auth-probot.\n octokit: this,\n octokitOptions: otherOptions\n }, options.auth)); // @ts-ignore ¯\\_(ツ)_/¯\n\n hook.wrap(\"request\", auth.hook);\n this.auth = auth;\n } // apply plugins\n // https://stackoverflow.com/a/16345172\n\n\n const classConstructor = this.constructor;\n classConstructor.plugins.forEach(plugin => {\n Object.assign(this, plugin(this, options));\n });\n }\n\n static defaults(defaults) {\n const OctokitWithDefaults = class extends this {\n constructor(...args) {\n const options = args[0] || {};\n\n if (typeof defaults === \"function\") {\n super(defaults(options));\n return;\n }\n\n super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? {\n userAgent: `${options.userAgent} ${defaults.userAgent}`\n } : null));\n }\n\n };\n return OctokitWithDefaults;\n }\n /**\n * Attach a plugin (or many) to your Octokit instance.\n *\n * @example\n * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...)\n */\n\n\n static plugin(...newPlugins) {\n var _a;\n\n const currentPlugins = this.plugins;\n const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a);\n return NewOctokit;\n }\n\n}\nOctokit.VERSION = VERSION;\nOctokit.plugins = [];\n\nexports.Octokit = Octokit;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isPlainObject = require('is-plain-object');\nvar universalUserAgent = require('universal-user-agent');\n\nfunction lowercaseKeys(object) {\n if (!object) {\n return {};\n }\n\n return Object.keys(object).reduce((newObj, key) => {\n newObj[key.toLowerCase()] = object[key];\n return newObj;\n }, {});\n}\n\nfunction mergeDeep(defaults, options) {\n const result = Object.assign({}, defaults);\n Object.keys(options).forEach(key => {\n if (isPlainObject.isPlainObject(options[key])) {\n if (!(key in defaults)) Object.assign(result, {\n [key]: options[key]\n });else result[key] = mergeDeep(defaults[key], options[key]);\n } else {\n Object.assign(result, {\n [key]: options[key]\n });\n }\n });\n return result;\n}\n\nfunction removeUndefinedProperties(obj) {\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n\n return obj;\n}\n\nfunction merge(defaults, route, options) {\n if (typeof route === \"string\") {\n let [method, url] = route.split(\" \");\n options = Object.assign(url ? {\n method,\n url\n } : {\n url: method\n }, options);\n } else {\n options = Object.assign({}, route);\n } // lowercase header names before merging with defaults to avoid duplicates\n\n\n options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging\n\n removeUndefinedProperties(options);\n removeUndefinedProperties(options.headers);\n const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten\n\n if (defaults && defaults.mediaType.previews.length) {\n mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews);\n }\n\n mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, \"\"));\n return mergedOptions;\n}\n\nfunction addQueryParameters(url, parameters) {\n const separator = /\\?/.test(url) ? \"&\" : \"?\";\n const names = Object.keys(parameters);\n\n if (names.length === 0) {\n return url;\n }\n\n return url + separator + names.map(name => {\n if (name === \"q\") {\n return \"q=\" + parameters.q.split(\"+\").map(encodeURIComponent).join(\"+\");\n }\n\n return `${name}=${encodeURIComponent(parameters[name])}`;\n }).join(\"&\");\n}\n\nconst urlVariableRegex = /\\{[^}]+\\}/g;\n\nfunction removeNonChars(variableName) {\n return variableName.replace(/^\\W+|\\W+$/g, \"\").split(/,/);\n}\n\nfunction extractUrlVariableNames(url) {\n const matches = url.match(urlVariableRegex);\n\n if (!matches) {\n return [];\n }\n\n return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []);\n}\n\nfunction omit(object, keysToOmit) {\n return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n}\n\n// Based on https://github.com/bramstein/url-template, licensed under BSD\n// TODO: create separate package.\n//\n// Copyright (c) 2012-2014, Bram Stein\n// All rights reserved.\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions\n// are met:\n// 1. Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n// 3. The name of the author may not be used to endorse or promote products\n// derived from this software without specific prior written permission.\n// THIS SOFTWARE IS PROVIDED BY THE AUTHOR \"AS IS\" AND ANY EXPRESS OR IMPLIED\n// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY\n// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/* istanbul ignore file */\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part).replace(/%5B/g, \"[\").replace(/%5D/g, \"]\");\n }\n\n return part;\n }).join(\"\");\n}\n\nfunction encodeUnreserved(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === \"+\" || operator === \"#\" ? encodeReserved(value) : encodeUnreserved(value);\n\n if (key) {\n return encodeUnreserved(key) + \"=\" + value;\n } else {\n return value;\n }\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === \";\" || operator === \"&\" || operator === \"?\";\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== \"\") {\n if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\n value = value.toString();\n\n if (modifier && modifier !== \"*\") {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n } else {\n if (modifier === \"*\") {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : \"\"));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n const tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeUnreserved(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeUnreserved(key) + \"=\" + tmp.join(\",\"));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(\",\"));\n }\n }\n }\n } else {\n if (operator === \";\") {\n if (isDefined(value)) {\n result.push(encodeUnreserved(key));\n }\n } else if (value === \"\" && (operator === \"&\" || operator === \"?\")) {\n result.push(encodeUnreserved(key) + \"=\");\n } else if (value === \"\") {\n result.push(\"\");\n }\n }\n\n return result;\n}\n\nfunction parseUrl(template) {\n return {\n expand: expand.bind(null, template)\n };\n}\n\nfunction expand(template, context) {\n var operators = [\"+\", \"#\", \".\", \"/\", \";\", \"?\", \"&\"];\n return template.replace(/\\{([^\\{\\}]+)\\}|([^\\{\\}]+)/g, function (_, expression, literal) {\n if (expression) {\n let operator = \"\";\n const values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:\\*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n });\n\n if (operator && operator !== \"+\") {\n var separator = \",\";\n\n if (operator === \"?\") {\n separator = \"&\";\n } else if (operator !== \"#\") {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : \"\") + values.join(separator);\n } else {\n return values.join(\",\");\n }\n } else {\n return encodeReserved(literal);\n }\n });\n}\n\nfunction parse(options) {\n // https://fetch.spec.whatwg.org/#methods\n let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible\n\n let url = (options.url || \"/\").replace(/:([a-z]\\w+)/g, \"{$1}\");\n let headers = Object.assign({}, options.headers);\n let body;\n let parameters = omit(options, [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"mediaType\"]); // extract variable names from URL to calculate remaining variables later\n\n const urlVariableNames = extractUrlVariableNames(url);\n url = parseUrl(url).expand(parameters);\n\n if (!/^http/.test(url)) {\n url = options.baseUrl + url;\n }\n\n const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat(\"baseUrl\");\n const remainingParameters = omit(parameters, omittedParameters);\n const isBinaryRequest = /application\\/octet-stream/i.test(headers.accept);\n\n if (!isBinaryRequest) {\n if (options.mediaType.format) {\n // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw\n headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\\/vnd(\\.\\w+)(\\.v3)?(\\.\\w+)?(\\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(\",\");\n }\n\n if (options.mediaType.previews.length) {\n const previewsFromAcceptHeader = headers.accept.match(/[\\w-]+(?=-preview)/g) || [];\n headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => {\n const format = options.mediaType.format ? `.${options.mediaType.format}` : \"+json\";\n return `application/vnd.github.${preview}-preview${format}`;\n }).join(\",\");\n }\n } // for GET/HEAD requests, set URL query parameters from remaining parameters\n // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters\n\n\n if ([\"GET\", \"HEAD\"].includes(method)) {\n url = addQueryParameters(url, remainingParameters);\n } else {\n if (\"data\" in remainingParameters) {\n body = remainingParameters.data;\n } else {\n if (Object.keys(remainingParameters).length) {\n body = remainingParameters;\n } else {\n headers[\"content-length\"] = 0;\n }\n }\n } // default content-type for JSON if body is set\n\n\n if (!headers[\"content-type\"] && typeof body !== \"undefined\") {\n headers[\"content-type\"] = \"application/json; charset=utf-8\";\n } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body.\n // fetch does not allow to set `content-length` header, but we can set body to an empty string\n\n\n if ([\"PATCH\", \"PUT\"].includes(method) && typeof body === \"undefined\") {\n body = \"\";\n } // Only return body/request keys if present\n\n\n return Object.assign({\n method,\n url,\n headers\n }, typeof body !== \"undefined\" ? {\n body\n } : null, options.request ? {\n request: options.request\n } : null);\n}\n\nfunction endpointWithDefaults(defaults, route, options) {\n return parse(merge(defaults, route, options));\n}\n\nfunction withDefaults(oldDefaults, newDefaults) {\n const DEFAULTS = merge(oldDefaults, newDefaults);\n const endpoint = endpointWithDefaults.bind(null, DEFAULTS);\n return Object.assign(endpoint, {\n DEFAULTS,\n defaults: withDefaults.bind(null, DEFAULTS),\n merge: merge.bind(null, DEFAULTS),\n parse\n });\n}\n\nconst VERSION = \"6.0.12\";\n\nconst userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url.\n// So we use RequestParameters and add method as additional required property.\n\nconst DEFAULTS = {\n method: \"GET\",\n baseUrl: \"https://api.github.com\",\n headers: {\n accept: \"application/vnd.github.v3+json\",\n \"user-agent\": userAgent\n },\n mediaType: {\n format: \"\",\n previews: []\n }\n};\n\nconst endpoint = withDefaults(null, DEFAULTS);\n\nexports.endpoint = endpoint;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar request = require('@octokit/request');\nvar universalUserAgent = require('universal-user-agent');\n\nconst VERSION = \"4.8.0\";\n\nfunction _buildMessageForResponseErrors(data) {\n return `Request failed due to following response errors:\\n` + data.errors.map(e => ` - ${e.message}`).join(\"\\n\");\n}\n\nclass GraphqlResponseError extends Error {\n constructor(request, headers, response) {\n super(_buildMessageForResponseErrors(response));\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.name = \"GraphqlResponseError\"; // Expose the errors and response data in their shorthand properties.\n\n this.errors = response.errors;\n this.data = response.data; // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n\n}\n\nconst NON_VARIABLE_OPTIONS = [\"method\", \"baseUrl\", \"url\", \"headers\", \"request\", \"query\", \"mediaType\"];\nconst FORBIDDEN_VARIABLE_OPTIONS = [\"query\", \"method\", \"url\"];\nconst GHES_V3_SUFFIX_REGEX = /\\/api\\/v3\\/?$/;\nfunction graphql(request, query, options) {\n if (options) {\n if (typeof query === \"string\" && \"query\" in options) {\n return Promise.reject(new Error(`[@octokit/graphql] \"query\" cannot be used as variable name`));\n }\n\n for (const key in options) {\n if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue;\n return Promise.reject(new Error(`[@octokit/graphql] \"${key}\" cannot be used as variable name`));\n }\n }\n\n const parsedOptions = typeof query === \"string\" ? Object.assign({\n query\n }, options) : query;\n const requestOptions = Object.keys(parsedOptions).reduce((result, key) => {\n if (NON_VARIABLE_OPTIONS.includes(key)) {\n result[key] = parsedOptions[key];\n return result;\n }\n\n if (!result.variables) {\n result.variables = {};\n }\n\n result.variables[key] = parsedOptions[key];\n return result;\n }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix\n // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451\n\n const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl;\n\n if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) {\n requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, \"/api/graphql\");\n }\n\n return request(requestOptions).then(response => {\n if (response.data.errors) {\n const headers = {};\n\n for (const key of Object.keys(response.headers)) {\n headers[key] = response.headers[key];\n }\n\n throw new GraphqlResponseError(requestOptions, headers, response.data);\n }\n\n return response.data.data;\n });\n}\n\nfunction withDefaults(request$1, newDefaults) {\n const newRequest = request$1.defaults(newDefaults);\n\n const newApi = (query, options) => {\n return graphql(newRequest, query, options);\n };\n\n return Object.assign(newApi, {\n defaults: withDefaults.bind(null, newRequest),\n endpoint: request.request.endpoint\n });\n}\n\nconst graphql$1 = withDefaults(request.request, {\n headers: {\n \"user-agent\": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n },\n method: \"POST\",\n url: \"/graphql\"\n});\nfunction withCustomRequest(customRequest) {\n return withDefaults(customRequest, {\n method: \"POST\",\n url: \"/graphql\"\n });\n}\n\nexports.GraphqlResponseError = GraphqlResponseError;\nexports.graphql = graphql$1;\nexports.withCustomRequest = withCustomRequest;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst VERSION = \"2.16.0\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n/**\n * Some “list” response that can be paginated have a different response structure\n *\n * They have a `total_count` key in the response (search also has `incomplete_results`,\n * /installation/repositories also has `repository_selection`), as well as a key with\n * the list of the items which name varies from endpoint to endpoint.\n *\n * Octokit normalizes these responses so that paginated results are always returned following\n * the same structure. One challenge is that if the list response has only one page, no Link\n * header is provided, so this header alone is not sufficient to check wether a response is\n * paginated or not.\n *\n * We check if a \"total_count\" key is present in the response data, but also make sure that\n * a \"url\" property is not, as the \"Get the combined status for a specific ref\" endpoint would\n * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n */\nfunction normalizePaginatedListResponse(response) {\n // endpoints can respond with 204 if repository is empty\n if (!response.data) {\n return _objectSpread2(_objectSpread2({}, response), {}, {\n data: []\n });\n }\n\n const responseNeedsNormalization = \"total_count\" in response.data && !(\"url\" in response.data);\n if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way\n // to retrieve the same information.\n\n const incompleteResults = response.data.incomplete_results;\n const repositorySelection = response.data.repository_selection;\n const totalCount = response.data.total_count;\n delete response.data.incomplete_results;\n delete response.data.repository_selection;\n delete response.data.total_count;\n const namespaceKey = Object.keys(response.data)[0];\n const data = response.data[namespaceKey];\n response.data = data;\n\n if (typeof incompleteResults !== \"undefined\") {\n response.data.incomplete_results = incompleteResults;\n }\n\n if (typeof repositorySelection !== \"undefined\") {\n response.data.repository_selection = repositorySelection;\n }\n\n response.data.total_count = totalCount;\n return response;\n}\n\nfunction iterator(octokit, route, parameters) {\n const options = typeof route === \"function\" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters);\n const requestMethod = typeof route === \"function\" ? route : octokit.request;\n const method = options.method;\n const headers = options.headers;\n let url = options.url;\n return {\n [Symbol.asyncIterator]: () => ({\n async next() {\n if (!url) return {\n done: true\n };\n\n try {\n const response = await requestMethod({\n method,\n url,\n headers\n });\n const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format:\n // '; rel=\"next\", ; rel=\"last\"'\n // sets `url` to undefined if \"next\" URL is not present or `link` header is not set\n\n url = ((normalizedResponse.headers.link || \"\").match(/<([^>]+)>;\\s*rel=\"next\"/) || [])[1];\n return {\n value: normalizedResponse\n };\n } catch (error) {\n if (error.status !== 409) throw error;\n url = \"\";\n return {\n value: {\n status: 200,\n headers: {},\n data: []\n }\n };\n }\n }\n\n })\n };\n}\n\nfunction paginate(octokit, route, parameters, mapFn) {\n if (typeof parameters === \"function\") {\n mapFn = parameters;\n parameters = undefined;\n }\n\n return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn);\n}\n\nfunction gather(octokit, results, iterator, mapFn) {\n return iterator.next().then(result => {\n if (result.done) {\n return results;\n }\n\n let earlyExit = false;\n\n function done() {\n earlyExit = true;\n }\n\n results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data);\n\n if (earlyExit) {\n return results;\n }\n\n return gather(octokit, results, iterator, mapFn);\n });\n}\n\nconst composePaginateRest = Object.assign(paginate, {\n iterator\n});\n\nconst paginatingEndpoints = [\"GET /app/hook/deliveries\", \"GET /app/installations\", \"GET /applications/grants\", \"GET /authorizations\", \"GET /enterprises/{enterprise}/actions/permissions/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations\", \"GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners\", \"GET /enterprises/{enterprise}/actions/runners\", \"GET /enterprises/{enterprise}/actions/runners/downloads\", \"GET /events\", \"GET /gists\", \"GET /gists/public\", \"GET /gists/starred\", \"GET /gists/{gist_id}/comments\", \"GET /gists/{gist_id}/commits\", \"GET /gists/{gist_id}/forks\", \"GET /installation/repositories\", \"GET /issues\", \"GET /marketplace_listing/plans\", \"GET /marketplace_listing/plans/{plan_id}/accounts\", \"GET /marketplace_listing/stubbed/plans\", \"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\", \"GET /networks/{owner}/{repo}/events\", \"GET /notifications\", \"GET /organizations\", \"GET /orgs/{org}/actions/permissions/repositories\", \"GET /orgs/{org}/actions/runner-groups\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories\", \"GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners\", \"GET /orgs/{org}/actions/runners\", \"GET /orgs/{org}/actions/runners/downloads\", \"GET /orgs/{org}/actions/secrets\", \"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\", \"GET /orgs/{org}/blocks\", \"GET /orgs/{org}/credential-authorizations\", \"GET /orgs/{org}/events\", \"GET /orgs/{org}/failed_invitations\", \"GET /orgs/{org}/hooks\", \"GET /orgs/{org}/hooks/{hook_id}/deliveries\", \"GET /orgs/{org}/installations\", \"GET /orgs/{org}/invitations\", \"GET /orgs/{org}/invitations/{invitation_id}/teams\", \"GET /orgs/{org}/issues\", \"GET /orgs/{org}/members\", \"GET /orgs/{org}/migrations\", \"GET /orgs/{org}/migrations/{migration_id}/repositories\", \"GET /orgs/{org}/outside_collaborators\", \"GET /orgs/{org}/packages\", \"GET /orgs/{org}/projects\", \"GET /orgs/{org}/public_members\", \"GET /orgs/{org}/repos\", \"GET /orgs/{org}/secret-scanning/alerts\", \"GET /orgs/{org}/team-sync/groups\", \"GET /orgs/{org}/teams\", \"GET /orgs/{org}/teams/{team_slug}/discussions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", \"GET /orgs/{org}/teams/{team_slug}/invitations\", \"GET /orgs/{org}/teams/{team_slug}/members\", \"GET /orgs/{org}/teams/{team_slug}/projects\", \"GET /orgs/{org}/teams/{team_slug}/repos\", \"GET /orgs/{org}/teams/{team_slug}/team-sync/group-mappings\", \"GET /orgs/{org}/teams/{team_slug}/teams\", \"GET /projects/columns/{column_id}/cards\", \"GET /projects/{project_id}/collaborators\", \"GET /projects/{project_id}/columns\", \"GET /repos/{owner}/{repo}/actions/artifacts\", \"GET /repos/{owner}/{repo}/actions/runners\", \"GET /repos/{owner}/{repo}/actions/runners/downloads\", \"GET /repos/{owner}/{repo}/actions/runs\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\", \"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\", \"GET /repos/{owner}/{repo}/actions/secrets\", \"GET /repos/{owner}/{repo}/actions/workflows\", \"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\", \"GET /repos/{owner}/{repo}/assignees\", \"GET /repos/{owner}/{repo}/autolinks\", \"GET /repos/{owner}/{repo}/branches\", \"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\", \"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\", \"GET /repos/{owner}/{repo}/code-scanning/alerts\", \"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", \"GET /repos/{owner}/{repo}/code-scanning/analyses\", \"GET /repos/{owner}/{repo}/collaborators\", \"GET /repos/{owner}/{repo}/comments\", \"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/commits\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\", \"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\", \"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\", \"GET /repos/{owner}/{repo}/commits/{ref}/statuses\", \"GET /repos/{owner}/{repo}/contributors\", \"GET /repos/{owner}/{repo}/deployments\", \"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\", \"GET /repos/{owner}/{repo}/events\", \"GET /repos/{owner}/{repo}/forks\", \"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\", \"GET /repos/{owner}/{repo}/hooks\", \"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\", \"GET /repos/{owner}/{repo}/invitations\", \"GET /repos/{owner}/{repo}/issues\", \"GET /repos/{owner}/{repo}/issues/comments\", \"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/issues/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/events\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", \"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", \"GET /repos/{owner}/{repo}/keys\", \"GET /repos/{owner}/{repo}/labels\", \"GET /repos/{owner}/{repo}/milestones\", \"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\", \"GET /repos/{owner}/{repo}/notifications\", \"GET /repos/{owner}/{repo}/pages/builds\", \"GET /repos/{owner}/{repo}/projects\", \"GET /repos/{owner}/{repo}/pulls\", \"GET /repos/{owner}/{repo}/pulls/comments\", \"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\", \"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\", \"GET /repos/{owner}/{repo}/releases\", \"GET /repos/{owner}/{repo}/releases/{release_id}/assets\", \"GET /repos/{owner}/{repo}/secret-scanning/alerts\", \"GET /repos/{owner}/{repo}/stargazers\", \"GET /repos/{owner}/{repo}/subscribers\", \"GET /repos/{owner}/{repo}/tags\", \"GET /repos/{owner}/{repo}/teams\", \"GET /repositories\", \"GET /repositories/{repository_id}/environments/{environment_name}/secrets\", \"GET /scim/v2/enterprises/{enterprise}/Groups\", \"GET /scim/v2/enterprises/{enterprise}/Users\", \"GET /scim/v2/organizations/{org}/Users\", \"GET /search/code\", \"GET /search/commits\", \"GET /search/issues\", \"GET /search/labels\", \"GET /search/repositories\", \"GET /search/topics\", \"GET /search/users\", \"GET /teams/{team_id}/discussions\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments\", \"GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions\", \"GET /teams/{team_id}/discussions/{discussion_number}/reactions\", \"GET /teams/{team_id}/invitations\", \"GET /teams/{team_id}/members\", \"GET /teams/{team_id}/projects\", \"GET /teams/{team_id}/repos\", \"GET /teams/{team_id}/team-sync/group-mappings\", \"GET /teams/{team_id}/teams\", \"GET /user/blocks\", \"GET /user/emails\", \"GET /user/followers\", \"GET /user/following\", \"GET /user/gpg_keys\", \"GET /user/installations\", \"GET /user/installations/{installation_id}/repositories\", \"GET /user/issues\", \"GET /user/keys\", \"GET /user/marketplace_purchases\", \"GET /user/marketplace_purchases/stubbed\", \"GET /user/memberships/orgs\", \"GET /user/migrations\", \"GET /user/migrations/{migration_id}/repositories\", \"GET /user/orgs\", \"GET /user/packages\", \"GET /user/public_emails\", \"GET /user/repos\", \"GET /user/repository_invitations\", \"GET /user/starred\", \"GET /user/subscriptions\", \"GET /user/teams\", \"GET /user/{username}/packages\", \"GET /users\", \"GET /users/{username}/events\", \"GET /users/{username}/events/orgs/{org}\", \"GET /users/{username}/events/public\", \"GET /users/{username}/followers\", \"GET /users/{username}/following\", \"GET /users/{username}/gists\", \"GET /users/{username}/gpg_keys\", \"GET /users/{username}/keys\", \"GET /users/{username}/orgs\", \"GET /users/{username}/projects\", \"GET /users/{username}/received_events\", \"GET /users/{username}/received_events/public\", \"GET /users/{username}/repos\", \"GET /users/{username}/starred\", \"GET /users/{username}/subscriptions\"];\n\nfunction isPaginatingEndpoint(arg) {\n if (typeof arg === \"string\") {\n return paginatingEndpoints.includes(arg);\n } else {\n return false;\n }\n}\n\n/**\n * @param octokit Octokit instance\n * @param options Options passed to Octokit constructor\n */\n\nfunction paginateRest(octokit) {\n return {\n paginate: Object.assign(paginate.bind(null, octokit), {\n iterator: iterator.bind(null, octokit)\n })\n };\n}\npaginateRest.VERSION = VERSION;\n\nexports.composePaginateRest = composePaginateRest;\nexports.isPaginatingEndpoint = isPaginatingEndpoint;\nexports.paginateRest = paginateRest;\nexports.paginatingEndpoints = paginatingEndpoints;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nconst Endpoints = {\n actions: {\n addSelectedRepoToOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n approveWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve\"],\n cancelWorkflowRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel\"],\n createOrUpdateEnvironmentSecret: [\"PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n createOrUpdateOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}\"],\n createOrUpdateRepoSecret: [\"PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n createRegistrationTokenForOrg: [\"POST /orgs/{org}/actions/runners/registration-token\"],\n createRegistrationTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/registration-token\"],\n createRemoveTokenForOrg: [\"POST /orgs/{org}/actions/runners/remove-token\"],\n createRemoveTokenForRepo: [\"POST /repos/{owner}/{repo}/actions/runners/remove-token\"],\n createWorkflowDispatch: [\"POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches\"],\n deleteArtifact: [\"DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n deleteEnvironmentSecret: [\"DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n deleteOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}\"],\n deleteRepoSecret: [\"DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n deleteSelfHostedRunnerFromOrg: [\"DELETE /orgs/{org}/actions/runners/{runner_id}\"],\n deleteSelfHostedRunnerFromRepo: [\"DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n deleteWorkflowRun: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n deleteWorkflowRunLogs: [\"DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n disableSelectedRepositoryGithubActionsOrganization: [\"DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n disableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable\"],\n downloadArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}\"],\n downloadJobLogsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs\"],\n downloadWorkflowRunLogs: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs\"],\n enableSelectedRepositoryGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories/{repository_id}\"],\n enableWorkflow: [\"PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable\"],\n getAllowedActionsOrganization: [\"GET /orgs/{org}/actions/permissions/selected-actions\"],\n getAllowedActionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n getArtifact: [\"GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}\"],\n getEnvironmentPublicKey: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key\"],\n getEnvironmentSecret: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}\"],\n getGithubActionsPermissionsOrganization: [\"GET /orgs/{org}/actions/permissions\"],\n getGithubActionsPermissionsRepository: [\"GET /repos/{owner}/{repo}/actions/permissions\"],\n getJobForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/jobs/{job_id}\"],\n getOrgPublicKey: [\"GET /orgs/{org}/actions/secrets/public-key\"],\n getOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}\"],\n getPendingDeploymentsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n getRepoPermissions: [\"GET /repos/{owner}/{repo}/actions/permissions\", {}, {\n renamed: [\"actions\", \"getGithubActionsPermissionsRepository\"]\n }],\n getRepoPublicKey: [\"GET /repos/{owner}/{repo}/actions/secrets/public-key\"],\n getRepoSecret: [\"GET /repos/{owner}/{repo}/actions/secrets/{secret_name}\"],\n getReviewsForRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals\"],\n getSelfHostedRunnerForOrg: [\"GET /orgs/{org}/actions/runners/{runner_id}\"],\n getSelfHostedRunnerForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/{runner_id}\"],\n getWorkflow: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}\"],\n getWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}\"],\n getWorkflowRunUsage: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing\"],\n getWorkflowUsage: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing\"],\n listArtifactsForRepo: [\"GET /repos/{owner}/{repo}/actions/artifacts\"],\n listEnvironmentSecrets: [\"GET /repositories/{repository_id}/environments/{environment_name}/secrets\"],\n listJobsForWorkflowRun: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs\"],\n listOrgSecrets: [\"GET /orgs/{org}/actions/secrets\"],\n listRepoSecrets: [\"GET /repos/{owner}/{repo}/actions/secrets\"],\n listRepoWorkflows: [\"GET /repos/{owner}/{repo}/actions/workflows\"],\n listRunnerApplicationsForOrg: [\"GET /orgs/{org}/actions/runners/downloads\"],\n listRunnerApplicationsForRepo: [\"GET /repos/{owner}/{repo}/actions/runners/downloads\"],\n listSelectedReposForOrgSecret: [\"GET /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n listSelectedRepositoriesEnabledGithubActionsOrganization: [\"GET /orgs/{org}/actions/permissions/repositories\"],\n listSelfHostedRunnersForOrg: [\"GET /orgs/{org}/actions/runners\"],\n listSelfHostedRunnersForRepo: [\"GET /repos/{owner}/{repo}/actions/runners\"],\n listWorkflowRunArtifacts: [\"GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts\"],\n listWorkflowRuns: [\"GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs\"],\n listWorkflowRunsForRepo: [\"GET /repos/{owner}/{repo}/actions/runs\"],\n reRunWorkflow: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun\"],\n removeSelectedRepoFromOrgSecret: [\"DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}\"],\n reviewPendingDeploymentsForRun: [\"POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments\"],\n setAllowedActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/selected-actions\"],\n setAllowedActionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions/selected-actions\"],\n setGithubActionsPermissionsOrganization: [\"PUT /orgs/{org}/actions/permissions\"],\n setGithubActionsPermissionsRepository: [\"PUT /repos/{owner}/{repo}/actions/permissions\"],\n setSelectedReposForOrgSecret: [\"PUT /orgs/{org}/actions/secrets/{secret_name}/repositories\"],\n setSelectedRepositoriesEnabledGithubActionsOrganization: [\"PUT /orgs/{org}/actions/permissions/repositories\"]\n },\n activity: {\n checkRepoIsStarredByAuthenticatedUser: [\"GET /user/starred/{owner}/{repo}\"],\n deleteRepoSubscription: [\"DELETE /repos/{owner}/{repo}/subscription\"],\n deleteThreadSubscription: [\"DELETE /notifications/threads/{thread_id}/subscription\"],\n getFeeds: [\"GET /feeds\"],\n getRepoSubscription: [\"GET /repos/{owner}/{repo}/subscription\"],\n getThread: [\"GET /notifications/threads/{thread_id}\"],\n getThreadSubscriptionForAuthenticatedUser: [\"GET /notifications/threads/{thread_id}/subscription\"],\n listEventsForAuthenticatedUser: [\"GET /users/{username}/events\"],\n listNotificationsForAuthenticatedUser: [\"GET /notifications\"],\n listOrgEventsForAuthenticatedUser: [\"GET /users/{username}/events/orgs/{org}\"],\n listPublicEvents: [\"GET /events\"],\n listPublicEventsForRepoNetwork: [\"GET /networks/{owner}/{repo}/events\"],\n listPublicEventsForUser: [\"GET /users/{username}/events/public\"],\n listPublicOrgEvents: [\"GET /orgs/{org}/events\"],\n listReceivedEventsForUser: [\"GET /users/{username}/received_events\"],\n listReceivedPublicEventsForUser: [\"GET /users/{username}/received_events/public\"],\n listRepoEvents: [\"GET /repos/{owner}/{repo}/events\"],\n listRepoNotificationsForAuthenticatedUser: [\"GET /repos/{owner}/{repo}/notifications\"],\n listReposStarredByAuthenticatedUser: [\"GET /user/starred\"],\n listReposStarredByUser: [\"GET /users/{username}/starred\"],\n listReposWatchedByUser: [\"GET /users/{username}/subscriptions\"],\n listStargazersForRepo: [\"GET /repos/{owner}/{repo}/stargazers\"],\n listWatchedReposForAuthenticatedUser: [\"GET /user/subscriptions\"],\n listWatchersForRepo: [\"GET /repos/{owner}/{repo}/subscribers\"],\n markNotificationsAsRead: [\"PUT /notifications\"],\n markRepoNotificationsAsRead: [\"PUT /repos/{owner}/{repo}/notifications\"],\n markThreadAsRead: [\"PATCH /notifications/threads/{thread_id}\"],\n setRepoSubscription: [\"PUT /repos/{owner}/{repo}/subscription\"],\n setThreadSubscription: [\"PUT /notifications/threads/{thread_id}/subscription\"],\n starRepoForAuthenticatedUser: [\"PUT /user/starred/{owner}/{repo}\"],\n unstarRepoForAuthenticatedUser: [\"DELETE /user/starred/{owner}/{repo}\"]\n },\n apps: {\n addRepoToInstallation: [\"PUT /user/installations/{installation_id}/repositories/{repository_id}\"],\n checkToken: [\"POST /applications/{client_id}/token\"],\n createContentAttachment: [\"POST /content_references/{content_reference_id}/attachments\", {\n mediaType: {\n previews: [\"corsair\"]\n }\n }],\n createContentAttachmentForRepo: [\"POST /repos/{owner}/{repo}/content_references/{content_reference_id}/attachments\", {\n mediaType: {\n previews: [\"corsair\"]\n }\n }],\n createFromManifest: [\"POST /app-manifests/{code}/conversions\"],\n createInstallationAccessToken: [\"POST /app/installations/{installation_id}/access_tokens\"],\n deleteAuthorization: [\"DELETE /applications/{client_id}/grant\"],\n deleteInstallation: [\"DELETE /app/installations/{installation_id}\"],\n deleteToken: [\"DELETE /applications/{client_id}/token\"],\n getAuthenticated: [\"GET /app\"],\n getBySlug: [\"GET /apps/{app_slug}\"],\n getInstallation: [\"GET /app/installations/{installation_id}\"],\n getOrgInstallation: [\"GET /orgs/{org}/installation\"],\n getRepoInstallation: [\"GET /repos/{owner}/{repo}/installation\"],\n getSubscriptionPlanForAccount: [\"GET /marketplace_listing/accounts/{account_id}\"],\n getSubscriptionPlanForAccountStubbed: [\"GET /marketplace_listing/stubbed/accounts/{account_id}\"],\n getUserInstallation: [\"GET /users/{username}/installation\"],\n getWebhookConfigForApp: [\"GET /app/hook/config\"],\n getWebhookDelivery: [\"GET /app/hook/deliveries/{delivery_id}\"],\n listAccountsForPlan: [\"GET /marketplace_listing/plans/{plan_id}/accounts\"],\n listAccountsForPlanStubbed: [\"GET /marketplace_listing/stubbed/plans/{plan_id}/accounts\"],\n listInstallationReposForAuthenticatedUser: [\"GET /user/installations/{installation_id}/repositories\"],\n listInstallations: [\"GET /app/installations\"],\n listInstallationsForAuthenticatedUser: [\"GET /user/installations\"],\n listPlans: [\"GET /marketplace_listing/plans\"],\n listPlansStubbed: [\"GET /marketplace_listing/stubbed/plans\"],\n listReposAccessibleToInstallation: [\"GET /installation/repositories\"],\n listSubscriptionsForAuthenticatedUser: [\"GET /user/marketplace_purchases\"],\n listSubscriptionsForAuthenticatedUserStubbed: [\"GET /user/marketplace_purchases/stubbed\"],\n listWebhookDeliveries: [\"GET /app/hook/deliveries\"],\n redeliverWebhookDelivery: [\"POST /app/hook/deliveries/{delivery_id}/attempts\"],\n removeRepoFromInstallation: [\"DELETE /user/installations/{installation_id}/repositories/{repository_id}\"],\n resetToken: [\"PATCH /applications/{client_id}/token\"],\n revokeInstallationAccessToken: [\"DELETE /installation/token\"],\n scopeToken: [\"POST /applications/{client_id}/token/scoped\"],\n suspendInstallation: [\"PUT /app/installations/{installation_id}/suspended\"],\n unsuspendInstallation: [\"DELETE /app/installations/{installation_id}/suspended\"],\n updateWebhookConfigForApp: [\"PATCH /app/hook/config\"]\n },\n billing: {\n getGithubActionsBillingOrg: [\"GET /orgs/{org}/settings/billing/actions\"],\n getGithubActionsBillingUser: [\"GET /users/{username}/settings/billing/actions\"],\n getGithubPackagesBillingOrg: [\"GET /orgs/{org}/settings/billing/packages\"],\n getGithubPackagesBillingUser: [\"GET /users/{username}/settings/billing/packages\"],\n getSharedStorageBillingOrg: [\"GET /orgs/{org}/settings/billing/shared-storage\"],\n getSharedStorageBillingUser: [\"GET /users/{username}/settings/billing/shared-storage\"]\n },\n checks: {\n create: [\"POST /repos/{owner}/{repo}/check-runs\"],\n createSuite: [\"POST /repos/{owner}/{repo}/check-suites\"],\n get: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}\"],\n getSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}\"],\n listAnnotations: [\"GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations\"],\n listForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-runs\"],\n listForSuite: [\"GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs\"],\n listSuitesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/check-suites\"],\n rerequestSuite: [\"POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest\"],\n setSuitesPreferences: [\"PATCH /repos/{owner}/{repo}/check-suites/preferences\"],\n update: [\"PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}\"]\n },\n codeScanning: {\n deleteAnalysis: [\"DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}\"],\n getAlert: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\", {}, {\n renamedParameters: {\n alert_id: \"alert_number\"\n }\n }],\n getAnalysis: [\"GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}\"],\n getSarif: [\"GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}\"],\n listAlertInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/code-scanning/alerts\"],\n listAlertsInstances: [\"GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances\", {}, {\n renamed: [\"codeScanning\", \"listAlertInstances\"]\n }],\n listRecentAnalyses: [\"GET /repos/{owner}/{repo}/code-scanning/analyses\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}\"],\n uploadSarif: [\"POST /repos/{owner}/{repo}/code-scanning/sarifs\"]\n },\n codesOfConduct: {\n getAllCodesOfConduct: [\"GET /codes_of_conduct\"],\n getConductCode: [\"GET /codes_of_conduct/{key}\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/community/code_of_conduct\", {\n mediaType: {\n previews: [\"scarlet-witch\"]\n }\n }]\n },\n emojis: {\n get: [\"GET /emojis\"]\n },\n enterpriseAdmin: {\n disableSelectedOrganizationGithubActionsEnterprise: [\"DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n enableSelectedOrganizationGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}\"],\n getAllowedActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n getGithubActionsPermissionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions\"],\n listSelectedOrganizationsEnabledGithubActionsEnterprise: [\"GET /enterprises/{enterprise}/actions/permissions/organizations\"],\n setAllowedActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/selected-actions\"],\n setGithubActionsPermissionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions\"],\n setSelectedOrganizationsEnabledGithubActionsEnterprise: [\"PUT /enterprises/{enterprise}/actions/permissions/organizations\"]\n },\n gists: {\n checkIsStarred: [\"GET /gists/{gist_id}/star\"],\n create: [\"POST /gists\"],\n createComment: [\"POST /gists/{gist_id}/comments\"],\n delete: [\"DELETE /gists/{gist_id}\"],\n deleteComment: [\"DELETE /gists/{gist_id}/comments/{comment_id}\"],\n fork: [\"POST /gists/{gist_id}/forks\"],\n get: [\"GET /gists/{gist_id}\"],\n getComment: [\"GET /gists/{gist_id}/comments/{comment_id}\"],\n getRevision: [\"GET /gists/{gist_id}/{sha}\"],\n list: [\"GET /gists\"],\n listComments: [\"GET /gists/{gist_id}/comments\"],\n listCommits: [\"GET /gists/{gist_id}/commits\"],\n listForUser: [\"GET /users/{username}/gists\"],\n listForks: [\"GET /gists/{gist_id}/forks\"],\n listPublic: [\"GET /gists/public\"],\n listStarred: [\"GET /gists/starred\"],\n star: [\"PUT /gists/{gist_id}/star\"],\n unstar: [\"DELETE /gists/{gist_id}/star\"],\n update: [\"PATCH /gists/{gist_id}\"],\n updateComment: [\"PATCH /gists/{gist_id}/comments/{comment_id}\"]\n },\n git: {\n createBlob: [\"POST /repos/{owner}/{repo}/git/blobs\"],\n createCommit: [\"POST /repos/{owner}/{repo}/git/commits\"],\n createRef: [\"POST /repos/{owner}/{repo}/git/refs\"],\n createTag: [\"POST /repos/{owner}/{repo}/git/tags\"],\n createTree: [\"POST /repos/{owner}/{repo}/git/trees\"],\n deleteRef: [\"DELETE /repos/{owner}/{repo}/git/refs/{ref}\"],\n getBlob: [\"GET /repos/{owner}/{repo}/git/blobs/{file_sha}\"],\n getCommit: [\"GET /repos/{owner}/{repo}/git/commits/{commit_sha}\"],\n getRef: [\"GET /repos/{owner}/{repo}/git/ref/{ref}\"],\n getTag: [\"GET /repos/{owner}/{repo}/git/tags/{tag_sha}\"],\n getTree: [\"GET /repos/{owner}/{repo}/git/trees/{tree_sha}\"],\n listMatchingRefs: [\"GET /repos/{owner}/{repo}/git/matching-refs/{ref}\"],\n updateRef: [\"PATCH /repos/{owner}/{repo}/git/refs/{ref}\"]\n },\n gitignore: {\n getAllTemplates: [\"GET /gitignore/templates\"],\n getTemplate: [\"GET /gitignore/templates/{name}\"]\n },\n interactions: {\n getRestrictionsForAuthenticatedUser: [\"GET /user/interaction-limits\"],\n getRestrictionsForOrg: [\"GET /orgs/{org}/interaction-limits\"],\n getRestrictionsForRepo: [\"GET /repos/{owner}/{repo}/interaction-limits\"],\n getRestrictionsForYourPublicRepos: [\"GET /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"getRestrictionsForAuthenticatedUser\"]\n }],\n removeRestrictionsForAuthenticatedUser: [\"DELETE /user/interaction-limits\"],\n removeRestrictionsForOrg: [\"DELETE /orgs/{org}/interaction-limits\"],\n removeRestrictionsForRepo: [\"DELETE /repos/{owner}/{repo}/interaction-limits\"],\n removeRestrictionsForYourPublicRepos: [\"DELETE /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"removeRestrictionsForAuthenticatedUser\"]\n }],\n setRestrictionsForAuthenticatedUser: [\"PUT /user/interaction-limits\"],\n setRestrictionsForOrg: [\"PUT /orgs/{org}/interaction-limits\"],\n setRestrictionsForRepo: [\"PUT /repos/{owner}/{repo}/interaction-limits\"],\n setRestrictionsForYourPublicRepos: [\"PUT /user/interaction-limits\", {}, {\n renamed: [\"interactions\", \"setRestrictionsForAuthenticatedUser\"]\n }]\n },\n issues: {\n addAssignees: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n addLabels: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n checkUserCanBeAssigned: [\"GET /repos/{owner}/{repo}/assignees/{assignee}\"],\n create: [\"POST /repos/{owner}/{repo}/issues\"],\n createComment: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n createLabel: [\"POST /repos/{owner}/{repo}/labels\"],\n createMilestone: [\"POST /repos/{owner}/{repo}/milestones\"],\n deleteComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n deleteLabel: [\"DELETE /repos/{owner}/{repo}/labels/{name}\"],\n deleteMilestone: [\"DELETE /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n get: [\"GET /repos/{owner}/{repo}/issues/{issue_number}\"],\n getComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n getEvent: [\"GET /repos/{owner}/{repo}/issues/events/{event_id}\"],\n getLabel: [\"GET /repos/{owner}/{repo}/labels/{name}\"],\n getMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}\"],\n list: [\"GET /issues\"],\n listAssignees: [\"GET /repos/{owner}/{repo}/assignees\"],\n listComments: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/comments\"],\n listCommentsForRepo: [\"GET /repos/{owner}/{repo}/issues/comments\"],\n listEvents: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/events\"],\n listEventsForRepo: [\"GET /repos/{owner}/{repo}/issues/events\"],\n listEventsForTimeline: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/timeline\", {\n mediaType: {\n previews: [\"mockingbird\"]\n }\n }],\n listForAuthenticatedUser: [\"GET /user/issues\"],\n listForOrg: [\"GET /orgs/{org}/issues\"],\n listForRepo: [\"GET /repos/{owner}/{repo}/issues\"],\n listLabelsForMilestone: [\"GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels\"],\n listLabelsForRepo: [\"GET /repos/{owner}/{repo}/labels\"],\n listLabelsOnIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n listMilestones: [\"GET /repos/{owner}/{repo}/milestones\"],\n lock: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n removeAllLabels: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n removeAssignees: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees\"],\n removeLabel: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}\"],\n setLabels: [\"PUT /repos/{owner}/{repo}/issues/{issue_number}/labels\"],\n unlock: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock\"],\n update: [\"PATCH /repos/{owner}/{repo}/issues/{issue_number}\"],\n updateComment: [\"PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}\"],\n updateLabel: [\"PATCH /repos/{owner}/{repo}/labels/{name}\"],\n updateMilestone: [\"PATCH /repos/{owner}/{repo}/milestones/{milestone_number}\"]\n },\n licenses: {\n get: [\"GET /licenses/{license}\"],\n getAllCommonlyUsed: [\"GET /licenses\"],\n getForRepo: [\"GET /repos/{owner}/{repo}/license\"]\n },\n markdown: {\n render: [\"POST /markdown\"],\n renderRaw: [\"POST /markdown/raw\", {\n headers: {\n \"content-type\": \"text/plain; charset=utf-8\"\n }\n }]\n },\n meta: {\n get: [\"GET /meta\"],\n getOctocat: [\"GET /octocat\"],\n getZen: [\"GET /zen\"],\n root: [\"GET /\"]\n },\n migrations: {\n cancelImport: [\"DELETE /repos/{owner}/{repo}/import\"],\n deleteArchiveForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n deleteArchiveForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n downloadArchiveForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n getArchiveForAuthenticatedUser: [\"GET /user/migrations/{migration_id}/archive\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n getCommitAuthors: [\"GET /repos/{owner}/{repo}/import/authors\"],\n getImportStatus: [\"GET /repos/{owner}/{repo}/import\"],\n getLargeFiles: [\"GET /repos/{owner}/{repo}/import/large_files\"],\n getStatusForAuthenticatedUser: [\"GET /user/migrations/{migration_id}\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n getStatusForOrg: [\"GET /orgs/{org}/migrations/{migration_id}\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listForAuthenticatedUser: [\"GET /user/migrations\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listForOrg: [\"GET /orgs/{org}/migrations\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listReposForOrg: [\"GET /orgs/{org}/migrations/{migration_id}/repositories\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n listReposForUser: [\"GET /user/migrations/{migration_id}/repositories\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n mapCommitAuthor: [\"PATCH /repos/{owner}/{repo}/import/authors/{author_id}\"],\n setLfsPreference: [\"PATCH /repos/{owner}/{repo}/import/lfs\"],\n startForAuthenticatedUser: [\"POST /user/migrations\"],\n startForOrg: [\"POST /orgs/{org}/migrations\"],\n startImport: [\"PUT /repos/{owner}/{repo}/import\"],\n unlockRepoForAuthenticatedUser: [\"DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n unlockRepoForOrg: [\"DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock\", {\n mediaType: {\n previews: [\"wyandotte\"]\n }\n }],\n updateImport: [\"PATCH /repos/{owner}/{repo}/import\"]\n },\n orgs: {\n blockUser: [\"PUT /orgs/{org}/blocks/{username}\"],\n cancelInvitation: [\"DELETE /orgs/{org}/invitations/{invitation_id}\"],\n checkBlockedUser: [\"GET /orgs/{org}/blocks/{username}\"],\n checkMembershipForUser: [\"GET /orgs/{org}/members/{username}\"],\n checkPublicMembershipForUser: [\"GET /orgs/{org}/public_members/{username}\"],\n convertMemberToOutsideCollaborator: [\"PUT /orgs/{org}/outside_collaborators/{username}\"],\n createInvitation: [\"POST /orgs/{org}/invitations\"],\n createWebhook: [\"POST /orgs/{org}/hooks\"],\n deleteWebhook: [\"DELETE /orgs/{org}/hooks/{hook_id}\"],\n get: [\"GET /orgs/{org}\"],\n getMembershipForAuthenticatedUser: [\"GET /user/memberships/orgs/{org}\"],\n getMembershipForUser: [\"GET /orgs/{org}/memberships/{username}\"],\n getWebhook: [\"GET /orgs/{org}/hooks/{hook_id}\"],\n getWebhookConfigForOrg: [\"GET /orgs/{org}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n list: [\"GET /organizations\"],\n listAppInstallations: [\"GET /orgs/{org}/installations\"],\n listBlockedUsers: [\"GET /orgs/{org}/blocks\"],\n listFailedInvitations: [\"GET /orgs/{org}/failed_invitations\"],\n listForAuthenticatedUser: [\"GET /user/orgs\"],\n listForUser: [\"GET /users/{username}/orgs\"],\n listInvitationTeams: [\"GET /orgs/{org}/invitations/{invitation_id}/teams\"],\n listMembers: [\"GET /orgs/{org}/members\"],\n listMembershipsForAuthenticatedUser: [\"GET /user/memberships/orgs\"],\n listOutsideCollaborators: [\"GET /orgs/{org}/outside_collaborators\"],\n listPendingInvitations: [\"GET /orgs/{org}/invitations\"],\n listPublicMembers: [\"GET /orgs/{org}/public_members\"],\n listWebhookDeliveries: [\"GET /orgs/{org}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /orgs/{org}/hooks\"],\n pingWebhook: [\"POST /orgs/{org}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeMember: [\"DELETE /orgs/{org}/members/{username}\"],\n removeMembershipForUser: [\"DELETE /orgs/{org}/memberships/{username}\"],\n removeOutsideCollaborator: [\"DELETE /orgs/{org}/outside_collaborators/{username}\"],\n removePublicMembershipForAuthenticatedUser: [\"DELETE /orgs/{org}/public_members/{username}\"],\n setMembershipForUser: [\"PUT /orgs/{org}/memberships/{username}\"],\n setPublicMembershipForAuthenticatedUser: [\"PUT /orgs/{org}/public_members/{username}\"],\n unblockUser: [\"DELETE /orgs/{org}/blocks/{username}\"],\n update: [\"PATCH /orgs/{org}\"],\n updateMembershipForAuthenticatedUser: [\"PATCH /user/memberships/orgs/{org}\"],\n updateWebhook: [\"PATCH /orgs/{org}/hooks/{hook_id}\"],\n updateWebhookConfigForOrg: [\"PATCH /orgs/{org}/hooks/{hook_id}/config\"]\n },\n packages: {\n deletePackageForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}\"],\n deletePackageForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}\"],\n deletePackageForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}\"],\n deletePackageVersionForAuthenticatedUser: [\"DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForOrg: [\"DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n deletePackageVersionForUser: [\"DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getAllPackageVersionsForAPackageOwnedByAnOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByOrg\"]\n }],\n getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\", {}, {\n renamed: [\"packages\", \"getAllPackageVersionsForPackageOwnedByAuthenticatedUser\"]\n }],\n getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByOrg: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions\"],\n getAllPackageVersionsForPackageOwnedByUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions\"],\n getPackageForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}\"],\n getPackageForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}\"],\n getPackageForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}\"],\n getPackageVersionForAuthenticatedUser: [\"GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForOrganization: [\"GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n getPackageVersionForUser: [\"GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}\"],\n listPackagesForAuthenticatedUser: [\"GET /user/packages\"],\n listPackagesForOrganization: [\"GET /orgs/{org}/packages\"],\n listPackagesForUser: [\"GET /user/{username}/packages\"],\n restorePackageForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}\"],\n restorePackageVersionForAuthenticatedUser: [\"POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForOrg: [\"POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"],\n restorePackageVersionForUser: [\"POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore\"]\n },\n projects: {\n addCollaborator: [\"PUT /projects/{project_id}/collaborators/{username}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createCard: [\"POST /projects/columns/{column_id}/cards\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createColumn: [\"POST /projects/{project_id}/columns\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createForAuthenticatedUser: [\"POST /user/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createForOrg: [\"POST /orgs/{org}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n createForRepo: [\"POST /repos/{owner}/{repo}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n delete: [\"DELETE /projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n deleteCard: [\"DELETE /projects/columns/cards/{card_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n deleteColumn: [\"DELETE /projects/columns/{column_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n get: [\"GET /projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n getCard: [\"GET /projects/columns/cards/{card_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n getColumn: [\"GET /projects/columns/{column_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n getPermissionForUser: [\"GET /projects/{project_id}/collaborators/{username}/permission\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listCards: [\"GET /projects/columns/{column_id}/cards\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listCollaborators: [\"GET /projects/{project_id}/collaborators\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listColumns: [\"GET /projects/{project_id}/columns\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listForOrg: [\"GET /orgs/{org}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listForRepo: [\"GET /repos/{owner}/{repo}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listForUser: [\"GET /users/{username}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n moveCard: [\"POST /projects/columns/cards/{card_id}/moves\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n moveColumn: [\"POST /projects/columns/{column_id}/moves\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n removeCollaborator: [\"DELETE /projects/{project_id}/collaborators/{username}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n update: [\"PATCH /projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n updateCard: [\"PATCH /projects/columns/cards/{card_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n updateColumn: [\"PATCH /projects/columns/{column_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }]\n },\n pulls: {\n checkIfMerged: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n create: [\"POST /repos/{owner}/{repo}/pulls\"],\n createReplyForReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies\"],\n createReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n createReviewComment: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n deletePendingReview: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n deleteReviewComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n dismissReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals\"],\n get: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}\"],\n getReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n getReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}\"],\n list: [\"GET /repos/{owner}/{repo}/pulls\"],\n listCommentsForReview: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments\"],\n listCommits: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/commits\"],\n listFiles: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/files\"],\n listRequestedReviewers: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n listReviewComments: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/comments\"],\n listReviewCommentsForRepo: [\"GET /repos/{owner}/{repo}/pulls/comments\"],\n listReviews: [\"GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews\"],\n merge: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge\"],\n removeRequestedReviewers: [\"DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n requestReviewers: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers\"],\n submitReview: [\"POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events\"],\n update: [\"PATCH /repos/{owner}/{repo}/pulls/{pull_number}\"],\n updateBranch: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch\", {\n mediaType: {\n previews: [\"lydian\"]\n }\n }],\n updateReview: [\"PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}\"],\n updateReviewComment: [\"PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}\"]\n },\n rateLimit: {\n get: [\"GET /rate_limit\"]\n },\n reactions: {\n createForCommitComment: [\"POST /repos/{owner}/{repo}/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForIssue: [\"POST /repos/{owner}/{repo}/issues/{issue_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForIssueComment: [\"POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForPullRequestReviewComment: [\"POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForRelease: [\"POST /repos/{owner}/{repo}/releases/{release_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForTeamDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n createForTeamDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForIssue: [\"DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForIssueComment: [\"DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForPullRequestComment: [\"DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForTeamDiscussion: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteForTeamDiscussionComment: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n deleteLegacy: [\"DELETE /reactions/{reaction_id}\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }, {\n deprecated: \"octokit.rest.reactions.deleteLegacy() is deprecated, see https://docs.github.com/rest/reference/reactions/#delete-a-reaction-legacy\"\n }],\n listForCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForIssue: [\"GET /repos/{owner}/{repo}/issues/{issue_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForIssueComment: [\"GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForPullRequestReviewComment: [\"GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForTeamDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }],\n listForTeamDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions\", {\n mediaType: {\n previews: [\"squirrel-girl\"]\n }\n }]\n },\n repos: {\n acceptInvitation: [\"PATCH /user/repository_invitations/{invitation_id}\"],\n addAppAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n addCollaborator: [\"PUT /repos/{owner}/{repo}/collaborators/{username}\"],\n addStatusCheckContexts: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n addTeamAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n addUserAccessRestrictions: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n checkCollaborator: [\"GET /repos/{owner}/{repo}/collaborators/{username}\"],\n checkVulnerabilityAlerts: [\"GET /repos/{owner}/{repo}/vulnerability-alerts\", {\n mediaType: {\n previews: [\"dorian\"]\n }\n }],\n compareCommits: [\"GET /repos/{owner}/{repo}/compare/{base}...{head}\"],\n compareCommitsWithBasehead: [\"GET /repos/{owner}/{repo}/compare/{basehead}\"],\n createAutolink: [\"POST /repos/{owner}/{repo}/autolinks\"],\n createCommitComment: [\"POST /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n createCommitSignatureProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\", {\n mediaType: {\n previews: [\"zzzax\"]\n }\n }],\n createCommitStatus: [\"POST /repos/{owner}/{repo}/statuses/{sha}\"],\n createDeployKey: [\"POST /repos/{owner}/{repo}/keys\"],\n createDeployment: [\"POST /repos/{owner}/{repo}/deployments\"],\n createDeploymentStatus: [\"POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n createDispatchEvent: [\"POST /repos/{owner}/{repo}/dispatches\"],\n createForAuthenticatedUser: [\"POST /user/repos\"],\n createFork: [\"POST /repos/{owner}/{repo}/forks\"],\n createInOrg: [\"POST /orgs/{org}/repos\"],\n createOrUpdateEnvironment: [\"PUT /repos/{owner}/{repo}/environments/{environment_name}\"],\n createOrUpdateFileContents: [\"PUT /repos/{owner}/{repo}/contents/{path}\"],\n createPagesSite: [\"POST /repos/{owner}/{repo}/pages\", {\n mediaType: {\n previews: [\"switcheroo\"]\n }\n }],\n createRelease: [\"POST /repos/{owner}/{repo}/releases\"],\n createUsingTemplate: [\"POST /repos/{template_owner}/{template_repo}/generate\", {\n mediaType: {\n previews: [\"baptiste\"]\n }\n }],\n createWebhook: [\"POST /repos/{owner}/{repo}/hooks\"],\n declineInvitation: [\"DELETE /user/repository_invitations/{invitation_id}\"],\n delete: [\"DELETE /repos/{owner}/{repo}\"],\n deleteAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n deleteAdminBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n deleteAnEnvironment: [\"DELETE /repos/{owner}/{repo}/environments/{environment_name}\"],\n deleteAutolink: [\"DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n deleteBranchProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection\"],\n deleteCommitComment: [\"DELETE /repos/{owner}/{repo}/comments/{comment_id}\"],\n deleteCommitSignatureProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\", {\n mediaType: {\n previews: [\"zzzax\"]\n }\n }],\n deleteDeployKey: [\"DELETE /repos/{owner}/{repo}/keys/{key_id}\"],\n deleteDeployment: [\"DELETE /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n deleteFile: [\"DELETE /repos/{owner}/{repo}/contents/{path}\"],\n deleteInvitation: [\"DELETE /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n deletePagesSite: [\"DELETE /repos/{owner}/{repo}/pages\", {\n mediaType: {\n previews: [\"switcheroo\"]\n }\n }],\n deletePullRequestReviewProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n deleteRelease: [\"DELETE /repos/{owner}/{repo}/releases/{release_id}\"],\n deleteReleaseAsset: [\"DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n deleteWebhook: [\"DELETE /repos/{owner}/{repo}/hooks/{hook_id}\"],\n disableAutomatedSecurityFixes: [\"DELETE /repos/{owner}/{repo}/automated-security-fixes\", {\n mediaType: {\n previews: [\"london\"]\n }\n }],\n disableVulnerabilityAlerts: [\"DELETE /repos/{owner}/{repo}/vulnerability-alerts\", {\n mediaType: {\n previews: [\"dorian\"]\n }\n }],\n downloadArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\", {}, {\n renamed: [\"repos\", \"downloadZipballArchive\"]\n }],\n downloadTarballArchive: [\"GET /repos/{owner}/{repo}/tarball/{ref}\"],\n downloadZipballArchive: [\"GET /repos/{owner}/{repo}/zipball/{ref}\"],\n enableAutomatedSecurityFixes: [\"PUT /repos/{owner}/{repo}/automated-security-fixes\", {\n mediaType: {\n previews: [\"london\"]\n }\n }],\n enableVulnerabilityAlerts: [\"PUT /repos/{owner}/{repo}/vulnerability-alerts\", {\n mediaType: {\n previews: [\"dorian\"]\n }\n }],\n get: [\"GET /repos/{owner}/{repo}\"],\n getAccessRestrictions: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions\"],\n getAdminBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n getAllEnvironments: [\"GET /repos/{owner}/{repo}/environments\"],\n getAllStatusCheckContexts: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\"],\n getAllTopics: [\"GET /repos/{owner}/{repo}/topics\", {\n mediaType: {\n previews: [\"mercy\"]\n }\n }],\n getAppsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\"],\n getAutolink: [\"GET /repos/{owner}/{repo}/autolinks/{autolink_id}\"],\n getBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}\"],\n getBranchProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection\"],\n getClones: [\"GET /repos/{owner}/{repo}/traffic/clones\"],\n getCodeFrequencyStats: [\"GET /repos/{owner}/{repo}/stats/code_frequency\"],\n getCollaboratorPermissionLevel: [\"GET /repos/{owner}/{repo}/collaborators/{username}/permission\"],\n getCombinedStatusForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/status\"],\n getCommit: [\"GET /repos/{owner}/{repo}/commits/{ref}\"],\n getCommitActivityStats: [\"GET /repos/{owner}/{repo}/stats/commit_activity\"],\n getCommitComment: [\"GET /repos/{owner}/{repo}/comments/{comment_id}\"],\n getCommitSignatureProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures\", {\n mediaType: {\n previews: [\"zzzax\"]\n }\n }],\n getCommunityProfileMetrics: [\"GET /repos/{owner}/{repo}/community/profile\"],\n getContent: [\"GET /repos/{owner}/{repo}/contents/{path}\"],\n getContributorsStats: [\"GET /repos/{owner}/{repo}/stats/contributors\"],\n getDeployKey: [\"GET /repos/{owner}/{repo}/keys/{key_id}\"],\n getDeployment: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}\"],\n getDeploymentStatus: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}\"],\n getEnvironment: [\"GET /repos/{owner}/{repo}/environments/{environment_name}\"],\n getLatestPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/latest\"],\n getLatestRelease: [\"GET /repos/{owner}/{repo}/releases/latest\"],\n getPages: [\"GET /repos/{owner}/{repo}/pages\"],\n getPagesBuild: [\"GET /repos/{owner}/{repo}/pages/builds/{build_id}\"],\n getPagesHealthCheck: [\"GET /repos/{owner}/{repo}/pages/health\"],\n getParticipationStats: [\"GET /repos/{owner}/{repo}/stats/participation\"],\n getPullRequestReviewProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n getPunchCardStats: [\"GET /repos/{owner}/{repo}/stats/punch_card\"],\n getReadme: [\"GET /repos/{owner}/{repo}/readme\"],\n getReadmeInDirectory: [\"GET /repos/{owner}/{repo}/readme/{dir}\"],\n getRelease: [\"GET /repos/{owner}/{repo}/releases/{release_id}\"],\n getReleaseAsset: [\"GET /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n getReleaseByTag: [\"GET /repos/{owner}/{repo}/releases/tags/{tag}\"],\n getStatusChecksProtection: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n getTeamsWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\"],\n getTopPaths: [\"GET /repos/{owner}/{repo}/traffic/popular/paths\"],\n getTopReferrers: [\"GET /repos/{owner}/{repo}/traffic/popular/referrers\"],\n getUsersWithAccessToProtectedBranch: [\"GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\"],\n getViews: [\"GET /repos/{owner}/{repo}/traffic/views\"],\n getWebhook: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}\"],\n getWebhookConfigForRepo: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n getWebhookDelivery: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}\"],\n listAutolinks: [\"GET /repos/{owner}/{repo}/autolinks\"],\n listBranches: [\"GET /repos/{owner}/{repo}/branches\"],\n listBranchesForHeadCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head\", {\n mediaType: {\n previews: [\"groot\"]\n }\n }],\n listCollaborators: [\"GET /repos/{owner}/{repo}/collaborators\"],\n listCommentsForCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/comments\"],\n listCommitCommentsForRepo: [\"GET /repos/{owner}/{repo}/comments\"],\n listCommitStatusesForRef: [\"GET /repos/{owner}/{repo}/commits/{ref}/statuses\"],\n listCommits: [\"GET /repos/{owner}/{repo}/commits\"],\n listContributors: [\"GET /repos/{owner}/{repo}/contributors\"],\n listDeployKeys: [\"GET /repos/{owner}/{repo}/keys\"],\n listDeploymentStatuses: [\"GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses\"],\n listDeployments: [\"GET /repos/{owner}/{repo}/deployments\"],\n listForAuthenticatedUser: [\"GET /user/repos\"],\n listForOrg: [\"GET /orgs/{org}/repos\"],\n listForUser: [\"GET /users/{username}/repos\"],\n listForks: [\"GET /repos/{owner}/{repo}/forks\"],\n listInvitations: [\"GET /repos/{owner}/{repo}/invitations\"],\n listInvitationsForAuthenticatedUser: [\"GET /user/repository_invitations\"],\n listLanguages: [\"GET /repos/{owner}/{repo}/languages\"],\n listPagesBuilds: [\"GET /repos/{owner}/{repo}/pages/builds\"],\n listPublic: [\"GET /repositories\"],\n listPullRequestsAssociatedWithCommit: [\"GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls\", {\n mediaType: {\n previews: [\"groot\"]\n }\n }],\n listReleaseAssets: [\"GET /repos/{owner}/{repo}/releases/{release_id}/assets\"],\n listReleases: [\"GET /repos/{owner}/{repo}/releases\"],\n listTags: [\"GET /repos/{owner}/{repo}/tags\"],\n listTeams: [\"GET /repos/{owner}/{repo}/teams\"],\n listWebhookDeliveries: [\"GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries\"],\n listWebhooks: [\"GET /repos/{owner}/{repo}/hooks\"],\n merge: [\"POST /repos/{owner}/{repo}/merges\"],\n mergeUpstream: [\"POST /repos/{owner}/{repo}/merge-upstream\"],\n pingWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/pings\"],\n redeliverWebhookDelivery: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts\"],\n removeAppAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n removeCollaborator: [\"DELETE /repos/{owner}/{repo}/collaborators/{username}\"],\n removeStatusCheckContexts: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n removeStatusCheckProtection: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n removeTeamAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n removeUserAccessRestrictions: [\"DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n renameBranch: [\"POST /repos/{owner}/{repo}/branches/{branch}/rename\"],\n replaceAllTopics: [\"PUT /repos/{owner}/{repo}/topics\", {\n mediaType: {\n previews: [\"mercy\"]\n }\n }],\n requestPagesBuild: [\"POST /repos/{owner}/{repo}/pages/builds\"],\n setAdminBranchProtection: [\"POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins\"],\n setAppAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps\", {}, {\n mapToData: \"apps\"\n }],\n setStatusCheckContexts: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts\", {}, {\n mapToData: \"contexts\"\n }],\n setTeamAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams\", {}, {\n mapToData: \"teams\"\n }],\n setUserAccessRestrictions: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users\", {}, {\n mapToData: \"users\"\n }],\n testPushWebhook: [\"POST /repos/{owner}/{repo}/hooks/{hook_id}/tests\"],\n transfer: [\"POST /repos/{owner}/{repo}/transfer\"],\n update: [\"PATCH /repos/{owner}/{repo}\"],\n updateBranchProtection: [\"PUT /repos/{owner}/{repo}/branches/{branch}/protection\"],\n updateCommitComment: [\"PATCH /repos/{owner}/{repo}/comments/{comment_id}\"],\n updateInformationAboutPagesSite: [\"PUT /repos/{owner}/{repo}/pages\"],\n updateInvitation: [\"PATCH /repos/{owner}/{repo}/invitations/{invitation_id}\"],\n updatePullRequestReviewProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews\"],\n updateRelease: [\"PATCH /repos/{owner}/{repo}/releases/{release_id}\"],\n updateReleaseAsset: [\"PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}\"],\n updateStatusCheckPotection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\", {}, {\n renamed: [\"repos\", \"updateStatusCheckProtection\"]\n }],\n updateStatusCheckProtection: [\"PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks\"],\n updateWebhook: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}\"],\n updateWebhookConfigForRepo: [\"PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config\"],\n uploadReleaseAsset: [\"POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}\", {\n baseUrl: \"https://uploads.github.com\"\n }]\n },\n search: {\n code: [\"GET /search/code\"],\n commits: [\"GET /search/commits\", {\n mediaType: {\n previews: [\"cloak\"]\n }\n }],\n issuesAndPullRequests: [\"GET /search/issues\"],\n labels: [\"GET /search/labels\"],\n repos: [\"GET /search/repositories\"],\n topics: [\"GET /search/topics\", {\n mediaType: {\n previews: [\"mercy\"]\n }\n }],\n users: [\"GET /search/users\"]\n },\n secretScanning: {\n getAlert: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"],\n listAlertsForOrg: [\"GET /orgs/{org}/secret-scanning/alerts\"],\n listAlertsForRepo: [\"GET /repos/{owner}/{repo}/secret-scanning/alerts\"],\n updateAlert: [\"PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}\"]\n },\n teams: {\n addOrUpdateMembershipForUserInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n addOrUpdateProjectPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n addOrUpdateRepoPermissionsInOrg: [\"PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n checkPermissionsForProjectInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects/{project_id}\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n checkPermissionsForRepoInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n create: [\"POST /orgs/{org}/teams\"],\n createDiscussionCommentInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n createDiscussionInOrg: [\"POST /orgs/{org}/teams/{team_slug}/discussions\"],\n deleteDiscussionCommentInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n deleteDiscussionInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n deleteInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}\"],\n getByName: [\"GET /orgs/{org}/teams/{team_slug}\"],\n getDiscussionCommentInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n getDiscussionInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n getMembershipForUserInOrg: [\"GET /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n list: [\"GET /orgs/{org}/teams\"],\n listChildInOrg: [\"GET /orgs/{org}/teams/{team_slug}/teams\"],\n listDiscussionCommentsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments\"],\n listDiscussionsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/discussions\"],\n listForAuthenticatedUser: [\"GET /user/teams\"],\n listMembersInOrg: [\"GET /orgs/{org}/teams/{team_slug}/members\"],\n listPendingInvitationsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/invitations\"],\n listProjectsInOrg: [\"GET /orgs/{org}/teams/{team_slug}/projects\", {\n mediaType: {\n previews: [\"inertia\"]\n }\n }],\n listReposInOrg: [\"GET /orgs/{org}/teams/{team_slug}/repos\"],\n removeMembershipForUserInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}\"],\n removeProjectInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}\"],\n removeRepoInOrg: [\"DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}\"],\n updateDiscussionCommentInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}\"],\n updateDiscussionInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}\"],\n updateInOrg: [\"PATCH /orgs/{org}/teams/{team_slug}\"]\n },\n users: {\n addEmailForAuthenticated: [\"POST /user/emails\"],\n block: [\"PUT /user/blocks/{username}\"],\n checkBlocked: [\"GET /user/blocks/{username}\"],\n checkFollowingForUser: [\"GET /users/{username}/following/{target_user}\"],\n checkPersonIsFollowedByAuthenticated: [\"GET /user/following/{username}\"],\n createGpgKeyForAuthenticated: [\"POST /user/gpg_keys\"],\n createPublicSshKeyForAuthenticated: [\"POST /user/keys\"],\n deleteEmailForAuthenticated: [\"DELETE /user/emails\"],\n deleteGpgKeyForAuthenticated: [\"DELETE /user/gpg_keys/{gpg_key_id}\"],\n deletePublicSshKeyForAuthenticated: [\"DELETE /user/keys/{key_id}\"],\n follow: [\"PUT /user/following/{username}\"],\n getAuthenticated: [\"GET /user\"],\n getByUsername: [\"GET /users/{username}\"],\n getContextForUser: [\"GET /users/{username}/hovercard\"],\n getGpgKeyForAuthenticated: [\"GET /user/gpg_keys/{gpg_key_id}\"],\n getPublicSshKeyForAuthenticated: [\"GET /user/keys/{key_id}\"],\n list: [\"GET /users\"],\n listBlockedByAuthenticated: [\"GET /user/blocks\"],\n listEmailsForAuthenticated: [\"GET /user/emails\"],\n listFollowedByAuthenticated: [\"GET /user/following\"],\n listFollowersForAuthenticatedUser: [\"GET /user/followers\"],\n listFollowersForUser: [\"GET /users/{username}/followers\"],\n listFollowingForUser: [\"GET /users/{username}/following\"],\n listGpgKeysForAuthenticated: [\"GET /user/gpg_keys\"],\n listGpgKeysForUser: [\"GET /users/{username}/gpg_keys\"],\n listPublicEmailsForAuthenticated: [\"GET /user/public_emails\"],\n listPublicKeysForUser: [\"GET /users/{username}/keys\"],\n listPublicSshKeysForAuthenticated: [\"GET /user/keys\"],\n setPrimaryEmailVisibilityForAuthenticated: [\"PATCH /user/email/visibility\"],\n unblock: [\"DELETE /user/blocks/{username}\"],\n unfollow: [\"DELETE /user/following/{username}\"],\n updateAuthenticated: [\"PATCH /user\"]\n }\n};\n\nconst VERSION = \"5.10.0\";\n\nfunction endpointsToMethods(octokit, endpointsMap) {\n const newMethods = {};\n\n for (const [scope, endpoints] of Object.entries(endpointsMap)) {\n for (const [methodName, endpoint] of Object.entries(endpoints)) {\n const [route, defaults, decorations] = endpoint;\n const [method, url] = route.split(/ /);\n const endpointDefaults = Object.assign({\n method,\n url\n }, defaults);\n\n if (!newMethods[scope]) {\n newMethods[scope] = {};\n }\n\n const scopeMethods = newMethods[scope];\n\n if (decorations) {\n scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations);\n continue;\n }\n\n scopeMethods[methodName] = octokit.request.defaults(endpointDefaults);\n }\n }\n\n return newMethods;\n}\n\nfunction decorate(octokit, scope, methodName, defaults, decorations) {\n const requestWithDefaults = octokit.request.defaults(defaults);\n /* istanbul ignore next */\n\n function withDecorations(...args) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData`\n\n if (decorations.mapToData) {\n options = Object.assign({}, options, {\n data: options[decorations.mapToData],\n [decorations.mapToData]: undefined\n });\n return requestWithDefaults(options);\n }\n\n if (decorations.renamed) {\n const [newScope, newMethodName] = decorations.renamed;\n octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`);\n }\n\n if (decorations.deprecated) {\n octokit.log.warn(decorations.deprecated);\n }\n\n if (decorations.renamedParameters) {\n // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n const options = requestWithDefaults.endpoint.merge(...args);\n\n for (const [name, alias] of Object.entries(decorations.renamedParameters)) {\n if (name in options) {\n octokit.log.warn(`\"${name}\" parameter is deprecated for \"octokit.${scope}.${methodName}()\". Use \"${alias}\" instead`);\n\n if (!(alias in options)) {\n options[alias] = options[name];\n }\n\n delete options[name];\n }\n }\n\n return requestWithDefaults(options);\n } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488\n\n\n return requestWithDefaults(...args);\n }\n\n return Object.assign(withDecorations, requestWithDefaults);\n}\n\nfunction restEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return {\n rest: api\n };\n}\nrestEndpointMethods.VERSION = VERSION;\nfunction legacyRestEndpointMethods(octokit) {\n const api = endpointsToMethods(octokit, Endpoints);\n return _objectSpread2(_objectSpread2({}, api), {}, {\n rest: api\n });\n}\nlegacyRestEndpointMethods.VERSION = VERSION;\n\nexports.legacyRestEndpointMethods = legacyRestEndpointMethods;\nexports.restEndpointMethods = restEndpointMethods;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar deprecation = require('deprecation');\nvar once = _interopDefault(require('once'));\n\nconst logOnceCode = once(deprecation => console.warn(deprecation));\nconst logOnceHeaders = once(deprecation => console.warn(deprecation));\n/**\n * Error with extra properties to help with debugging\n */\n\nclass RequestError extends Error {\n constructor(message, statusCode, options) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = \"HttpError\";\n this.status = statusCode;\n let headers;\n\n if (\"headers\" in options && typeof options.headers !== \"undefined\") {\n headers = options.headers;\n }\n\n if (\"response\" in options) {\n this.response = options.response;\n headers = options.response.headers;\n } // redact request credentials without mutating original request options\n\n\n const requestCopy = Object.assign({}, options.request);\n\n if (options.request.headers.authorization) {\n requestCopy.headers = Object.assign({}, options.request.headers, {\n authorization: options.request.headers.authorization.replace(/ .*$/, \" [REDACTED]\")\n });\n }\n\n requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit\n // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications\n .replace(/\\bclient_secret=\\w+/g, \"client_secret=[REDACTED]\") // OAuth tokens can be passed as URL query parameters, although it is not recommended\n // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header\n .replace(/\\baccess_token=\\w+/g, \"access_token=[REDACTED]\");\n this.request = requestCopy; // deprecations\n\n Object.defineProperty(this, \"code\", {\n get() {\n logOnceCode(new deprecation.Deprecation(\"[@octokit/request-error] `error.code` is deprecated, use `error.status`.\"));\n return statusCode;\n }\n\n });\n Object.defineProperty(this, \"headers\", {\n get() {\n logOnceHeaders(new deprecation.Deprecation(\"[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.\"));\n return headers || {};\n }\n\n });\n }\n\n}\n\nexports.RequestError = RequestError;\n//# sourceMappingURL=index.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar endpoint = require('@octokit/endpoint');\nvar universalUserAgent = require('universal-user-agent');\nvar isPlainObject = require('is-plain-object');\nvar nodeFetch = _interopDefault(require('node-fetch'));\nvar requestError = require('@octokit/request-error');\n\nconst VERSION = \"5.6.1\";\n\nfunction getBufferResponse(response) {\n return response.arrayBuffer();\n}\n\nfunction fetchWrapper(requestOptions) {\n const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console;\n\n if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) {\n requestOptions.body = JSON.stringify(requestOptions.body);\n }\n\n let headers = {};\n let status;\n let url;\n const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch;\n return fetch(requestOptions.url, Object.assign({\n method: requestOptions.method,\n body: requestOptions.body,\n headers: requestOptions.headers,\n redirect: requestOptions.redirect\n }, // `requestOptions.request.agent` type is incompatible\n // see https://github.com/octokit/types.ts/pull/264\n requestOptions.request)).then(async response => {\n url = response.url;\n status = response.status;\n\n for (const keyAndValue of response.headers) {\n headers[keyAndValue[0]] = keyAndValue[1];\n }\n\n if (\"deprecation\" in headers) {\n const matches = headers.link && headers.link.match(/<([^>]+)>; rel=\"deprecation\"/);\n const deprecationLink = matches && matches.pop();\n log.warn(`[@octokit/request] \"${requestOptions.method} ${requestOptions.url}\" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : \"\"}`);\n }\n\n if (status === 204 || status === 205) {\n return;\n } // GitHub API returns 200 for HEAD requests\n\n\n if (requestOptions.method === \"HEAD\") {\n if (status < 400) {\n return;\n }\n\n throw new requestError.RequestError(response.statusText, status, {\n response: {\n url,\n status,\n headers,\n data: undefined\n },\n request: requestOptions\n });\n }\n\n if (status === 304) {\n throw new requestError.RequestError(\"Not modified\", status, {\n response: {\n url,\n status,\n headers,\n data: await getResponseData(response)\n },\n request: requestOptions\n });\n }\n\n if (status >= 400) {\n const data = await getResponseData(response);\n const error = new requestError.RequestError(toErrorMessage(data), status, {\n response: {\n url,\n status,\n headers,\n data\n },\n request: requestOptions\n });\n throw error;\n }\n\n return getResponseData(response);\n }).then(data => {\n return {\n status,\n url,\n headers,\n data\n };\n }).catch(error => {\n if (error instanceof requestError.RequestError) throw error;\n throw new requestError.RequestError(error.message, 500, {\n request: requestOptions\n });\n });\n}\n\nasync function getResponseData(response) {\n const contentType = response.headers.get(\"content-type\");\n\n if (/application\\/json/.test(contentType)) {\n return response.json();\n }\n\n if (!contentType || /^text\\/|charset=utf-8$/.test(contentType)) {\n return response.text();\n }\n\n return getBufferResponse(response);\n}\n\nfunction toErrorMessage(data) {\n if (typeof data === \"string\") return data; // istanbul ignore else - just in case\n\n if (\"message\" in data) {\n if (Array.isArray(data.errors)) {\n return `${data.message}: ${data.errors.map(JSON.stringify).join(\", \")}`;\n }\n\n return data.message;\n } // istanbul ignore next - just in case\n\n\n return `Unknown error: ${JSON.stringify(data)}`;\n}\n\nfunction withDefaults(oldEndpoint, newDefaults) {\n const endpoint = oldEndpoint.defaults(newDefaults);\n\n const newApi = function (route, parameters) {\n const endpointOptions = endpoint.merge(route, parameters);\n\n if (!endpointOptions.request || !endpointOptions.request.hook) {\n return fetchWrapper(endpoint.parse(endpointOptions));\n }\n\n const request = (route, parameters) => {\n return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters)));\n };\n\n Object.assign(request, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n return endpointOptions.request.hook(request, endpointOptions);\n };\n\n return Object.assign(newApi, {\n endpoint,\n defaults: withDefaults.bind(null, endpoint)\n });\n}\n\nconst request = withDefaults(endpoint.endpoint, {\n headers: {\n \"user-agent\": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`\n }\n});\n\nexports.request = request;\n//# sourceMappingURL=index.js.map\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst BuildInterfaces = require(\"./interfaces/BuildInterfaces\");\r\nclass BuildApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Build-api', options);\r\n }\r\n /**\r\n * Associates an artifact with a build.\r\n *\r\n * @param {BuildInterfaces.BuildArtifact} artifact - The artifact.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n createArtifact(artifact, project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.5\", \"build\", \"1db06c96-014e-44e1-ac91-90b2d4b3e984\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, artifact, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a specific artifact for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} artifactName - The name of the artifact.\r\n */\r\n getArtifact(project, buildId, artifactName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactName == null) {\r\n throw new TypeError('artifactName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n artifactName: artifactName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.5\", \"build\", \"1db06c96-014e-44e1-ac91-90b2d4b3e984\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a specific artifact for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} artifactName - The name of the artifact.\r\n */\r\n getArtifactContentZip(project, buildId, artifactName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactName == null) {\r\n throw new TypeError('artifactName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n artifactName: artifactName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.5\", \"build\", \"1db06c96-014e-44e1-ac91-90b2d4b3e984\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all artifacts for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n getArtifacts(project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.5\", \"build\", \"1db06c96-014e-44e1-ac91-90b2d4b3e984\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a file from the build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} artifactName - The name of the artifact.\r\n * @param {string} fileId - The primary key for the file.\r\n * @param {string} fileName - The name that the file will be set to.\r\n */\r\n getFile(project, buildId, artifactName, fileId, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactName == null) {\r\n throw new TypeError('artifactName can not be null or undefined');\r\n }\r\n if (fileId == null) {\r\n throw new TypeError('fileId can not be null or undefined');\r\n }\r\n if (fileName == null) {\r\n throw new TypeError('fileName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n artifactName: artifactName,\r\n fileId: fileId,\r\n fileName: fileName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.5\", \"build\", \"1db06c96-014e-44e1-ac91-90b2d4b3e984\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the list of attachments of a specific type that are associated with a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} type - The type of attachment.\r\n */\r\n getAttachments(project, buildId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"f2192269-89fa-4f94-baf6-8fb128c55159\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a specific attachment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} timelineId - The ID of the timeline.\r\n * @param {string} recordId - The ID of the timeline record.\r\n * @param {string} type - The type of the attachment.\r\n * @param {string} name - The name of the attachment.\r\n */\r\n getAttachment(project, buildId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"af5122d3-3438-485e-a25a-2dbbfde84ee6\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {BuildInterfaces.DefinitionResourceReference[]} resources\r\n * @param {string} project - Project ID or project name\r\n */\r\n authorizeProjectResources(resources, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"398c85bc-81aa-4822-947c-a194a05f0fef\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, resources, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type\r\n * @param {string} id\r\n */\r\n getProjectResources(project, type, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n type: type,\r\n id: id,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"398c85bc-81aa-4822-947c-a194a05f0fef\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that indicates the status of the most recent build for a definition. Note that this API is deprecated. Prefer StatusBadgeController.GetStatusBadge.\r\n *\r\n * @param {string} project - The project ID or name.\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {string} branchName - The name of the branch.\r\n */\r\n getBadge(project, definitionId, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n branchName: branchName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"de6a4df8-22cd-44ee-af2d-39f6aa7a4261\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of branches for the given source code repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - The vendor-specific identifier or the name of the repository to get branches. Can only be omitted for providers that do not support multiple repositories.\r\n * @param {string} branchName - If supplied, the name of the branch to check for specifically.\r\n */\r\n listBranches(project, providerName, serviceEndpointId, repository, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n branchName: branchName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"e05d4403-9b81-4244-8763-20fde28d1976\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that indicates the status of the most recent build for the specified branch.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repoType - The repository type.\r\n * @param {string} repoId - The repository ID.\r\n * @param {string} branchName - The branch name.\r\n */\r\n getBuildBadge(project, repoType, repoId, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repoType: repoType\r\n };\r\n let queryValues = {\r\n repoId: repoId,\r\n branchName: branchName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"21b3b9ce-fad5-4567-9ad0-80679794e003\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that indicates the status of the most recent build for the specified branch.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repoType - The repository type.\r\n * @param {string} repoId - The repository ID.\r\n * @param {string} branchName - The branch name.\r\n */\r\n getBuildBadgeData(project, repoType, repoId, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repoType: repoType\r\n };\r\n let queryValues = {\r\n repoId: repoId,\r\n branchName: branchName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"21b3b9ce-fad5-4567-9ad0-80679794e003\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n deleteBuild(project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a build\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} propertyFilters\r\n */\r\n getBuild(project, buildId, propertyFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n propertyFilters: propertyFilters,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of builds.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number[]} definitions - A comma-delimited list of definition IDs. If specified, filters to builds for these definitions.\r\n * @param {number[]} queues - A comma-delimited list of queue IDs. If specified, filters to builds that ran against these queues.\r\n * @param {string} buildNumber - If specified, filters to builds that match this build number. Append * to do a prefix search.\r\n * @param {Date} minTime - If specified, filters to builds that finished/started/queued after this date based on the queryOrder specified.\r\n * @param {Date} maxTime - If specified, filters to builds that finished/started/queued before this date based on the queryOrder specified.\r\n * @param {string} requestedFor - If specified, filters to builds requested for the specified user.\r\n * @param {BuildInterfaces.BuildReason} reasonFilter - If specified, filters to builds that match this reason.\r\n * @param {BuildInterfaces.BuildStatus} statusFilter - If specified, filters to builds that match this status.\r\n * @param {BuildInterfaces.BuildResult} resultFilter - If specified, filters to builds that match this result.\r\n * @param {string[]} tagFilters - A comma-delimited list of tags. If specified, filters to builds that have the specified tags.\r\n * @param {string[]} properties - A comma-delimited list of properties to retrieve.\r\n * @param {number} top - The maximum number of builds to return.\r\n * @param {string} continuationToken - A continuation token, returned by a previous call to this method, that can be used to return the next set of builds.\r\n * @param {number} maxBuildsPerDefinition - The maximum number of builds to return per definition.\r\n * @param {BuildInterfaces.QueryDeletedOption} deletedFilter - Indicates whether to exclude, include, or only return deleted builds.\r\n * @param {BuildInterfaces.BuildQueryOrder} queryOrder - The order in which builds should be returned.\r\n * @param {string} branchName - If specified, filters to builds that built branches that built this branch.\r\n * @param {number[]} buildIds - A comma-delimited list that specifies the IDs of builds to retrieve.\r\n * @param {string} repositoryId - If specified, filters to builds that built from this repository.\r\n * @param {string} repositoryType - If specified, filters to builds that built from repositories of this type.\r\n */\r\n getBuilds(project, definitions, queues, buildNumber, minTime, maxTime, requestedFor, reasonFilter, statusFilter, resultFilter, tagFilters, properties, top, continuationToken, maxBuildsPerDefinition, deletedFilter, queryOrder, branchName, buildIds, repositoryId, repositoryType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n definitions: definitions && definitions.join(\",\"),\r\n queues: queues && queues.join(\",\"),\r\n buildNumber: buildNumber,\r\n minTime: minTime,\r\n maxTime: maxTime,\r\n requestedFor: requestedFor,\r\n reasonFilter: reasonFilter,\r\n statusFilter: statusFilter,\r\n resultFilter: resultFilter,\r\n tagFilters: tagFilters && tagFilters.join(\",\"),\r\n properties: properties && properties.join(\",\"),\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n maxBuildsPerDefinition: maxBuildsPerDefinition,\r\n deletedFilter: deletedFilter,\r\n queryOrder: queryOrder,\r\n branchName: branchName,\r\n buildIds: buildIds && buildIds.join(\",\"),\r\n repositoryId: repositoryId,\r\n repositoryType: repositoryType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Queues a build\r\n *\r\n * @param {BuildInterfaces.Build} build\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} ignoreWarnings\r\n * @param {string} checkInTicket\r\n * @param {number} sourceBuildId\r\n * @param {number} definitionId - Optional definition id to queue a build without a body. Ignored if there's a valid body\r\n */\r\n queueBuild(build, project, ignoreWarnings, checkInTicket, sourceBuildId, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ignoreWarnings: ignoreWarnings,\r\n checkInTicket: checkInTicket,\r\n sourceBuildId: sourceBuildId,\r\n definitionId: definitionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, build, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a build.\r\n *\r\n * @param {BuildInterfaces.Build} build - The build.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {boolean} retry\r\n */\r\n updateBuild(build, project, buildId, retry) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n retry: retry,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, build, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates multiple builds.\r\n *\r\n * @param {BuildInterfaces.Build[]} builds - The builds to update.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateBuilds(builds, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"0cd358e1-9217-4d94-8269-1c1ee6f93dcf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, builds, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the changes associated with a build\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} continuationToken\r\n * @param {number} top - The maximum number of changes to return\r\n * @param {boolean} includeSourceChange\r\n */\r\n getBuildChanges(project, buildId, continuationToken, top, includeSourceChange) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n includeSourceChange: includeSourceChange,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"54572c7b-bbd3-45d4-80dc-28be08941620\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Change, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the changes made to the repository between two given builds.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} fromBuildId - The ID of the first build.\r\n * @param {number} toBuildId - The ID of the last build.\r\n * @param {number} top - The maximum number of changes to return.\r\n */\r\n getChangesBetweenBuilds(project, fromBuildId, toBuildId, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fromBuildId: fromBuildId,\r\n toBuildId: toBuildId,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"f10f0ea5-18a1-43ec-a8fb-2042c7be9b43\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Change, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a controller\r\n *\r\n * @param {number} controllerId\r\n */\r\n getBuildController(controllerId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n controllerId: controllerId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"fcac1932-2ee1-437f-9b6f-7f696be858f6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildController, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets controller, optionally filtered by name\r\n *\r\n * @param {string} name\r\n */\r\n getBuildControllers(name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n name: name,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"fcac1932-2ee1-437f-9b6f-7f696be858f6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildController, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new definition.\r\n *\r\n * @param {BuildInterfaces.BuildDefinition} definition - The definition.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionToCloneId\r\n * @param {number} definitionToCloneRevision\r\n */\r\n createDefinition(definition, project, definitionToCloneId, definitionToCloneRevision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n definitionToCloneId: definitionToCloneId,\r\n definitionToCloneRevision: definitionToCloneRevision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, definition, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a definition and all associated builds.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n */\r\n deleteDefinition(project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a definition, optionally at a specific revision.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {number} revision - The revision number to retrieve. If this is not specified, the latest version will be returned.\r\n * @param {Date} minMetricsTime - If specified, indicates the date from which metrics should be included.\r\n * @param {string[]} propertyFilters - A comma-delimited list of properties to include in the results.\r\n * @param {boolean} includeLatestBuilds\r\n */\r\n getDefinition(project, definitionId, revision, minMetricsTime, propertyFilters, includeLatestBuilds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n minMetricsTime: minMetricsTime,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n includeLatestBuilds: includeLatestBuilds,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of definitions.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} name - If specified, filters to definitions whose names match this pattern.\r\n * @param {string} repositoryId - A repository ID. If specified, filters to definitions that use this repository.\r\n * @param {string} repositoryType - If specified, filters to definitions that have a repository of this type.\r\n * @param {BuildInterfaces.DefinitionQueryOrder} queryOrder - Indicates the order in which definitions should be returned.\r\n * @param {number} top - The maximum number of definitions to return.\r\n * @param {string} continuationToken - A continuation token, returned by a previous call to this method, that can be used to return the next set of definitions.\r\n * @param {Date} minMetricsTime - If specified, indicates the date from which metrics should be included.\r\n * @param {number[]} definitionIds - A comma-delimited list that specifies the IDs of definitions to retrieve.\r\n * @param {string} path - If specified, filters to definitions under this folder.\r\n * @param {Date} builtAfter - If specified, filters to definitions that have builds after this date.\r\n * @param {Date} notBuiltAfter - If specified, filters to definitions that do not have builds after this date.\r\n * @param {boolean} includeAllProperties - Indicates whether the full definitions should be returned. By default, shallow representations of the definitions are returned.\r\n * @param {boolean} includeLatestBuilds - Indicates whether to return the latest and latest completed builds for this definition.\r\n * @param {string} taskIdFilter - If specified, filters to definitions that use the specified task.\r\n * @param {number} processType - If specified, filters to definitions with the given process type.\r\n * @param {string} yamlFilename - If specified, filters to YAML definitions that match the given filename.\r\n */\r\n getDefinitions(project, name, repositoryId, repositoryType, queryOrder, top, continuationToken, minMetricsTime, definitionIds, path, builtAfter, notBuiltAfter, includeAllProperties, includeLatestBuilds, taskIdFilter, processType, yamlFilename) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n name: name,\r\n repositoryId: repositoryId,\r\n repositoryType: repositoryType,\r\n queryOrder: queryOrder,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n minMetricsTime: minMetricsTime,\r\n definitionIds: definitionIds && definitionIds.join(\",\"),\r\n path: path,\r\n builtAfter: builtAfter,\r\n notBuiltAfter: notBuiltAfter,\r\n includeAllProperties: includeAllProperties,\r\n includeLatestBuilds: includeLatestBuilds,\r\n taskIdFilter: taskIdFilter,\r\n processType: processType,\r\n yamlFilename: yamlFilename,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionReference, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Restores a deleted definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The identifier of the definition to restore.\r\n * @param {boolean} deleted - When false, restores a deleted definition.\r\n */\r\n restoreDefinition(project, definitionId, deleted) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (deleted == null) {\r\n throw new TypeError('deleted can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n deleted: deleted,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing build definition. In order for this operation to succeed, the value of the \"Revision\" property of the request body must match the existing build definition's. It is recommended that you obtain the existing build definition by using GET, modify the build definition as necessary, and then submit the modified definition with PUT.\r\n *\r\n * @param {BuildInterfaces.BuildDefinition} definition - The new version of the definition. Its \"Revision\" property must match the existing definition for the update to be accepted.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {number} secretsSourceDefinitionId\r\n * @param {number} secretsSourceDefinitionRevision\r\n */\r\n updateDefinition(definition, project, definitionId, secretsSourceDefinitionId, secretsSourceDefinitionRevision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n secretsSourceDefinitionId: secretsSourceDefinitionId,\r\n secretsSourceDefinitionRevision: secretsSourceDefinitionRevision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"build\", \"dbeaf647-6167-421a-bda9-c9327b25e2e6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, definition, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the contents of a file in the given source code repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get branches. Can only be omitted for providers that do not support multiple repositories.\r\n * @param {string} commitOrBranch - The identifier of the commit or branch from which a file's contents are retrieved.\r\n * @param {string} path - The path to the file to retrieve, relative to the root of the repository.\r\n */\r\n getFileContents(project, providerName, serviceEndpointId, repository, commitOrBranch, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n commitOrBranch: commitOrBranch,\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"29d12225-b1d9-425f-b668-6c594a981313\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new folder.\r\n *\r\n * @param {BuildInterfaces.Folder} folder - The folder.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - The full path of the folder.\r\n */\r\n createFolder(folder, project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"a906531b-d2da-4f55-bda7-f3e676cc50d9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, folder, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Folder, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a definition folder. Definitions and their corresponding builds will also be deleted.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - The full path to the folder.\r\n */\r\n deleteFolder(project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"a906531b-d2da-4f55-bda7-f3e676cc50d9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of build definition folders.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - The path to start with.\r\n * @param {BuildInterfaces.FolderQueryOrder} queryOrder - The order in which folders should be returned.\r\n */\r\n getFolders(project, path, queryOrder) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n path: path\r\n };\r\n let queryValues = {\r\n queryOrder: queryOrder,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"a906531b-d2da-4f55-bda7-f3e676cc50d9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Folder, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing folder at given existing path\r\n *\r\n * @param {BuildInterfaces.Folder} folder - The new version of the folder.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - The full path to the folder.\r\n */\r\n updateFolder(folder, project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"a906531b-d2da-4f55-bda7-f3e676cc50d9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, folder, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Folder, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets pipeline general settings.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getBuildGeneralSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"c4aefd19-30ff-405b-80ad-aca021e7242a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates pipeline general settings.\r\n *\r\n * @param {BuildInterfaces.PipelineGeneralSettings} newSettings\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateBuildGeneralSettings(newSettings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"c4aefd19-30ff-405b-80ad-aca021e7242a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, newSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the retention history for the project collection. This includes pipelines that have custom retention rules that may prevent the retention job from cleaning them up, runs per pipeline with retention type, files associated with pipelines owned by the collection with retention type, and the number of files per pipeline.\r\n *\r\n * @param {number} daysToLookback\r\n */\r\n getRetentionHistory(daysToLookback) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n daysToLookback: daysToLookback,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"1a9c48be-0ef5-4ec2-b94f-f053bdd2d3bf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildRetentionHistory, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the latest build for a definition, optionally scoped to a specific branch.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} definition - definition name with optional leading folder path, or the definition id\r\n * @param {string} branchName - optional parameter that indicates the specific branch to use. If not specified, the default branch is used.\r\n */\r\n getLatestBuild(project, definition, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definition: definition\r\n };\r\n let queryValues = {\r\n branchName: branchName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"54481611-01f4-47f3-998f-160da0f0c229\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Build, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds new leases for pipeline runs.\r\n *\r\n * @param {BuildInterfaces.NewRetentionLease[]} newLeases\r\n * @param {string} project - Project ID or project name\r\n */\r\n addRetentionLeases(newLeases, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, newLeases, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes specific retention leases.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number[]} ids\r\n */\r\n deleteRetentionLeasesById(project, ids) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the details of the retention lease given a lease id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} leaseId\r\n */\r\n getRetentionLease(project, leaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n leaseId: leaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns any leases matching the specified MinimalRetentionLeases\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {BuildInterfaces.MinimalRetentionLease[]} leasesToFetch - List of JSON-serialized MinimalRetentionLeases separated by '|'\r\n */\r\n getRetentionLeasesByMinimalRetentionLeases(project, leasesToFetch) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (leasesToFetch == null) {\r\n throw new TypeError('leasesToFetch can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n leasesToFetch: leasesToFetch && leasesToFetch.join(\"|\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns any leases owned by the specified entity, optionally scoped to a single pipeline definition and run.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} ownerId\r\n * @param {number} definitionId - An optional parameter to limit the search to a specific pipeline definition.\r\n * @param {number} runId - An optional parameter to limit the search to a single pipeline run. Requires definitionId.\r\n */\r\n getRetentionLeasesByOwnerId(project, ownerId, definitionId, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ownerId: ownerId,\r\n definitionId: definitionId,\r\n runId: runId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns any leases owned by the specified user, optionally scoped to a single pipeline definition and run.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} userOwnerId - The user id to search for.\r\n * @param {number} definitionId - An optional parameter to limit the search to a specific pipeline definition.\r\n * @param {number} runId - An optional parameter to limit the search to a single pipeline run. Requires definitionId.\r\n */\r\n getRetentionLeasesByUserId(project, userOwnerId, definitionId, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (userOwnerId == null) {\r\n throw new TypeError('userOwnerId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n userOwnerId: userOwnerId,\r\n definitionId: definitionId,\r\n runId: runId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"272051e4-9af1-45b5-ae22-8d960a5539d4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RetentionLease, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets an individual log file for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {number} logId - The ID of the log file.\r\n * @param {number} startLine - The start line.\r\n * @param {number} endLine - The end line.\r\n */\r\n getBuildLog(project, buildId, logId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n logId: logId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"35a80daf-7f30-45fc-86e8-6b813d9c90df\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets an individual log file for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {number} logId - The ID of the log file.\r\n * @param {number} startLine - The start line.\r\n * @param {number} endLine - The end line.\r\n */\r\n getBuildLogLines(project, buildId, logId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n logId: logId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"35a80daf-7f30-45fc-86e8-6b813d9c90df\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the logs for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n getBuildLogs(project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"35a80daf-7f30-45fc-86e8-6b813d9c90df\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildLog, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the logs for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n getBuildLogsZip(project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"35a80daf-7f30-45fc-86e8-6b813d9c90df\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets an individual log file for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {number} logId - The ID of the log file.\r\n * @param {number} startLine - The start line.\r\n * @param {number} endLine - The end line.\r\n */\r\n getBuildLogZip(project, buildId, logId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n logId: logId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"35a80daf-7f30-45fc-86e8-6b813d9c90df\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets build metrics for a project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} metricAggregationType - The aggregation type to use (hourly, daily).\r\n * @param {Date} minMetricsTime - The date from which to calculate metrics.\r\n */\r\n getProjectMetrics(project, metricAggregationType, minMetricsTime) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n metricAggregationType: metricAggregationType\r\n };\r\n let queryValues = {\r\n minMetricsTime: minMetricsTime,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"7433fae7-a6bc-41dc-a6e2-eef9005ce41a\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildMetric, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets build metrics for a definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {Date} minMetricsTime - The date from which to calculate metrics.\r\n */\r\n getDefinitionMetrics(project, definitionId, minMetricsTime) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n minMetricsTime: minMetricsTime,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"d973b939-0ce0-4fec-91d8-da3940fa1827\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildMetric, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all build definition options supported by the system.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getBuildOptionDefinitions(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"591cb5a4-2d46-4f3a-a697-5cd42b6bd332\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildOptionDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the contents of a directory in the given source code repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get branches. Can only be omitted for providers that do not support multiple repositories.\r\n * @param {string} commitOrBranch - The identifier of the commit or branch from which a file's contents are retrieved.\r\n * @param {string} path - The path contents to list, relative to the root of the repository.\r\n */\r\n getPathContents(project, providerName, serviceEndpointId, repository, commitOrBranch, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n commitOrBranch: commitOrBranch,\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"7944d6fb-df01-4709-920a-7a189aa34037\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets properties for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string[]} filter - A comma-delimited list of properties. If specified, filters to these specific properties.\r\n */\r\n getBuildProperties(project, buildId, filter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n filter: filter && filter.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"0a6312e9-0627-49b7-8083-7d74a64849c9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates properties for a build.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} document - A json-patch document describing the properties to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n updateBuildProperties(customHeaders, document, project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"0a6312e9-0627-49b7-8083-7d74a64849c9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, document, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets properties for a definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {string[]} filter - A comma-delimited list of properties. If specified, filters to these specific properties.\r\n */\r\n getDefinitionProperties(project, definitionId, filter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n filter: filter && filter.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"d9826ad7-2a68-46a9-a6e9-677698777895\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates properties for a definition.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} document - A json-patch document describing the properties to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n */\r\n updateDefinitionProperties(customHeaders, document, project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"d9826ad7-2a68-46a9-a6e9-677698777895\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, document, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a pull request object from source provider.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} pullRequestId - Vendor-specific id of the pull request.\r\n * @param {string} repositoryId - Vendor-specific identifier or the name of the repository that contains the pull request.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n */\r\n getPullRequest(project, providerName, pullRequestId, repositoryId, serviceEndpointId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n repositoryId: repositoryId,\r\n serviceEndpointId: serviceEndpointId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"d8763ec7-9ff0-4fb4-b2b2-9d757906ff14\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a build report.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} type\r\n */\r\n getBuildReport(project, buildId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n type: type,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"45bcaa88-67e1-4042-a035-56d3b4a7d44c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a build report.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} type\r\n */\r\n getBuildReportHtmlContent(project, buildId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n type: type,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"45bcaa88-67e1-4042-a035-56d3b4a7d44c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/html\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of source code repositories.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - If specified, the vendor-specific identifier or the name of a single repository to get.\r\n * @param {BuildInterfaces.ResultSet} resultSet - 'top' for the repositories most relevant for the endpoint. If not set, all repositories are returned. Ignored if 'repository' is set.\r\n * @param {boolean} pageResults - If set to true, this will limit the set of results and will return a continuation token to continue the query.\r\n * @param {string} continuationToken - When paging results, this is a continuation token, returned by a previous call to this method, that can be used to return the next set of repositories.\r\n */\r\n listRepositories(project, providerName, serviceEndpointId, repository, resultSet, pageResults, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n resultSet: resultSet,\r\n pageResults: pageResults,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"d44d1680-f978-4834-9b93-8c6e132329c9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {BuildInterfaces.DefinitionResourceReference[]} resources\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId\r\n */\r\n authorizeDefinitionResources(resources, project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"ea623316-1967-45eb-89ab-e9e6110cf2d6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, resources, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId\r\n */\r\n getDefinitionResources(project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"ea623316-1967-45eb-89ab-e9e6110cf2d6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets information about build resources in the system.\r\n *\r\n */\r\n getResourceUsage() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"3813d06c-9e36-4ea1-aac3-61a485d60e3d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the project's retention settings.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRetentionSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"dadb46e7-5851-4c72-820e-ae8abb82f59f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the project's retention settings.\r\n *\r\n * @param {BuildInterfaces.UpdateProjectRetentionSettingModel} updateModel\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateRetentionSettings(updateModel, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"dadb46e7-5851-4c72-820e-ae8abb82f59f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all revisions of a definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n */\r\n getDefinitionRevisions(project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"7c116775-52e5-453e-8c5d-914d9762d8c4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionRevision, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the build settings.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getBuildSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"aa8c1c9c-ef8b-474a-b8c4-785c7b191d0d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the build settings.\r\n *\r\n * @param {BuildInterfaces.BuildSettings} settings - The new settings.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateBuildSettings(settings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"aa8c1c9c-ef8b-474a-b8c4-785c7b191d0d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, settings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of source providers and their capabilities.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n listSourceProviders(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"3ce81729-954f-423d-a581-9fea01d25186\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.SourceProviderAttributes, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a build stage\r\n *\r\n * @param {BuildInterfaces.UpdateStageParameters} updateParameters\r\n * @param {number} buildId\r\n * @param {string} stageRefName\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateStage(updateParameters, buildId, stageRefName, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n stageRefName: stageRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"b8aac6c9-744b-46e1-88fc-3550969f9313\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n *

Gets the build status for a definition, optionally scoped to a specific branch, stage, job, and configuration.

If there are more than one, then it is required to pass in a stageName value when specifying a jobName, and the same rule then applies for both if passing a configuration parameter.

\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} definition - Either the definition name with optional leading folder path, or the definition id.\r\n * @param {string} branchName - Only consider the most recent build for this branch. If not specified, the default branch is used.\r\n * @param {string} stageName - Use this stage within the pipeline to render the status.\r\n * @param {string} jobName - Use this job within a stage of the pipeline to render the status.\r\n * @param {string} configuration - Use this job configuration to render the status\r\n * @param {string} label - Replaces the default text on the left side of the badge.\r\n */\r\n getStatusBadge(project, definition, branchName, stageName, jobName, configuration, label) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definition: definition\r\n };\r\n let queryValues = {\r\n branchName: branchName,\r\n stageName: stageName,\r\n jobName: jobName,\r\n configuration: configuration,\r\n label: label,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"07acfdce-4757-4439-b422-ddd13a2fcc10\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a tag to a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} tag - The tag to add.\r\n */\r\n addBuildTag(project, buildId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"6e6114b2-8161-44c8-8f6c-c5505782427f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds tags to a build.\r\n *\r\n * @param {string[]} tags - The tags to add.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n addBuildTags(tags, project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"6e6114b2-8161-44c8-8f6c-c5505782427f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, tags, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a tag from a build. NOTE: This API will not work for tags with special characters. To remove tags with special characters, use the PATCH method instead (in 6.0+)\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {string} tag - The tag to remove.\r\n */\r\n deleteBuildTag(project, buildId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"6e6114b2-8161-44c8-8f6c-c5505782427f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the tags for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n getBuildTags(project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"6e6114b2-8161-44c8-8f6c-c5505782427f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds/Removes tags from a build.\r\n *\r\n * @param {BuildInterfaces.UpdateTagParameters} updateParameters - The tags to add/remove.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n */\r\n updateBuildTags(updateParameters, project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"6e6114b2-8161-44c8-8f6c-c5505782427f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a tag to a definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {string} tag - The tag to add.\r\n */\r\n addDefinitionTag(project, definitionId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"cb894432-134a-4d31-a839-83beceaace4b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds multiple tags to a definition.\r\n *\r\n * @param {string[]} tags - The tags to add.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n */\r\n addDefinitionTags(tags, project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"cb894432-134a-4d31-a839-83beceaace4b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, tags, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a tag from a definition. NOTE: This API will not work for tags with special characters. To remove tags with special characters, use the PATCH method instead (in 6.0+)\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {string} tag - The tag to remove.\r\n */\r\n deleteDefinitionTag(project, definitionId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"cb894432-134a-4d31-a839-83beceaace4b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the tags for a definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {number} revision - The definition revision number. If not specified, uses the latest revision of the definition.\r\n */\r\n getDefinitionTags(project, definitionId, revision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"cb894432-134a-4d31-a839-83beceaace4b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds/Removes tags from a definition.\r\n *\r\n * @param {BuildInterfaces.UpdateTagParameters} updateParameters - The tags to add/remove.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n */\r\n updateDefinitionTags(updateParameters, project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"cb894432-134a-4d31-a839-83beceaace4b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a tag from builds, definitions, and from the tag store\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} tag - The tag to remove.\r\n */\r\n deleteTag(project, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"d84ac5c6-edc7-43d5-adc9-1b34be5dea09\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of all build tags in the project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getTags(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"d84ac5c6-edc7-43d5-adc9-1b34be5dea09\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a build definition template.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - The ID of the template.\r\n */\r\n deleteTemplate(project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"e884571e-7f92-4d6a-9274-3f5649900835\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a specific build definition template.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - The ID of the requested template.\r\n */\r\n getTemplate(project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"e884571e-7f92-4d6a-9274-3f5649900835\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionTemplate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all definition templates.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getTemplates(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"e884571e-7f92-4d6a-9274-3f5649900835\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionTemplate, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing build definition template.\r\n *\r\n * @param {BuildInterfaces.BuildDefinitionTemplate} template - The new version of the template.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - The ID of the template.\r\n */\r\n saveTemplate(template, project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"build\", \"e884571e-7f92-4d6a-9274-3f5649900835\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, template, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.BuildDefinitionTemplate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets details for a build\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} timelineId\r\n * @param {number} changeId\r\n * @param {string} planId\r\n */\r\n getBuildTimeline(project, buildId, timelineId, changeId, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId,\r\n timelineId: timelineId\r\n };\r\n let queryValues = {\r\n changeId: changeId,\r\n planId: planId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"8baac422-4c6e-4de5-8532-db96d92acffa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.Timeline, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Recreates the webhooks for the specified triggers in the given source code repository.\r\n *\r\n * @param {BuildInterfaces.DefinitionTriggerType[]} triggerTypes - The types of triggers to restore webhooks for.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get webhooks. Can only be omitted for providers that do not support multiple repositories.\r\n */\r\n restoreWebhooks(triggerTypes, project, providerName, serviceEndpointId, repository) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"793bceb8-9736-4030-bd2f-fb3ce6d6b478\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, triggerTypes, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of webhooks installed in the given source code repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} providerName - The name of the source provider.\r\n * @param {string} serviceEndpointId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TFVC or TFGit.\r\n * @param {string} repository - If specified, the vendor-specific identifier or the name of the repository to get webhooks. Can only be omitted for providers that do not support multiple repositories.\r\n */\r\n listWebhooks(project, providerName, serviceEndpointId, repository) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n providerName: providerName\r\n };\r\n let queryValues = {\r\n serviceEndpointId: serviceEndpointId,\r\n repository: repository,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"8f20ff82-9498-4812-9f6e-9c01bdc50e99\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, BuildInterfaces.TypeInfo.RepositoryWebhook, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the work items associated with a build. Only work items in the same project are returned.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {number} top - The maximum number of work items to return.\r\n */\r\n getBuildWorkItemsRefs(project, buildId, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"5a21f5d2-5642-47e4-a0bd-1356e6731bee\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the work items associated with a build, filtered to specific commits.\r\n *\r\n * @param {string[]} commitIds - A comma-delimited list of commit IDs.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - The ID of the build.\r\n * @param {number} top - The maximum number of work items to return, or the number of commits to consider if no commit IDs are specified.\r\n */\r\n getBuildWorkItemsRefsFromCommits(commitIds, project, buildId, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"5a21f5d2-5642-47e4-a0bd-1356e6731bee\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, commitIds, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all the work items between two builds.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} fromBuildId - The ID of the first build.\r\n * @param {number} toBuildId - The ID of the last build.\r\n * @param {number} top - The maximum number of work items to return.\r\n */\r\n getWorkItemsBetweenBuilds(project, fromBuildId, toBuildId, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (fromBuildId == null) {\r\n throw new TypeError('fromBuildId can not be null or undefined');\r\n }\r\n if (toBuildId == null) {\r\n throw new TypeError('toBuildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fromBuildId: fromBuildId,\r\n toBuildId: toBuildId,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"build\", \"52ba8915-5518-42e3-a4bb-b0182d159e2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Converts a definition to YAML, optionally at a specific revision.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - The ID of the definition.\r\n * @param {number} revision - The revision number to retrieve. If this is not specified, the latest version will be returned.\r\n * @param {Date} minMetricsTime - If specified, indicates the date from which metrics should be included.\r\n * @param {string[]} propertyFilters - A comma-delimited list of properties to include in the results.\r\n * @param {boolean} includeLatestBuilds\r\n */\r\n getDefinitionYaml(project, definitionId, revision, minMetricsTime, propertyFilters, includeLatestBuilds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n minMetricsTime: minMetricsTime,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n includeLatestBuilds: includeLatestBuilds,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"build\", \"7c3df3a1-7e51-4150-8cf7-540347f8697f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nBuildApi.RESOURCE_AREA_ID = \"965220d5-5bb9-42cf-8d67-9b146df2a5a4\";\r\nexports.BuildApi = BuildApi;\r\n","\"use strict\";\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst vsom = require(\"./VsoClient\");\r\nconst serm = require(\"./Serialization\");\r\nconst rm = require(\"typed-rest-client/RestClient\");\r\nconst hm = require(\"typed-rest-client/HttpClient\");\r\nclass ClientApiBase {\r\n constructor(baseUrl, handlers, userAgent, options) {\r\n this.baseUrl = baseUrl;\r\n this.http = new hm.HttpClient(userAgent, handlers, options);\r\n this.rest = new rm.RestClient(userAgent, null, handlers, options);\r\n this.vsoClient = new vsom.VsoClient(baseUrl, this.rest);\r\n this.userAgent = userAgent;\r\n }\r\n createAcceptHeader(type, apiVersion) {\r\n return type + (apiVersion ? (';api-version=' + apiVersion) : '');\r\n }\r\n createRequestOptions(type, apiVersion) {\r\n let options = {};\r\n options.acceptHeader = this.createAcceptHeader(type, apiVersion);\r\n return options;\r\n }\r\n formatResponse(data, responseTypeMetadata, isCollection) {\r\n let serializationData = {\r\n responseTypeMetadata: responseTypeMetadata,\r\n responseIsCollection: isCollection\r\n };\r\n let deserializedResult = serm.ContractSerializer.deserialize(data, serializationData.responseTypeMetadata, false, serializationData.responseIsCollection);\r\n return deserializedResult;\r\n }\r\n}\r\nexports.ClientApiBase = ClientApiBase;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst CoreInterfaces = require(\"./interfaces/CoreInterfaces\");\r\nconst OperationsInterfaces = require(\"./interfaces/common/OperationsInterfaces\");\r\nclass CoreApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Core-api', options);\r\n }\r\n /**\r\n * Removes the avatar for the project.\r\n *\r\n * @param {string} projectId - The ID or name of the project.\r\n */\r\n removeProjectAvatar(projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"54b2a2a0-859b-4d05-827c-ec4c862f641a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Sets the avatar for the project.\r\n *\r\n * @param {CoreInterfaces.ProjectAvatar} avatarBlob - The avatar blob data object to upload.\r\n * @param {string} projectId - The ID or name of the project.\r\n */\r\n setProjectAvatar(avatarBlob, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"54b2a2a0-859b-4d05-827c-ec4c862f641a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, avatarBlob, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {CoreInterfaces.WebApiConnectedServiceDetails} connectedServiceCreationData\r\n * @param {string} projectId\r\n */\r\n createConnectedService(connectedServiceCreationData, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"b4f70219-e18b-42c5-abe3-98b07d35525e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, connectedServiceCreationData, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.WebApiConnectedService, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} projectId\r\n * @param {string} name\r\n */\r\n getConnectedServiceDetails(projectId, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"b4f70219-e18b-42c5-abe3-98b07d35525e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.WebApiConnectedServiceDetails, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} projectId\r\n * @param {CoreInterfaces.ConnectedServiceKind} kind\r\n */\r\n getConnectedServices(projectId, kind) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n let queryValues = {\r\n kind: kind,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"b4f70219-e18b-42c5-abe3-98b07d35525e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.WebApiConnectedService, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {CoreInterfaces.IdentityData} mruData\r\n * @param {string} mruName\r\n */\r\n createIdentityMru(mruData, mruName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n mruName: mruName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"5ead0b70-2572-4697-97e9-f341069a783a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, mruData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {CoreInterfaces.IdentityData} mruData\r\n * @param {string} mruName\r\n */\r\n deleteIdentityMru(mruData, mruName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n mruName: mruName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"5ead0b70-2572-4697-97e9-f341069a783a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} mruName\r\n */\r\n getIdentityMru(mruName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n mruName: mruName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"5ead0b70-2572-4697-97e9-f341069a783a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {CoreInterfaces.IdentityData} mruData\r\n * @param {string} mruName\r\n */\r\n updateIdentityMru(mruData, mruName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n mruName: mruName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"5ead0b70-2572-4697-97e9-f341069a783a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, mruData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of members for a specific team.\r\n *\r\n * @param {string} projectId - The name or ID (GUID) of the team project the team belongs to.\r\n * @param {string} teamId - The name or ID (GUID) of the team .\r\n * @param {number} top\r\n * @param {number} skip\r\n */\r\n getTeamMembersWithExtendedProperties(projectId, teamId, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n teamId: teamId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"294c494c-2600-4d7e-b76c-3dd50c3c95be\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a process by ID.\r\n *\r\n * @param {string} processId - ID for a process.\r\n */\r\n getProcessById(processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"93878975-88c5-4e6a-8abb-7ddd77a8a7d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.Process, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of processes.\r\n *\r\n */\r\n getProcesses() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"93878975-88c5-4e6a-8abb-7ddd77a8a7d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.Process, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get project collection with the specified id or name.\r\n *\r\n * @param {string} collectionId\r\n */\r\n getProjectCollection(collectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n collectionId: collectionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"8031090f-ef1d-4af6-85fc-698cd75d42bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.TeamProjectCollection, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get project collection references for this application.\r\n *\r\n * @param {number} top\r\n * @param {number} skip\r\n */\r\n getProjectCollections(top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"8031090f-ef1d-4af6-85fc-698cd75d42bf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the history of changes to the project.\r\n *\r\n * @param {number} minRevision - The minimum revision number to return in the history.\r\n */\r\n getProjectHistoryEntries(minRevision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n minRevision: minRevision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"6488a877-4749-4954-82ea-7340d36be9f2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.ProjectInfo, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get project with the specified id or name, optionally including capabilities.\r\n *\r\n * @param {string} projectId\r\n * @param {boolean} includeCapabilities - Include capabilities (such as source control) in the team project result (default: false).\r\n * @param {boolean} includeHistory - Search within renamed projects (that had such name in the past).\r\n */\r\n getProject(projectId, includeCapabilities, includeHistory) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n let queryValues = {\r\n includeCapabilities: includeCapabilities,\r\n includeHistory: includeHistory,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"core\", \"603fe2ac-9723-48b9-88ad-09305aa6c6e1\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.TeamProject, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all projects in the organization that the authenticated user has access to.\r\n *\r\n * @param {any} stateFilter - Filter on team projects in a specific team project state (default: WellFormed).\r\n * @param {number} top\r\n * @param {number} skip\r\n * @param {string} continuationToken\r\n * @param {boolean} getDefaultTeamImageUrl\r\n */\r\n getProjects(stateFilter, top, skip, continuationToken, getDefaultTeamImageUrl) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n stateFilter: stateFilter,\r\n '$top': top,\r\n '$skip': skip,\r\n continuationToken: continuationToken,\r\n getDefaultTeamImageUrl: getDefaultTeamImageUrl,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"core\", \"603fe2ac-9723-48b9-88ad-09305aa6c6e1\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, CoreInterfaces.TypeInfo.TeamProjectReference, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Queues a project to be created. Use the [GetOperation](../../operations/operations/get) to periodically check for create project status.\r\n *\r\n * @param {CoreInterfaces.TeamProject} projectToCreate - The project to create.\r\n */\r\n queueCreateProject(projectToCreate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"core\", \"603fe2ac-9723-48b9-88ad-09305aa6c6e1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, projectToCreate, options);\r\n let ret = this.formatResponse(res.result, OperationsInterfaces.TypeInfo.OperationReference, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Queues a project to be deleted. Use the [GetOperation](../../operations/operations/get) to periodically check for delete project status.\r\n *\r\n * @param {string} projectId - The project id of the project to delete.\r\n */\r\n queueDeleteProject(projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"core\", \"603fe2ac-9723-48b9-88ad-09305aa6c6e1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, OperationsInterfaces.TypeInfo.OperationReference, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update an existing project's name, abbreviation, description, or restore a project.\r\n *\r\n * @param {CoreInterfaces.TeamProject} projectUpdate - The updates for the project. The state must be set to wellFormed to restore the project.\r\n * @param {string} projectId - The project id of the project to update.\r\n */\r\n updateProject(projectUpdate, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"core\", \"603fe2ac-9723-48b9-88ad-09305aa6c6e1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, projectUpdate, options);\r\n let ret = this.formatResponse(res.result, OperationsInterfaces.TypeInfo.OperationReference, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a collection of team project properties for multiple projects.\r\n *\r\n * @param {string[]} projectIds - A comma-delimited string of team project IDs\r\n * @param {string[]} properties\r\n */\r\n getProjectsProperties(projectIds, properties) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (projectIds == null) {\r\n throw new TypeError('projectIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n projectIds: projectIds && projectIds.join(\",\"),\r\n properties: properties && properties.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"0a3ffdfc-fe94-47a6-bb27-79bf3f762eac\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a collection of team project properties.\r\n *\r\n * @param {string} projectId - The team project ID.\r\n * @param {string[]} keys - A comma-delimited string of team project property names. Wildcard characters (\"?\" and \"*\") are supported. If no key is specified, all properties will be returned.\r\n */\r\n getProjectProperties(projectId, keys) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n let queryValues = {\r\n keys: keys && keys.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"4976a71a-4487-49aa-8aab-a1eda469037a\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create, update, and delete team project properties.\r\n *\r\n * @param {string} projectId - The team project ID.\r\n * @param {VSSInterfaces.JsonPatchDocument} patchDocument - A JSON Patch document that represents an array of property operations. See RFC 6902 for more details on JSON Patch. The accepted operation verbs are Add and Remove, where Add is used for both creating and updating properties. The path consists of a forward slash and a property name.\r\n */\r\n setProjectProperties(customHeaders, projectId, patchDocument) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"core\", \"4976a71a-4487-49aa-8aab-a1eda469037a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, patchDocument, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {CoreInterfaces.Proxy} proxy\r\n */\r\n createOrUpdateProxy(proxy) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"ec1f4311-f2b4-4c15-b2b8-8990b80d2908\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, proxy, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} proxyUrl\r\n * @param {string} site\r\n */\r\n deleteProxy(proxyUrl, site) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (proxyUrl == null) {\r\n throw new TypeError('proxyUrl can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n proxyUrl: proxyUrl,\r\n site: site,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"ec1f4311-f2b4-4c15-b2b8-8990b80d2908\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} proxyUrl\r\n */\r\n getProxies(proxyUrl) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n proxyUrl: proxyUrl,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"core\", \"ec1f4311-f2b4-4c15-b2b8-8990b80d2908\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of all teams.\r\n *\r\n * @param {boolean} mine - If true, then return all teams requesting user is member. Otherwise return all teams user has read access.\r\n * @param {number} top - Maximum number of teams to return.\r\n * @param {number} skip - Number of teams to skip.\r\n * @param {boolean} expandIdentity - A value indicating whether or not to expand Identity information in the result WebApiTeam object.\r\n */\r\n getAllTeams(mine, top, skip, expandIdentity) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n '$mine': mine,\r\n '$top': top,\r\n '$skip': skip,\r\n '$expandIdentity': expandIdentity,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"7a4d9ee9-3433-4347-b47a-7a80f1cf307e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a team in a team project.\r\n *\r\n * @param {CoreInterfaces.WebApiTeam} team - The team data used to create the team.\r\n * @param {string} projectId - The name or ID (GUID) of the team project in which to create the team.\r\n */\r\n createTeam(team, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"d30a3dd1-f8ba-442a-b86a-bd0c0c383e59\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, team, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a team.\r\n *\r\n * @param {string} projectId - The name or ID (GUID) of the team project containing the team to delete.\r\n * @param {string} teamId - The name or ID of the team to delete.\r\n */\r\n deleteTeam(projectId, teamId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n teamId: teamId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"d30a3dd1-f8ba-442a-b86a-bd0c0c383e59\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a specific team.\r\n *\r\n * @param {string} projectId - The name or ID (GUID) of the team project containing the team.\r\n * @param {string} teamId - The name or ID (GUID) of the team.\r\n * @param {boolean} expandIdentity - A value indicating whether or not to expand Identity information in the result WebApiTeam object.\r\n */\r\n getTeam(projectId, teamId, expandIdentity) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n teamId: teamId\r\n };\r\n let queryValues = {\r\n '$expandIdentity': expandIdentity,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"d30a3dd1-f8ba-442a-b86a-bd0c0c383e59\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of teams.\r\n *\r\n * @param {string} projectId\r\n * @param {boolean} mine - If true return all the teams requesting user is member, otherwise return all the teams user has read access.\r\n * @param {number} top - Maximum number of teams to return.\r\n * @param {number} skip - Number of teams to skip.\r\n * @param {boolean} expandIdentity - A value indicating whether or not to expand Identity information in the result WebApiTeam object.\r\n */\r\n getTeams(projectId, mine, top, skip, expandIdentity) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId\r\n };\r\n let queryValues = {\r\n '$mine': mine,\r\n '$top': top,\r\n '$skip': skip,\r\n '$expandIdentity': expandIdentity,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"d30a3dd1-f8ba-442a-b86a-bd0c0c383e59\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a team's name and/or description.\r\n *\r\n * @param {CoreInterfaces.WebApiTeam} teamData\r\n * @param {string} projectId - The name or ID (GUID) of the team project containing the team to update.\r\n * @param {string} teamId - The name of ID of the team to update.\r\n */\r\n updateTeam(teamData, projectId, teamId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n teamId: teamId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"core\", \"d30a3dd1-f8ba-442a-b86a-bd0c0c383e59\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, teamData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nCoreApi.RESOURCE_AREA_ID = \"79134c72-4a58-4b42-976c-04e7115f32bf\";\r\nexports.CoreApi = CoreApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst DashboardInterfaces = require(\"./interfaces/DashboardInterfaces\");\r\nclass DashboardApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Dashboard-api', options);\r\n }\r\n /**\r\n * Create the supplied dashboard.\r\n *\r\n * @param {DashboardInterfaces.Dashboard} dashboard - The initial state of the dashboard\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n createDashboard(dashboard, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, dashboard, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a dashboard given its ID. This also deletes the widgets associated with this dashboard.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard to delete.\r\n */\r\n deleteDashboard(teamContext, dashboardId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a dashboard by its ID.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId\r\n */\r\n getDashboard(teamContext, dashboardId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of dashboards under a project.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getDashboardsByProject(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replace configuration for the specified dashboard. Replaces Widget list on Dashboard, only if property is supplied.\r\n *\r\n * @param {DashboardInterfaces.Dashboard} dashboard - The Configuration of the dashboard to replace.\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard to replace.\r\n */\r\n replaceDashboard(dashboard, teamContext, dashboardId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, dashboard, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the name and position of dashboards in the supplied group, and remove omitted dashboards. Does not modify dashboard content.\r\n *\r\n * @param {DashboardInterfaces.DashboardGroup} group\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n replaceDashboards(group, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Dashboard\", \"454b3e51-2e6e-48d4-ad81-978154089351\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, group, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.DashboardGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a widget on the specified dashboard.\r\n *\r\n * @param {DashboardInterfaces.Widget} widget - State of the widget to add\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of dashboard the widget will be added to.\r\n */\r\n createWidget(widget, teamContext, dashboardId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Dashboard\", \"bdcff53a-8355-4172-a00a-40497ea23afc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, widget, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete the specified widget.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard containing the widget.\r\n * @param {string} widgetId - ID of the widget to update.\r\n */\r\n deleteWidget(teamContext, dashboardId, widgetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId,\r\n widgetId: widgetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Dashboard\", \"bdcff53a-8355-4172-a00a-40497ea23afc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Dashboard, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the current state of the specified widget.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard containing the widget.\r\n * @param {string} widgetId - ID of the widget to read.\r\n */\r\n getWidget(teamContext, dashboardId, widgetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId,\r\n widgetId: widgetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Dashboard\", \"bdcff53a-8355-4172-a00a-40497ea23afc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Override the state of the specified widget.\r\n *\r\n * @param {DashboardInterfaces.Widget} widget - State to be written for the widget.\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard containing the widget.\r\n * @param {string} widgetId - ID of the widget to update.\r\n */\r\n replaceWidget(widget, teamContext, dashboardId, widgetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId,\r\n widgetId: widgetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Dashboard\", \"bdcff53a-8355-4172-a00a-40497ea23afc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, widget, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Perform a partial update of the specified widget.\r\n *\r\n * @param {DashboardInterfaces.Widget} widget - Description of the widget changes to apply. All non-null fields will be replaced.\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} dashboardId - ID of the dashboard containing the widget.\r\n * @param {string} widgetId - ID of the widget to update.\r\n */\r\n updateWidget(widget, teamContext, dashboardId, widgetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n dashboardId: dashboardId,\r\n widgetId: widgetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Dashboard\", \"bdcff53a-8355-4172-a00a-40497ea23afc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, widget, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.Widget, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the widget metadata satisfying the specified contribution ID.\r\n *\r\n * @param {string} contributionId - The ID of Contribution for the Widget\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWidgetMetadata(contributionId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n contributionId: contributionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Dashboard\", \"6b3628d3-e96f-4fc7-b176-50240b03b515\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.WidgetMetadataResponse, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all available widget metadata in alphabetical order, including widgets marked with isVisibleFromCatalog == false.\r\n *\r\n * @param {DashboardInterfaces.WidgetScope} scope\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWidgetTypes(scope, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (scope == null) {\r\n throw new TypeError('scope can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$scope': scope,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Dashboard\", \"6b3628d3-e96f-4fc7-b176-50240b03b515\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, DashboardInterfaces.TypeInfo.WidgetTypesResponse, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nDashboardApi.RESOURCE_AREA_ID = \"31c84e0a-3ece-48fd-a29d-100849af99ba\";\r\nexports.DashboardApi = DashboardApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst ExtensionManagementInterfaces = require(\"./interfaces/ExtensionManagementInterfaces\");\r\nconst GalleryInterfaces = require(\"./interfaces/GalleryInterfaces\");\r\nclass ExtensionManagementApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-ExtensionManagement-api', options);\r\n }\r\n /**\r\n * @param {string} itemId\r\n * @param {boolean} testCommerce\r\n * @param {boolean} isFreeOrTrialInstall\r\n * @param {boolean} isAccountOwner\r\n * @param {boolean} isLinked\r\n * @param {boolean} isConnectedServer\r\n * @param {boolean} isBuyOperationValid\r\n */\r\n getAcquisitionOptions(itemId, testCommerce, isFreeOrTrialInstall, isAccountOwner, isLinked, isConnectedServer, isBuyOperationValid) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (itemId == null) {\r\n throw new TypeError('itemId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n itemId: itemId,\r\n testCommerce: testCommerce,\r\n isFreeOrTrialInstall: isFreeOrTrialInstall,\r\n isAccountOwner: isAccountOwner,\r\n isLinked: isLinked,\r\n isConnectedServer: isConnectedServer,\r\n isBuyOperationValid: isBuyOperationValid,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"288dff58-d13b-468e-9671-0fb754e9398c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.AcquisitionOptions, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ExtensionManagementInterfaces.ExtensionAcquisitionRequest} acquisitionRequest\r\n */\r\n requestAcquisition(acquisitionRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"da616457-eed3-4672-92d7-18d21f5c1658\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, acquisitionRequest, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.ExtensionAcquisitionRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n getAuditLog(publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"23a312e0-562d-42fb-a505-5a046b5635db\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.ExtensionAuditLog, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} registrationId\r\n */\r\n registerAuthorization(publisherName, extensionName, registrationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n registrationId: registrationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"f21cfc80-d2d2-4248-98bb-7820c74c4606\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} doc\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n */\r\n createDocumentByName(doc, publisherName, extensionName, scopeType, scopeValue, collectionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, doc, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n * @param {string} documentId\r\n */\r\n deleteDocumentByName(publisherName, extensionName, scopeType, scopeValue, collectionName, documentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName,\r\n documentId: documentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n * @param {string} documentId\r\n */\r\n getDocumentByName(publisherName, extensionName, scopeType, scopeValue, collectionName, documentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName,\r\n documentId: documentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n */\r\n getDocumentsByName(publisherName, extensionName, scopeType, scopeValue, collectionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} doc\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n */\r\n setDocumentByName(doc, publisherName, extensionName, scopeType, scopeValue, collectionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, doc, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} doc\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} scopeType\r\n * @param {string} scopeValue\r\n * @param {string} collectionName\r\n */\r\n updateDocumentByName(doc, publisherName, extensionName, scopeType, scopeValue, collectionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n scopeType: scopeType,\r\n scopeValue: scopeValue,\r\n collectionName: collectionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"bbe06c18-1c8b-4fcd-b9c6-1535aaab8749\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, doc, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Query for one or more data collections for the specified extension. Note: the token used for authorization must have been issued on behalf of the specified extension.\r\n *\r\n * @param {ExtensionManagementInterfaces.ExtensionDataCollectionQuery} collectionQuery\r\n * @param {string} publisherName - Name of the publisher. Example: \"fabrikam\".\r\n * @param {string} extensionName - Name of the extension. Example: \"ops-tools\".\r\n */\r\n queryCollectionsByName(collectionQuery, publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"56c331f1-ce53-4318-adfd-4db5c52a7a2e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, collectionQuery, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List state and version information for all installed extensions.\r\n *\r\n * @param {boolean} includeDisabled - If true (the default), include disabled extensions in the results.\r\n * @param {boolean} includeErrors - If true, include installed extensions in an error state in the results.\r\n * @param {boolean} includeInstallationIssues\r\n * @param {boolean} forceRefresh\r\n */\r\n getStates(includeDisabled, includeErrors, includeInstallationIssues, forceRefresh) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n includeDisabled: includeDisabled,\r\n includeErrors: includeErrors,\r\n includeInstallationIssues: includeInstallationIssues,\r\n forceRefresh: forceRefresh,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"92755d3d-9a8a-42b3-8a4d-87359fe5aa93\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.ExtensionState, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ExtensionManagementInterfaces.InstalledExtensionQuery} query\r\n */\r\n queryExtensions(query) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"046c980f-1345-4ce2-bf85-b46d10ff4cfd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List the installed extensions in the account / project collection.\r\n *\r\n * @param {boolean} includeDisabledExtensions - If true (the default), include disabled extensions in the results.\r\n * @param {boolean} includeErrors - If true, include installed extensions with errors.\r\n * @param {string[]} assetTypes\r\n * @param {boolean} includeInstallationIssues\r\n */\r\n getInstalledExtensions(includeDisabledExtensions, includeErrors, assetTypes, includeInstallationIssues) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n includeDisabledExtensions: includeDisabledExtensions,\r\n includeErrors: includeErrors,\r\n assetTypes: assetTypes && assetTypes.join(\":\"),\r\n includeInstallationIssues: includeInstallationIssues,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"275424d0-c844-4fe2-bda6-04933a1357d8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update an installed extension. Typically this API is used to enable or disable an extension.\r\n *\r\n * @param {ExtensionManagementInterfaces.InstalledExtension} extension\r\n */\r\n updateInstalledExtension(extension) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"275424d0-c844-4fe2-bda6-04933a1357d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, extension, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get an installed extension by its publisher and extension name.\r\n *\r\n * @param {string} publisherName - Name of the publisher. Example: \"fabrikam\".\r\n * @param {string} extensionName - Name of the extension. Example: \"ops-tools\".\r\n * @param {string[]} assetTypes\r\n */\r\n getInstalledExtensionByName(publisherName, extensionName, assetTypes) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n assetTypes: assetTypes && assetTypes.join(\":\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"fb0da285-f23e-4b56-8b53-3ef5f9f6de66\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Install the specified extension into the account / project collection.\r\n *\r\n * @param {string} publisherName - Name of the publisher. Example: \"fabrikam\".\r\n * @param {string} extensionName - Name of the extension. Example: \"ops-tools\".\r\n * @param {string} version\r\n */\r\n installExtensionByName(publisherName, extensionName, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"fb0da285-f23e-4b56-8b53-3ef5f9f6de66\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.InstalledExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Uninstall the specified extension from the account / project collection.\r\n *\r\n * @param {string} publisherName - Name of the publisher. Example: \"fabrikam\".\r\n * @param {string} extensionName - Name of the extension. Example: \"ops-tools\".\r\n * @param {string} reason\r\n * @param {string} reasonCode\r\n */\r\n uninstallExtensionByName(publisherName, extensionName, reason, reasonCode) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n reason: reason,\r\n reasonCode: reasonCode,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"fb0da285-f23e-4b56-8b53-3ef5f9f6de66\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} userId\r\n */\r\n getPolicies(userId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n userId: userId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"e5cc8c09-407b-4867-8319-2ae3338cbf6f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.UserExtensionPolicy, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} rejectMessage\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} requesterId\r\n * @param {ExtensionManagementInterfaces.ExtensionRequestState} state\r\n */\r\n resolveRequest(rejectMessage, publisherName, extensionName, requesterId, state) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (state == null) {\r\n throw new TypeError('state can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n requesterId: requesterId\r\n };\r\n let queryValues = {\r\n state: state,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"aa93e1f3-511c-4364-8b9c-eb98818f2e0b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, rejectMessage, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getRequests() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"216b978f-b164-424e-ada2-b77561e842b7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.RequestedExtension, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} rejectMessage\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {ExtensionManagementInterfaces.ExtensionRequestState} state\r\n */\r\n resolveAllRequests(rejectMessage, publisherName, extensionName, state) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (state == null) {\r\n throw new TypeError('state can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n state: state,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"ba93e1f3-511c-4364-8b9c-eb98818f2e0b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, rejectMessage, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n deleteRequest(publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"f5afca1e-a728-4294-aa2d-4af0173431b5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} requestMessage\r\n */\r\n requestExtension(publisherName, extensionName, requestMessage) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"f5afca1e-a728-4294-aa2d-4af0173431b5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, requestMessage, options);\r\n let ret = this.formatResponse(res.result, ExtensionManagementInterfaces.TypeInfo.RequestedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getToken() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"ExtensionManagement\", \"3a2e24ed-1d6f-4cb2-9f3b-45a96bbfaf50\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nExtensionManagementApi.RESOURCE_AREA_ID = \"6c2b0933-3600-42ae-bf8b-93d4f7e83594\";\r\nexports.ExtensionManagementApi = ExtensionManagementApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst FeatureManagementInterfaces = require(\"./interfaces/FeatureManagementInterfaces\");\r\nclass FeatureManagementApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-FeatureManagement-api', options);\r\n }\r\n /**\r\n * Get a specific feature by its id\r\n *\r\n * @param {string} featureId - The contribution id of the feature\r\n */\r\n getFeature(featureId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n featureId: featureId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"c4209f25-7a27-41dd-9f04-06080c7b6afd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of all defined features\r\n *\r\n * @param {string} targetContributionId - Optional target contribution. If null/empty, return all features. If specified include the features that target the specified contribution.\r\n */\r\n getFeatures(targetContributionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n targetContributionId: targetContributionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"c4209f25-7a27-41dd-9f04-06080c7b6afd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the state of the specified feature for the given user/all-users scope\r\n *\r\n * @param {string} featureId - Contribution id of the feature\r\n * @param {string} userScope - User-Scope at which to get the value. Should be \"me\" for the current user or \"host\" for all users.\r\n */\r\n getFeatureState(featureId, userScope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n featureId: featureId,\r\n userScope: userScope\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"98911314-3f9b-4eaf-80e8-83900d8e85d9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Set the state of a feature\r\n *\r\n * @param {FeatureManagementInterfaces.ContributedFeatureState} feature - Posted feature state object. Should specify the effective value.\r\n * @param {string} featureId - Contribution id of the feature\r\n * @param {string} userScope - User-Scope at which to set the value. Should be \"me\" for the current user or \"host\" for all users.\r\n * @param {string} reason - Reason for changing the state\r\n * @param {string} reasonCode - Short reason code\r\n */\r\n setFeatureState(feature, featureId, userScope, reason, reasonCode) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n featureId: featureId,\r\n userScope: userScope\r\n };\r\n let queryValues = {\r\n reason: reason,\r\n reasonCode: reasonCode,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"98911314-3f9b-4eaf-80e8-83900d8e85d9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, feature, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the state of the specified feature for the given named scope\r\n *\r\n * @param {string} featureId - Contribution id of the feature\r\n * @param {string} userScope - User-Scope at which to get the value. Should be \"me\" for the current user or \"host\" for all users.\r\n * @param {string} scopeName - Scope at which to get the feature setting for (e.g. \"project\" or \"team\")\r\n * @param {string} scopeValue - Value of the scope (e.g. the project or team id)\r\n */\r\n getFeatureStateForScope(featureId, userScope, scopeName, scopeValue) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n featureId: featureId,\r\n userScope: userScope,\r\n scopeName: scopeName,\r\n scopeValue: scopeValue\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"dd291e43-aa9f-4cee-8465-a93c78e414a4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Set the state of a feature at a specific scope\r\n *\r\n * @param {FeatureManagementInterfaces.ContributedFeatureState} feature - Posted feature state object. Should specify the effective value.\r\n * @param {string} featureId - Contribution id of the feature\r\n * @param {string} userScope - User-Scope at which to set the value. Should be \"me\" for the current user or \"host\" for all users.\r\n * @param {string} scopeName - Scope at which to get the feature setting for (e.g. \"project\" or \"team\")\r\n * @param {string} scopeValue - Value of the scope (e.g. the project or team id)\r\n * @param {string} reason - Reason for changing the state\r\n * @param {string} reasonCode - Short reason code\r\n */\r\n setFeatureStateForScope(feature, featureId, userScope, scopeName, scopeValue, reason, reasonCode) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n featureId: featureId,\r\n userScope: userScope,\r\n scopeName: scopeName,\r\n scopeValue: scopeValue\r\n };\r\n let queryValues = {\r\n reason: reason,\r\n reasonCode: reasonCode,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"dd291e43-aa9f-4cee-8465-a93c78e414a4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, feature, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureState, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the effective state for a list of feature ids\r\n *\r\n * @param {FeatureManagementInterfaces.ContributedFeatureStateQuery} query - Features to query along with current scope values\r\n */\r\n queryFeatureStates(query) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"2b4486ad-122b-400c-ae65-17b6672c1f9d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureStateQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the states of the specified features for the default scope\r\n *\r\n * @param {FeatureManagementInterfaces.ContributedFeatureStateQuery} query - Query describing the features to query.\r\n * @param {string} userScope\r\n */\r\n queryFeatureStatesForDefaultScope(query, userScope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n userScope: userScope\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"3f810f28-03e2-4239-b0bc-788add3005e5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureStateQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the states of the specified features for the specific named scope\r\n *\r\n * @param {FeatureManagementInterfaces.ContributedFeatureStateQuery} query - Query describing the features to query.\r\n * @param {string} userScope\r\n * @param {string} scopeName\r\n * @param {string} scopeValue\r\n */\r\n queryFeatureStatesForNamedScope(query, userScope, scopeName, scopeValue) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n userScope: userScope,\r\n scopeName: scopeName,\r\n scopeValue: scopeValue\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"FeatureManagement\", \"f29e997b-c2da-4d15-8380-765788a1a74c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, FeatureManagementInterfaces.TypeInfo.ContributedFeatureStateQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.FeatureManagementApi = FeatureManagementApi;\r\n","\"use strict\";\r\n/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nconst stream = require(\"stream\");\r\nconst zlib = require(\"zlib\");\r\nconst httpm = require(\"typed-rest-client/HttpClient\");\r\nconst FileContainerApiBase = require(\"./FileContainerApiBase\");\r\nconst FileContainerInterfaces = require(\"./interfaces/FileContainerInterfaces\");\r\nclass FileContainerApi extends FileContainerApiBase.FileContainerApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, options);\r\n }\r\n /**\r\n * @param {number} containerId\r\n * @param {string} scope\r\n * @param {string} itemPath\r\n * @param {string} downloadFileName\r\n */\r\n getItem(containerId, scope, itemPath, downloadFileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n containerId: containerId\r\n };\r\n let queryValues = {\r\n scope: scope,\r\n itemPath: itemPath,\r\n '$format': \"OctetStream\",\r\n downloadFileName: downloadFileName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"4.0-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/octet-stream', verData.apiVersion);\r\n let res = yield this.http.get(url);\r\n let rres = {};\r\n let statusCode = res.message.statusCode;\r\n rres.statusCode = statusCode;\r\n // not found leads to null obj returned\r\n if (statusCode == httpm.HttpCodes.NotFound) {\r\n resolve(rres);\r\n }\r\n if (statusCode > 299) {\r\n let msg;\r\n // if exception/error in body, attempt to get better error\r\n let contents = yield res.readBody();\r\n let obj;\r\n if (contents && contents.length > 0) {\r\n obj = JSON.parse(contents);\r\n if (options && options.responseProcessor) {\r\n rres.result = options.responseProcessor(obj);\r\n }\r\n else {\r\n rres.result = obj;\r\n }\r\n }\r\n if (obj && obj.message) {\r\n msg = obj.message;\r\n }\r\n else {\r\n msg = \"Failed request: (\" + statusCode + \") \" + res.message.url;\r\n }\r\n reject(new Error(msg));\r\n }\r\n else {\r\n // if the response is gzipped, unzip it\r\n if (res.message.headers[\"content-encoding\"] === \"gzip\") {\r\n let unzipStream = zlib.createGunzip();\r\n res.message.pipe(unzipStream);\r\n rres.result = unzipStream;\r\n }\r\n else {\r\n rres.result = res.message;\r\n }\r\n resolve(rres);\r\n }\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n createItem(contentStream, uncompressedLength, containerId, itemPath, scope, options) {\r\n return new Promise((resolve, reject) => {\r\n let chunkStream = new ChunkStream(this, uncompressedLength, containerId, itemPath, scope, options);\r\n chunkStream.on('finish', () => {\r\n resolve(chunkStream.getItem());\r\n });\r\n contentStream.pipe(chunkStream);\r\n });\r\n }\r\n // used by ChunkStream\r\n _createItem(customHeaders, contentStream, containerId, itemPath, scope, onResult) {\r\n var routeValues = {\r\n containerId: containerId\r\n };\r\n var queryValues = {\r\n itemPath: itemPath,\r\n scope: scope,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"\";\r\n this.vsoClient.getVersioningData(\"4.0-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues)\r\n .then((versioningData) => {\r\n var url = versioningData.requestUrl;\r\n var serializationData = { responseTypeMetadata: FileContainerInterfaces.TypeInfo.FileContainerItem, responseIsCollection: false };\r\n let options = this.createRequestOptions('application/octet-stream', versioningData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n this.rest.uploadStream('PUT', url, contentStream, options)\r\n .then((res) => {\r\n let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainerItem, false);\r\n onResult(null, res.statusCode, ret);\r\n })\r\n .catch((err) => {\r\n onResult(err, err.statusCode, null);\r\n });\r\n }, (error) => {\r\n onResult(error, error.statusCode, null);\r\n });\r\n }\r\n}\r\nexports.FileContainerApi = FileContainerApi;\r\nclass ChunkStream extends stream.Writable {\r\n constructor(api, uncompressedLength, containerId, itemPath, scope, options) {\r\n super();\r\n this._buffer = new Buffer(ChunkStream.ChunkSize);\r\n this._length = 0;\r\n this._startRange = 0;\r\n this._bytesToSend = 0;\r\n this._totalReceived = 0;\r\n this._api = api;\r\n this._options = options || {};\r\n this._uncompressedLength = uncompressedLength;\r\n this._containerId = containerId;\r\n this._itemPath = itemPath;\r\n this._scope = scope;\r\n this._bytesToSend = this._options.isGzipped ? this._options.compressedLength : uncompressedLength;\r\n }\r\n _write(data, encoding, callback) {\r\n let chunk = data;\r\n if (!chunk) {\r\n if (this._length == 0) {\r\n callback();\r\n }\r\n else {\r\n // last chunk\r\n this._sendChunk(callback);\r\n }\r\n return;\r\n }\r\n let newBuffer = null;\r\n if (this._length + chunk.length > ChunkStream.ChunkSize) {\r\n // overflow\r\n let overflowPosition = chunk.length - (ChunkStream.ChunkSize - this._length);\r\n chunk.copy(this._buffer, this._length, 0, overflowPosition);\r\n this._length += overflowPosition;\r\n newBuffer = chunk.slice(overflowPosition);\r\n }\r\n else {\r\n chunk.copy(this._buffer, this._length, 0, chunk.length);\r\n this._length += chunk.length;\r\n }\r\n this._totalReceived += chunk.length;\r\n if (this._length >= ChunkStream.ChunkSize || this._totalReceived >= this._bytesToSend) {\r\n this._sendChunk(callback, newBuffer);\r\n }\r\n else {\r\n callback();\r\n }\r\n }\r\n _sendChunk(callback, newBuffer) {\r\n let endRange = this._startRange + this._length;\r\n let headers = {\r\n \"Content-Range\": \"bytes \" + this._startRange + \"-\" + (endRange - 1) + \"/\" + this._bytesToSend,\r\n \"Content-Length\": this._length\r\n };\r\n if (this._options.isGzipped) {\r\n headers[\"Accept-Encoding\"] = \"gzip\";\r\n headers[\"Content-Encoding\"] = \"gzip\";\r\n headers[\"x-tfs-filelength\"] = this._uncompressedLength;\r\n }\r\n this._startRange = endRange;\r\n this._api._createItem(headers, new BufferStream(this._buffer, this._length), this._containerId, this._itemPath, this._scope, (err, statusCode, item) => {\r\n if (newBuffer) {\r\n this._length = newBuffer.length;\r\n newBuffer.copy(this._buffer);\r\n }\r\n else {\r\n this._length = 0;\r\n }\r\n this._item = item;\r\n callback(err);\r\n });\r\n }\r\n getItem() {\r\n return this._item;\r\n }\r\n}\r\nChunkStream.ChunkSize = (16 * 1024 * 1024);\r\nclass BufferStream extends stream.Readable {\r\n constructor(buffer, length) {\r\n super();\r\n this._position = 0;\r\n this._length = 0;\r\n this._buffer = buffer;\r\n this._length = length;\r\n }\r\n _read(size) {\r\n if (this._position >= this._length) {\r\n this.push(null);\r\n return;\r\n }\r\n let end = Math.min(this._position + size, this._length);\r\n this.push(this._buffer.slice(this._position, end));\r\n this._position = end;\r\n }\r\n}\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst FileContainerInterfaces = require(\"./interfaces/FileContainerInterfaces\");\r\nclass FileContainerApiBase extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-FileContainer-api', options);\r\n }\r\n /**\r\n * Creates the specified items in in the referenced container.\r\n *\r\n * @param {VSSInterfaces.VssJsonCollectionWrapperV} items\r\n * @param {number} containerId\r\n * @param {string} scope - A guid representing the scope of the container. This is often the project id.\r\n */\r\n createItems(items, containerId, scope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n containerId: containerId\r\n };\r\n let queryValues = {\r\n scope: scope,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, items, options);\r\n let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainerItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the specified items in a container.\r\n *\r\n * @param {number} containerId - Container Id.\r\n * @param {string} itemPath - Path to delete.\r\n * @param {string} scope - A guid representing the scope of the container. This is often the project id.\r\n */\r\n deleteItem(containerId, itemPath, scope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (itemPath == null) {\r\n throw new TypeError('itemPath can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n containerId: containerId\r\n };\r\n let queryValues = {\r\n itemPath: itemPath,\r\n scope: scope,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets containers filtered by a comma separated list of artifact uris within the same scope, if not specified returns all containers\r\n *\r\n * @param {string} scope - A guid representing the scope of the container. This is often the project id.\r\n * @param {string} artifactUris\r\n */\r\n getContainers(scope, artifactUris) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n scope: scope,\r\n artifactUris: artifactUris,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainer, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} containerId\r\n * @param {string} scope\r\n * @param {string} itemPath\r\n * @param {boolean} metadata\r\n * @param {string} format\r\n * @param {string} downloadFileName\r\n * @param {boolean} includeDownloadTickets\r\n * @param {boolean} isShallow\r\n * @param {boolean} ignoreRequestedMediaType\r\n * @param {boolean} includeBlobMetadata\r\n * @param {boolean} saveAbsolutePath\r\n */\r\n getItems(containerId, scope, itemPath, metadata, format, downloadFileName, includeDownloadTickets, isShallow, ignoreRequestedMediaType, includeBlobMetadata, saveAbsolutePath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n containerId: containerId\r\n };\r\n let queryValues = {\r\n scope: scope,\r\n itemPath: itemPath,\r\n metadata: metadata,\r\n '$format': format,\r\n downloadFileName: downloadFileName,\r\n includeDownloadTickets: includeDownloadTickets,\r\n isShallow: isShallow,\r\n ignoreRequestedMediaType: ignoreRequestedMediaType,\r\n includeBlobMetadata: includeBlobMetadata,\r\n saveAbsolutePath: saveAbsolutePath,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Container\", \"e4f5c81e-e250-447b-9fef-bd48471bea5e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, FileContainerInterfaces.TypeInfo.FileContainerItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.FileContainerApiBase = FileContainerApiBase;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst compatBase = require(\"././GalleryCompatHttpClientBase\");\r\nconst GalleryInterfaces = require(\"./interfaces/GalleryInterfaces\");\r\nclass GalleryApi extends compatBase.GalleryCompatHttpClientBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Gallery-api', options);\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} accountName\r\n */\r\n shareExtensionById(extensionId, accountName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId,\r\n accountName: accountName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"1f19631b-a0b4-4a03-89c2-d79785d24360\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} accountName\r\n */\r\n unshareExtensionById(extensionId, accountName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId,\r\n accountName: accountName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"1f19631b-a0b4-4a03-89c2-d79785d24360\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} accountName\r\n */\r\n shareExtension(publisherName, extensionName, accountName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n accountName: accountName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"a1e66d8f-f5de-4d16-8309-91a4e015ee46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} accountName\r\n */\r\n unshareExtension(publisherName, extensionName, accountName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n accountName: accountName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"a1e66d8f-f5de-4d16-8309-91a4e015ee46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} itemId\r\n * @param {string} installationTarget\r\n * @param {boolean} testCommerce\r\n * @param {boolean} isFreeOrTrialInstall\r\n */\r\n getAcquisitionOptions(itemId, installationTarget, testCommerce, isFreeOrTrialInstall) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (installationTarget == null) {\r\n throw new TypeError('installationTarget can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n itemId: itemId\r\n };\r\n let queryValues = {\r\n installationTarget: installationTarget,\r\n testCommerce: testCommerce,\r\n isFreeOrTrialInstall: isFreeOrTrialInstall,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"9d0a0105-075e-4760-aa15-8bcf54d1bd7d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.AcquisitionOptions, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionAcquisitionRequest} acquisitionRequest\r\n */\r\n requestAcquisition(acquisitionRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"3adb1f2d-e328-446e-be73-9f6d98071c45\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, acquisitionRequest, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionAcquisitionRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n * @param {string} assetType\r\n * @param {string} accountToken\r\n * @param {boolean} acceptDefault\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getAssetByName(customHeaders, publisherName, extensionName, version, assetType, accountToken, acceptDefault, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version,\r\n assetType: assetType\r\n };\r\n let queryValues = {\r\n accountToken: accountToken,\r\n acceptDefault: acceptDefault,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"7529171f-a002-4180-93ba-685f358a0482\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} version\r\n * @param {string} assetType\r\n * @param {string} accountToken\r\n * @param {boolean} acceptDefault\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getAsset(customHeaders, extensionId, version, assetType, accountToken, acceptDefault, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId,\r\n version: version,\r\n assetType: assetType\r\n };\r\n let queryValues = {\r\n accountToken: accountToken,\r\n acceptDefault: acceptDefault,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"5d545f3d-ef47-488b-8be3-f5ee1517856c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n * @param {string} assetType\r\n * @param {string} accountToken\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getAssetAuthenticated(customHeaders, publisherName, extensionName, version, assetType, accountToken, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version,\r\n assetType: assetType\r\n };\r\n let queryValues = {\r\n accountToken: accountToken,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"506aff36-2622-4f70-8063-77cce6366d20\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} azurePublisherId\r\n */\r\n associateAzurePublisher(publisherName, azurePublisherId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (azurePublisherId == null) {\r\n throw new TypeError('azurePublisherId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n azurePublisherId: azurePublisherId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"efd202a6-9d87-4ebc-9229-d2b8ae2fdb6d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n */\r\n queryAssociatedAzurePublisher(publisherName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"efd202a6-9d87-4ebc-9229-d2b8ae2fdb6d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} languages\r\n */\r\n getCategories(languages) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n languages: languages,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"e0a5a71e-3ac3-43a0-ae7d-0bb5c3046a2a\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} categoryName\r\n * @param {string} languages\r\n * @param {string} product\r\n */\r\n getCategoryDetails(categoryName, languages, product) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n categoryName: categoryName\r\n };\r\n let queryValues = {\r\n languages: languages,\r\n product: product,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"75d3c04d-84d2-4973-acd2-22627587dabc\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} product\r\n * @param {string} categoryId\r\n * @param {number} lcid\r\n * @param {string} source\r\n * @param {string} productVersion\r\n * @param {string} skus\r\n * @param {string} subSkus\r\n */\r\n getCategoryTree(product, categoryId, lcid, source, productVersion, skus, subSkus) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n product: product,\r\n categoryId: categoryId\r\n };\r\n let queryValues = {\r\n lcid: lcid,\r\n source: source,\r\n productVersion: productVersion,\r\n skus: skus,\r\n subSkus: subSkus,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"1102bb42-82b0-4955-8d8a-435d6b4cedd3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} product\r\n * @param {number} lcid\r\n * @param {string} source\r\n * @param {string} productVersion\r\n * @param {string} skus\r\n * @param {string} subSkus\r\n */\r\n getRootCategories(product, lcid, source, productVersion, skus, subSkus) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n product: product\r\n };\r\n let queryValues = {\r\n lcid: lcid,\r\n source: source,\r\n productVersion: productVersion,\r\n skus: skus,\r\n subSkus: subSkus,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"31fba831-35b2-46f6-a641-d05de5a877d8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n */\r\n getCertificate(publisherName, extensionName, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"e905ad6a-3f1f-4d08-9f6d-7d357ff8b7d0\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n getContentVerificationLog(publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"c0f1c7c4-3557-4ffb-b774-1e48c4865e99\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.CustomerSupportRequest} customerSupportRequest\r\n */\r\n createSupportRequest(customerSupportRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"8eded385-026a-4c15-b810-b8eb402771f1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, customerSupportRequest, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n createDraftForEditExtension(publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"02b33873-4e61-496e-83a2-59d1df46b7d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionDraftPatch} draftPatch\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} draftId\r\n */\r\n performEditExtensionDraftOperation(draftPatch, publisherName, extensionName, draftId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n draftId: draftId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"02b33873-4e61-496e-83a2-59d1df46b7d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, draftPatch, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} draftId\r\n * @param {String} fileName - Header to pass the filename of the uploaded data\r\n */\r\n updatePayloadInDraftForEditExtension(customHeaders, contentStream, publisherName, extensionName, draftId, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n draftId: draftId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n customHeaders[\"X-Market-UploadFileName\"] = \"fileName\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"02b33873-4e61-496e-83a2-59d1df46b7d8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} draftId\r\n * @param {string} assetType\r\n */\r\n addAssetForEditExtensionDraft(customHeaders, contentStream, publisherName, extensionName, draftId, assetType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n draftId: draftId,\r\n assetType: assetType\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"f1db9c47-6619-4998-a7e5-d7f9f41a4617\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {String} product - Header to pass the product type of the payload file\r\n * @param {String} fileName - Header to pass the filename of the uploaded data\r\n */\r\n createDraftForNewExtension(customHeaders, contentStream, publisherName, product, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n customHeaders[\"X-Market-UploadFileProduct\"] = \"product\";\r\n customHeaders[\"X-Market-UploadFileName\"] = \"fileName\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"b3ab127d-ebb9-4d22-b611-4e09593c8d79\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionDraftPatch} draftPatch\r\n * @param {string} publisherName\r\n * @param {string} draftId\r\n */\r\n performNewExtensionDraftOperation(draftPatch, publisherName, draftId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n draftId: draftId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"b3ab127d-ebb9-4d22-b611-4e09593c8d79\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, draftPatch, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {string} draftId\r\n * @param {String} fileName - Header to pass the filename of the uploaded data\r\n */\r\n updatePayloadInDraftForNewExtension(customHeaders, contentStream, publisherName, draftId, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n draftId: draftId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n customHeaders[\"X-Market-UploadFileName\"] = \"fileName\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"b3ab127d-ebb9-4d22-b611-4e09593c8d79\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDraft, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {string} draftId\r\n * @param {string} assetType\r\n */\r\n addAssetForNewExtensionDraft(customHeaders, contentStream, publisherName, draftId, assetType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n draftId: draftId,\r\n assetType: assetType\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"88c0b1c8-b4f1-498a-9b2a-8446ef9f32e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} draftId\r\n * @param {string} assetType\r\n * @param {string} extensionName\r\n */\r\n getAssetFromEditExtensionDraft(publisherName, draftId, assetType, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (extensionName == null) {\r\n throw new TypeError('extensionName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n draftId: draftId,\r\n assetType: assetType\r\n };\r\n let queryValues = {\r\n extensionName: extensionName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"88c0b1c8-b4f1-498a-9b2a-8446ef9f32e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} draftId\r\n * @param {string} assetType\r\n */\r\n getAssetFromNewExtensionDraft(publisherName, draftId, assetType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n draftId: draftId,\r\n assetType: assetType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"88c0b1c8-b4f1-498a-9b2a-8446ef9f32e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get install/uninstall events of an extension. If both count and afterDate parameters are specified, count takes precedence.\r\n *\r\n * @param {string} publisherName - Name of the publisher\r\n * @param {string} extensionName - Name of the extension\r\n * @param {number} count - Count of events to fetch, applies to each event type.\r\n * @param {Date} afterDate - Fetch events that occurred on or after this date\r\n * @param {string} include - Filter options. Supported values: install, uninstall, review, acquisition, sales. Default is to fetch all types of events\r\n * @param {string} includeProperty - Event properties to include. Currently only 'lastContactDetails' is supported for uninstall events\r\n */\r\n getExtensionEvents(publisherName, extensionName, count, afterDate, include, includeProperty) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n count: count,\r\n afterDate: afterDate,\r\n include: include,\r\n includeProperty: includeProperty,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"3d13c499-2168-4d06-bef4-14aba185dcd5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionEvents, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * API endpoint to publish extension install/uninstall events. This is meant to be invoked by EMS only for sending us data related to install/uninstall of an extension.\r\n *\r\n * @param {GalleryInterfaces.ExtensionEvents[]} extensionEvents\r\n */\r\n publishExtensionEvents(extensionEvents) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"0bf2bd3a-70e0-4d5d-8bf7-bd4a9c2ab6e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, extensionEvents, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionQuery} extensionQuery\r\n * @param {string} accountToken\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n queryExtensions(customHeaders, extensionQuery, accountToken, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n accountToken: accountToken,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"eb9d5ee1-6d43-456b-b80e-8a96fbc014b6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.create(url, extensionQuery, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} extensionType\r\n * @param {string} reCaptchaToken\r\n */\r\n createExtension(customHeaders, contentStream, extensionType, reCaptchaToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n extensionType: extensionType,\r\n reCaptchaToken: reCaptchaToken,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} version\r\n */\r\n deleteExtensionById(extensionId, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId\r\n };\r\n let queryValues = {\r\n version: version,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} version\r\n * @param {GalleryInterfaces.ExtensionQueryFlags} flags\r\n */\r\n getExtensionById(extensionId, version, flags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId\r\n };\r\n let queryValues = {\r\n version: version,\r\n flags: flags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} extensionId\r\n * @param {string} reCaptchaToken\r\n */\r\n updateExtensionById(extensionId, reCaptchaToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId\r\n };\r\n let queryValues = {\r\n reCaptchaToken: reCaptchaToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName\r\n * @param {string} extensionType\r\n * @param {string} reCaptchaToken\r\n */\r\n createExtensionWithPublisher(customHeaders, contentStream, publisherName, extensionType, reCaptchaToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n extensionType: extensionType,\r\n reCaptchaToken: reCaptchaToken,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n */\r\n deleteExtension(publisherName, extensionName, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n version: version,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n * @param {GalleryInterfaces.ExtensionQueryFlags} flags\r\n * @param {string} accountToken\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getExtension(customHeaders, publisherName, extensionName, version, flags, accountToken, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n version: version,\r\n flags: flags,\r\n accountToken: accountToken,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * REST endpoint to update an extension.\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName - Name of the publisher\r\n * @param {string} extensionName - Name of the extension\r\n * @param {string} extensionType\r\n * @param {string} reCaptchaToken\r\n * @param {boolean} bypassScopeCheck - This parameter decides if the scope change check needs to be invoked or not\r\n */\r\n updateExtension(customHeaders, contentStream, publisherName, extensionName, extensionType, reCaptchaToken, bypassScopeCheck) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n extensionType: extensionType,\r\n reCaptchaToken: reCaptchaToken,\r\n bypassScopeCheck: bypassScopeCheck,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {GalleryInterfaces.PublishedExtensionFlags} flags\r\n */\r\n updateExtensionProperties(publisherName, extensionName, flags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (flags == null) {\r\n throw new TypeError('flags can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n flags: flags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} hostType\r\n * @param {string} hostName\r\n */\r\n shareExtensionWithHost(publisherName, extensionName, hostType, hostName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n hostType: hostType,\r\n hostName: hostName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"328a3af8-d124-46e9-9483-01690cd415b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} hostType\r\n * @param {string} hostName\r\n */\r\n unshareExtensionWithHost(publisherName, extensionName, hostType, hostName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n hostType: hostType,\r\n hostName: hostName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"328a3af8-d124-46e9-9483-01690cd415b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.AzureRestApiRequestModel} azureRestApiRequestModel\r\n */\r\n extensionValidator(azureRestApiRequestModel) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"05e8a5e1-8c59-4c2c-8856-0ff087d1a844\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, azureRestApiRequestModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Send Notification\r\n *\r\n * @param {GalleryInterfaces.NotificationsData} notificationData - Denoting the data needed to send notification\r\n */\r\n sendNotifications(notificationData) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"eab39817-413c-4602-a49f-07ad00844980\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, notificationData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * This endpoint gets hit when you download a VSTS extension from the Web UI\r\n *\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n * @param {string} accountToken\r\n * @param {boolean} acceptDefault\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getPackage(customHeaders, publisherName, extensionName, version, accountToken, acceptDefault, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n let queryValues = {\r\n accountToken: accountToken,\r\n acceptDefault: acceptDefault,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"7cb576f8-1cae-4c4b-b7b1-e4af5759e965\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n * @param {string} assetType\r\n * @param {string} assetToken\r\n * @param {string} accountToken\r\n * @param {boolean} acceptDefault\r\n * @param {String} accountTokenHeader - Header to pass the account token\r\n */\r\n getAssetWithToken(customHeaders, publisherName, extensionName, version, assetType, assetToken, accountToken, acceptDefault, accountTokenHeader) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version,\r\n assetType: assetType,\r\n assetToken: assetToken\r\n };\r\n let queryValues = {\r\n accountToken: accountToken,\r\n acceptDefault: acceptDefault,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"X-Market-AccountToken\"] = \"accountTokenHeader\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"364415a1-0077-4a41-a7a0-06edd4497492\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete publisher asset like logo\r\n *\r\n * @param {string} publisherName - Internal name of the publisher\r\n * @param {string} assetType - Type of asset. Default value is 'logo'.\r\n */\r\n deletePublisherAsset(publisherName, assetType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n assetType: assetType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"21143299-34f9-4c62-8ca8-53da691192f9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get publisher asset like logo as a stream\r\n *\r\n * @param {string} publisherName - Internal name of the publisher\r\n * @param {string} assetType - Type of asset. Default value is 'logo'.\r\n */\r\n getPublisherAsset(publisherName, assetType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n assetType: assetType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"21143299-34f9-4c62-8ca8-53da691192f9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update publisher asset like logo. It accepts asset file as an octet stream and file name is passed in header values.\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} publisherName - Internal name of the publisher\r\n * @param {string} assetType - Type of asset. Default value is 'logo'.\r\n * @param {String} fileName - Header to pass the filename of the uploaded data\r\n */\r\n updatePublisherAsset(customHeaders, contentStream, publisherName, assetType, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n assetType: assetType,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n customHeaders[\"X-Market-UploadFileName\"] = \"fileName\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"21143299-34f9-4c62-8ca8-53da691192f9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.PublisherQuery} publisherQuery\r\n */\r\n queryPublishers(publisherQuery) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"2ad6ee0a-b53f-4034-9d1d-d009fda1212e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, publisherQuery, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublisherQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.Publisher} publisher\r\n */\r\n createPublisher(publisher) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4ddec66a-e4f6-4f5d-999e-9e77710d7ff4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, publisher, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Publisher, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n */\r\n deletePublisher(publisherName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4ddec66a-e4f6-4f5d-999e-9e77710d7ff4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {number} flags\r\n */\r\n getPublisher(publisherName, flags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n flags: flags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4ddec66a-e4f6-4f5d-999e-9e77710d7ff4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Publisher, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.Publisher} publisher\r\n * @param {string} publisherName\r\n */\r\n updatePublisher(publisher, publisherName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4ddec66a-e4f6-4f5d-999e-9e77710d7ff4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, publisher, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Publisher, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Endpoint to add/modify publisher membership. Currently Supports only addition/modification of 1 user at a time Works only for adding members of same tenant.\r\n *\r\n * @param {GalleryInterfaces.PublisherUserRoleAssignmentRef[]} roleAssignments - List of user identifiers(email address) and role to be added. Currently only one entry is supported.\r\n * @param {string} publisherName - The name/id of publisher to which users have to be added\r\n * @param {boolean} limitToCallerIdentityDomain - Should cross tenant addtions be allowed or not.\r\n */\r\n updatePublisherMembers(roleAssignments, publisherName, limitToCallerIdentityDomain) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n let queryValues = {\r\n limitToCallerIdentityDomain: limitToCallerIdentityDomain,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4ddec66a-e4f6-4f5d-999e-9e77710d7ff4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, roleAssignments, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublisherRoleAssignment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of questions with their responses associated with an extension.\r\n *\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} count - Number of questions to retrieve (defaults to 10).\r\n * @param {number} page - Page number from which set of questions are to be retrieved.\r\n * @param {Date} afterDate - If provided, results questions are returned which were posted after this date\r\n */\r\n getQuestions(publisherName, extensionName, count, page, afterDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n count: count,\r\n page: page,\r\n afterDate: afterDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"c010d03d-812c-4ade-ae07-c1862475eda5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.QuestionsResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Flags a concern with an existing question for an extension.\r\n *\r\n * @param {GalleryInterfaces.Concern} concern - User reported concern with a question for the extension.\r\n * @param {string} pubName - Name of the publisher who published the extension.\r\n * @param {string} extName - Name of the extension.\r\n * @param {number} questionId - Identifier of the question to be updated for the extension.\r\n */\r\n reportQuestion(concern, pubName, extName, questionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n pubName: pubName,\r\n extName: extName,\r\n questionId: questionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"784910cd-254a-494d-898b-0728549b2f10\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, concern, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Concern, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new question for an extension.\r\n *\r\n * @param {GalleryInterfaces.Question} question - Question to be created for the extension.\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n */\r\n createQuestion(question, publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"6d1d9741-eca8-4701-a3a5-235afc82dfa4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, question, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Question, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes an existing question and all its associated responses for an extension. (soft delete)\r\n *\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} questionId - Identifier of the question to be deleted for the extension.\r\n */\r\n deleteQuestion(publisherName, extensionName, questionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n questionId: questionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"6d1d9741-eca8-4701-a3a5-235afc82dfa4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing question for an extension.\r\n *\r\n * @param {GalleryInterfaces.Question} question - Updated question to be set for the extension.\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} questionId - Identifier of the question to be updated for the extension.\r\n */\r\n updateQuestion(question, publisherName, extensionName, questionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n questionId: questionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"6d1d9741-eca8-4701-a3a5-235afc82dfa4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, question, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Question, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new response for a given question for an extension.\r\n *\r\n * @param {GalleryInterfaces.Response} response - Response to be created for the extension.\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} questionId - Identifier of the question for which response is to be created for the extension.\r\n */\r\n createResponse(response, publisherName, extensionName, questionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n questionId: questionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"7f8ae5e0-46b0-438f-b2e8-13e8513517bd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, response, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Response, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a response for an extension. (soft delete)\r\n *\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} questionId - Identifies the question whose response is to be deleted.\r\n * @param {number} responseId - Identifies the response to be deleted.\r\n */\r\n deleteResponse(publisherName, extensionName, questionId, responseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n questionId: questionId,\r\n responseId: responseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"7f8ae5e0-46b0-438f-b2e8-13e8513517bd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing response for a given question for an extension.\r\n *\r\n * @param {GalleryInterfaces.Response} response - Updated response to be set for the extension.\r\n * @param {string} publisherName - Name of the publisher who published the extension.\r\n * @param {string} extensionName - Name of the extension.\r\n * @param {number} questionId - Identifier of the question for which response is to be updated for the extension.\r\n * @param {number} responseId - Identifier of the response which has to be updated.\r\n */\r\n updateResponse(response, publisherName, extensionName, questionId, responseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n questionId: questionId,\r\n responseId: responseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"7f8ae5e0-46b0-438f-b2e8-13e8513517bd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, response, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Response, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns extension reports\r\n *\r\n * @param {string} publisherName - Name of the publisher who published the extension\r\n * @param {string} extensionName - Name of the extension\r\n * @param {number} days - Last n days report. If afterDate and days are specified, days will take priority\r\n * @param {number} count - Number of events to be returned\r\n * @param {Date} afterDate - Use if you want to fetch events newer than the specified date\r\n */\r\n getExtensionReports(publisherName, extensionName, days, count, afterDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n days: days,\r\n count: count,\r\n afterDate: afterDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"79e0c74f-157f-437e-845f-74fbb4121d4c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of reviews associated with an extension\r\n *\r\n * @param {string} publisherName - Name of the publisher who published the extension\r\n * @param {string} extensionName - Name of the extension\r\n * @param {number} count - Number of reviews to retrieve (defaults to 5)\r\n * @param {GalleryInterfaces.ReviewFilterOptions} filterOptions - FilterOptions to filter out empty reviews etcetera, defaults to none\r\n * @param {Date} beforeDate - Use if you want to fetch reviews older than the specified date, defaults to null\r\n * @param {Date} afterDate - Use if you want to fetch reviews newer than the specified date, defaults to null\r\n */\r\n getReviews(publisherName, extensionName, count, filterOptions, beforeDate, afterDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n count: count,\r\n filterOptions: filterOptions,\r\n beforeDate: beforeDate,\r\n afterDate: afterDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"5b3f819f-f247-42ad-8c00-dd9ab9ab246d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ReviewsResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a summary of the reviews\r\n *\r\n * @param {string} pubName - Name of the publisher who published the extension\r\n * @param {string} extName - Name of the extension\r\n * @param {Date} beforeDate - Use if you want to fetch summary of reviews older than the specified date, defaults to null\r\n * @param {Date} afterDate - Use if you want to fetch summary of reviews newer than the specified date, defaults to null\r\n */\r\n getReviewsSummary(pubName, extName, beforeDate, afterDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n pubName: pubName,\r\n extName: extName\r\n };\r\n let queryValues = {\r\n beforeDate: beforeDate,\r\n afterDate: afterDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"b7b44e21-209e-48f0-ae78-04727fc37d77\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new review for an extension\r\n *\r\n * @param {GalleryInterfaces.Review} review - Review to be created for the extension\r\n * @param {string} pubName - Name of the publisher who published the extension\r\n * @param {string} extName - Name of the extension\r\n */\r\n createReview(review, pubName, extName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n pubName: pubName,\r\n extName: extName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"e6e85b9d-aa70-40e6-aa28-d0fbf40b91a3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, review, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.Review, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a review\r\n *\r\n * @param {string} pubName - Name of the publisher who published the extension\r\n * @param {string} extName - Name of the extension\r\n * @param {number} reviewId - Id of the review which needs to be updated\r\n */\r\n deleteReview(pubName, extName, reviewId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n pubName: pubName,\r\n extName: extName,\r\n reviewId: reviewId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"e6e85b9d-aa70-40e6-aa28-d0fbf40b91a3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates or Flags a review\r\n *\r\n * @param {GalleryInterfaces.ReviewPatch} reviewPatch - ReviewPatch object which contains the changes to be applied to the review\r\n * @param {string} pubName - Name of the publisher who published the extension\r\n * @param {string} extName - Name of the extension\r\n * @param {number} reviewId - Id of the review which needs to be updated\r\n */\r\n updateReview(reviewPatch, pubName, extName, reviewId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n pubName: pubName,\r\n extName: extName,\r\n reviewId: reviewId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"e6e85b9d-aa70-40e6-aa28-d0fbf40b91a3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, reviewPatch, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ReviewPatch, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionCategory} category\r\n */\r\n createCategory(category) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"476531a3-7024-4516-a76a-ed64d3008ad6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, category, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all setting entries for the given user/all-users scope\r\n *\r\n * @param {string} userScope - User-Scope at which to get the value. Should be \"me\" for the current user or \"host\" for all users.\r\n * @param {string} key - Optional key under which to filter all the entries\r\n */\r\n getGalleryUserSettings(userScope, key) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n userScope: userScope,\r\n key: key\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"9b75ece3-7960-401c-848b-148ac01ca350\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Set all setting entries for the given user/all-users scope\r\n *\r\n * @param {{ [key: string] : any; }} entries - A key-value pair of all settings that need to be set\r\n * @param {string} userScope - User-Scope at which to get the value. Should be \"me\" for the current user or \"host\" for all users.\r\n */\r\n setGalleryUserSettings(entries, userScope) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n userScope: userScope\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"9b75ece3-7960-401c-848b-148ac01ca350\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, entries, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} keyType\r\n * @param {number} expireCurrentSeconds\r\n */\r\n generateKey(keyType, expireCurrentSeconds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n keyType: keyType\r\n };\r\n let queryValues = {\r\n expireCurrentSeconds: expireCurrentSeconds,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"92ed5cf4-c38b-465a-9059-2f2fb7c624b5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} keyType\r\n */\r\n getSigningKey(keyType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n keyType: keyType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"92ed5cf4-c38b-465a-9059-2f2fb7c624b5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionStatisticUpdate} extensionStatisticsUpdate\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n updateExtensionStatistics(extensionStatisticsUpdate, publisherName, extensionName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"a0ea3204-11e9-422d-a9ca-45851cc41400\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, extensionStatisticsUpdate, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {number} days\r\n * @param {GalleryInterfaces.ExtensionStatsAggregateType} aggregate\r\n * @param {Date} afterDate\r\n */\r\n getExtensionDailyStats(publisherName, extensionName, days, aggregate, afterDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n let queryValues = {\r\n days: days,\r\n aggregate: aggregate,\r\n afterDate: afterDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"ae06047e-51c5-4fb4-ab65-7be488544416\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDailyStats, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * This route/location id only supports HTTP POST anonymously, so that the page view daily stat can be incremented from Marketplace client. Trying to call GET on this route should result in an exception. Without this explicit implementation, calling GET on this public route invokes the above GET implementation GetExtensionDailyStats.\r\n *\r\n * @param {string} publisherName - Name of the publisher\r\n * @param {string} extensionName - Name of the extension\r\n * @param {string} version - Version of the extension\r\n */\r\n getExtensionDailyStatsAnonymous(publisherName, extensionName, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4fa7adb6-ca65-4075-a232-5f28323288ea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.ExtensionDailyStats, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Increments a daily statistic associated with the extension\r\n *\r\n * @param {string} publisherName - Name of the publisher\r\n * @param {string} extensionName - Name of the extension\r\n * @param {string} version - Version of the extension\r\n * @param {string} statType - Type of stat to increment\r\n */\r\n incrementExtensionDailyStat(publisherName, extensionName, version, statType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (statType == null) {\r\n throw new TypeError('statType can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n let queryValues = {\r\n statType: statType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"4fa7adb6-ca65-4075-a232-5f28323288ea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n * @param {string} version\r\n */\r\n getVerificationLog(publisherName, extensionName, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"gallery\", \"c5523abe-b843-437f-875b-5833064efe4d\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nGalleryApi.RESOURCE_AREA_ID = \"69d21c00-f135-441b-b5ce-3626378e0819\";\r\nexports.GalleryApi = GalleryApi;\r\n","\"use strict\";\r\n/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst GalleryInterfaces = require(\"./interfaces/GalleryInterfaces\");\r\nclass GalleryCompatHttpClientBase extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, userAgent, options) {\r\n super(baseUrl, handlers, userAgent, options);\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionPackage} extensionPackage\r\n */\r\n createExtensionJson(extensionPackage) {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.1-preview.1\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, extensionPackage, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionPackage} extensionPackage\r\n * @param {string} extensionId\r\n */\r\n updateExtensionByIdJson(extensionPackage, extensionId) {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n extensionId: extensionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.1-preview.1\", \"gallery\", \"a41192c8-9525-4b58-bc86-179fa549d80d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, extensionPackage, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionPackage} extensionPackage\r\n * @param {string} publisherName\r\n */\r\n createExtensionWithPublisherJson(extensionPackage, publisherName) {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.1-preview.1\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, extensionPackage, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n }\r\n /**\r\n * @param {GalleryInterfaces.ExtensionPackage} extensionPackage\r\n * @param {string} publisherName\r\n * @param {string} extensionName\r\n */\r\n updateExtensionJson(extensionPackage, publisherName, extensionName) {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n publisherName: publisherName,\r\n extensionName: extensionName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.1-preview.1\", \"gallery\", \"e11ea35a-16fe-4b80-ab11-c4cab88a0966\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, extensionPackage, options);\r\n let ret = this.formatResponse(res.result, GalleryInterfaces.TypeInfo.PublishedExtension, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n }\r\n}\r\nexports.GalleryCompatHttpClientBase = GalleryCompatHttpClientBase;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst GitInterfaces = require(\"./interfaces/GitInterfaces\");\r\nclass GitApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Git-api', options);\r\n }\r\n /**\r\n * Create an annotated tag.\r\n *\r\n * @param {GitInterfaces.GitAnnotatedTag} tagObject - Object containing details of tag to be created.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID or name of the repository.\r\n */\r\n createAnnotatedTag(tagObject, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5e8a8081-3851-4626-b677-9891cc04102e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, tagObject, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitAnnotatedTag, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get an annotated tag.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {string} objectId - ObjectId (Sha1Id) of tag to get.\r\n */\r\n getAnnotatedTag(project, repositoryId, objectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n objectId: objectId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5e8a8081-3851-4626-b677-9891cc04102e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitAnnotatedTag, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single blob.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} sha1 - SHA1 hash of the file. You can get the SHA1 of a file using the \"Git/Items/Get Item\" endpoint.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} download - If true, prompt for a download rather than rendering in a browser. Note: this value defaults to true if $format is zip\r\n * @param {string} fileName - Provide a fileName to use for a download.\r\n * @param {boolean} resolveLfs - If true, try to resolve a blob to its LFS contents, if it's an LFS pointer file. Only compatible with octet-stream Accept headers or $format types\r\n */\r\n getBlob(repositoryId, sha1, project, download, fileName, resolveLfs) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n sha1: sha1\r\n };\r\n let queryValues = {\r\n download: download,\r\n fileName: fileName,\r\n resolveLfs: resolveLfs,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"7b28e929-2c99-405d-9c5c-6167a06e6816\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single blob.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} sha1 - SHA1 hash of the file. You can get the SHA1 of a file using the \"Git/Items/Get Item\" endpoint.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} download - If true, prompt for a download rather than rendering in a browser. Note: this value defaults to true if $format is zip\r\n * @param {string} fileName - Provide a fileName to use for a download.\r\n * @param {boolean} resolveLfs - If true, try to resolve a blob to its LFS contents, if it's an LFS pointer file. Only compatible with octet-stream Accept headers or $format types\r\n */\r\n getBlobContent(repositoryId, sha1, project, download, fileName, resolveLfs) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n sha1: sha1\r\n };\r\n let queryValues = {\r\n download: download,\r\n fileName: fileName,\r\n resolveLfs: resolveLfs,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"7b28e929-2c99-405d-9c5c-6167a06e6816\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets one or more blobs in a zip file download.\r\n *\r\n * @param {string[]} blobIds - Blob IDs (SHA1 hashes) to be returned in the zip file.\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} filename\r\n */\r\n getBlobsZip(blobIds, repositoryId, project, filename) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n filename: filename,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"7b28e929-2c99-405d-9c5c-6167a06e6816\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single blob.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} sha1 - SHA1 hash of the file. You can get the SHA1 of a file using the \"Git/Items/Get Item\" endpoint.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} download - If true, prompt for a download rather than rendering in a browser. Note: this value defaults to true if $format is zip\r\n * @param {string} fileName - Provide a fileName to use for a download.\r\n * @param {boolean} resolveLfs - If true, try to resolve a blob to its LFS contents, if it's an LFS pointer file. Only compatible with octet-stream Accept headers or $format types\r\n */\r\n getBlobZip(repositoryId, sha1, project, download, fileName, resolveLfs) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n sha1: sha1\r\n };\r\n let queryValues = {\r\n download: download,\r\n fileName: fileName,\r\n resolveLfs: resolveLfs,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"7b28e929-2c99-405d-9c5c-6167a06e6816\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve statistics about a single branch.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} name - Name of the branch.\r\n * @param {string} project - Project ID or project name\r\n * @param {GitInterfaces.GitVersionDescriptor} baseVersionDescriptor - Identifies the commit or branch to use as the base.\r\n */\r\n getBranch(repositoryId, name, project, baseVersionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (name == null) {\r\n throw new TypeError('name can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n name: name,\r\n baseVersionDescriptor: baseVersionDescriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d5b216de-d8d5-4d32-ae76-51df755b16d3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitBranchStats, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve statistics about all branches within a repository.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {GitInterfaces.GitVersionDescriptor} baseVersionDescriptor - Identifies the commit or branch to use as the base.\r\n */\r\n getBranches(repositoryId, project, baseVersionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n baseVersionDescriptor: baseVersionDescriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d5b216de-d8d5-4d32-ae76-51df755b16d3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitBranchStats, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {GitInterfaces.GitQueryBranchStatsCriteria} searchCriteria\r\n * @param {string} repositoryId\r\n * @param {string} project - Project ID or project name\r\n */\r\n getBranchStatsBatch(searchCriteria, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d5b216de-d8d5-4d32-ae76-51df755b16d3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, searchCriteria, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitBranchStats, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve changes for a particular commit.\r\n *\r\n * @param {string} commitId - The id of the commit.\r\n * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - The maximum number of changes to return.\r\n * @param {number} skip - The number of changes to skip.\r\n */\r\n getChanges(commitId, repositoryId, project, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n commitId: commitId,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n top: top,\r\n skip: skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5bf884f5-3e07-42e9-afb8-1b872267bf16\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitChanges, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve one conflict for a cherry pick by ID\r\n *\r\n * @param {string} repositoryId\r\n * @param {number} cherryPickId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n getCherryPickConflict(repositoryId, cherryPickId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n cherryPickId: cherryPickId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1fe5aab2-d4c0-4b2f-a030-f3831e7aca26\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all conflicts for a cherry pick\r\n *\r\n * @param {string} repositoryId\r\n * @param {number} cherryPickId\r\n * @param {string} project - Project ID or project name\r\n * @param {string} continuationToken\r\n * @param {number} top\r\n * @param {boolean} excludeResolved\r\n * @param {boolean} onlyResolved\r\n * @param {boolean} includeObsolete\r\n */\r\n getCherryPickConflicts(repositoryId, cherryPickId, project, continuationToken, top, excludeResolved, onlyResolved, includeObsolete) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n cherryPickId: cherryPickId\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n excludeResolved: excludeResolved,\r\n onlyResolved: onlyResolved,\r\n includeObsolete: includeObsolete,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1fe5aab2-d4c0-4b2f-a030-f3831e7aca26\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update merge conflict resolution\r\n *\r\n * @param {GitInterfaces.GitConflict} conflict\r\n * @param {string} repositoryId\r\n * @param {number} cherryPickId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateCherryPickConflict(conflict, repositoryId, cherryPickId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n cherryPickId: cherryPickId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1fe5aab2-d4c0-4b2f-a030-f3831e7aca26\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflict, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update multiple merge conflict resolutions\r\n *\r\n * @param {GitInterfaces.GitConflict[]} conflictUpdates\r\n * @param {string} repositoryId\r\n * @param {number} cherryPickId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateCherryPickConflicts(conflictUpdates, repositoryId, cherryPickId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n cherryPickId: cherryPickId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1fe5aab2-d4c0-4b2f-a030-f3831e7aca26\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflictUpdates, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflictUpdateResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Given a commitId, returns a list of commits that are in the same cherry-pick family.\r\n *\r\n * @param {string} repositoryNameOrId\r\n * @param {string} commitId\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeLinks\r\n */\r\n getCherryPickRelationships(repositoryNameOrId, commitId, project, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId,\r\n commitId: commitId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"8af142a4-27c2-4168-9e82-46b8629aaa0d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Cherry pick a specific commit or commits that are associated to a pull request into a new branch.\r\n *\r\n * @param {GitInterfaces.GitAsyncRefOperationParameters} cherryPickToCreate\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID of the repository.\r\n */\r\n createCherryPick(cherryPickToCreate, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"033bad68-9a14-43d1-90e0-59cb8856fef6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, cherryPickToCreate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCherryPick, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve information about a cherry pick operation by cherry pick Id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} cherryPickId - ID of the cherry pick.\r\n * @param {string} repositoryId - ID of the repository.\r\n */\r\n getCherryPick(project, cherryPickId, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n cherryPickId: cherryPickId,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"033bad68-9a14-43d1-90e0-59cb8856fef6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCherryPick, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve information about a cherry pick operation for a specific branch. This operation is expensive due to the underlying object structure, so this API only looks at the 1000 most recent cherry pick operations.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID of the repository.\r\n * @param {string} refName - The GitAsyncRefOperationParameters generatedRefName used for the cherry pick operation.\r\n */\r\n getCherryPickForRefName(project, repositoryId, refName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (refName == null) {\r\n throw new TypeError('refName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n refName: refName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"033bad68-9a14-43d1-90e0-59cb8856fef6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCherryPick, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Find the closest common commit (the merge base) between base and target commits, and get the diff between either the base and target commits or common and target commits.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} diffCommonCommit - If true, diff between common and target commits. If false, diff between base and target commits.\r\n * @param {number} top - Maximum number of changes to return. Defaults to 100.\r\n * @param {number} skip - Number of changes to skip\r\n * @param {GitInterfaces.GitBaseVersionDescriptor} baseVersionDescriptor - Descriptor for base commit.\r\n * @param {GitInterfaces.GitTargetVersionDescriptor} targetVersionDescriptor - Descriptor for target commit.\r\n */\r\n getCommitDiffs(repositoryId, project, diffCommonCommit, top, skip, baseVersionDescriptor, targetVersionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n diffCommonCommit: diffCommonCommit,\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n if (baseVersionDescriptor) {\r\n queryValues.baseVersionType = baseVersionDescriptor.versionType;\r\n queryValues.baseVersion = baseVersionDescriptor.version;\r\n queryValues.baseVersionOptions = baseVersionDescriptor.versionOptions;\r\n }\r\n if (targetVersionDescriptor) {\r\n queryValues.targetVersionType = targetVersionDescriptor.versionType;\r\n queryValues.targetVersion = targetVersionDescriptor.version;\r\n queryValues.targetVersionOptions = targetVersionDescriptor.versionOptions;\r\n }\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"615588d5-c0c7-4b88-88f8-e625306446e8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitDiffs, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a particular commit.\r\n *\r\n * @param {string} commitId - The id of the commit.\r\n * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} changeCount - The number of changes to include in the result.\r\n */\r\n getCommit(commitId, repositoryId, project, changeCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n commitId: commitId,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n changeCount: changeCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"c2570c3b-5b3f-41b8-98bf-5407bfde8d58\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommit, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve git commits for a project\r\n *\r\n * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified.\r\n * @param {GitInterfaces.GitQueryCommitsCriteria} searchCriteria\r\n * @param {string} project - Project ID or project name\r\n * @param {number} skip\r\n * @param {number} top\r\n */\r\n getCommits(repositoryId, searchCriteria, project, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (searchCriteria == null) {\r\n throw new TypeError('searchCriteria can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n searchCriteria: searchCriteria,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"c2570c3b-5b3f-41b8-98bf-5407bfde8d58\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a list of commits associated with a particular push.\r\n *\r\n * @param {string} repositoryId - The id or friendly name of the repository. To use the friendly name, projectId must also be specified.\r\n * @param {number} pushId - The id of the push.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - The maximum number of commits to return (\"get the top x commits\").\r\n * @param {number} skip - The number of commits to skip.\r\n * @param {boolean} includeLinks - Set to false to avoid including REST Url links for resources. Defaults to true.\r\n */\r\n getPushCommits(repositoryId, pushId, project, top, skip, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (pushId == null) {\r\n throw new TypeError('pushId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n pushId: pushId,\r\n top: top,\r\n skip: skip,\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"c2570c3b-5b3f-41b8-98bf-5407bfde8d58\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve git commits for a project matching the search criteria\r\n *\r\n * @param {GitInterfaces.GitQueryCommitsCriteria} searchCriteria - Search options\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} skip - Number of commits to skip.\r\n * @param {number} top - Maximum number of commits to return.\r\n * @param {boolean} includeStatuses - True to include additional commit status information.\r\n */\r\n getCommitsBatch(searchCriteria, repositoryId, project, skip, top, includeStatuses) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n '$skip': skip,\r\n '$top': top,\r\n includeStatuses: includeStatuses,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"6400dfb2-0bcb-462b-b992-5a57f8f1416c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, searchCriteria, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve deleted git repositories.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getDeletedRepositories(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"2b6869c4-cb25-42b5-b7a3-0d3e6be0a11a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitDeletedRepository, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the file diffs for each of the specified files\r\n *\r\n * @param {GitInterfaces.FileDiffsCriteria} fileDiffsCriteria - List of file parameters objects\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The name or ID of the repository\r\n */\r\n getFileDiffs(fileDiffsCriteria, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"c4c5a7e6-e9f3-4730-a92b-84baacff694b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, fileDiffsCriteria, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.FileDiff, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all forks of a repository in the collection.\r\n *\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {string} collectionId - Team project collection ID.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeLinks - True to include links.\r\n */\r\n getForks(repositoryNameOrId, collectionId, project, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId,\r\n collectionId: collectionId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"158c0340-bf6f-489c-9625-d572a1480d57\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepositoryRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Request that another repository's refs be fetched into this one. It syncs two existing forks. To create a fork, please see the repositories endpoint\r\n *\r\n * @param {GitInterfaces.GitForkSyncRequestParameters} syncParams - Source repository and ref mapping.\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeLinks - True to include links\r\n */\r\n createForkSyncRequest(syncParams, repositoryNameOrId, project, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1703f858-b9d1-46af-ab62-483e9e1055b5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, syncParams, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitForkSyncRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a specific fork sync operation's details.\r\n *\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {number} forkSyncOperationId - OperationId of the sync request.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeLinks - True to include links.\r\n */\r\n getForkSyncRequest(repositoryNameOrId, forkSyncOperationId, project, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId,\r\n forkSyncOperationId: forkSyncOperationId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1703f858-b9d1-46af-ab62-483e9e1055b5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitForkSyncRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all requested fork sync operations on this repository.\r\n *\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeAbandoned - True to include abandoned requests.\r\n * @param {boolean} includeLinks - True to include links.\r\n */\r\n getForkSyncRequests(repositoryNameOrId, project, includeAbandoned, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId\r\n };\r\n let queryValues = {\r\n includeAbandoned: includeAbandoned,\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"1703f858-b9d1-46af-ab62-483e9e1055b5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitForkSyncRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create an import request.\r\n *\r\n * @param {GitInterfaces.GitImportRequest} importRequest - The import request to create.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n */\r\n createImportRequest(importRequest, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"01828ddc-3600-4a41-8633-99b3a73a0eb3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, importRequest, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a particular import request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {number} importRequestId - The unique identifier for the import request.\r\n */\r\n getImportRequest(project, repositoryId, importRequestId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n importRequestId: importRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"01828ddc-3600-4a41-8633-99b3a73a0eb3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve import requests for a repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {boolean} includeAbandoned - True to include abandoned import requests in the results.\r\n */\r\n queryImportRequests(project, repositoryId, includeAbandoned) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n includeAbandoned: includeAbandoned,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"01828ddc-3600-4a41-8633-99b3a73a0eb3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retry or abandon a failed import request.\r\n *\r\n * @param {GitInterfaces.GitImportRequest} importRequestToUpdate - The updated version of the import request. Currently, the only change allowed is setting the Status to Queued or Abandoned.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {number} importRequestId - The unique identifier for the import request to update.\r\n */\r\n updateImportRequest(importRequestToUpdate, project, repositoryId, importRequestId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n importRequestId: importRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"01828ddc-3600-4a41-8633-99b3a73a0eb3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, importRequestToUpdate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitImportRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} path - The item path.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - The path scope. The default is null.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion.\r\n * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false.\r\n * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false.\r\n * @param {boolean} download - Set to true to download the response as a file. Default is false.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false.\r\n * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false.\r\n */\r\n getItem(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n path: path,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeContentMetadata: includeContentMetadata,\r\n latestProcessedChange: latestProcessedChange,\r\n download: download,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n resolveLfs: resolveLfs,\r\n sanitize: sanitize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"fb93c0db-47ed-4a31-8c20-47552878fb44\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitItem, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} path - The item path.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - The path scope. The default is null.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion.\r\n * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false.\r\n * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false.\r\n * @param {boolean} download - Set to true to download the response as a file. Default is false.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false.\r\n * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false.\r\n */\r\n getItemContent(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n path: path,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeContentMetadata: includeContentMetadata,\r\n latestProcessedChange: latestProcessedChange,\r\n download: download,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n resolveLfs: resolveLfs,\r\n sanitize: sanitize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"fb93c0db-47ed-4a31-8c20-47552878fb44\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a collection of items. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - The path scope. The default is null.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion.\r\n * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false.\r\n * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false.\r\n * @param {boolean} download - Set to true to download the response as a file. Default is false.\r\n * @param {boolean} includeLinks - Set to true to include links to items. Default is false.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository.\r\n */\r\n getItems(repositoryId, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, includeLinks, versionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeContentMetadata: includeContentMetadata,\r\n latestProcessedChange: latestProcessedChange,\r\n download: download,\r\n includeLinks: includeLinks,\r\n versionDescriptor: versionDescriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"fb93c0db-47ed-4a31-8c20-47552878fb44\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} path - The item path.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - The path scope. The default is null.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion.\r\n * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false.\r\n * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false.\r\n * @param {boolean} download - Set to true to download the response as a file. Default is false.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false.\r\n * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false.\r\n */\r\n getItemText(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n path: path,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeContentMetadata: includeContentMetadata,\r\n latestProcessedChange: latestProcessedChange,\r\n download: download,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n resolveLfs: resolveLfs,\r\n sanitize: sanitize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"fb93c0db-47ed-4a31-8c20-47552878fb44\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content, which is always returned as a download.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} path - The item path.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - The path scope. The default is null.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - The recursion level of this request. The default is 'none', no recursion.\r\n * @param {boolean} includeContentMetadata - Set to true to include content metadata. Default is false.\r\n * @param {boolean} latestProcessedChange - Set to true to include the latest changes. Default is false.\r\n * @param {boolean} download - Set to true to download the response as a file. Default is false.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - Version descriptor. Default is the default branch for the repository.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n * @param {boolean} resolveLfs - Set to true to resolve Git LFS pointer files to return actual content from Git LFS. Default is false.\r\n * @param {boolean} sanitize - Set to true to sanitize an svg file and return it as image. Useful only if requested for svg file. Default is false.\r\n */\r\n getItemZip(repositoryId, path, project, scopePath, recursionLevel, includeContentMetadata, latestProcessedChange, download, versionDescriptor, includeContent, resolveLfs, sanitize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n path: path,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeContentMetadata: includeContentMetadata,\r\n latestProcessedChange: latestProcessedChange,\r\n download: download,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n resolveLfs: resolveLfs,\r\n sanitize: sanitize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"fb93c0db-47ed-4a31-8c20-47552878fb44\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Post for retrieving a creating a batch out of a set of items in a repo / project given a list of paths or a long path\r\n *\r\n * @param {GitInterfaces.GitItemRequestData} requestData - Request data attributes: ItemDescriptors, IncludeContentMetadata, LatestProcessedChange, IncludeLinks. ItemDescriptors: Collection of items to fetch, including path, version, and recursion level. IncludeContentMetadata: Whether to include metadata for all items LatestProcessedChange: Whether to include shallow ref to commit that last changed each item. IncludeLinks: Whether to include the _links field on the shallow references.\r\n * @param {string} repositoryId - The name or ID of the repository\r\n * @param {string} project - Project ID or project name\r\n */\r\n getItemsBatch(requestData, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"630fd2e4-fb88-4f85-ad21-13f3fd1fbca9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, requestData, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Find the merge bases of two commits, optionally across forks. If otherRepositoryId is not specified, the merge bases will only be calculated within the context of the local repositoryNameOrId.\r\n *\r\n * @param {string} repositoryNameOrId - ID or name of the local repository.\r\n * @param {string} commitId - First commit, usually the tip of the target branch of the potential merge.\r\n * @param {string} otherCommitId - Other commit, usually the tip of the source branch of the potential merge.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} otherCollectionId - The collection ID where otherCommitId lives.\r\n * @param {string} otherRepositoryId - The repository ID where otherCommitId lives.\r\n */\r\n getMergeBases(repositoryNameOrId, commitId, otherCommitId, project, otherCollectionId, otherRepositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (otherCommitId == null) {\r\n throw new TypeError('otherCommitId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId,\r\n commitId: commitId\r\n };\r\n let queryValues = {\r\n otherCommitId: otherCommitId,\r\n otherCollectionId: otherCollectionId,\r\n otherRepositoryId: otherRepositoryId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"7cf2abb6-c964-4f7e-9872-f78c66e72e9c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Request a git merge operation. Currently we support merging only 2 commits.\r\n *\r\n * @param {GitInterfaces.GitMergeParameters} mergeParameters - Parents commitIds and merge commit messsage.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {boolean} includeLinks - True to include links\r\n */\r\n createMergeRequest(mergeParameters, project, repositoryNameOrId, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"985f7ae9-844f-4906-9897-7ef41516c0e2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, mergeParameters, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitMerge, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a specific merge operation's details.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryNameOrId - The name or ID of the repository.\r\n * @param {number} mergeOperationId - OperationId of the merge request.\r\n * @param {boolean} includeLinks - True to include links\r\n */\r\n getMergeRequest(project, repositoryNameOrId, mergeOperationId, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryNameOrId: repositoryNameOrId,\r\n mergeOperationId: mergeOperationId\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"985f7ae9-844f-4906-9897-7ef41516c0e2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitMerge, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Attach a new file to a pull request.\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} fileName - The name of the file.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createAttachment(customHeaders, contentStream, fileName, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fileName: fileName,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965d9361-878b-413b-a494-45d5b5fd8ab7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Attachment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a pull request attachment.\r\n *\r\n * @param {string} fileName - The name of the attachment to delete.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteAttachment(fileName, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fileName: fileName,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965d9361-878b-413b-a494-45d5b5fd8ab7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the file content of a pull request attachment.\r\n *\r\n * @param {string} fileName - The name of the attachment.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getAttachmentContent(fileName, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fileName: fileName,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965d9361-878b-413b-a494-45d5b5fd8ab7\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of files attached to a given pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getAttachments(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965d9361-878b-413b-a494-45d5b5fd8ab7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Attachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the file content of a pull request attachment.\r\n *\r\n * @param {string} fileName - The name of the attachment.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getAttachmentZip(fileName, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fileName: fileName,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965d9361-878b-413b-a494-45d5b5fd8ab7\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a like on a comment.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - The ID of the thread that contains the comment.\r\n * @param {number} commentId - The ID of the comment.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createLike(repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5f2e2851-1389-425b-a00b-fb2adb3ef31b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a like on a comment.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - The ID of the thread that contains the comment.\r\n * @param {number} commentId - The ID of the comment.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteLike(repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5f2e2851-1389-425b-a00b-fb2adb3ef31b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get likes for a comment.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - The ID of the thread that contains the comment.\r\n * @param {number} commentId - The ID of the comment.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getLikes(repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"5f2e2851-1389-425b-a00b-fb2adb3ef31b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the commits for the specified iteration of a pull request.\r\n *\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the iteration from which to get the commits.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - Maximum number of commits to return. The maximum number of commits that can be returned per batch is 500.\r\n * @param {number} skip - Number of commits to skip.\r\n */\r\n getPullRequestIterationCommits(repositoryId, pullRequestId, iterationId, project, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n let queryValues = {\r\n top: top,\r\n skip: skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"e7ea0883-095f-4926-b5fb-f24691c26fb9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the commits for the specified pull request.\r\n *\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestCommits(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"52823034-34a8-4576-922c-8d8b77e9e4c4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitCommitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve one conflict for a pull request by ID\r\n *\r\n * @param {string} repositoryId\r\n * @param {number} pullRequestId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestConflict(repositoryId, pullRequestId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d840fb74-bbef-42d3-b250-564604c054a4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all conflicts for a pull request\r\n *\r\n * @param {string} repositoryId - The repository of the Pull Request.\r\n * @param {number} pullRequestId - The pull request ID.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} skip - Conflicts to skip.\r\n * @param {number} top - Conflicts to return after skip.\r\n * @param {boolean} includeObsolete - Includes obsolete conflicts.\r\n * @param {boolean} excludeResolved - Excludes conflicts already resolved.\r\n * @param {boolean} onlyResolved - Returns only the conflicts that are resolved.\r\n */\r\n getPullRequestConflicts(repositoryId, pullRequestId, project, skip, top, includeObsolete, excludeResolved, onlyResolved) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n '$skip': skip,\r\n '$top': top,\r\n includeObsolete: includeObsolete,\r\n excludeResolved: excludeResolved,\r\n onlyResolved: onlyResolved,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d840fb74-bbef-42d3-b250-564604c054a4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update merge conflict resolution\r\n *\r\n * @param {GitInterfaces.GitConflict} conflict\r\n * @param {string} repositoryId\r\n * @param {number} pullRequestId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestConflict(conflict, repositoryId, pullRequestId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d840fb74-bbef-42d3-b250-564604c054a4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflict, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update multiple merge conflict resolutions\r\n *\r\n * @param {GitInterfaces.GitConflict[]} conflictUpdates\r\n * @param {string} repositoryId\r\n * @param {number} pullRequestId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestConflicts(conflictUpdates, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d840fb74-bbef-42d3-b250-564604c054a4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflictUpdates, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflictUpdateResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve the changes made in a pull request between two iterations.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.
Iteration one is the head of the source branch at the time the pull request is created and subsequent iterations are created when there are pushes to the source branch. Allowed values are between 1 and the maximum iteration on this pull request.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - Optional. The number of changes to retrieve. The default value is 100 and the maximum value is 2000.\r\n * @param {number} skip - Optional. The number of changes to ignore. For example, to retrieve changes 101-150, set top 50 and skip to 100.\r\n * @param {number} compareTo - ID of the pull request iteration to compare against. The default value is zero which indicates the comparison is made against the common commit between the source and target branches\r\n */\r\n getPullRequestIterationChanges(repositoryId, pullRequestId, iterationId, project, top, skip, compareTo) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n '$compareTo': compareTo,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4216bdcf-b6b1-4d59-8b82-c34cc183fc8b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestIterationChanges, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the specified iteration for a pull request.\r\n *\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration to return.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestIteration(repositoryId, pullRequestId, iterationId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d43911ee-6958-46b0-a42b-8445b8a0d004\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestIteration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the list of iterations for the specified pull request.\r\n *\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeCommits - If true, include the commits associated with each iteration in the response.\r\n */\r\n getPullRequestIterations(repositoryId, pullRequestId, project, includeCommits) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n includeCommits: includeCommits,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"d43911ee-6958-46b0-a42b-8445b8a0d004\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestIteration, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a pull request status on the iteration. This operation will have the same result as Create status on pull request with specified iteration ID in the request body.\r\n *\r\n * @param {GitInterfaces.GitPullRequestStatus} status - Pull request status to create.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPullRequestIterationStatus(status, repositoryId, pullRequestId, iterationId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"75cf11c5-979f-4038-a76e-058a06adf2bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, status, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete pull request iteration status.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.\r\n * @param {number} statusId - ID of the pull request status.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deletePullRequestIterationStatus(repositoryId, pullRequestId, iterationId, statusId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId,\r\n statusId: statusId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"75cf11c5-979f-4038-a76e-058a06adf2bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the specific pull request iteration status by ID. The status ID is unique within the pull request across all iterations.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.\r\n * @param {number} statusId - ID of the pull request status.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestIterationStatus(repositoryId, pullRequestId, iterationId, statusId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId,\r\n statusId: statusId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"75cf11c5-979f-4038-a76e-058a06adf2bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all the statuses associated with a pull request iteration.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestIterationStatuses(repositoryId, pullRequestId, iterationId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"75cf11c5-979f-4038-a76e-058a06adf2bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update pull request iteration statuses collection. The only supported operation type is `remove`.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} patchDocument - Operations to apply to the pull request statuses in JSON Patch format.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} iterationId - ID of the pull request iteration.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestIterationStatuses(customHeaders, patchDocument, repositoryId, pullRequestId, iterationId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n iterationId: iterationId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"75cf11c5-979f-4038-a76e-058a06adf2bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, patchDocument, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a label for a specified pull request. The only required field is the name of the new label.\r\n *\r\n * @param {TfsCoreInterfaces.WebApiCreateTagRequestData} label - Label to assign to the pull request.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project ID or project name.\r\n */\r\n createPullRequestLabel(label, repositoryId, pullRequestId, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"f22387e3-984e-4c52-9c6d-fbb8f14c812d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, label, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a label from the set of those assigned to the pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} labelIdOrName - The name or ID of the label requested.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project ID or project name.\r\n */\r\n deletePullRequestLabels(repositoryId, pullRequestId, labelIdOrName, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n labelIdOrName: labelIdOrName\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"f22387e3-984e-4c52-9c6d-fbb8f14c812d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves a single label that has been assigned to a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} labelIdOrName - The name or ID of the label requested.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project ID or project name.\r\n */\r\n getPullRequestLabel(repositoryId, pullRequestId, labelIdOrName, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n labelIdOrName: labelIdOrName\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"f22387e3-984e-4c52-9c6d-fbb8f14c812d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all the labels assigned to a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project ID or project name.\r\n */\r\n getPullRequestLabels(repositoryId, pullRequestId, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"f22387e3-984e-4c52-9c6d-fbb8f14c812d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get external properties of the pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestProperties(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"48a52185-5b9e-4736-9dc1-bb1e2feac80b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create or update pull request external properties. The patch operation can be `add`, `replace` or `remove`. For `add` operation, the path can be empty. If the path is empty, the value must be a list of key value pairs. For `replace` operation, the path cannot be empty. If the path does not exist, the property will be added to the collection. For `remove` operation, the path cannot be empty. If the path does not exist, no action will be performed.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} patchDocument - Properties to add, replace or remove in JSON Patch format.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestProperties(customHeaders, patchDocument, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"48a52185-5b9e-4736-9dc1-bb1e2feac80b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, patchDocument, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * This API is used to find what pull requests are related to a given commit. It can be used to either find the pull request that created a particular merge commit or it can be used to find all pull requests that have ever merged a particular commit. The input is a list of queries which each contain a list of commits. For each commit that you search against, you will get back a dictionary of commit -> pull requests.\r\n *\r\n * @param {GitInterfaces.GitPullRequestQuery} queries - The list of queries to perform.\r\n * @param {string} repositoryId - ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestQuery(queries, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b3a6eebe-9cf0-49ea-b6cb-1a4c5f5007b0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, queries, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a reviewer to a pull request or cast a vote.\r\n *\r\n * @param {GitInterfaces.IdentityRefWithVote} reviewer - Reviewer's vote.
If the reviewer's ID is included here, it must match the reviewerID parameter.
Reviewers can set their own vote with this method. When adding other reviewers, vote must be set to zero.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} reviewerId - ID of the reviewer.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPullRequestReviewer(reviewer, repositoryId, pullRequestId, reviewerId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n reviewerId: reviewerId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, reviewer, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add reviewers to a pull request.\r\n *\r\n * @param {VSSInterfaces.IdentityRef[]} reviewers - Reviewers to add to the pull request.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPullRequestReviewers(reviewers, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, reviewers, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add an unmaterialized identity to the reviewers of a pull request.\r\n *\r\n * @param {GitInterfaces.IdentityRefWithVote} reviewer - Reviewer to add to the pull request.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createUnmaterializedPullRequestReviewer(reviewer, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, reviewer, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Remove a reviewer from a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} reviewerId - ID of the reviewer to remove.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deletePullRequestReviewer(repositoryId, pullRequestId, reviewerId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n reviewerId: reviewerId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve information about a particular reviewer on a pull request\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} reviewerId - ID of the reviewer.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestReviewer(repositoryId, pullRequestId, reviewerId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n reviewerId: reviewerId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve the reviewers for a pull request\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestReviewers(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Edit a reviewer entry. These fields are patchable: isFlagged, hasDeclined\r\n *\r\n * @param {GitInterfaces.IdentityRefWithVote} reviewer - Reviewer data.
If the reviewer's ID is included here, it must match the reviewerID parameter.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} reviewerId - ID of the reviewer.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestReviewer(reviewer, repositoryId, pullRequestId, reviewerId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n reviewerId: reviewerId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, reviewer, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Reset the votes of multiple reviewers on a pull request. NOTE: This endpoint only supports updating votes, but does not support updating required reviewers (use policy) or display names.\r\n *\r\n * @param {GitInterfaces.IdentityRefWithVote[]} patchVotes - IDs of the reviewers whose votes will be reset to zero\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestReviewers(patchVotes, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"4b6702c7-aa35-4b89-9c96-b9abf6d3e540\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, patchVotes, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a pull request.\r\n *\r\n * @param {number} pullRequestId - The ID of the pull request to retrieve.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestById(pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"01a46dea-7d46-4d40-bc84-319e7c260d99\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all pull requests matching a specified criteria.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {GitInterfaces.GitPullRequestSearchCriteria} searchCriteria - Pull requests will be returned that match this search criteria.\r\n * @param {number} maxCommentLength - Not used.\r\n * @param {number} skip - The number of pull requests to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100.\r\n * @param {number} top - The number of pull requests to retrieve.\r\n */\r\n getPullRequestsByProject(project, searchCriteria, maxCommentLength, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (searchCriteria == null) {\r\n throw new TypeError('searchCriteria can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n searchCriteria: searchCriteria,\r\n maxCommentLength: maxCommentLength,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"a5d28130-9cd2-40fa-9f08-902e7daa9efb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a pull request.\r\n *\r\n * @param {GitInterfaces.GitPullRequest} gitPullRequestToCreate - The pull request to create.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} supportsIterations - If true, subsequent pushes to the pull request will be individually reviewable. Set this to false for large pull requests for performance reasons if this functionality is not needed.\r\n */\r\n createPullRequest(gitPullRequestToCreate, repositoryId, project, supportsIterations) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n supportsIterations: supportsIterations,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"9946fd70-0d40-406e-b686-b4744cbbcc37\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, gitPullRequestToCreate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - The ID of the pull request to retrieve.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} maxCommentLength - Not used.\r\n * @param {number} skip - Not used.\r\n * @param {number} top - Not used.\r\n * @param {boolean} includeCommits - If true, the pull request will be returned with the associated commits.\r\n * @param {boolean} includeWorkItemRefs - If true, the pull request will be returned with the associated work item references.\r\n */\r\n getPullRequest(repositoryId, pullRequestId, project, maxCommentLength, skip, top, includeCommits, includeWorkItemRefs) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n maxCommentLength: maxCommentLength,\r\n '$skip': skip,\r\n '$top': top,\r\n includeCommits: includeCommits,\r\n includeWorkItemRefs: includeWorkItemRefs,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"9946fd70-0d40-406e-b686-b4744cbbcc37\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all pull requests matching a specified criteria.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {GitInterfaces.GitPullRequestSearchCriteria} searchCriteria - Pull requests will be returned that match this search criteria.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} maxCommentLength - Not used.\r\n * @param {number} skip - The number of pull requests to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100.\r\n * @param {number} top - The number of pull requests to retrieve.\r\n */\r\n getPullRequests(repositoryId, searchCriteria, project, maxCommentLength, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (searchCriteria == null) {\r\n throw new TypeError('searchCriteria can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n searchCriteria: searchCriteria,\r\n maxCommentLength: maxCommentLength,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"9946fd70-0d40-406e-b686-b4744cbbcc37\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a pull request\r\n *\r\n * @param {GitInterfaces.GitPullRequest} gitPullRequestToUpdate - The pull request content that should be updated.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request to update.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequest(gitPullRequestToUpdate, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"9946fd70-0d40-406e-b686-b4744cbbcc37\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, gitPullRequestToUpdate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Sends an e-mail notification about a specific pull request to a set of recipients\r\n *\r\n * @param {GitInterfaces.ShareNotificationContext} userMessage\r\n * @param {string} repositoryId - ID of the git repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n sharePullRequest(userMessage, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"696f3a82-47c9-487f-9117-b9d00972ca84\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, userMessage, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a pull request status.\r\n *\r\n * @param {GitInterfaces.GitPullRequestStatus} status - Pull request status to create.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPullRequestStatus(status, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, status, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete pull request status.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} statusId - ID of the pull request status.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deletePullRequestStatus(repositoryId, pullRequestId, statusId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n statusId: statusId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the specific pull request status by ID. The status ID is unique within the pull request across all iterations.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} statusId - ID of the pull request status.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestStatus(repositoryId, pullRequestId, statusId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n statusId: statusId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all the statuses associated with a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestStatuses(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestStatus, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update pull request statuses collection. The only supported operation type is `remove`.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} patchDocument - Operations to apply to the pull request statuses in JSON Patch format.\r\n * @param {string} repositoryId - The repository ID of the pull request’s target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePullRequestStatuses(customHeaders, patchDocument, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"b5f6bb4f-8d1e-4d79-8d11-4c9172c99c35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, patchDocument, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a comment on a specific thread in a pull request (up to 500 comments can be created per thread).\r\n *\r\n * @param {GitInterfaces.Comment} comment - The comment to create. Comments can be up to 150,000 characters.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread that the desired comment is in.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createComment(comment, repositoryId, pullRequestId, threadId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, comment, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a comment associated with a specific thread in a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread that the desired comment is in.\r\n * @param {number} commentId - ID of the comment.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteComment(repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a comment associated with a specific thread in a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread that the desired comment is in.\r\n * @param {number} commentId - ID of the comment.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getComment(repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all comments associated with a specific thread in a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getComments(repositoryId, pullRequestId, threadId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a comment associated with a specific thread in a pull request.\r\n *\r\n * @param {GitInterfaces.Comment} comment - The comment content that should be updated. Comments can be up to 150,000 characters.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread that the desired comment is in.\r\n * @param {number} commentId - ID of the comment to update.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateComment(comment, repositoryId, pullRequestId, threadId, commentId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"965a3ec7-5ed8-455a-bdcb-835a5ea7fe7b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, comment, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a thread in a pull request.\r\n *\r\n * @param {GitInterfaces.GitPullRequestCommentThread} commentThread - The thread to create. Thread must contain at least one comment.\r\n * @param {string} repositoryId - Repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createThread(commentThread, repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"ab6e2e5d-a0b7-4153-b64a-a4efe0d49449\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, commentThread, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a thread in a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} iteration - If specified, thread position will be tracked using this iteration as the right side of the diff.\r\n * @param {number} baseIteration - If specified, thread position will be tracked using this iteration as the left side of the diff.\r\n */\r\n getPullRequestThread(repositoryId, pullRequestId, threadId, project, iteration, baseIteration) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId\r\n };\r\n let queryValues = {\r\n '$iteration': iteration,\r\n '$baseIteration': baseIteration,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"ab6e2e5d-a0b7-4153-b64a-a4efe0d49449\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all threads in a pull request.\r\n *\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} iteration - If specified, thread positions will be tracked using this iteration as the right side of the diff.\r\n * @param {number} baseIteration - If specified, thread positions will be tracked using this iteration as the left side of the diff.\r\n */\r\n getThreads(repositoryId, pullRequestId, project, iteration, baseIteration) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n let queryValues = {\r\n '$iteration': iteration,\r\n '$baseIteration': baseIteration,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"ab6e2e5d-a0b7-4153-b64a-a4efe0d49449\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a thread in a pull request.\r\n *\r\n * @param {GitInterfaces.GitPullRequestCommentThread} commentThread - The thread content that should be updated.\r\n * @param {string} repositoryId - The repository ID of the pull request's target branch.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {number} threadId - ID of the thread to update.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateThread(commentThread, repositoryId, pullRequestId, threadId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId,\r\n threadId: threadId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"ab6e2e5d-a0b7-4153-b64a-a4efe0d49449\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, commentThread, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPullRequestCommentThread, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a list of work items associated with a pull request.\r\n *\r\n * @param {string} repositoryId - ID or name of the repository.\r\n * @param {number} pullRequestId - ID of the pull request.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPullRequestWorkItemRefs(repositoryId, pullRequestId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pullRequestId: pullRequestId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"0a637fcc-5370-4ce8-b0e8-98091f5f9482\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Push changes to the repository.\r\n *\r\n * @param {GitInterfaces.GitPush} push\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPush(push, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"git\", \"ea98d07b-3c87-4971-8ede-a613694ffb55\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, push, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPush, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves a particular push.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {number} pushId - ID of the push.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} includeCommits - The number of commits to include in the result.\r\n * @param {boolean} includeRefUpdates - If true, include the list of refs that were updated by the push.\r\n */\r\n getPush(repositoryId, pushId, project, includeCommits, includeRefUpdates) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n pushId: pushId\r\n };\r\n let queryValues = {\r\n includeCommits: includeCommits,\r\n includeRefUpdates: includeRefUpdates,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"git\", \"ea98d07b-3c87-4971-8ede-a613694ffb55\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPush, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves pushes associated with the specified repository.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} skip - Number of pushes to skip.\r\n * @param {number} top - Number of pushes to return.\r\n * @param {GitInterfaces.GitPushSearchCriteria} searchCriteria - Search criteria attributes: fromDate, toDate, pusherId, refName, includeRefUpdates or includeLinks. fromDate: Start date to search from. toDate: End date to search to. pusherId: Identity of the person who submitted the push. refName: Branch name to consider. includeRefUpdates: If true, include the list of refs that were updated by the push. includeLinks: Whether to include the _links field on the shallow references.\r\n */\r\n getPushes(repositoryId, project, skip, top, searchCriteria) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n '$skip': skip,\r\n '$top': top,\r\n searchCriteria: searchCriteria,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"git\", \"ea98d07b-3c87-4971-8ede-a613694ffb55\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitPush, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Destroy (hard delete) a soft-deleted Git repository.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The ID of the repository.\r\n */\r\n deleteRepositoryFromRecycleBin(project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"a663da97-81db-4eb3-8b83-287670f63073\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve soft-deleted git repositories from the recycle bin.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRecycleBinRepositories(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"a663da97-81db-4eb3-8b83-287670f63073\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitDeletedRepository, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Recover a soft-deleted Git repository. Recently deleted repositories go into a soft-delete state for a period of time before they are hard deleted and become unrecoverable.\r\n *\r\n * @param {GitInterfaces.GitRecycleBinRepositoryDetails} repositoryDetails\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The ID of the repository.\r\n */\r\n restoreRepositoryFromRecycleBin(repositoryDetails, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"a663da97-81db-4eb3-8b83-287670f63073\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, repositoryDetails, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Queries the provided repository for its refs and returns them.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} filter - [optional] A filter to apply to the refs (starts with).\r\n * @param {boolean} includeLinks - [optional] Specifies if referenceLinks should be included in the result. default is false.\r\n * @param {boolean} includeStatuses - [optional] Includes up to the first 1000 commit statuses for each ref. The default value is false.\r\n * @param {boolean} includeMyBranches - [optional] Includes only branches that the user owns, the branches the user favorites, and the default branch. The default value is false. Cannot be combined with the filter parameter.\r\n * @param {boolean} latestStatusesOnly - [optional] True to include only the tip commit status for each ref. This option requires `includeStatuses` to be true. The default value is false.\r\n * @param {boolean} peelTags - [optional] Annotated tags will populate the PeeledObjectId property. default is false.\r\n * @param {string} filterContains - [optional] A filter to apply to the refs (contains).\r\n */\r\n getRefs(repositoryId, project, filter, includeLinks, includeStatuses, includeMyBranches, latestStatusesOnly, peelTags, filterContains) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n filter: filter,\r\n includeLinks: includeLinks,\r\n includeStatuses: includeStatuses,\r\n includeMyBranches: includeMyBranches,\r\n latestStatusesOnly: latestStatusesOnly,\r\n peelTags: peelTags,\r\n filterContains: filterContains,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"2d874a60-a811-4f62-9c9f-963a6ea0a55b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Lock or Unlock a branch.\r\n *\r\n * @param {GitInterfaces.GitRefUpdate} newRefInfo - The ref update action (lock/unlock) to perform\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} filter - The name of the branch to lock/unlock\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - ID or name of the team project. Optional if specifying an ID for repository.\r\n */\r\n updateRef(newRefInfo, repositoryId, filter, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (filter == null) {\r\n throw new TypeError('filter can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n filter: filter,\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"2d874a60-a811-4f62-9c9f-963a6ea0a55b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, newRefInfo, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRef, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creating, updating, or deleting refs(branches).\r\n *\r\n * @param {GitInterfaces.GitRefUpdate[]} refUpdates - List of ref updates to attempt to perform\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - ID or name of the team project. Optional if specifying an ID for repository.\r\n */\r\n updateRefs(refUpdates, repositoryId, project, projectId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"2d874a60-a811-4f62-9c9f-963a6ea0a55b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, refUpdates, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefUpdateResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a ref favorite\r\n *\r\n * @param {GitInterfaces.GitRefFavorite} favorite - The ref favorite to create.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createFavorite(favorite, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"876f70af-5792-485a-a1c7-d0a7b2f42bbb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, favorite, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefFavorite, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the refs favorite specified\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} favoriteId - The Id of the ref favorite to delete.\r\n */\r\n deleteRefFavorite(project, favoriteId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n favoriteId: favoriteId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"876f70af-5792-485a-a1c7-d0a7b2f42bbb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the refs favorite for a favorite Id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} favoriteId - The Id of the requested ref favorite.\r\n */\r\n getRefFavorite(project, favoriteId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n favoriteId: favoriteId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"876f70af-5792-485a-a1c7-d0a7b2f42bbb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefFavorite, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the refs favorites for a repo and an identity.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - The id of the repository.\r\n * @param {string} identityId - The id of the identity whose favorites are to be retrieved. If null, the requesting identity is used.\r\n */\r\n getRefFavorites(project, repositoryId, identityId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n repositoryId: repositoryId,\r\n identityId: identityId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"876f70af-5792-485a-a1c7-d0a7b2f42bbb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRefFavorite, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a git repository in a team project.\r\n *\r\n * @param {GitInterfaces.GitRepositoryCreateOptions} gitRepositoryToCreate - Specify the repo name, team project and/or parent repository. Team project information can be omitted from gitRepositoryToCreate if the request is project-scoped (i.e., includes project Id).\r\n * @param {string} project - Project ID or project name\r\n * @param {string} sourceRef - [optional] Specify the source refs to use while creating a fork repo\r\n */\r\n createRepository(gitRepositoryToCreate, project, sourceRef) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n sourceRef: sourceRef,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, gitRepositoryToCreate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a git repository\r\n *\r\n * @param {string} repositoryId - The ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteRepository(repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve git repositories.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeLinks - [optional] True to include reference links. The default value is false.\r\n * @param {boolean} includeAllUrls - [optional] True to include all remote URLs. The default value is false.\r\n * @param {boolean} includeHidden - [optional] True to include hidden repositories. The default value is false.\r\n */\r\n getRepositories(project, includeLinks, includeAllUrls, includeHidden) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n includeLinks: includeLinks,\r\n includeAllUrls: includeAllUrls,\r\n includeHidden: includeHidden,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a git repository.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRepository(repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a git repository.\r\n *\r\n * @param {string} repositoryId - The name or ID of the repository.\r\n * @param {boolean} includeParent - True to include parent repository. Only available in authenticated calls.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRepositoryWithParent(repositoryId, includeParent, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (includeParent == null) {\r\n throw new TypeError('includeParent can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n includeParent: includeParent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the Git repository with either a new repo name or a new default branch.\r\n *\r\n * @param {GitInterfaces.GitRepository} newRepositoryInfo - Specify a new repo name or a new default branch of the repository\r\n * @param {string} repositoryId - The ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateRepository(newRepositoryInfo, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"225f7195-f9c7-4d14-ab28-a83f7ff77e1f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, newRepositoryInfo, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRepository, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve one conflict for a revert by ID\r\n *\r\n * @param {string} repositoryId\r\n * @param {number} revertId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRevertConflict(repositoryId, revertId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n revertId: revertId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"10d7ae6d-1050-446d-852a-bd5d99f834bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all conflicts for a revert\r\n *\r\n * @param {string} repositoryId\r\n * @param {number} revertId\r\n * @param {string} project - Project ID or project name\r\n * @param {string} continuationToken\r\n * @param {number} top\r\n * @param {boolean} excludeResolved\r\n * @param {boolean} onlyResolved\r\n * @param {boolean} includeObsolete\r\n */\r\n getRevertConflicts(repositoryId, revertId, project, continuationToken, top, excludeResolved, onlyResolved, includeObsolete) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n revertId: revertId\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n excludeResolved: excludeResolved,\r\n onlyResolved: onlyResolved,\r\n includeObsolete: includeObsolete,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"10d7ae6d-1050-446d-852a-bd5d99f834bf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update merge conflict resolution\r\n *\r\n * @param {GitInterfaces.GitConflict} conflict\r\n * @param {string} repositoryId\r\n * @param {number} revertId\r\n * @param {number} conflictId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateRevertConflict(conflict, repositoryId, revertId, conflictId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n revertId: revertId,\r\n conflictId: conflictId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"10d7ae6d-1050-446d-852a-bd5d99f834bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflict, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflict, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update multiple merge conflict resolutions\r\n *\r\n * @param {GitInterfaces.GitConflict[]} conflictUpdates\r\n * @param {string} repositoryId\r\n * @param {number} revertId\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateRevertConflicts(conflictUpdates, repositoryId, revertId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n revertId: revertId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"10d7ae6d-1050-446d-852a-bd5d99f834bf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, conflictUpdates, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitConflictUpdateResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Starts the operation to create a new branch which reverts changes introduced by either a specific commit or commits that are associated to a pull request.\r\n *\r\n * @param {GitInterfaces.GitAsyncRefOperationParameters} revertToCreate\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID of the repository.\r\n */\r\n createRevert(revertToCreate, project, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"bc866058-5449-4715-9cf1-a510b6ff193c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, revertToCreate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRevert, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve information about a revert operation by revert Id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} revertId - ID of the revert operation.\r\n * @param {string} repositoryId - ID of the repository.\r\n */\r\n getRevert(project, revertId, repositoryId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n revertId: revertId,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"bc866058-5449-4715-9cf1-a510b6ff193c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRevert, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve information about a revert operation for a specific branch.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId - ID of the repository.\r\n * @param {string} refName - The GitAsyncRefOperationParameters generatedRefName used for the revert operation.\r\n */\r\n getRevertForRefName(project, repositoryId, refName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (refName == null) {\r\n throw new TypeError('refName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n refName: refName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"bc866058-5449-4715-9cf1-a510b6ff193c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitRevert, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create Git commit status.\r\n *\r\n * @param {GitInterfaces.GitStatus} gitCommitStatusToCreate - Git commit status object to create.\r\n * @param {string} commitId - ID of the Git commit.\r\n * @param {string} repositoryId - ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createCommitStatus(gitCommitStatusToCreate, commitId, repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n commitId: commitId,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"428dd4fb-fda5-4722-af02-9313b80305da\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, gitCommitStatusToCreate, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitStatus, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get statuses associated with the Git commit.\r\n *\r\n * @param {string} commitId - ID of the Git commit.\r\n * @param {string} repositoryId - ID of the repository.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - Optional. The number of statuses to retrieve. Default is 1000.\r\n * @param {number} skip - Optional. The number of statuses to ignore. Default is 0. For example, to retrieve results 101-150, set top to 50 and skip to 100.\r\n * @param {boolean} latestOnly - The flag indicates whether to get only latest statuses grouped by `Context.Name` and `Context.Genre`.\r\n */\r\n getStatuses(commitId, repositoryId, project, top, skip, latestOnly) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n commitId: commitId,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n top: top,\r\n skip: skip,\r\n latestOnly: latestOnly,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"428dd4fb-fda5-4722-af02-9313b80305da\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitStatus, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a pull request suggestion for a particular repository or team project.\r\n *\r\n * @param {string} repositoryId - ID of the git repository.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getSuggestions(repositoryId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"9393b4fb-4445-4919-972b-9ad16f442d83\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * The Tree endpoint returns the collection of objects underneath the specified tree. Trees are folders in a Git repository.\r\n *\r\n * @param {string} repositoryId - Repository Id.\r\n * @param {string} sha1 - SHA1 hash of the tree object.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project Id.\r\n * @param {boolean} recursive - Search recursively. Include trees underneath this tree. Default is false.\r\n * @param {string} fileName - Name to use if a .zip file is returned. Default is the object ID.\r\n */\r\n getTree(repositoryId, sha1, project, projectId, recursive, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n sha1: sha1\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n recursive: recursive,\r\n fileName: fileName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"729f6437-6f92-44ec-8bee-273a7111063c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, GitInterfaces.TypeInfo.GitTreeRef, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * The Tree endpoint returns the collection of objects underneath the specified tree. Trees are folders in a Git repository.\r\n *\r\n * @param {string} repositoryId - Repository Id.\r\n * @param {string} sha1 - SHA1 hash of the tree object.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} projectId - Project Id.\r\n * @param {boolean} recursive - Search recursively. Include trees underneath this tree. Default is false.\r\n * @param {string} fileName - Name to use if a .zip file is returned. Default is the object ID.\r\n */\r\n getTreeZip(repositoryId, sha1, project, projectId, recursive, fileName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId,\r\n sha1: sha1\r\n };\r\n let queryValues = {\r\n projectId: projectId,\r\n recursive: recursive,\r\n fileName: fileName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"git\", \"729f6437-6f92-44ec-8bee-273a7111063c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nGitApi.RESOURCE_AREA_ID = \"4e080c62-fa21-4fbc-8fef-2a10a2b38049\";\r\nexports.GitApi = GitApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst LocationsInterfaces = require(\"./interfaces/LocationsInterfaces\");\r\nclass LocationsApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Locations-api', options);\r\n }\r\n /**\r\n * This was copied and adapted from TeamFoundationConnectionService.Connect()\r\n *\r\n * @param {VSSInterfaces.ConnectOptions} connectOptions\r\n * @param {number} lastChangeId - Obsolete 32-bit LastChangeId\r\n * @param {number} lastChangeId64 - Non-truncated 64-bit LastChangeId\r\n */\r\n getConnectionData(connectOptions, lastChangeId, lastChangeId64) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n connectOptions: connectOptions,\r\n lastChangeId: lastChangeId,\r\n lastChangeId64: lastChangeId64,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"00d9565f-ed9c-4a06-9a50-00e7896ccab4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, LocationsInterfaces.TypeInfo.ConnectionData, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} areaId\r\n * @param {string} enterpriseName\r\n * @param {string} organizationName\r\n */\r\n getResourceArea(areaId, enterpriseName, organizationName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n areaId: areaId\r\n };\r\n let queryValues = {\r\n enterpriseName: enterpriseName,\r\n organizationName: organizationName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"e81700f7-3be2-46de-8624-2eb35882fcaa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} areaId\r\n * @param {string} hostId\r\n */\r\n getResourceAreaByHost(areaId, hostId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (hostId == null) {\r\n throw new TypeError('hostId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n areaId: areaId\r\n };\r\n let queryValues = {\r\n hostId: hostId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"e81700f7-3be2-46de-8624-2eb35882fcaa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} enterpriseName\r\n * @param {string} organizationName\r\n */\r\n getResourceAreas(enterpriseName, organizationName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n enterpriseName: enterpriseName,\r\n organizationName: organizationName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"e81700f7-3be2-46de-8624-2eb35882fcaa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} hostId\r\n */\r\n getResourceAreasByHost(hostId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (hostId == null) {\r\n throw new TypeError('hostId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n hostId: hostId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"e81700f7-3be2-46de-8624-2eb35882fcaa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} serviceType\r\n * @param {string} identifier\r\n */\r\n deleteServiceDefinition(serviceType, identifier) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n serviceType: serviceType,\r\n identifier: identifier\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"d810a47d-f4f4-4a62-a03f-fa1860585c4c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Finds a given service definition.\r\n *\r\n * @param {string} serviceType\r\n * @param {string} identifier\r\n * @param {boolean} allowFaultIn - If true, we will attempt to fault in a host instance mapping if in SPS.\r\n * @param {boolean} previewFaultIn - If true, we will calculate and return a host instance mapping, but not persist it.\r\n */\r\n getServiceDefinition(serviceType, identifier, allowFaultIn, previewFaultIn) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n serviceType: serviceType,\r\n identifier: identifier\r\n };\r\n let queryValues = {\r\n allowFaultIn: allowFaultIn,\r\n previewFaultIn: previewFaultIn,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"d810a47d-f4f4-4a62-a03f-fa1860585c4c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, LocationsInterfaces.TypeInfo.ServiceDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} serviceType\r\n */\r\n getServiceDefinitions(serviceType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n serviceType: serviceType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"d810a47d-f4f4-4a62-a03f-fa1860585c4c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, LocationsInterfaces.TypeInfo.ServiceDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {VSSInterfaces.VssJsonCollectionWrapperV} serviceDefinitions\r\n */\r\n updateServiceDefinitions(serviceDefinitions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Location\", \"d810a47d-f4f4-4a62-a03f-fa1860585c4c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, serviceDefinitions, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.LocationsApi = LocationsApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst NotificationInterfaces = require(\"./interfaces/NotificationInterfaces\");\r\nconst VSSInterfaces = require(\"./interfaces/common/VSSInterfaces\");\r\nclass NotificationApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Notification-api', options);\r\n }\r\n /**\r\n * @param {NotificationInterfaces.BatchNotificationOperation} operation\r\n */\r\n performBatchNotificationOperations(operation) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"8f3c6ab2-5bae-4537-b16e-f84e0955599e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, operation, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of diagnostic logs for this service.\r\n *\r\n * @param {string} source - ID specifying which type of logs to check diagnostics for.\r\n * @param {string} entryId - The ID of the specific log to query for.\r\n * @param {Date} startTime - Start time for the time range to query in.\r\n * @param {Date} endTime - End time for the time range to query in.\r\n */\r\n listLogs(source, entryId, startTime, endTime) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n source: source,\r\n entryId: entryId\r\n };\r\n let queryValues = {\r\n startTime: startTime,\r\n endTime: endTime,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"991842f3-eb16-4aea-ac81-81353ef2b75c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.INotificationDiagnosticLog, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the diagnostics settings for a subscription.\r\n *\r\n * @param {string} subscriptionId - The id of the notifications subscription.\r\n */\r\n getSubscriptionDiagnostics(subscriptionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"20f1929d-4be7-4c2e-a74e-d47640ff3418\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.SubscriptionDiagnostics, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the diagnostics settings for a subscription.\r\n *\r\n * @param {NotificationInterfaces.UpdateSubscripitonDiagnosticsParameters} updateParameters\r\n * @param {string} subscriptionId - The id of the notifications subscription.\r\n */\r\n updateSubscriptionDiagnostics(updateParameters, subscriptionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"20f1929d-4be7-4c2e-a74e-d47640ff3418\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.SubscriptionDiagnostics, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Publish an event. This request must be directed to the service \"extmgmt\".\r\n *\r\n * @param {VSSInterfaces.VssNotificationEvent} notificationEvent\r\n */\r\n publishEvent(notificationEvent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"14c57b7a-c0e6-4555-9f51-e067188fdd8e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, notificationEvent, options);\r\n let ret = this.formatResponse(res.result, VSSInterfaces.TypeInfo.VssNotificationEvent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Tranform a notification event.\r\n *\r\n * @param {NotificationInterfaces.EventTransformRequest} transformRequest - Object to be transformed.\r\n */\r\n transformEvent(transformRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"9463a800-1b44-450e-9083-f948ea174b45\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, transformRequest, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NotificationInterfaces.FieldValuesQuery} inputValuesQuery\r\n * @param {string} eventType\r\n */\r\n queryEventTypes(inputValuesQuery, eventType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n eventType: eventType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"b5bbdd21-c178-4398-b6db-0166d910028a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, inputValuesQuery, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationEventField, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a specific event type.\r\n *\r\n * @param {string} eventType - The ID of the event type.\r\n */\r\n getEventType(eventType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n eventType: eventType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"cc84fb5f-6247-4c7a-aeae-e5a3c3fddb21\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationEventType, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List available event types for this service. Optionally filter by only event types for the specified publisher.\r\n *\r\n * @param {string} publisherId - Limit to event types for this publisher\r\n */\r\n listEventTypes(publisherId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n publisherId: publisherId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"cc84fb5f-6247-4c7a-aeae-e5a3c3fddb21\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationEventType, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} notificationId\r\n */\r\n getNotificationReasons(notificationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n notificationId: notificationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"19824fa9-1c76-40e6-9cce-cf0b9ca1cb60\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationReason, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} notificationIds\r\n */\r\n listNotificationReasons(notificationIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n notificationIds: notificationIds,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"19824fa9-1c76-40e6-9cce-cf0b9ca1cb60\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationReason, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getSettings() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"cbe076d8-2803-45ff-8d8d-44653686ea2a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationAdminSettings, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NotificationInterfaces.NotificationAdminSettingsUpdateParameters} updateParameters\r\n */\r\n updateSettings(updateParameters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"cbe076d8-2803-45ff-8d8d-44653686ea2a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationAdminSettings, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get delivery preferences of a notifications subscriber.\r\n *\r\n * @param {string} subscriberId - ID of the user or group.\r\n */\r\n getSubscriber(subscriberId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriberId: subscriberId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"4d5caff1-25ba-430b-b808-7a1f352cc197\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscriber, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update delivery preferences of a notifications subscriber.\r\n *\r\n * @param {NotificationInterfaces.NotificationSubscriberUpdateParameters} updateParameters\r\n * @param {string} subscriberId - ID of the user or group.\r\n */\r\n updateSubscriber(updateParameters, subscriberId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriberId: subscriberId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"4d5caff1-25ba-430b-b808-7a1f352cc197\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscriber, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Query for subscriptions. A subscription is returned if it matches one or more of the specified conditions.\r\n *\r\n * @param {NotificationInterfaces.SubscriptionQuery} subscriptionQuery\r\n */\r\n querySubscriptions(subscriptionQuery) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"6864db85-08c0-4006-8e8e-cc1bebe31675\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, subscriptionQuery, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a new subscription.\r\n *\r\n * @param {NotificationInterfaces.NotificationSubscriptionCreateParameters} createParameters\r\n */\r\n createSubscription(createParameters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"70f911d6-abac-488c-85b3-a206bf57e165\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, createParameters, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a subscription.\r\n *\r\n * @param {string} subscriptionId\r\n */\r\n deleteSubscription(subscriptionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"70f911d6-abac-488c-85b3-a206bf57e165\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a notification subscription by its ID.\r\n *\r\n * @param {string} subscriptionId\r\n * @param {NotificationInterfaces.SubscriptionQueryFlags} queryFlags\r\n */\r\n getSubscription(subscriptionId, queryFlags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId\r\n };\r\n let queryValues = {\r\n queryFlags: queryFlags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"70f911d6-abac-488c-85b3-a206bf57e165\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of notification subscriptions, either by subscription IDs or by all subscriptions for a given user or group.\r\n *\r\n * @param {string} targetId - User or Group ID\r\n * @param {string[]} ids - List of subscription IDs\r\n * @param {NotificationInterfaces.SubscriptionQueryFlags} queryFlags\r\n */\r\n listSubscriptions(targetId, ids, queryFlags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n targetId: targetId,\r\n ids: ids && ids.join(\",\"),\r\n queryFlags: queryFlags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"70f911d6-abac-488c-85b3-a206bf57e165\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update an existing subscription. Depending on the type of subscription and permissions, the caller can update the description, filter settings, channel (delivery) settings and more.\r\n *\r\n * @param {NotificationInterfaces.NotificationSubscriptionUpdateParameters} updateParameters\r\n * @param {string} subscriptionId\r\n */\r\n updateSubscription(updateParameters, subscriptionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"70f911d6-abac-488c-85b3-a206bf57e165\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscription, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get available subscription templates.\r\n *\r\n */\r\n getSubscriptionTemplates() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"fa5d24ba-7484-4f3d-888d-4ec6b1974082\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, NotificationInterfaces.TypeInfo.NotificationSubscriptionTemplate, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the specified user's settings for the specified subscription. This API is typically used to opt in or out of a shared subscription. User settings can only be applied to shared subscriptions, like team subscriptions or default subscriptions.\r\n *\r\n * @param {NotificationInterfaces.SubscriptionUserSettings} userSettings\r\n * @param {string} subscriptionId\r\n * @param {string} userId - ID of the user\r\n */\r\n updateSubscriptionUserSettings(userSettings, subscriptionId, userId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n subscriptionId: subscriptionId,\r\n userId: userId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"notification\", \"ed5a3dff-aeb5-41b1-b4f7-89e66e58b62e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, userSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.NotificationApi = NotificationApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst PolicyInterfaces = require(\"./interfaces/PolicyInterfaces\");\r\nclass PolicyApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Policy-api', options);\r\n }\r\n /**\r\n * Create a policy configuration of a given policy type.\r\n *\r\n * @param {PolicyInterfaces.PolicyConfiguration} configuration - The policy configuration to create.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId\r\n */\r\n createPolicyConfiguration(configuration, project, configurationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"dad91cbe-d183-45f8-9c6e-9c1164472121\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, configuration, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a policy configuration by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId - ID of the policy configuration to delete.\r\n */\r\n deletePolicyConfiguration(project, configurationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"dad91cbe-d183-45f8-9c6e-9c1164472121\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a policy configuration by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId - ID of the policy configuration\r\n */\r\n getPolicyConfiguration(project, configurationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"dad91cbe-d183-45f8-9c6e-9c1164472121\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of policy configurations in a project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scope - [Provided for legacy reasons] The scope on which a subset of policies is defined.\r\n * @param {string} policyType - Filter returned policies to only this type\r\n */\r\n getPolicyConfigurations(project, scope, policyType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n scope: scope,\r\n policyType: policyType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"dad91cbe-d183-45f8-9c6e-9c1164472121\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a policy configuration by its ID.\r\n *\r\n * @param {PolicyInterfaces.PolicyConfiguration} configuration - The policy configuration to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId - ID of the existing policy configuration to be updated.\r\n */\r\n updatePolicyConfiguration(configuration, project, configurationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"dad91cbe-d183-45f8-9c6e-9c1164472121\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, configuration, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the present evaluation state of a policy.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} evaluationId - ID of the policy evaluation to be retrieved.\r\n */\r\n getPolicyEvaluation(project, evaluationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n evaluationId: evaluationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"46aecb7a-5d2c-4647-897b-0209505a9fe4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyEvaluationRecord, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Requeue the policy evaluation.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} evaluationId - ID of the policy evaluation to be retrieved.\r\n */\r\n requeuePolicyEvaluation(project, evaluationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n evaluationId: evaluationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"46aecb7a-5d2c-4647-897b-0209505a9fe4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyEvaluationRecord, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves a list of all the policy evaluation statuses for a specific pull request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} artifactId - A string which uniquely identifies the target of a policy evaluation.\r\n * @param {boolean} includeNotApplicable - Some policies might determine that they do not apply to a specific pull request. Setting this parameter to true will return evaluation records even for policies which don't apply to this pull request.\r\n * @param {number} top - The number of policy evaluation records to retrieve.\r\n * @param {number} skip - The number of policy evaluation records to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100.\r\n */\r\n getPolicyEvaluations(project, artifactId, includeNotApplicable, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactId == null) {\r\n throw new TypeError('artifactId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n artifactId: artifactId,\r\n includeNotApplicable: includeNotApplicable,\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"c23ddff5-229c-4d04-a80b-0fdce9f360c8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyEvaluationRecord, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a specific revision of a given policy by ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId - The policy configuration ID.\r\n * @param {number} revisionId - The revision ID.\r\n */\r\n getPolicyConfigurationRevision(project, configurationId, revisionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId,\r\n revisionId: revisionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"fe1e68a2-60d3-43cb-855b-85e41ae97c95\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all revisions for a given policy.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} configurationId - The policy configuration ID.\r\n * @param {number} top - The number of revisions to retrieve.\r\n * @param {number} skip - The number of revisions to ignore. For example, to retrieve results 101-150, set top to 50 and skip to 100.\r\n */\r\n getPolicyConfigurationRevisions(project, configurationId, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n configurationId: configurationId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"fe1e68a2-60d3-43cb-855b-85e41ae97c95\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, PolicyInterfaces.TypeInfo.PolicyConfiguration, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a specific policy type by ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} typeId - The policy ID.\r\n */\r\n getPolicyType(project, typeId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n typeId: typeId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"44096322-2d3d-466a-bb30-d1b7de69f61f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve all available policy types.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPolicyTypes(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"policy\", \"44096322-2d3d-466a-bb30-d1b7de69f61f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nPolicyApi.RESOURCE_AREA_ID = \"fb13a388-40dd-4a04-b530-013a739c72ef\";\r\nexports.PolicyApi = PolicyApi;\r\n","\"use strict\";\r\n/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst ProfileInterfaces = require(\"./interfaces/ProfileInterfaces\");\r\nclass ProfileApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Profile-api', options);\r\n }\r\n /**\r\n * @param {string} id\r\n * @param {string} descriptor\r\n */\r\n deleteProfileAttribute(id, descriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n descriptor: descriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.2\", \"Profile\", \"1392b6ac-d511-492e-af5b-2263e5545a5d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n * @param {string} descriptor\r\n */\r\n getProfileAttribute(id, descriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n descriptor: descriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.2\", \"Profile\", \"1392b6ac-d511-492e-af5b-2263e5545a5d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.ProfileAttribute, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n * @param {string} partition\r\n * @param {string} modifiedSince\r\n * @param {string} modifiedAfterRevision\r\n * @param {boolean} withCoreAttributes\r\n * @param {string} coreAttributes\r\n */\r\n getProfileAttributes(id, partition, modifiedSince, modifiedAfterRevision, withCoreAttributes, coreAttributes) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n partition: partition,\r\n modifiedSince: modifiedSince,\r\n modifiedAfterRevision: modifiedAfterRevision,\r\n withCoreAttributes: withCoreAttributes,\r\n coreAttributes: coreAttributes,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.2\", \"Profile\", \"1392b6ac-d511-492e-af5b-2263e5545a5d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.ProfileAttribute, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} container\r\n * @param {string} id\r\n * @param {string} descriptor\r\n */\r\n setProfileAttribute(container, id, descriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n descriptor: descriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.2\", \"Profile\", \"1392b6ac-d511-492e-af5b-2263e5545a5d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, container, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {VSSInterfaces.VssJsonCollectionWrapperV[]>} attributesCollection\r\n * @param {string} id\r\n */\r\n setProfileAttributes(attributesCollection, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.2\", \"Profile\", \"1392b6ac-d511-492e-af5b-2263e5545a5d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, attributesCollection, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n * @param {string} size\r\n * @param {string} format\r\n */\r\n getAvatar(id, size, format) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n size: size,\r\n format: format,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"67436615-b382-462a-b659-5367a492fb3c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Avatar, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} container\r\n * @param {string} id\r\n * @param {string} size\r\n * @param {string} format\r\n * @param {string} displayName\r\n */\r\n getAvatarPreview(container, id, size, format, displayName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n size: size,\r\n format: format,\r\n displayName: displayName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"67436615-b382-462a-b659-5367a492fb3c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, container, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Avatar, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n */\r\n resetAvatar(id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"67436615-b382-462a-b659-5367a492fb3c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} container\r\n * @param {string} id\r\n */\r\n setAvatar(container, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"67436615-b382-462a-b659-5367a492fb3c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, container, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Lookup up country/region based on provided IPv4, null if using the remote IPv4 address.\r\n *\r\n * @param {string} ipaddress - IPv4 address to be used for reverse lookup, null if using RemoteIPAddress in request context\r\n */\r\n getGeoRegion(ipaddress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n ipaddress: ipaddress,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"3bcda9c0-3078-48a5-a1e0-83bd05931ad0\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create profile\r\n *\r\n * @param {ProfileInterfaces.CreateProfileContext} createProfileContext - Context for profile creation\r\n * @param {boolean} autoCreate - Create profile automatically\r\n */\r\n createProfile(createProfileContext, autoCreate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n autoCreate: autoCreate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.3\", \"Profile\", \"f83735dc-483f-4238-a291-d45f6080a9af\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, createProfileContext, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n * @param {boolean} details\r\n * @param {boolean} withAttributes\r\n * @param {string} partition\r\n * @param {string} coreAttributes\r\n * @param {boolean} forceRefresh\r\n */\r\n getProfile(id, details, withAttributes, partition, coreAttributes, forceRefresh) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n details: details,\r\n withAttributes: withAttributes,\r\n partition: partition,\r\n coreAttributes: coreAttributes,\r\n forceRefresh: forceRefresh,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.3\", \"Profile\", \"f83735dc-483f-4238-a291-d45f6080a9af\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update profile\r\n *\r\n * @param {ProfileInterfaces.Profile} profile - Update profile\r\n * @param {string} id - Profile ID\r\n */\r\n updateProfile(profile, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.3\", \"Profile\", \"f83735dc-483f-4238-a291-d45f6080a9af\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, profile, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getRegions() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"92d8d1c9-26b8-4774-a929-d640a73da524\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getSupportedLcids() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"d5bd1aa6-c269-4bcd-ad32-75fa17475584\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {boolean} includeAvatar\r\n */\r\n getUserDefaults(includeAvatar) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n includeAvatar: includeAvatar,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"b583a356-1da7-4237-9f4c-1deb2edbc7e8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} id\r\n */\r\n refreshUserDefaults(id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"Profile\", \"b583a356-1da7-4237-9f4c-1deb2edbc7e8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, options);\r\n let ret = this.formatResponse(res.result, ProfileInterfaces.TypeInfo.Profile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.ProfileApi = ProfileApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst ProjectAnalysisInterfaces = require(\"./interfaces/ProjectAnalysisInterfaces\");\r\nclass ProjectAnalysisApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-ProjectAnalysis-api', options);\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n */\r\n getProjectLanguageAnalytics(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"projectanalysis\", \"5b02a779-1867-433f-90b7-d23ed5e33e57\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.ProjectLanguageAnalytics, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {Date} fromDate\r\n * @param {ProjectAnalysisInterfaces.AggregationType} aggregationType\r\n */\r\n getProjectActivityMetrics(project, fromDate, aggregationType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (fromDate == null) {\r\n throw new TypeError('fromDate can not be null or undefined');\r\n }\r\n if (aggregationType == null) {\r\n throw new TypeError('aggregationType can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fromDate: fromDate,\r\n aggregationType: aggregationType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"projectanalysis\", \"e40ae584-9ea6-4f06-a7c7-6284651b466b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.ProjectActivityMetrics, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves git activity metrics for repositories matching a specified criteria.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {Date} fromDate - Date from which, the trends are to be fetched.\r\n * @param {ProjectAnalysisInterfaces.AggregationType} aggregationType - Bucket size on which, trends are to be aggregated.\r\n * @param {number} skip - The number of repositories to ignore.\r\n * @param {number} top - The number of repositories for which activity metrics are to be retrieved.\r\n */\r\n getGitRepositoriesActivityMetrics(project, fromDate, aggregationType, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (fromDate == null) {\r\n throw new TypeError('fromDate can not be null or undefined');\r\n }\r\n if (aggregationType == null) {\r\n throw new TypeError('aggregationType can not be null or undefined');\r\n }\r\n if (skip == null) {\r\n throw new TypeError('skip can not be null or undefined');\r\n }\r\n if (top == null) {\r\n throw new TypeError('top can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fromDate: fromDate,\r\n aggregationType: aggregationType,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"projectanalysis\", \"df7fbbca-630a-40e3-8aa3-7a3faf66947e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.RepositoryActivityMetrics, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} repositoryId\r\n * @param {Date} fromDate\r\n * @param {ProjectAnalysisInterfaces.AggregationType} aggregationType\r\n */\r\n getRepositoryActivityMetrics(project, repositoryId, fromDate, aggregationType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (fromDate == null) {\r\n throw new TypeError('fromDate can not be null or undefined');\r\n }\r\n if (aggregationType == null) {\r\n throw new TypeError('aggregationType can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n repositoryId: repositoryId\r\n };\r\n let queryValues = {\r\n fromDate: fromDate,\r\n aggregationType: aggregationType,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"projectanalysis\", \"df7fbbca-630a-40e3-8aa3-7a3faf66947e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ProjectAnalysisInterfaces.TypeInfo.RepositoryActivityMetrics, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nProjectAnalysisApi.RESOURCE_AREA_ID = \"7658fa33-b1bf-4580-990f-fac5896773d3\";\r\nexports.ProjectAnalysisApi = ProjectAnalysisApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst ReleaseInterfaces = require(\"./interfaces/ReleaseInterfaces\");\r\nclass ReleaseApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Release-api', options);\r\n }\r\n /**\r\n * Returns the artifact details that automation agent requires\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n getAgentArtifactDefinitions(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"f2571c27-bf50-4938-b396-32d109ddef26\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.AgentArtifactDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of approvals\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} assignedToFilter - Approvals assigned to this user.\r\n * @param {ReleaseInterfaces.ApprovalStatus} statusFilter - Approvals with this status. Default is 'pending'.\r\n * @param {number[]} releaseIdsFilter - Approvals for release id(s) mentioned in the filter. Multiple releases can be mentioned by separating them with ',' e.g. releaseIdsFilter=1,2,3,4.\r\n * @param {ReleaseInterfaces.ApprovalType} typeFilter - Approval with this type.\r\n * @param {number} top - Number of approvals to get. Default is 50.\r\n * @param {number} continuationToken - Gets the approvals after the continuation token provided.\r\n * @param {ReleaseInterfaces.ReleaseQueryOrder} queryOrder - Gets the results in the defined order of created approvals. Default is 'descending'.\r\n * @param {boolean} includeMyGroupApprovals - 'true' to include my group approvals. Default is 'false'.\r\n */\r\n getApprovals(project, assignedToFilter, statusFilter, releaseIdsFilter, typeFilter, top, continuationToken, queryOrder, includeMyGroupApprovals) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n assignedToFilter: assignedToFilter,\r\n statusFilter: statusFilter,\r\n releaseIdsFilter: releaseIdsFilter && releaseIdsFilter.join(\",\"),\r\n typeFilter: typeFilter,\r\n top: top,\r\n continuationToken: continuationToken,\r\n queryOrder: queryOrder,\r\n includeMyGroupApprovals: includeMyGroupApprovals,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Release\", \"b47c6458-e73b-47cb-a770-4df1e8813a91\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get approval history.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} approvalStepId - Id of the approval.\r\n */\r\n getApprovalHistory(project, approvalStepId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n approvalStepId: approvalStepId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Release\", \"250c7158-852e-4130-a00f-a0cce9b72d05\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get an approval.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} approvalId - Id of the approval.\r\n * @param {boolean} includeHistory - 'true' to include history of the approval. Default is 'false'.\r\n */\r\n getApproval(project, approvalId, includeHistory) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n approvalId: approvalId\r\n };\r\n let queryValues = {\r\n includeHistory: includeHistory,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Release\", \"9328e074-59fb-465a-89d9-b09c82ee5109\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update status of an approval\r\n *\r\n * @param {ReleaseInterfaces.ReleaseApproval} approval - ReleaseApproval object having status, approver and comments.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} approvalId - Id of the approval.\r\n */\r\n updateReleaseApproval(approval, project, approvalId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n approvalId: approvalId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Release\", \"9328e074-59fb-465a-89d9-b09c82ee5109\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, approval, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ReleaseInterfaces.ReleaseApproval[]} approvals\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateReleaseApprovals(approvals, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Release\", \"c957584a-82aa-4131-8222-6d47f78bfa7a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, approvals, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a task attachment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of the release environment.\r\n * @param {number} attemptId - Attempt number of deployment.\r\n * @param {string} timelineId - Timeline Id of the task.\r\n * @param {string} recordId - Record Id of attachment.\r\n * @param {string} type - Type of the attachment.\r\n * @param {string} name - Name of the attachment.\r\n */\r\n getTaskAttachmentContent(project, releaseId, environmentId, attemptId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c4071f6d-3697-46ca-858e-8b10ff09e52f\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a release task attachment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of the release environment.\r\n * @param {number} attemptId - Attempt number of deployment.\r\n * @param {string} planId - Plan Id of the deploy phase.\r\n * @param {string} timelineId - Timeline Id of the task.\r\n * @param {string} recordId - Record Id of attachment.\r\n * @param {string} type - Type of the attachment.\r\n * @param {string} name - Name of the attachment.\r\n */\r\n getReleaseTaskAttachmentContent(project, releaseId, environmentId, attemptId, planId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"60b86efb-7b8c-4853-8f9f-aa142b77b479\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the task attachments.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of the release environment.\r\n * @param {number} attemptId - Attempt number of deployment.\r\n * @param {string} timelineId - Timeline Id of the task.\r\n * @param {string} type - Type of the attachment.\r\n */\r\n getTaskAttachments(project, releaseId, environmentId, attemptId, timelineId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n timelineId: timelineId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"214111ee-2415-4df2-8ed2-74417f7d61f9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTaskAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the release task attachments.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of the release environment.\r\n * @param {number} attemptId - Attempt number of deployment.\r\n * @param {string} planId - Plan Id of the deploy phase.\r\n * @param {string} type - Type of the attachment.\r\n */\r\n getReleaseTaskAttachments(project, releaseId, environmentId, attemptId, planId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n planId: planId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"a4d06688-0dfa-4895-82a5-f43ec9452306\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTaskAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} artifactType\r\n * @param {string} sourceId\r\n * @param {string} artifactVersionId\r\n * @param {string} project - Project ID or project name\r\n */\r\n getAutoTriggerIssues(artifactType, sourceId, artifactVersionId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactType == null) {\r\n throw new TypeError('artifactType can not be null or undefined');\r\n }\r\n if (sourceId == null) {\r\n throw new TypeError('sourceId can not be null or undefined');\r\n }\r\n if (artifactVersionId == null) {\r\n throw new TypeError('artifactVersionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n artifactType: artifactType,\r\n sourceId: sourceId,\r\n artifactVersionId: artifactVersionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c1a68497-69da-40fb-9423-cab19cfeeca9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.AutoTriggerIssue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that indicates the status of the most recent deployment for an environment.\r\n *\r\n * @param {string} projectId - The ID of the Project.\r\n * @param {number} releaseDefinitionId - The ID of the Release Definition.\r\n * @param {number} environmentId - The ID of the Environment.\r\n * @param {string} branchName - The name of the branch.\r\n */\r\n getDeploymentBadge(projectId, releaseDefinitionId, environmentId, branchName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n projectId: projectId,\r\n releaseDefinitionId: releaseDefinitionId,\r\n environmentId: environmentId,\r\n branchName: branchName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"1a60a35d-b8c9-45fb-bf67-da0829711147\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} baseReleaseId\r\n * @param {number} top\r\n * @param {string} artifactAlias\r\n */\r\n getReleaseChanges(project, releaseId, baseReleaseId, top, artifactAlias) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n baseReleaseId: baseReleaseId,\r\n '$top': top,\r\n artifactAlias: artifactAlias,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"8dcf9fe9-ca37-4113-8ee1-37928e98407c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Change, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId\r\n * @param {string[]} propertyFilters\r\n */\r\n getDefinitionEnvironments(project, taskGroupId, propertyFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n taskGroupId: taskGroupId,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"12b5d21a-f54c-430e-a8c1-7515d196890e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a release definition\r\n *\r\n * @param {ReleaseInterfaces.ReleaseDefinition} releaseDefinition - release definition object to create.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createReleaseDefinition(releaseDefinition, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, releaseDefinition, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a release definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the release definition.\r\n * @param {string} comment - Comment for deleting a release definition.\r\n * @param {boolean} forceDelete - 'true' to automatically cancel any in-progress release deployments and proceed with release definition deletion . Default is 'false'.\r\n */\r\n deleteReleaseDefinition(project, definitionId, comment, forceDelete) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n comment: comment,\r\n forceDelete: forceDelete,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a release definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the release definition.\r\n * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Release Definition will contain values for the specified property Ids (if they exist). If not set, properties will not be included.\r\n */\r\n getReleaseDefinition(project, definitionId, propertyFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get release definition of a given revision.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the release definition.\r\n * @param {number} revision - Revision number of the release definition.\r\n */\r\n getReleaseDefinitionRevision(project, definitionId, revision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (revision == null) {\r\n throw new TypeError('revision can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of release definitions.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} searchText - Get release definitions with names containing searchText.\r\n * @param {ReleaseInterfaces.ReleaseDefinitionExpands} expand - The properties that should be expanded in the list of Release definitions.\r\n * @param {string} artifactType - Release definitions with given artifactType will be returned. Values can be Build, Jenkins, GitHub, Nuget, Team Build (external), ExternalTFSBuild, Git, TFVC, ExternalTfsXamlBuild.\r\n * @param {string} artifactSourceId - Release definitions with given artifactSourceId will be returned. e.g. For build it would be {projectGuid}:{BuildDefinitionId}, for Jenkins it would be {JenkinsConnectionId}:{JenkinsDefinitionId}, for TfsOnPrem it would be {TfsOnPremConnectionId}:{ProjectName}:{TfsOnPremDefinitionId}. For third-party artifacts e.g. TeamCity, BitBucket you may refer 'uniqueSourceIdentifier' inside vss-extension.json at https://github.com/Microsoft/vsts-rm-extensions/blob/master/Extensions.\r\n * @param {number} top - Number of release definitions to get.\r\n * @param {string} continuationToken - Gets the release definitions after the continuation token provided.\r\n * @param {ReleaseInterfaces.ReleaseDefinitionQueryOrder} queryOrder - Gets the results in the defined order. Default is 'IdAscending'.\r\n * @param {string} path - Gets the release definitions under the specified path.\r\n * @param {boolean} isExactNameMatch - 'true'to gets the release definitions with exact match as specified in searchText. Default is 'false'.\r\n * @param {string[]} tagFilter - A comma-delimited list of tags. Only release definitions with these tags will be returned.\r\n * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Release Definitions will contain values for the specified property Ids (if they exist). If not set, properties will not be included. Note that this will not filter out any Release Definition from results irrespective of whether it has property set or not.\r\n * @param {string[]} definitionIdFilter - A comma-delimited list of release definitions to retrieve.\r\n * @param {boolean} isDeleted - 'true' to get release definitions that has been deleted. Default is 'false'\r\n * @param {boolean} searchTextContainsFolderName - 'true' to get the release definitions under the folder with name as specified in searchText. Default is 'false'.\r\n */\r\n getReleaseDefinitions(project, searchText, expand, artifactType, artifactSourceId, top, continuationToken, queryOrder, path, isExactNameMatch, tagFilter, propertyFilters, definitionIdFilter, isDeleted, searchTextContainsFolderName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n searchText: searchText,\r\n '$expand': expand,\r\n artifactType: artifactType,\r\n artifactSourceId: artifactSourceId,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n queryOrder: queryOrder,\r\n path: path,\r\n isExactNameMatch: isExactNameMatch,\r\n tagFilter: tagFilter && tagFilter.join(\",\"),\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n definitionIdFilter: definitionIdFilter && definitionIdFilter.join(\",\"),\r\n isDeleted: isDeleted,\r\n searchTextContainsFolderName: searchTextContainsFolderName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Undelete a release definition.\r\n *\r\n * @param {ReleaseInterfaces.ReleaseDefinitionUndeleteParameter} releaseDefinitionUndeleteParameter - Object for undelete release definition.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the release definition to be undeleted\r\n */\r\n undeleteReleaseDefinition(releaseDefinitionUndeleteParameter, project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, releaseDefinitionUndeleteParameter, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a release definition.\r\n *\r\n * @param {ReleaseInterfaces.ReleaseDefinition} releaseDefinition - Release definition object to update.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateReleaseDefinition(releaseDefinition, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"d8f96f24-8ea7-4cb6-baab-2df8fc515665\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, releaseDefinition, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId\r\n * @param {number} definitionEnvironmentId\r\n * @param {string} createdBy\r\n * @param {Date} minModifiedTime\r\n * @param {Date} maxModifiedTime\r\n * @param {ReleaseInterfaces.DeploymentStatus} deploymentStatus\r\n * @param {ReleaseInterfaces.DeploymentOperationStatus} operationStatus\r\n * @param {boolean} latestAttemptsOnly\r\n * @param {ReleaseInterfaces.ReleaseQueryOrder} queryOrder\r\n * @param {number} top\r\n * @param {number} continuationToken\r\n * @param {string} createdFor\r\n * @param {Date} minStartedTime\r\n * @param {Date} maxStartedTime\r\n * @param {string} sourceBranch\r\n */\r\n getDeployments(project, definitionId, definitionEnvironmentId, createdBy, minModifiedTime, maxModifiedTime, deploymentStatus, operationStatus, latestAttemptsOnly, queryOrder, top, continuationToken, createdFor, minStartedTime, maxStartedTime, sourceBranch) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n definitionId: definitionId,\r\n definitionEnvironmentId: definitionEnvironmentId,\r\n createdBy: createdBy,\r\n minModifiedTime: minModifiedTime,\r\n maxModifiedTime: maxModifiedTime,\r\n deploymentStatus: deploymentStatus,\r\n operationStatus: operationStatus,\r\n latestAttemptsOnly: latestAttemptsOnly,\r\n queryOrder: queryOrder,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n createdFor: createdFor,\r\n minStartedTime: minStartedTime,\r\n maxStartedTime: maxStartedTime,\r\n sourceBranch: sourceBranch,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"b005ef73-cddc-448e-9ba2-5193bf36b19f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Deployment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ReleaseInterfaces.DeploymentQueryParameters} queryParameters\r\n * @param {string} project - Project ID or project name\r\n */\r\n getDeploymentsForMultipleEnvironments(queryParameters, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"b005ef73-cddc-448e-9ba2-5193bf36b19f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, queryParameters, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Deployment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a release environment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of the release environment.\r\n * @param {ReleaseInterfaces.ReleaseEnvironmentExpands} expand - A property that should be expanded in the environment.\r\n */\r\n getReleaseEnvironment(project, releaseId, environmentId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"Release\", \"a7e426b1-03dc-48af-9dfe-c98bac612dcb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseEnvironment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the status of a release environment\r\n *\r\n * @param {ReleaseInterfaces.ReleaseEnvironmentUpdateMetadata} environmentUpdateData - Environment update meta data.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of release environment.\r\n */\r\n updateReleaseEnvironment(environmentUpdateData, project, releaseId, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.7\", \"Release\", \"a7e426b1-03dc-48af-9dfe-c98bac612dcb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, environmentUpdateData, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseEnvironment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a definition environment template\r\n *\r\n * @param {ReleaseInterfaces.ReleaseDefinitionEnvironmentTemplate} template - Definition environment template to create\r\n * @param {string} project - Project ID or project name\r\n */\r\n createDefinitionEnvironmentTemplate(template, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"6b03b696-824e-4479-8eb2-6644a51aba89\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, template, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a definition environment template\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - Id of the definition environment template\r\n */\r\n deleteDefinitionEnvironmentTemplate(project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (templateId == null) {\r\n throw new TypeError('templateId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n templateId: templateId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"6b03b696-824e-4479-8eb2-6644a51aba89\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a definition environment template\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - Id of the definition environment template\r\n */\r\n getDefinitionEnvironmentTemplate(project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (templateId == null) {\r\n throw new TypeError('templateId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n templateId: templateId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"6b03b696-824e-4479-8eb2-6644a51aba89\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of definition environment templates\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} isDeleted - 'true' to get definition environment templates that have been deleted. Default is 'false'\r\n */\r\n listDefinitionEnvironmentTemplates(project, isDeleted) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n isDeleted: isDeleted,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"6b03b696-824e-4479-8eb2-6644a51aba89\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Undelete a release definition environment template.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} templateId - Id of the definition environment template to be undeleted\r\n */\r\n undeleteReleaseDefinitionEnvironmentTemplate(project, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (templateId == null) {\r\n throw new TypeError('templateId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n templateId: templateId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.4\", \"Release\", \"6b03b696-824e-4479-8eb2-6644a51aba89\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ReleaseInterfaces.FavoriteItem[]} favoriteItems\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scope\r\n * @param {string} identityId\r\n */\r\n createFavorites(favoriteItems, project, scope, identityId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n scope: scope\r\n };\r\n let queryValues = {\r\n identityId: identityId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"938f7222-9acb-48fe-b8a3-4eda04597171\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, favoriteItems, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scope\r\n * @param {string} identityId\r\n * @param {string} favoriteItemIds\r\n */\r\n deleteFavorites(project, scope, identityId, favoriteItemIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n scope: scope\r\n };\r\n let queryValues = {\r\n identityId: identityId,\r\n favoriteItemIds: favoriteItemIds,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"938f7222-9acb-48fe-b8a3-4eda04597171\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scope\r\n * @param {string} identityId\r\n */\r\n getFavorites(project, scope, identityId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n scope: scope\r\n };\r\n let queryValues = {\r\n identityId: identityId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"938f7222-9acb-48fe-b8a3-4eda04597171\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} flightName\r\n */\r\n getFlightAssignments(flightName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n flightName: flightName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"409d301f-3046-46f3-beb9-4357fbce0a8c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new folder.\r\n *\r\n * @param {ReleaseInterfaces.Folder} folder - folder.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - Path of the folder.\r\n */\r\n createFolder(folder, project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n path: path\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"f7ddf76d-ce0c-4d68-94ff-becaec5d9dea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, folder, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Folder, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a definition folder for given folder name and path and all it's existing definitions.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - Path of the folder to delete.\r\n */\r\n deleteFolder(project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n path: path\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"f7ddf76d-ce0c-4d68-94ff-becaec5d9dea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets folders.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - Path of the folder.\r\n * @param {ReleaseInterfaces.FolderPathQueryOrder} queryOrder - Gets the results in the defined order. Default is 'None'.\r\n */\r\n getFolders(project, path, queryOrder) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n path: path\r\n };\r\n let queryValues = {\r\n queryOrder: queryOrder,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"f7ddf76d-ce0c-4d68-94ff-becaec5d9dea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Folder, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates an existing folder at given existing path.\r\n *\r\n * @param {ReleaseInterfaces.Folder} folder - folder.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} path - Path of the folder to update.\r\n */\r\n updateFolder(folder, project, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n path: path\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"f7ddf76d-ce0c-4d68-94ff-becaec5d9dea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, folder, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Folder, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the gate for a deployment.\r\n *\r\n * @param {ReleaseInterfaces.GateUpdateMetadata} gateUpdateMetadata - Metadata to patch the Release Gates.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} gateStepId - Gate step Id.\r\n */\r\n updateGates(gateUpdateMetadata, project, gateStepId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n gateStepId: gateStepId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"2666a539-2001-4f80-bcc7-0379956749d4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, gateUpdateMetadata, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseGates, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n getReleaseHistory(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"23f461c8-629a-4144-a076-3054fa5f268a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseRevision, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {FormInputInterfaces.InputValuesQuery} query\r\n * @param {string} project - Project ID or project name\r\n */\r\n getInputValues(query, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"71dd499b-317d-45ea-9134-140ea1932b5e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} sourceId\r\n */\r\n getIssues(project, buildId, sourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n buildId: buildId\r\n };\r\n let queryValues = {\r\n sourceId: sourceId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"cd42261a-f5c6-41c8-9259-f078989b9f25\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.AutoTriggerIssue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets gate logs\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of release environment.\r\n * @param {number} gateId - Id of the gate.\r\n * @param {number} taskId - ReleaseTask Id for the log.\r\n */\r\n getGateLog(project, releaseId, environmentId, gateId, taskId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n gateId: gateId,\r\n taskId: taskId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"dec7ca5a-7f7f-4797-8bf1-8efc0dc93b28\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get logs for a release Id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n */\r\n getLogs(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"c37fbab5-214b-48e4-a55b-cb6b4f6e4038\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets logs\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of release environment.\r\n * @param {number} taskId - ReleaseTask Id for the log.\r\n * @param {number} attemptId - Id of the attempt.\r\n */\r\n getLog(project, releaseId, environmentId, taskId, attemptId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n taskId: taskId\r\n };\r\n let queryValues = {\r\n attemptId: attemptId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"e71ba1ed-c0a4-4a28-a61f-2dd5f68cf3fd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the task log of a release as a plain text file.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of release environment.\r\n * @param {number} attemptId\r\n * @param {string} timelineId\r\n * @param {number} taskId - ReleaseTask Id for the log.\r\n * @param {number} startLine - Starting line number for logs\r\n * @param {number} endLine - Ending line number for logs\r\n */\r\n getTaskLog2(project, releaseId, environmentId, attemptId, timelineId, taskId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n timelineId: timelineId,\r\n taskId: taskId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"2577e6c3-6999-4400-bc69-fe1d837755fe\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the task log of a release as a plain text file.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} environmentId - Id of release environment.\r\n * @param {number} releaseDeployPhaseId - Release deploy phase Id.\r\n * @param {number} taskId - ReleaseTask Id for the log.\r\n * @param {number} startLine - Starting line number for logs\r\n * @param {number} endLine - Ending line number for logs\r\n */\r\n getTaskLog(project, releaseId, environmentId, releaseDeployPhaseId, taskId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n releaseDeployPhaseId: releaseDeployPhaseId,\r\n taskId: taskId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"17c91af7-09fd-4256-bff1-c24ee4f73bc0\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get manual intervention for a given release and manual intervention id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} manualInterventionId - Id of the manual intervention.\r\n */\r\n getManualIntervention(project, releaseId, manualInterventionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n manualInterventionId: manualInterventionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"616c46e4-f370-4456-adaa-fbaf79c7b79e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ManualIntervention, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List all manual interventions for a given release.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n */\r\n getManualInterventions(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"616c46e4-f370-4456-adaa-fbaf79c7b79e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ManualIntervention, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update manual intervention.\r\n *\r\n * @param {ReleaseInterfaces.ManualInterventionUpdateMetadata} manualInterventionUpdateMetadata - Meta data to update manual intervention.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} manualInterventionId - Id of the manual intervention.\r\n */\r\n updateManualIntervention(manualInterventionUpdateMetadata, project, releaseId, manualInterventionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n manualInterventionId: manualInterventionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"616c46e4-f370-4456-adaa-fbaf79c7b79e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, manualInterventionUpdateMetadata, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ManualIntervention, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {Date} minMetricsTime\r\n */\r\n getMetrics(project, minMetricsTime) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n minMetricsTime: minMetricsTime,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"cd1502bb-3c73-4e11-80a6-d11308dceae5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets Org pipeline release settings\r\n *\r\n */\r\n getOrgPipelineReleaseSettings() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"d156c759-ca4e-492b-90d4-db03971796ea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates Org pipeline release settings\r\n *\r\n * @param {ReleaseInterfaces.OrgPipelineReleaseSettingsUpdateParameters} newSettings\r\n */\r\n updateOrgPipelineReleaseSettings(newSettings) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"d156c759-ca4e-492b-90d4-db03971796ea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, newSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets pipeline release settings\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPipelineReleaseSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"e816b9f4-f9fe-46ba-bdcc-a9af6abf3144\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates pipeline release settings\r\n *\r\n * @param {ReleaseInterfaces.ProjectPipelineReleaseSettingsUpdateParameters} newSettings\r\n * @param {string} project - Project ID or project name\r\n */\r\n updatePipelineReleaseSettings(newSettings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"e816b9f4-f9fe-46ba-bdcc-a9af6abf3144\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, newSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} artifactType\r\n * @param {string} artifactSourceId\r\n */\r\n getReleaseProjects(artifactType, artifactSourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactType == null) {\r\n throw new TypeError('artifactType can not be null or undefined');\r\n }\r\n if (artifactSourceId == null) {\r\n throw new TypeError('artifactSourceId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n artifactType: artifactType,\r\n artifactSourceId: artifactSourceId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"917ace4a-79d1-45a7-987c-7be4db4268fa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of releases\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Releases from this release definition Id.\r\n * @param {number} definitionEnvironmentId\r\n * @param {string} searchText - Releases with names containing searchText.\r\n * @param {string} createdBy - Releases created by this user.\r\n * @param {ReleaseInterfaces.ReleaseStatus} statusFilter - Releases that have this status.\r\n * @param {number} environmentStatusFilter\r\n * @param {Date} minCreatedTime - Releases that were created after this time.\r\n * @param {Date} maxCreatedTime - Releases that were created before this time.\r\n * @param {ReleaseInterfaces.ReleaseQueryOrder} queryOrder - Gets the results in the defined order of created date for releases. Default is descending.\r\n * @param {number} top - Number of releases to get. Default is 50.\r\n * @param {number} continuationToken - Gets the releases after the continuation token provided.\r\n * @param {ReleaseInterfaces.ReleaseExpands} expand - The property that should be expanded in the list of releases.\r\n * @param {string} artifactTypeId - Releases with given artifactTypeId will be returned. Values can be Build, Jenkins, GitHub, Nuget, Team Build (external), ExternalTFSBuild, Git, TFVC, ExternalTfsXamlBuild.\r\n * @param {string} sourceId - Unique identifier of the artifact used. e.g. For build it would be {projectGuid}:{BuildDefinitionId}, for Jenkins it would be {JenkinsConnectionId}:{JenkinsDefinitionId}, for TfsOnPrem it would be {TfsOnPremConnectionId}:{ProjectName}:{TfsOnPremDefinitionId}. For third-party artifacts e.g. TeamCity, BitBucket you may refer 'uniqueSourceIdentifier' inside vss-extension.json https://github.com/Microsoft/vsts-rm-extensions/blob/master/Extensions.\r\n * @param {string} artifactVersionId - Releases with given artifactVersionId will be returned. E.g. in case of Build artifactType, it is buildId.\r\n * @param {string} sourceBranchFilter - Releases with given sourceBranchFilter will be returned.\r\n * @param {boolean} isDeleted - Gets the soft deleted releases, if true.\r\n * @param {string[]} tagFilter - A comma-delimited list of tags. Only releases with these tags will be returned.\r\n * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Releases will contain values for the specified property Ids (if they exist). If not set, properties will not be included. Note that this will not filter out any Release from results irrespective of whether it has property set or not.\r\n * @param {number[]} releaseIdFilter - A comma-delimited list of releases Ids. Only releases with these Ids will be returned.\r\n * @param {string} path - Releases under this folder path will be returned\r\n */\r\n getReleases(project, definitionId, definitionEnvironmentId, searchText, createdBy, statusFilter, environmentStatusFilter, minCreatedTime, maxCreatedTime, queryOrder, top, continuationToken, expand, artifactTypeId, sourceId, artifactVersionId, sourceBranchFilter, isDeleted, tagFilter, propertyFilters, releaseIdFilter, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n definitionId: definitionId,\r\n definitionEnvironmentId: definitionEnvironmentId,\r\n searchText: searchText,\r\n createdBy: createdBy,\r\n statusFilter: statusFilter,\r\n environmentStatusFilter: environmentStatusFilter,\r\n minCreatedTime: minCreatedTime,\r\n maxCreatedTime: maxCreatedTime,\r\n queryOrder: queryOrder,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n '$expand': expand,\r\n artifactTypeId: artifactTypeId,\r\n sourceId: sourceId,\r\n artifactVersionId: artifactVersionId,\r\n sourceBranchFilter: sourceBranchFilter,\r\n isDeleted: isDeleted,\r\n tagFilter: tagFilter && tagFilter.join(\",\"),\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n releaseIdFilter: releaseIdFilter && releaseIdFilter.join(\",\"),\r\n path: path,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a release.\r\n *\r\n * @param {ReleaseInterfaces.ReleaseStartMetadata} releaseStartMetadata - Metadata to create a release.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createRelease(releaseStartMetadata, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, releaseStartMetadata, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Soft delete a release\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {string} comment - Comment for deleting a release.\r\n */\r\n deleteRelease(project, releaseId, comment) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n comment: comment,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a Release\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {ReleaseInterfaces.ApprovalFilters} approvalFilters - A filter which would allow fetching approval steps selectively based on whether it is automated, or manual. This would also decide whether we should fetch pre and post approval snapshots. Assumes All by default\r\n * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Release will contain values for the specified property Ids (if they exist). If not set, properties will not be included.\r\n * @param {ReleaseInterfaces.SingleReleaseExpands} expand - A property that should be expanded in the release.\r\n * @param {number} topGateRecords - Number of release gate records to get. Default is 5.\r\n */\r\n getRelease(project, releaseId, approvalFilters, propertyFilters, expand, topGateRecords) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n approvalFilters: approvalFilters,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n '$expand': expand,\r\n '$topGateRecords': topGateRecords,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get release summary of a given definition Id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the definition to get release summary.\r\n * @param {number} releaseCount - Count of releases to be included in summary.\r\n * @param {boolean} includeArtifact - Include artifact details.Default is 'false'.\r\n * @param {number[]} definitionEnvironmentIdsFilter\r\n */\r\n getReleaseDefinitionSummary(project, definitionId, releaseCount, includeArtifact, definitionEnvironmentIdsFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (definitionId == null) {\r\n throw new TypeError('definitionId can not be null or undefined');\r\n }\r\n if (releaseCount == null) {\r\n throw new TypeError('releaseCount can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n definitionId: definitionId,\r\n releaseCount: releaseCount,\r\n includeArtifact: includeArtifact,\r\n definitionEnvironmentIdsFilter: definitionEnvironmentIdsFilter && definitionEnvironmentIdsFilter.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionSummary, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get release for a given revision number.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release.\r\n * @param {number} definitionSnapshotRevision - Definition snapshot revision number.\r\n */\r\n getReleaseRevision(project, releaseId, definitionSnapshotRevision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (definitionSnapshotRevision == null) {\r\n throw new TypeError('definitionSnapshotRevision can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n definitionSnapshotRevision: definitionSnapshotRevision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Undelete a soft deleted release.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of release to be undeleted.\r\n * @param {string} comment - Any comment for undeleting.\r\n */\r\n undeleteRelease(project, releaseId, comment) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (comment == null) {\r\n throw new TypeError('comment can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n comment: comment,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a complete release object.\r\n *\r\n * @param {ReleaseInterfaces.Release} release - Release object for update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release to update.\r\n */\r\n updateRelease(release, project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, release, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update few properties of a release.\r\n *\r\n * @param {ReleaseInterfaces.ReleaseUpdateMetadata} releaseUpdateMetadata - Properties of release to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId - Id of the release to update.\r\n */\r\n updateReleaseResource(releaseUpdateMetadata, project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.8\", \"Release\", \"a166fde7-27ad-408e-ba75-703c2cc9d500\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, releaseUpdateMetadata, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Release, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the release settings\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getReleaseSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c63c3718-7cfd-41e0-b89b-81c1ca143437\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the release settings\r\n *\r\n * @param {ReleaseInterfaces.ReleaseSettings} releaseSettings\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateReleaseSettings(releaseSettings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c63c3718-7cfd-41e0-b89b-81c1ca143437\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, releaseSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get release definition for a given definitionId and revision\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the definition.\r\n * @param {number} revision - Id of the revision.\r\n */\r\n getDefinitionRevision(project, definitionId, revision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId,\r\n revision: revision\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"258b82e0-9d41-43f3-86d6-fef14ddd44bc\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get revision history for a release definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId - Id of the definition.\r\n */\r\n getReleaseDefinitionHistory(project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"258b82e0-9d41-43f3-86d6-fef14ddd44bc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionRevision, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n getSummaryMailSections(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"224e92b2-8d13-4c14-b120-13d877c516f8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.SummaryMailSection, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ReleaseInterfaces.MailMessage} mailMessage\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n sendSummaryMail(mailMessage, project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"224e92b2-8d13-4c14-b120-13d877c516f8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, mailMessage, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} definitionId\r\n */\r\n getSourceBranches(project, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"0e5def23-78b3-461f-8198-1558f25041c8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a tag to a definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseDefinitionId\r\n * @param {string} tag\r\n */\r\n addDefinitionTag(project, releaseDefinitionId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseDefinitionId: releaseDefinitionId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"3d21b4c8-c32e-45b2-a7cb-770a369012f4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds multiple tags to a definition\r\n *\r\n * @param {string[]} tags\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseDefinitionId\r\n */\r\n addDefinitionTags(tags, project, releaseDefinitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseDefinitionId: releaseDefinitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"3d21b4c8-c32e-45b2-a7cb-770a369012f4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, tags, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a tag from a definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseDefinitionId\r\n * @param {string} tag\r\n */\r\n deleteDefinitionTag(project, releaseDefinitionId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseDefinitionId: releaseDefinitionId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"3d21b4c8-c32e-45b2-a7cb-770a369012f4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the tags for a definition\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseDefinitionId\r\n */\r\n getDefinitionTags(project, releaseDefinitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseDefinitionId: releaseDefinitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"3d21b4c8-c32e-45b2-a7cb-770a369012f4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a tag to a releaseId\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {string} tag\r\n */\r\n addReleaseTag(project, releaseId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c5b602b6-d1b3-4363-8a51-94384f78068f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, null, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds tag to a release\r\n *\r\n * @param {string[]} tags\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n addReleaseTags(tags, project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c5b602b6-d1b3-4363-8a51-94384f78068f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, tags, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a tag from a release\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {string} tag\r\n */\r\n deleteReleaseTag(project, releaseId, tag) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n tag: tag\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c5b602b6-d1b3-4363-8a51-94384f78068f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the tags for a release\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n */\r\n getReleaseTags(project, releaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"c5b602b6-d1b3-4363-8a51-94384f78068f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n */\r\n getTags(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"86cee25a-68ba-4ba3-9171-8ad6ffc6df93\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} environmentId\r\n * @param {number} releaseDeployPhaseId\r\n */\r\n getTasksForTaskGroup(project, releaseId, environmentId, releaseDeployPhaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n releaseDeployPhaseId: releaseDeployPhaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"4259191d-4b0a-4409-9fb3-09f22ab9bc47\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTask, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} environmentId\r\n * @param {number} attemptId\r\n * @param {string} timelineId\r\n */\r\n getTasks2(project, releaseId, environmentId, attemptId, timelineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId,\r\n attemptId: attemptId,\r\n timelineId: timelineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"4259291d-4b0a-4409-9fb3-04f22ab9bc47\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTask, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} environmentId\r\n * @param {number} attemptId\r\n */\r\n getTasks(project, releaseId, environmentId, attemptId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId,\r\n environmentId: environmentId\r\n };\r\n let queryValues = {\r\n attemptId: attemptId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Release\", \"36b276e0-3c70-4320-a63c-1a2e1466a0d1\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTask, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n */\r\n getArtifactTypeDefinitions(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"8efc2a3c-1fc8-4f6d-9822-75e98cecb48f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ArtifactTypeDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseDefinitionId\r\n */\r\n getArtifactVersions(project, releaseDefinitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (releaseDefinitionId == null) {\r\n throw new TypeError('releaseDefinitionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n releaseDefinitionId: releaseDefinitionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"30fc787e-a9e0-4a07-9fbc-3e903aa051d2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ArtifactVersionQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {ReleaseInterfaces.Artifact[]} artifacts\r\n * @param {string} project - Project ID or project name\r\n */\r\n getArtifactVersionsForSources(artifacts, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"30fc787e-a9e0-4a07-9fbc-3e903aa051d2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, artifacts, options);\r\n let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ArtifactVersionQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} baseReleaseId\r\n * @param {number} top\r\n * @param {string} artifactAlias\r\n */\r\n getReleaseWorkItemsRefs(project, releaseId, baseReleaseId, top, artifactAlias) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n releaseId: releaseId\r\n };\r\n let queryValues = {\r\n baseReleaseId: baseReleaseId,\r\n '$top': top,\r\n artifactAlias: artifactAlias,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Release\", \"4f165cc0-875c-4768-b148-f12f78769fab\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nReleaseApi.RESOURCE_AREA_ID = \"efc2f575-36ef-48e9-b672-0c6fb4a48ac5\";\r\nexports.ReleaseApi = ReleaseApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst SecurityRolesInterfaces = require(\"./interfaces/SecurityRolesInterfaces\");\r\nclass SecurityRolesApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-SecurityRoles-api', options);\r\n }\r\n /**\r\n * @param {string} scopeId\r\n * @param {string} resourceId\r\n */\r\n getRoleAssignments(scopeId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"9461c234-c84c-4ed2-b918-2f0f92ad0a35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, SecurityRolesInterfaces.TypeInfo.RoleAssignment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeId\r\n * @param {string} resourceId\r\n * @param {string} identityId\r\n */\r\n removeRoleAssignment(scopeId, resourceId, identityId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId,\r\n resourceId: resourceId,\r\n identityId: identityId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"9461c234-c84c-4ed2-b918-2f0f92ad0a35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string[]} identityIds\r\n * @param {string} scopeId\r\n * @param {string} resourceId\r\n */\r\n removeRoleAssignments(identityIds, scopeId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"9461c234-c84c-4ed2-b918-2f0f92ad0a35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, identityIds, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {SecurityRolesInterfaces.UserRoleAssignmentRef} roleAssignment\r\n * @param {string} scopeId\r\n * @param {string} resourceId\r\n * @param {string} identityId\r\n */\r\n setRoleAssignment(roleAssignment, scopeId, resourceId, identityId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId,\r\n resourceId: resourceId,\r\n identityId: identityId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"9461c234-c84c-4ed2-b918-2f0f92ad0a35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, roleAssignment, options);\r\n let ret = this.formatResponse(res.result, SecurityRolesInterfaces.TypeInfo.RoleAssignment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {SecurityRolesInterfaces.UserRoleAssignmentRef[]} roleAssignments\r\n * @param {string} scopeId\r\n * @param {string} resourceId\r\n */\r\n setRoleAssignments(roleAssignments, scopeId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"9461c234-c84c-4ed2-b918-2f0f92ad0a35\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, roleAssignments, options);\r\n let ret = this.formatResponse(res.result, SecurityRolesInterfaces.TypeInfo.RoleAssignment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeId\r\n */\r\n getRoleDefinitions(scopeId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeId: scopeId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.2-preview.1\", \"securityroles\", \"f4cc9a86-453c-48d2-b44d-d3bd5c105f4f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.SecurityRolesApi = SecurityRolesApi;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n* Module for handling serialization and deserialization of data contracts\r\n* (contracts sent from the server using the VSO default REST api serialization settings)\r\n*/\r\nvar ContractSerializer;\r\n(function (ContractSerializer) {\r\n var _legacyDateRegExp;\r\n /**\r\n * Process a contract in its raw form (e.g. date fields are Dates, and Enums are numbers) and\r\n * return a pure JSON object that can be posted to REST endpoint.\r\n *\r\n * @param data The object to serialize\r\n * @param contractMetadata The type info/metadata for the contract type being serialized\r\n * @param preserveOriginal If true, don't modify the original object. False modifies the original object (the return value points to the data argument).\r\n */\r\n function serialize(data, contractMetadata, preserveOriginal) {\r\n if (data && contractMetadata) {\r\n if (Array.isArray(data)) {\r\n return _getTranslatedArray(data, contractMetadata, true, preserveOriginal);\r\n }\r\n else {\r\n return _getTranslatedObject(data, contractMetadata, true, preserveOriginal);\r\n }\r\n }\r\n else {\r\n return data;\r\n }\r\n }\r\n ContractSerializer.serialize = serialize;\r\n /**\r\n * Process a pure JSON object (e.g. that came from a REST call) and transform it into a JS object\r\n * where date strings are converted to Date objects and enum values are converted from strings into\r\n * their numerical value.\r\n *\r\n * @param data The object to deserialize\r\n * @param contractMetadata The type info/metadata for the contract type being deserialize\r\n * @param preserveOriginal If true, don't modify the original object. False modifies the original object (the return value points to the data argument).\r\n * @param unwrapWrappedCollections If true check for wrapped arrays (REST apis will not return arrays directly as the root result but will instead wrap them in a { values: [], count: 0 } object.\r\n */\r\n function deserialize(data, contractMetadata, preserveOriginal, unwrapWrappedCollections) {\r\n if (data) {\r\n if (unwrapWrappedCollections && Array.isArray(data.value)) {\r\n // Wrapped json array - unwrap it and send the array as the result\r\n data = data.value;\r\n }\r\n if (contractMetadata) {\r\n if (Array.isArray(data)) {\r\n data = _getTranslatedArray(data, contractMetadata, false, preserveOriginal);\r\n }\r\n else {\r\n data = _getTranslatedObject(data, contractMetadata, false, preserveOriginal);\r\n }\r\n }\r\n }\r\n return data;\r\n }\r\n ContractSerializer.deserialize = deserialize;\r\n function _getTranslatedArray(array, typeMetadata, serialize, preserveOriginal) {\r\n var resultArray = array;\r\n var arrayCopy = [];\r\n var i;\r\n for (i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n var processedItem;\r\n // handle arrays of arrays\r\n if (Array.isArray(item)) {\r\n processedItem = _getTranslatedArray(item, typeMetadata, serialize, preserveOriginal);\r\n }\r\n else {\r\n processedItem = _getTranslatedObject(item, typeMetadata, serialize, preserveOriginal);\r\n }\r\n if (preserveOriginal) {\r\n arrayCopy.push(processedItem);\r\n if (processedItem !== item) {\r\n resultArray = arrayCopy;\r\n }\r\n }\r\n else {\r\n array[i] = processedItem;\r\n }\r\n }\r\n return resultArray;\r\n }\r\n function _getTranslatedObject(typeObject, typeMetadata, serialize, preserveOriginal) {\r\n var processedItem = typeObject, copiedItem = false;\r\n if (typeObject && typeMetadata.fields) {\r\n for (var fieldName in typeMetadata.fields) {\r\n var fieldMetadata = typeMetadata.fields[fieldName];\r\n var fieldValue = typeObject[fieldName];\r\n var translatedValue = _getTranslatedField(fieldValue, fieldMetadata, serialize, preserveOriginal);\r\n if (fieldValue !== translatedValue) {\r\n if (preserveOriginal && !copiedItem) {\r\n processedItem = this._extend({}, typeObject);\r\n copiedItem = true;\r\n }\r\n processedItem[fieldName] = translatedValue;\r\n }\r\n }\r\n }\r\n return processedItem;\r\n }\r\n function _getTranslatedField(fieldValue, fieldMetadata, serialize, preserveOriginal) {\r\n if (!fieldValue) {\r\n return fieldValue;\r\n }\r\n if (fieldMetadata.isArray) {\r\n if (Array.isArray(fieldValue)) {\r\n var newArray = [], processedArray = fieldValue;\r\n for (var index = 0; index < fieldValue.length; index++) {\r\n var arrayValue = fieldValue[index];\r\n var processedValue = arrayValue;\r\n if (fieldMetadata.isDate) {\r\n processedValue = _getTranslatedDateValue(arrayValue, serialize);\r\n }\r\n else if (fieldMetadata.enumType) {\r\n processedValue = _getTranslatedEnumValue(fieldMetadata.enumType, arrayValue, serialize);\r\n }\r\n else if (fieldMetadata.typeInfo) {\r\n if (Array.isArray(arrayValue)) {\r\n processedValue = _getTranslatedArray(arrayValue, fieldMetadata.typeInfo, serialize, preserveOriginal);\r\n }\r\n else {\r\n processedValue = _getTranslatedObject(arrayValue, fieldMetadata.typeInfo, serialize, preserveOriginal);\r\n }\r\n }\r\n if (preserveOriginal) {\r\n newArray.push(processedValue);\r\n if (processedValue !== arrayValue) {\r\n processedArray = newArray;\r\n }\r\n }\r\n else {\r\n fieldValue[index] = processedValue;\r\n }\r\n }\r\n return processedArray;\r\n }\r\n else {\r\n return fieldValue;\r\n }\r\n }\r\n else if (fieldMetadata.isDictionary) {\r\n var dictionaryModified = false;\r\n var newDictionary = {};\r\n for (var key in fieldValue) {\r\n var dictionaryValue = fieldValue[key];\r\n var newKey = key, newValue = dictionaryValue;\r\n if (fieldMetadata.dictionaryKeyIsDate) {\r\n newKey = _getTranslatedDateValue(key, serialize);\r\n }\r\n else if (fieldMetadata.dictionaryKeyEnumType) {\r\n newKey = _getTranslatedEnumValue(fieldMetadata.dictionaryKeyEnumType, key, serialize);\r\n }\r\n if (fieldMetadata.dictionaryValueIsDate) {\r\n newValue = _getTranslatedDateValue(dictionaryValue, serialize);\r\n }\r\n else if (fieldMetadata.dictionaryValueEnumType) {\r\n newValue = _getTranslatedEnumValue(fieldMetadata.dictionaryValueEnumType, dictionaryValue, serialize);\r\n }\r\n else if (fieldMetadata.dictionaryValueTypeInfo) {\r\n newValue = _getTranslatedObject(newValue, fieldMetadata.dictionaryValueTypeInfo, serialize, preserveOriginal);\r\n }\r\n else if (fieldMetadata.dictionaryValueFieldInfo) {\r\n newValue = _getTranslatedField(dictionaryValue, fieldMetadata.dictionaryValueFieldInfo, serialize, preserveOriginal);\r\n }\r\n newDictionary[newKey] = newValue;\r\n if (key !== newKey || dictionaryValue !== newValue) {\r\n dictionaryModified = true;\r\n }\r\n }\r\n return dictionaryModified ? newDictionary : fieldValue;\r\n }\r\n else {\r\n if (fieldMetadata.isDate) {\r\n return _getTranslatedDateValue(fieldValue, serialize);\r\n }\r\n else if (fieldMetadata.enumType) {\r\n return _getTranslatedEnumValue(fieldMetadata.enumType, fieldValue, serialize);\r\n }\r\n else if (fieldMetadata.typeInfo) {\r\n return _getTranslatedObject(fieldValue, fieldMetadata.typeInfo, serialize, preserveOriginal);\r\n }\r\n else {\r\n return fieldValue;\r\n }\r\n }\r\n }\r\n function _getTranslatedEnumValue(enumType, valueToConvert, serialize) {\r\n if (serialize && typeof valueToConvert === \"number\") {\r\n // Serialize: number --> String\r\n // Because webapi handles the numerical value for enums, there is no need to convert to string.\r\n // Let this fall through to return the numerical value.\r\n }\r\n else if (!serialize && typeof valueToConvert === \"string\") {\r\n // Deserialize: String --> number\r\n var result = 0;\r\n if (valueToConvert) {\r\n var splitValue = valueToConvert.split(\",\");\r\n for (var i = 0; i < splitValue.length; i++) {\r\n var valuePart = splitValue[i];\r\n //equivalent to jquery trim\r\n //copied from https://github.com/HubSpot/youmightnotneedjquery/blob/ef987223c20e480fcbfb5924d96c11cd928e1226/comparisons/utils/trim/ie8.js\r\n var enumName = valuePart.replace(/^\\s+|\\s+$/g, '') || \"\";\r\n if (enumName) {\r\n var resultPart = enumType.enumValues[enumName];\r\n if (!resultPart) {\r\n // No matching enum value. Try again but case insensitive\r\n var lowerCaseEnumName = enumName.toLowerCase();\r\n if (lowerCaseEnumName !== enumName) {\r\n for (var name in enumType.enumValues) {\r\n var value = enumType.enumValues[name];\r\n if (name.toLowerCase() === lowerCaseEnumName) {\r\n resultPart = value;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (resultPart) {\r\n result |= resultPart;\r\n }\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n return valueToConvert;\r\n }\r\n function _getTranslatedDateValue(valueToConvert, serialize) {\r\n if (!serialize && typeof valueToConvert === \"string\") {\r\n // Deserialize: String --> Date\r\n var dateValue = new Date(valueToConvert);\r\n if (isNaN(dateValue) && navigator.userAgent && /msie/i.test(navigator.userAgent)) {\r\n dateValue = _convertLegacyIEDate(valueToConvert);\r\n }\r\n return dateValue;\r\n }\r\n return valueToConvert;\r\n }\r\n function _convertLegacyIEDate(dateStringValue) {\r\n // IE 8/9 does not handle parsing dates in ISO form like:\r\n // 2013-05-13T14:26:54.397Z\r\n var match;\r\n if (!_legacyDateRegExp) {\r\n _legacyDateRegExp = new RegExp(\"(\\\\d+)-(\\\\d+)-(\\\\d+)T(\\\\d+):(\\\\d+):(\\\\d+).(\\\\d+)Z\");\r\n }\r\n match = _legacyDateRegExp.exec(dateStringValue);\r\n if (match) {\r\n return new Date(Date.UTC(parseInt(match[1]), parseInt(match[2]) - 1, parseInt(match[3]), parseInt(match[4]), parseInt(match[5]), parseInt(match[6]), parseInt(match[7])));\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n // jquery extend method in native javascript (used to clone objects)\r\n // copied from https://github.com/HubSpot/youmightnotneedjquery/blob/ef987223c20e480fcbfb5924d96c11cd928e1226/comparisons/utils/extend/ie8.js\r\n var _extend = function (out) {\r\n out = out || {};\r\n for (var i = 1; i < arguments.length; i++) {\r\n if (!arguments[i])\r\n continue;\r\n for (var key in arguments[i]) {\r\n if (arguments[i].hasOwnProperty(key))\r\n out[key] = arguments[i][key];\r\n }\r\n }\r\n return out;\r\n };\r\n})(ContractSerializer = exports.ContractSerializer || (exports.ContractSerializer = {}));\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst taskagentbasem = require(\"./TaskAgentApiBase\");\r\nconst url = require(\"url\");\r\nclass TaskAgentApi extends taskagentbasem.TaskAgentApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, options);\r\n // hang on to the handlers in case we need to fall back to an account-level client\r\n this._handlers = handlers;\r\n this._options = options;\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param onResult callback function\r\n */\r\n deleteTaskDefinition(taskId) {\r\n let promise = this.vsoClient.beginGetLocation(\"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\")\r\n .then((location) => {\r\n if (location) {\r\n // the resource exists at the url we were given. go!\r\n return super.deleteTaskDefinition(taskId);\r\n }\r\n else {\r\n // this is the case when the server doesn't support collection-level task definitions\r\n var fallbackClient = this._getFallbackClient(this.baseUrl);\r\n if (!fallbackClient) {\r\n // couldn't convert\r\n throw new Error(\"Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\");\r\n }\r\n else {\r\n // use the fallback client \r\n return fallbackClient.deleteTaskDefinition(taskId);\r\n }\r\n }\r\n });\r\n return promise;\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string} versionString\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n * @param onResult callback function with the resulting ArrayBuffer\r\n */\r\n getTaskContentZip(taskId, versionString, visibility, scopeLocal) {\r\n let promise = this.vsoClient.beginGetLocation(\"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\")\r\n .then((location) => {\r\n if (location) {\r\n // the resource exists at the url we were given. go!\r\n return super.getTaskContentZip(taskId, versionString, visibility, scopeLocal);\r\n }\r\n else {\r\n // this is the case when the server doesn't support collection-level task definitions\r\n var fallbackClient = this._getFallbackClient(this.baseUrl);\r\n if (!fallbackClient) {\r\n // couldn't convert\r\n throw new Error(\"Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\");\r\n }\r\n else {\r\n // use the fallback client \r\n return fallbackClient.getTaskContentZip(taskId, versionString, visibility, scopeLocal);\r\n }\r\n }\r\n });\r\n return promise;\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string} versionString\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n * @param onResult callback function with the resulting TaskAgentInterfaces.TaskDefinition\r\n */\r\n getTaskDefinition(taskId, versionString, visibility, scopeLocal) {\r\n let promise = this.vsoClient.beginGetLocation(\"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\")\r\n .then((location) => {\r\n if (location) {\r\n // the resource exists at the url we were given. go!\r\n return super.getTaskDefinition(taskId, versionString, visibility, scopeLocal);\r\n }\r\n else {\r\n // this is the case when the server doesn't support collection-level task definitions\r\n var fallbackClient = this._getFallbackClient(this.baseUrl);\r\n if (!fallbackClient) {\r\n // couldn't convert\r\n throw new Error(\"Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\");\r\n }\r\n else {\r\n // use the fallback client \r\n return fallbackClient.getTaskDefinition(taskId, versionString, visibility, scopeLocal);\r\n }\r\n }\r\n });\r\n return promise;\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n * @param onResult callback function with the resulting TaskAgentInterfaces.TaskDefinition[]\r\n */\r\n getTaskDefinitions(taskId, visibility, scopeLocal) {\r\n let promise = this.vsoClient.beginGetLocation(\"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\")\r\n .then((location) => {\r\n if (location) {\r\n // the resource exists at the url we were given. go!\r\n return super.getTaskDefinitions(taskId, visibility, scopeLocal);\r\n }\r\n else {\r\n // this is the case when the server doesn't support collection-level task definitions\r\n var fallbackClient = this._getFallbackClient(this.baseUrl);\r\n if (!fallbackClient) {\r\n // couldn't convert\r\n throw new Error(\"Failed to find api location for area: distributedtask id: 60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\");\r\n }\r\n else {\r\n // use the fallback client \r\n return fallbackClient.getTaskDefinitions(taskId, visibility, scopeLocal);\r\n }\r\n }\r\n });\r\n return promise;\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream\r\n * @param {string} taskId\r\n * @param {boolean} overwrite\r\n * @param onResult callback function\r\n */\r\n uploadTaskDefinition(customHeaders, contentStream, taskId, overwrite) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n taskId: taskId\r\n };\r\n let queryValues = {\r\n overwrite: overwrite,\r\n };\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"3.0-preview.1\", \"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n resolve(res.result);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n _getFallbackClient(baseUrl) {\r\n if (!this._fallbackClient) {\r\n var accountUrl = this._getAccountUrl(baseUrl);\r\n if (accountUrl) {\r\n this._fallbackClient = new TaskAgentApi(accountUrl, this._handlers, this._options);\r\n }\r\n }\r\n return this._fallbackClient;\r\n }\r\n _getAccountUrl(collectionUrl) {\r\n // converts a collection URL to an account URL\r\n // returns null if the conversion can't be made\r\n var purl = url.parse(collectionUrl);\r\n if (!purl.protocol || !purl.host) {\r\n return null;\r\n }\r\n var accountUrl = purl.protocol + '//' + purl.host;\r\n // purl.path is something like /DefaultCollection or /tfs/DefaultCollection or /DefaultCollection/\r\n var splitPath = purl.path.split('/').slice(1);\r\n if (splitPath.length === 0 || (splitPath.length === 1 && splitPath[0] === '')) {\r\n return null;\r\n }\r\n // if the first segment of the path is tfs, the second is the collection. if the url ends in / there will be a third, empty entry\r\n if (splitPath[0] === 'tfs' && (splitPath.length === 2 || (splitPath.length === 3 && splitPath[2].length === 0))) {\r\n //on prem\r\n accountUrl += '/' + 'tfs';\r\n }\r\n else if (splitPath.length === 2 && splitPath[0] === '') {\r\n // /DefaultCollection/\r\n return accountUrl;\r\n }\r\n else if (splitPath.length > 1) {\r\n return null;\r\n }\r\n return accountUrl;\r\n }\r\n}\r\nexports.TaskAgentApi = TaskAgentApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst TaskAgentInterfaces = require(\"./interfaces/TaskAgentInterfaces\");\r\nclass TaskAgentApiBase extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-TaskAgent-api', options);\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentCloud} agentCloud\r\n */\r\n addAgentCloud(agentCloud) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bfa72b3d-0fc6-43fb-932b-a7f6559f93b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, agentCloud, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} agentCloudId\r\n */\r\n deleteAgentCloud(agentCloudId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n agentCloudId: agentCloudId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bfa72b3d-0fc6-43fb-932b-a7f6559f93b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} agentCloudId\r\n */\r\n getAgentCloud(agentCloudId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n agentCloudId: agentCloudId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bfa72b3d-0fc6-43fb-932b-a7f6559f93b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getAgentClouds() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bfa72b3d-0fc6-43fb-932b-a7f6559f93b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentCloud} updatedCloud\r\n * @param {number} agentCloudId\r\n */\r\n updateAgentCloud(updatedCloud, agentCloudId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n agentCloudId: agentCloudId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bfa72b3d-0fc6-43fb-932b-a7f6559f93b9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updatedCloud, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get agent cloud types.\r\n *\r\n */\r\n getAgentCloudTypes() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"5932e193-f376-469d-9c3e-e5588ce12cb5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentCloudType, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} queueId\r\n * @param {number} top\r\n * @param {string} continuationToken\r\n */\r\n getAgentRequestsForQueue(project, queueId, top, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (top == null) {\r\n throw new TypeError('top can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n queueId: queueId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"f5f81ffb-f396-498d-85b1-5ada145e648a\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentJobRequest} request\r\n * @param {string} project - Project ID or project name\r\n * @param {number} queueId\r\n */\r\n queueAgentRequest(request, project, queueId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n queueId: queueId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"f5f81ffb-f396-498d-85b1-5ada145e648a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, request, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds an agent to a pool. You probably don't want to call this endpoint directly. Instead, [configure an agent](https://docs.microsoft.com/azure/devops/pipelines/agents/agents) using the agent download package.\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgent} agent - Details about the agent being added\r\n * @param {number} poolId - The agent pool in which to add the agent\r\n */\r\n addAgent(agent, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, agent, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete an agent. You probably don't want to call this endpoint directly. Instead, [use the agent configuration script](https://docs.microsoft.com/azure/devops/pipelines/agents/agents) to remove an agent from your organization.\r\n *\r\n * @param {number} poolId - The pool ID to remove the agent from\r\n * @param {number} agentId - The agent ID to remove\r\n */\r\n deleteAgent(poolId, agentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get information about an agent.\r\n *\r\n * @param {number} poolId - The agent pool containing the agent\r\n * @param {number} agentId - The agent ID to get information about\r\n * @param {boolean} includeCapabilities - Whether to include the agent's capabilities in the response\r\n * @param {boolean} includeAssignedRequest - Whether to include details about the agent's current work\r\n * @param {boolean} includeLastCompletedRequest - Whether to include details about the agents' most recent completed work\r\n * @param {string[]} propertyFilters - Filter which custom properties will be returned\r\n */\r\n getAgent(poolId, agentId, includeCapabilities, includeAssignedRequest, includeLastCompletedRequest, propertyFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n let queryValues = {\r\n includeCapabilities: includeCapabilities,\r\n includeAssignedRequest: includeAssignedRequest,\r\n includeLastCompletedRequest: includeLastCompletedRequest,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agents.\r\n *\r\n * @param {number} poolId - The agent pool containing the agents\r\n * @param {string} agentName - Filter on agent name\r\n * @param {boolean} includeCapabilities - Whether to include the agents' capabilities in the response\r\n * @param {boolean} includeAssignedRequest - Whether to include details about the agents' current work\r\n * @param {boolean} includeLastCompletedRequest - Whether to include details about the agents' most recent completed work\r\n * @param {string[]} propertyFilters - Filter which custom properties will be returned\r\n * @param {string[]} demands - Filter by demands the agents can satisfy\r\n */\r\n getAgents(poolId, agentName, includeCapabilities, includeAssignedRequest, includeLastCompletedRequest, propertyFilters, demands) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n agentName: agentName,\r\n includeCapabilities: includeCapabilities,\r\n includeAssignedRequest: includeAssignedRequest,\r\n includeLastCompletedRequest: includeLastCompletedRequest,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n demands: demands && demands.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replace an agent. You probably don't want to call this endpoint directly. Instead, [use the agent configuration script](https://docs.microsoft.com/azure/devops/pipelines/agents/agents) to remove and reconfigure an agent from your organization.\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgent} agent - Updated details about the replacing agent\r\n * @param {number} poolId - The agent pool to use\r\n * @param {number} agentId - The agent to replace\r\n */\r\n replaceAgent(agent, poolId, agentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, agent, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update agent details.\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgent} agent - Updated details about the agent\r\n * @param {number} poolId - The agent pool to use\r\n * @param {number} agentId - The agent to update\r\n */\r\n updateAgent(agent, poolId, agentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e298ef32-5878-4cab-993c-043836571f42\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, agent, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns list of azure subscriptions\r\n *\r\n */\r\n getAzureManagementGroups() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"39fe3bf2-7ee0-4198-a469-4a29929afa9c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns list of azure subscriptions\r\n *\r\n */\r\n getAzureSubscriptions() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"bcd6189c-0303-471f-a8e1-acb22b74d700\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * GET a PAT token for managing (configuring, removing, tagging) deployment targets in a deployment group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group in which deployment targets are managed.\r\n */\r\n generateDeploymentGroupAccessToken(project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"3d197ba2-c3e9-4253-882f-0ee2440f8174\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a deployment group.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentGroupCreateParameter} deploymentGroup - Deployment group to create.\r\n * @param {string} project - Project ID or project name\r\n */\r\n addDeploymentGroup(deploymentGroup, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"083c4d89-ab35-45af-aa11-7cf66895c53e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, deploymentGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a deployment group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group to be deleted.\r\n */\r\n deleteDeploymentGroup(project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"083c4d89-ab35-45af-aa11-7cf66895c53e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a deployment group by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group.\r\n * @param {TaskAgentInterfaces.DeploymentGroupActionFilter} actionFilter - Get the deployment group only if this action can be performed on it.\r\n * @param {TaskAgentInterfaces.DeploymentGroupExpands} expand - Include these additional details in the returned object.\r\n */\r\n getDeploymentGroup(project, deploymentGroupId, actionFilter, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n actionFilter: actionFilter,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"083c4d89-ab35-45af-aa11-7cf66895c53e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of deployment groups by name or IDs.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} name - Name of the deployment group.\r\n * @param {TaskAgentInterfaces.DeploymentGroupActionFilter} actionFilter - Get only deployment groups on which this action can be performed.\r\n * @param {TaskAgentInterfaces.DeploymentGroupExpands} expand - Include these additional details in the returned objects.\r\n * @param {string} continuationToken - Get deployment groups with names greater than this continuationToken lexicographically.\r\n * @param {number} top - Maximum number of deployment groups to return. Default is **1000**.\r\n * @param {number[]} ids - Comma separated list of IDs of the deployment groups.\r\n */\r\n getDeploymentGroups(project, name, actionFilter, expand, continuationToken, top, ids) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n name: name,\r\n actionFilter: actionFilter,\r\n '$expand': expand,\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n ids: ids && ids.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"083c4d89-ab35-45af-aa11-7cf66895c53e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a deployment group.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentGroupUpdateParameter} deploymentGroup - Deployment group to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group.\r\n */\r\n updateDeploymentGroup(deploymentGroup, project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"083c4d89-ab35-45af-aa11-7cf66895c53e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, deploymentGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of deployment group metrics.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} deploymentGroupName - Name of the deployment group.\r\n * @param {string} continuationToken - Get metrics for deployment groups with names greater than this continuationToken lexicographically.\r\n * @param {number} top - Maximum number of deployment group metrics to return. Default is **50**.\r\n */\r\n getDeploymentGroupsMetrics(project, deploymentGroupName, continuationToken, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n deploymentGroupName: deploymentGroupName,\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"281c6308-427a-49e1-b83a-dac0f4862189\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentGroupMetrics, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number} machineId\r\n * @param {number} completedRequestCount\r\n */\r\n getAgentRequestsForDeploymentMachine(project, deploymentGroupId, machineId, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (machineId == null) {\r\n throw new TypeError('machineId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n machineId: machineId,\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a3540e5b-f0dc-4668-963b-b752459be545\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number[]} machineIds\r\n * @param {number} completedRequestCount\r\n */\r\n getAgentRequestsForDeploymentMachines(project, deploymentGroupId, machineIds, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n machineIds: machineIds && machineIds.join(\",\"),\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a3540e5b-f0dc-4668-963b-b752459be545\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n */\r\n refreshDeploymentMachines(project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"91006ac4-0f68-4d82-a2bc-540676bd73ce\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * GET a PAT token for managing (configuring, removing, tagging) deployment agents in a deployment pool.\r\n *\r\n * @param {number} poolId - ID of the deployment pool in which deployment agents are managed.\r\n */\r\n generateDeploymentPoolAccessToken(poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"e077ee4a-399b-420b-841f-c43fbc058e0b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of deployment pool summaries.\r\n *\r\n * @param {string} poolName - Name of the deployment pool.\r\n * @param {TaskAgentInterfaces.DeploymentPoolSummaryExpands} expands - Include these additional details in the returned objects.\r\n * @param {number[]} poolIds - List of deployment pool ids.\r\n */\r\n getDeploymentPoolsSummary(poolName, expands, poolIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n poolName: poolName,\r\n expands: expands,\r\n poolIds: poolIds && poolIds.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6525d6c6-258f-40e0-a1a9-8a24a3957625\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentPoolSummary, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get agent requests for a deployment target.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group to which the target belongs.\r\n * @param {number} targetId - ID of the deployment target.\r\n * @param {number} completedRequestCount - Maximum number of completed requests to return. Default is **50**\r\n */\r\n getAgentRequestsForDeploymentTarget(project, deploymentGroupId, targetId, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (targetId == null) {\r\n throw new TypeError('targetId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n targetId: targetId,\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2fac0be3-8c8f-4473-ab93-c1389b08a2c9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get agent requests for a list deployment targets.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group to which the targets belong.\r\n * @param {number[]} targetIds - Comma separated list of IDs of the deployment targets.\r\n * @param {number} ownerId - Id of owner of agent job request.\r\n * @param {Date} completedOn - Datetime to return request after this time.\r\n * @param {number} completedRequestCount - Maximum number of completed requests to return for each target. Default is **50**\r\n */\r\n getAgentRequestsForDeploymentTargets(project, deploymentGroupId, targetIds, ownerId, completedOn, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n targetIds: targetIds && targetIds.join(\",\"),\r\n ownerId: ownerId,\r\n completedOn: completedOn,\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2fac0be3-8c8f-4473-ab93-c1389b08a2c9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Upgrade the deployment targets in a deployment group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group.\r\n */\r\n refreshDeploymentTargets(project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"1c1a817f-f23d-41c6-bf8d-14b638f64152\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Proxy for a GET request defined by an 'endpoint'. The request is authorized using a service connection. The response is filtered using an XPath/Json based selector.\r\n *\r\n * @param {TaskAgentInterfaces.TaskDefinitionEndpoint} endpoint - Describes the URL to fetch.\r\n */\r\n queryEndpoint(endpoint) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"f223b809-8c33-4b7d-b53f-07232569b5d6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, endpoint, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get environment deployment execution history\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {string} continuationToken\r\n * @param {number} top\r\n */\r\n getEnvironmentDeploymentExecutionRecords(project, environmentId, continuationToken, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n top: top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"51bb5d21-4305-4ea6-9dbb-b7488af73334\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentDeploymentExecutionRecord, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create an environment.\r\n *\r\n * @param {TaskAgentInterfaces.EnvironmentCreateParameter} environmentCreateParameter - Environment to create.\r\n * @param {string} project - Project ID or project name\r\n */\r\n addEnvironment(environmentCreateParameter, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8572b1fc-2482-47fa-8f74-7e3ed53ee54b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, environmentCreateParameter, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete the specified environment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId - ID of the environment.\r\n */\r\n deleteEnvironment(project, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8572b1fc-2482-47fa-8f74-7e3ed53ee54b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get an environment by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId - ID of the environment.\r\n * @param {TaskAgentInterfaces.EnvironmentExpands} expands - Include these additional details in the returned objects.\r\n */\r\n getEnvironmentById(project, environmentId, expands) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n let queryValues = {\r\n expands: expands,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8572b1fc-2482-47fa-8f74-7e3ed53ee54b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all environments.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} name\r\n * @param {string} continuationToken\r\n * @param {number} top\r\n */\r\n getEnvironments(project, name, continuationToken, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n name: name,\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8572b1fc-2482-47fa-8f74-7e3ed53ee54b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the specified environment.\r\n *\r\n * @param {TaskAgentInterfaces.EnvironmentUpdateParameter} environmentUpdateParameter - Environment data to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId - ID of the environment.\r\n */\r\n updateEnvironment(environmentUpdateParameter, project, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8572b1fc-2482-47fa-8f74-7e3ed53ee54b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, environmentUpdateParameter, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.EnvironmentInstance, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} hubName\r\n * @param {boolean} includeEnterpriseUsersCount\r\n * @param {boolean} includeHostedAgentMinutesCount\r\n */\r\n getTaskHubLicenseDetails(hubName, includeEnterpriseUsersCount, includeHostedAgentMinutesCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n hubName: hubName\r\n };\r\n let queryValues = {\r\n includeEnterpriseUsersCount: includeEnterpriseUsersCount,\r\n includeHostedAgentMinutesCount: includeHostedAgentMinutesCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"distributedtask\", \"f9f0f436-b8a1-4475-9041-1ccdbf8f0128\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskHubLicenseDetails} taskHubLicenseDetails\r\n * @param {string} hubName\r\n */\r\n updateTaskHubLicenseDetails(taskHubLicenseDetails, hubName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n hubName: hubName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"distributedtask\", \"f9f0f436-b8a1-4475-9041-1ccdbf8f0128\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, taskHubLicenseDetails, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.InputValidationRequest} inputValidationRequest\r\n */\r\n validateInputs(inputValidationRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"58475b1e-adaf-4155-9bc1-e04bf1fff4c2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, inputValidationRequest, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} requestId\r\n * @param {string} lockToken\r\n * @param {TaskAgentInterfaces.TaskResult} result\r\n * @param {boolean} agentShuttingDown\r\n */\r\n deleteAgentRequest(poolId, requestId, lockToken, result, agentShuttingDown) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (lockToken == null) {\r\n throw new TypeError('lockToken can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n requestId: requestId\r\n };\r\n let queryValues = {\r\n lockToken: lockToken,\r\n result: result,\r\n agentShuttingDown: agentShuttingDown,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} requestId\r\n * @param {boolean} includeStatus\r\n */\r\n getAgentRequest(poolId, requestId, includeStatus) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n requestId: requestId\r\n };\r\n let queryValues = {\r\n includeStatus: includeStatus,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} top\r\n * @param {string} continuationToken\r\n */\r\n getAgentRequests(poolId, top, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (top == null) {\r\n throw new TypeError('top can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} agentId\r\n * @param {number} completedRequestCount\r\n */\r\n getAgentRequestsForAgent(poolId, agentId, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (agentId == null) {\r\n throw new TypeError('agentId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n agentId: agentId,\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number[]} agentIds\r\n * @param {number} completedRequestCount\r\n */\r\n getAgentRequestsForAgents(poolId, agentIds, completedRequestCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n agentIds: agentIds && agentIds.join(\",\"),\r\n completedRequestCount: completedRequestCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {string} planId\r\n * @param {string} jobId\r\n */\r\n getAgentRequestsForPlan(poolId, planId, jobId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (planId == null) {\r\n throw new TypeError('planId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n planId: planId,\r\n jobId: jobId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentJobRequest} request\r\n * @param {number} poolId\r\n */\r\n queueAgentRequestByPool(request, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, request, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentJobRequest} request\r\n * @param {number} poolId\r\n * @param {number} requestId\r\n * @param {string} lockToken\r\n * @param {TaskAgentInterfaces.TaskAgentRequestUpdateOptions} updateOptions\r\n */\r\n updateAgentRequest(request, poolId, requestId, lockToken, updateOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (lockToken == null) {\r\n throw new TypeError('lockToken can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n requestId: requestId\r\n };\r\n let queryValues = {\r\n lockToken: lockToken,\r\n updateOptions: updateOptions,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"fc825784-c92a-4299-9221-998a02d1b54f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, request, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJobRequest, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.KubernetesResourceCreateParameters} createParameters\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n */\r\n addKubernetesResource(createParameters, project, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"73fba52f-15ab-42b3-a538-ce67a9223a04\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, createParameters, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.KubernetesResource, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n */\r\n deleteKubernetesResource(project, environmentId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"73fba52f-15ab-42b3-a538-ce67a9223a04\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n */\r\n getKubernetesResource(project, environmentId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"73fba52f-15ab-42b3-a538-ce67a9223a04\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.KubernetesResource, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n */\r\n generateDeploymentMachineGroupAccessToken(project, machineGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"f8c7c0de-ac0d-469b-9cb1-c21f72d67693\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachineGroup} machineGroup\r\n * @param {string} project - Project ID or project name\r\n */\r\n addDeploymentMachineGroup(machineGroup, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"d4adf50f-80c6-4ac8-9ca1-6e4e544286e9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, machineGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n */\r\n deleteDeploymentMachineGroup(project, machineGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"d4adf50f-80c6-4ac8-9ca1-6e4e544286e9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n * @param {TaskAgentInterfaces.MachineGroupActionFilter} actionFilter\r\n */\r\n getDeploymentMachineGroup(project, machineGroupId, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n let queryValues = {\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"d4adf50f-80c6-4ac8-9ca1-6e4e544286e9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} machineGroupName\r\n * @param {TaskAgentInterfaces.MachineGroupActionFilter} actionFilter\r\n */\r\n getDeploymentMachineGroups(project, machineGroupName, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n machineGroupName: machineGroupName,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"d4adf50f-80c6-4ac8-9ca1-6e4e544286e9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachineGroup} machineGroup\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n */\r\n updateDeploymentMachineGroup(machineGroup, project, machineGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"d4adf50f-80c6-4ac8-9ca1-6e4e544286e9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machineGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n * @param {string[]} tagFilters\r\n */\r\n getDeploymentMachineGroupMachines(project, machineGroupId, tagFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n let queryValues = {\r\n tagFilters: tagFilters && tagFilters.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"966c3874-c347-4b18-a90c-d509116717fd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachine[]} deploymentMachines\r\n * @param {string} project - Project ID or project name\r\n * @param {number} machineGroupId\r\n */\r\n updateDeploymentMachineGroupMachines(deploymentMachines, project, machineGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n machineGroupId: machineGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"966c3874-c347-4b18-a90c-d509116717fd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, deploymentMachines, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n */\r\n addDeploymentMachine(machine, project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number} machineId\r\n */\r\n deleteDeploymentMachine(project, deploymentGroupId, machineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n machineId: machineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number} machineId\r\n * @param {TaskAgentInterfaces.DeploymentMachineExpands} expand\r\n */\r\n getDeploymentMachine(project, deploymentGroupId, machineId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n machineId: machineId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {string[]} tags\r\n * @param {string} name\r\n * @param {TaskAgentInterfaces.DeploymentMachineExpands} expand\r\n */\r\n getDeploymentMachines(project, deploymentGroupId, tags, name, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n tags: tags && tags.join(\",\"),\r\n name: name,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number} machineId\r\n */\r\n replaceDeploymentMachine(machine, project, deploymentGroupId, machineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n machineId: machineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n * @param {number} machineId\r\n */\r\n updateDeploymentMachine(machine, project, deploymentGroupId, machineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n machineId: machineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.DeploymentMachine[]} machines\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId\r\n */\r\n updateDeploymentMachines(machines, project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6f6d406f-cfe6-409c-9327-7009928077e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machines, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceDefinition} definition\r\n * @param {number} poolId\r\n */\r\n createAgentPoolMaintenanceDefinition(definition, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"80572e16-58f0-4419-ac07-d19fde32195c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, definition, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} definitionId\r\n */\r\n deleteAgentPoolMaintenanceDefinition(poolId, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"80572e16-58f0-4419-ac07-d19fde32195c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} definitionId\r\n */\r\n getAgentPoolMaintenanceDefinition(poolId, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"80572e16-58f0-4419-ac07-d19fde32195c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n */\r\n getAgentPoolMaintenanceDefinitions(poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"80572e16-58f0-4419-ac07-d19fde32195c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceDefinition} definition\r\n * @param {number} poolId\r\n * @param {number} definitionId\r\n */\r\n updateAgentPoolMaintenanceDefinition(definition, poolId, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n definitionId: definitionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"80572e16-58f0-4419-ac07-d19fde32195c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, definition, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} jobId\r\n */\r\n deleteAgentPoolMaintenanceJob(poolId, jobId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n jobId: jobId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} jobId\r\n */\r\n getAgentPoolMaintenanceJob(poolId, jobId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n jobId: jobId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} jobId\r\n */\r\n getAgentPoolMaintenanceJobLogs(poolId, jobId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n jobId: jobId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} definitionId\r\n */\r\n getAgentPoolMaintenanceJobs(poolId, definitionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n definitionId: definitionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceJob} job\r\n * @param {number} poolId\r\n */\r\n queueAgentPoolMaintenanceJob(job, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, job, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentPoolMaintenanceJob} job\r\n * @param {number} poolId\r\n * @param {number} jobId\r\n */\r\n updateAgentPoolMaintenanceJob(job, poolId, jobId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n jobId: jobId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"15e7ab6e-abce-4601-a6d8-e111fe148f46\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, job, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPoolMaintenanceJob, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} messageId\r\n * @param {string} sessionId\r\n */\r\n deleteMessage(poolId, messageId, sessionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (sessionId == null) {\r\n throw new TypeError('sessionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n messageId: messageId\r\n };\r\n let queryValues = {\r\n sessionId: sessionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {string} sessionId\r\n * @param {number} lastMessageId\r\n */\r\n getMessage(poolId, sessionId, lastMessageId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (sessionId == null) {\r\n throw new TypeError('sessionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n sessionId: sessionId,\r\n lastMessageId: lastMessageId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} agentId\r\n */\r\n refreshAgent(poolId, agentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (agentId == null) {\r\n throw new TypeError('agentId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n agentId: agentId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n */\r\n refreshAgents(poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentMessage} message\r\n * @param {number} poolId\r\n * @param {number} requestId\r\n */\r\n sendMessage(message, poolId, requestId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (requestId == null) {\r\n throw new TypeError('requestId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n requestId: requestId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"c3a054f6-7a8a-49c0-944e-3a8e5d7adfd7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, message, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} packageType\r\n * @param {string} platform\r\n * @param {string} version\r\n */\r\n getPackage(packageType, platform, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n packageType: packageType,\r\n platform: platform,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"8ffcd551-079c-493a-9c02-54346299d144\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.PackageMetadata, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} packageType\r\n * @param {string} platform\r\n * @param {number} top\r\n */\r\n getPackages(packageType, platform, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n packageType: packageType,\r\n platform: platform\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"8ffcd551-079c-493a-9c02-54346299d144\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.PackageMetadata, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n */\r\n getAgentPoolMetadata(poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"0d62f887-9f53-48b9-9161-4c35d5735b0f\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {any} agentPoolMetadata\r\n * @param {number} poolId\r\n */\r\n setAgentPoolMetadata(customHeaders, agentPoolMetadata, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"0d62f887-9f53-48b9-9161-4c35d5735b0f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.replace(url, agentPoolMetadata, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create an agent pool.\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgentPool} pool - Details about the new agent pool\r\n */\r\n addAgentPool(pool) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, pool, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete an agent pool.\r\n *\r\n * @param {number} poolId - ID of the agent pool to delete\r\n */\r\n deleteAgentPool(poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get information about an agent pool.\r\n *\r\n * @param {number} poolId - An agent pool ID\r\n * @param {string[]} properties - Agent pool properties (comma-separated)\r\n * @param {TaskAgentInterfaces.TaskAgentPoolActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentPool(poolId, properties, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n let queryValues = {\r\n properties: properties && properties.join(\",\"),\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent pools.\r\n *\r\n * @param {string} poolName - Filter by name\r\n * @param {string[]} properties - Filter by agent pool properties (comma-separated)\r\n * @param {TaskAgentInterfaces.TaskAgentPoolType} poolType - Filter by pool type\r\n * @param {TaskAgentInterfaces.TaskAgentPoolActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentPools(poolName, properties, poolType, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n poolName: poolName,\r\n properties: properties && properties.join(\",\"),\r\n poolType: poolType,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent pools.\r\n *\r\n * @param {number[]} poolIds - pool Ids to fetch\r\n * @param {TaskAgentInterfaces.TaskAgentPoolActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentPoolsByIds(poolIds, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (poolIds == null) {\r\n throw new TypeError('poolIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n poolIds: poolIds && poolIds.join(\",\"),\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update properties on an agent pool\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgentPool} pool - Updated agent pool details\r\n * @param {number} poolId - The agent pool to update\r\n */\r\n updateAgentPool(pool, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"a8c47e17-4d56-4a56-92bb-de7ea7dc65be\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, pool, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentPool, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a new agent queue to connect a project to an agent pool.\r\n *\r\n * @param {TaskAgentInterfaces.TaskAgentQueue} queue - Details about the queue to create\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} authorizePipelines - Automatically authorize this queue when using YAML\r\n */\r\n addAgentQueue(queue, project, authorizePipelines) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n authorizePipelines: authorizePipelines,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, queue, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a new team project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n createTeamProject(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes an agent queue from a project.\r\n *\r\n * @param {number} queueId - The agent queue to remove\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteAgentQueue(queueId, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n queueId: queueId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get information about an agent queue.\r\n *\r\n * @param {number} queueId - The agent queue to get information about\r\n * @param {string} project - Project ID or project name\r\n * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentQueue(queueId, project, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n queueId: queueId\r\n };\r\n let queryValues = {\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent queues.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} queueName - Filter on the agent queue name\r\n * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentQueues(project, queueName, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n queueName: queueName,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent queues by their IDs\r\n *\r\n * @param {number[]} queueIds - A comma-separated list of agent queue IDs to retrieve\r\n * @param {string} project - Project ID or project name\r\n * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentQueuesByIds(queueIds, project, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (queueIds == null) {\r\n throw new TypeError('queueIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n queueIds: queueIds && queueIds.join(\",\"),\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent queues by their names\r\n *\r\n * @param {string[]} queueNames - A comma-separated list of agent names to retrieve\r\n * @param {string} project - Project ID or project name\r\n * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentQueuesByNames(queueNames, project, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (queueNames == null) {\r\n throw new TypeError('queueNames can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n queueNames: queueNames && queueNames.join(\",\"),\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of agent queues by pool ids\r\n *\r\n * @param {number[]} poolIds - A comma-separated list of pool ids to get the corresponding queues for\r\n * @param {string} project - Project ID or project name\r\n * @param {TaskAgentInterfaces.TaskAgentQueueActionFilter} actionFilter - Filter by whether the calling user has use or manage permissions\r\n */\r\n getAgentQueuesForPools(poolIds, project, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (poolIds == null) {\r\n throw new TypeError('poolIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n poolIds: poolIds && poolIds.join(\",\"),\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"900fa995-c559-4923-aae7-f8424fe4fbea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentQueue, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} agentCloudId\r\n */\r\n getAgentCloudRequests(agentCloudId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n agentCloudId: agentCloudId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"20189bd7-5134-49c2-b8e9-f9e856eea2b2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentCloudRequest, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getResourceLimits() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"1f1f0557-c445-42a6-b4a0-0df605a3a0f8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} parallelismTag\r\n * @param {boolean} poolIsHosted\r\n * @param {boolean} includeRunningRequests\r\n */\r\n getResourceUsage(parallelismTag, poolIsHosted, includeRunningRequests) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n parallelismTag: parallelismTag,\r\n poolIsHosted: poolIsHosted,\r\n includeRunningRequests: includeRunningRequests,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"eae1d376-a8b1-4475-9041-1dfdbe8f0143\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.ResourceUsage, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId\r\n */\r\n getTaskGroupHistory(project, taskGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"100cc92a-b255-47fa-9ab3-e44a2985a3ac\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroupRevision, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a secure file\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} secureFileId - The unique secure file Id\r\n */\r\n deleteSecureFile(project, secureFileId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n secureFileId: secureFileId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a secure file by Id\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} secureFileId - The unique secure file Id\r\n * @param {string} ticket - A valid download ticket\r\n * @param {boolean} download - If download is true, the file is sent as attachement in the response body. If download is false, the response body contains the file stream.\r\n */\r\n downloadSecureFile(project, secureFileId, ticket, download) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ticket == null) {\r\n throw new TypeError('ticket can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n secureFileId: secureFileId\r\n };\r\n let queryValues = {\r\n ticket: ticket,\r\n download: download,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a secure file\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} secureFileId - The unique secure file Id\r\n * @param {boolean} includeDownloadTicket - If includeDownloadTicket is true and the caller has permissions, a download ticket is included in the response.\r\n * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter\r\n */\r\n getSecureFile(project, secureFileId, includeDownloadTicket, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n secureFileId: secureFileId\r\n };\r\n let queryValues = {\r\n includeDownloadTicket: includeDownloadTicket,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get secure files\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} namePattern - Name of the secure file to match. Can include wildcards to match multiple files.\r\n * @param {boolean} includeDownloadTickets - If includeDownloadTickets is true and the caller has permissions, a download ticket for each secure file is included in the response.\r\n * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter - Filter by secure file permissions for View, Manage or Use action. Defaults to View.\r\n */\r\n getSecureFiles(project, namePattern, includeDownloadTickets, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n namePattern: namePattern,\r\n includeDownloadTickets: includeDownloadTickets,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get secure files\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string[]} secureFileIds - A list of secure file Ids\r\n * @param {boolean} includeDownloadTickets - If includeDownloadTickets is true and the caller has permissions, a download ticket for each secure file is included in the response.\r\n * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter\r\n */\r\n getSecureFilesByIds(project, secureFileIds, includeDownloadTickets, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (secureFileIds == null) {\r\n throw new TypeError('secureFileIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n secureFileIds: secureFileIds && secureFileIds.join(\",\"),\r\n includeDownloadTickets: includeDownloadTickets,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get secure files\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string[]} secureFileNames - A list of secure file Ids\r\n * @param {boolean} includeDownloadTickets - If includeDownloadTickets is true and the caller has permissions, a download ticket for each secure file is included in the response.\r\n * @param {TaskAgentInterfaces.SecureFileActionFilter} actionFilter\r\n */\r\n getSecureFilesByNames(project, secureFileNames, includeDownloadTickets, actionFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (secureFileNames == null) {\r\n throw new TypeError('secureFileNames can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n secureFileNames: secureFileNames && secureFileNames.join(\",\"),\r\n includeDownloadTickets: includeDownloadTickets,\r\n actionFilter: actionFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Query secure files using a name pattern and a condition on file properties.\r\n *\r\n * @param {string} condition - The main condition syntax is described [here](https://go.microsoft.com/fwlink/?linkid=842996). Use the *property('property-name')* function to access the value of the specified property of a secure file. It returns null if the property is not set. E.g. ``` and( eq( property('devices'), '2' ), in( property('provisioning profile type'), 'ad hoc', 'development' ) ) ```\r\n * @param {string} project - Project ID or project name\r\n * @param {string} namePattern - Name of the secure file to match. Can include wildcards to match multiple files.\r\n */\r\n querySecureFilesByProperties(condition, project, namePattern) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n namePattern: namePattern,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, condition, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the name or properties of an existing secure file\r\n *\r\n * @param {TaskAgentInterfaces.SecureFile} secureFile - The secure file with updated name and/or properties\r\n * @param {string} project - Project ID or project name\r\n * @param {string} secureFileId - The unique secure file Id\r\n */\r\n updateSecureFile(secureFile, project, secureFileId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n secureFileId: secureFileId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, secureFile, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update properties and/or names of a set of secure files. Files are identified by their IDs. Properties provided override the existing one entirely, i.e. do not merge.\r\n *\r\n * @param {TaskAgentInterfaces.SecureFile[]} secureFiles - A list of secure file objects. Only three field must be populated Id, Name, and Properties. The rest of fields in the object are ignored.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateSecureFiles(secureFiles, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, secureFiles, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Upload a secure file, include the file stream in the request body\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} project - Project ID or project name\r\n * @param {string} name - Name of the file to upload\r\n * @param {boolean} authorizePipelines - If authorizePipelines is true, then the secure file is authorized for use by all pipelines in the project.\r\n */\r\n uploadSecureFile(customHeaders, contentStream, project, name, authorizePipelines) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (name == null) {\r\n throw new TypeError('name can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n name: name,\r\n authorizePipelines: authorizePipelines,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"adcfd8bc-b184-43ba-bd84-7c8c6a2ff421\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.SecureFile, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskAgentSession} session\r\n * @param {number} poolId\r\n */\r\n createAgentSession(session, poolId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"134e239e-2df3-4794-a6f6-24f1f19ec8dc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, session, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentSession, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {string} sessionId\r\n */\r\n deleteAgentSession(poolId, sessionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n sessionId: sessionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"134e239e-2df3-4794-a6f6-24f1f19ec8dc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Register a deployment target to a deployment group. Generally this is called by agent configuration tool.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine - Deployment target to register.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group to which the deployment target is registered.\r\n */\r\n addDeploymentTarget(machine, project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a deployment target in a deployment group. This deletes the agent from associated deployment pool too.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group in which deployment target is deleted.\r\n * @param {number} targetId - ID of the deployment target to delete.\r\n */\r\n deleteDeploymentTarget(project, deploymentGroupId, targetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n targetId: targetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a deployment target by its ID in a deployment group\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group to which deployment target belongs.\r\n * @param {number} targetId - ID of the deployment target to return.\r\n * @param {TaskAgentInterfaces.DeploymentTargetExpands} expand - Include these additional details in the returned objects.\r\n */\r\n getDeploymentTarget(project, deploymentGroupId, targetId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n targetId: targetId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of deployment targets in a deployment group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group.\r\n * @param {string[]} tags - Get only the deployment targets that contain all these comma separted list of tags.\r\n * @param {string} name - Name pattern of the deployment targets to return.\r\n * @param {boolean} partialNameMatch - When set to true, treats **name** as pattern. Else treats it as absolute match. Default is **false**.\r\n * @param {TaskAgentInterfaces.DeploymentTargetExpands} expand - Include these additional details in the returned objects.\r\n * @param {TaskAgentInterfaces.TaskAgentStatusFilter} agentStatus - Get only deployment targets that have this status.\r\n * @param {TaskAgentInterfaces.TaskAgentJobResultFilter} agentJobResult - Get only deployment targets that have this last job result.\r\n * @param {string} continuationToken - Get deployment targets with names greater than this continuationToken lexicographically.\r\n * @param {number} top - Maximum number of deployment targets to return. Default is **1000**.\r\n * @param {boolean} enabled - Get only deployment targets that are enabled or disabled. Default is 'null' which returns all the targets.\r\n * @param {string[]} propertyFilters\r\n */\r\n getDeploymentTargets(project, deploymentGroupId, tags, name, partialNameMatch, expand, agentStatus, agentJobResult, continuationToken, top, enabled, propertyFilters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n let queryValues = {\r\n tags: tags && tags.join(\",\"),\r\n name: name,\r\n partialNameMatch: partialNameMatch,\r\n '$expand': expand,\r\n agentStatus: agentStatus,\r\n agentJobResult: agentJobResult,\r\n continuationToken: continuationToken,\r\n '$top': top,\r\n enabled: enabled,\r\n propertyFilters: propertyFilters && propertyFilters.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replace a deployment target in a deployment group. Generally this is called by agent configuration tool.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine - New deployment target.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group in which deployment target is replaced.\r\n * @param {number} targetId - ID of the deployment target to replace.\r\n */\r\n replaceDeploymentTarget(machine, project, deploymentGroupId, targetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n targetId: targetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a deployment target and its agent properties in a deployment group. Generally this is called by agent configuration tool.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentMachine} machine - Deployment target to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group in which deployment target is updated.\r\n * @param {number} targetId - ID of the deployment target to update.\r\n */\r\n updateDeploymentTarget(machine, project, deploymentGroupId, targetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId,\r\n targetId: targetId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machine, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update tags of a list of deployment targets in a deployment group.\r\n *\r\n * @param {TaskAgentInterfaces.DeploymentTargetUpdateParameter[]} machines - Deployment targets with tags to udpdate.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} deploymentGroupId - ID of the deployment group in which deployment targets are updated.\r\n */\r\n updateDeploymentTargets(machines, project, deploymentGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n deploymentGroupId: deploymentGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"2f0aa599-c121-4256-a5fd-ba370e0ae7b6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machines, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.DeploymentMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a task group.\r\n *\r\n * @param {TaskAgentInterfaces.TaskGroupCreateParameter} taskGroup - Task group object to create.\r\n * @param {string} project - Project ID or project name\r\n */\r\n addTaskGroup(taskGroup, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, taskGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a task group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId - Id of the task group to be deleted.\r\n * @param {string} comment - Comments to delete.\r\n */\r\n deleteTaskGroup(project, taskGroupId, comment) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n let queryValues = {\r\n comment: comment,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get task group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId - Id of the task group.\r\n * @param {string} versionSpec - version specification of the task group. examples: 1, 1.0.\r\n * @param {TaskAgentInterfaces.TaskGroupExpands} expand - The properties that should be expanded. example $expand=Tasks will expand nested task groups.\r\n */\r\n getTaskGroup(project, taskGroupId, versionSpec, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (versionSpec == null) {\r\n throw new TypeError('versionSpec can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n let queryValues = {\r\n versionSpec: versionSpec,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId\r\n * @param {number} revision\r\n */\r\n getTaskGroupRevision(project, taskGroupId, revision) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (revision == null) {\r\n throw new TypeError('revision can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List task groups.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId - Id of the task group.\r\n * @param {boolean} expanded - 'true' to recursively expand task groups. Default is 'false'.\r\n * @param {string} taskIdFilter - Guid of the taskId to filter.\r\n * @param {boolean} deleted - 'true'to include deleted task groups. Default is 'false'.\r\n * @param {number} top - Number of task groups to get.\r\n * @param {Date} continuationToken - Gets the task groups after the continuation token provided.\r\n * @param {TaskAgentInterfaces.TaskGroupQueryOrder} queryOrder - Gets the results in the defined order. Default is 'CreatedOnDescending'.\r\n */\r\n getTaskGroups(project, taskGroupId, expanded, taskIdFilter, deleted, top, continuationToken, queryOrder) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n let queryValues = {\r\n expanded: expanded,\r\n taskIdFilter: taskIdFilter,\r\n deleted: deleted,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n queryOrder: queryOrder,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.PublishTaskGroupMetadata} taskGroupMetadata\r\n * @param {string} project - Project ID or project name\r\n * @param {string} parentTaskGroupId\r\n */\r\n publishTaskGroup(taskGroupMetadata, project, parentTaskGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (parentTaskGroupId == null) {\r\n throw new TypeError('parentTaskGroupId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n parentTaskGroupId: parentTaskGroupId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, taskGroupMetadata, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskGroup} taskGroup\r\n * @param {string} project - Project ID or project name\r\n */\r\n undeleteTaskGroup(taskGroup, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, taskGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a task group.\r\n *\r\n * @param {TaskAgentInterfaces.TaskGroupUpdateParameter} taskGroup - Task group to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId - Id of the task group to update.\r\n */\r\n updateTaskGroup(taskGroup, project, taskGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, taskGroup, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskGroupUpdatePropertiesBase} taskGroupUpdateProperties\r\n * @param {string} project - Project ID or project name\r\n * @param {string} taskGroupId\r\n * @param {boolean} disablePriorVersions\r\n */\r\n updateTaskGroupProperties(taskGroupUpdateProperties, project, taskGroupId, disablePriorVersions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n taskGroupId: taskGroupId\r\n };\r\n let queryValues = {\r\n disablePriorVersions: disablePriorVersions,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"6c08ffbf-dbf1-4f9a-94e5-a1cbd47005e7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, taskGroupUpdateProperties, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} taskId\r\n */\r\n deleteTaskDefinition(taskId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n taskId: taskId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string} versionString\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n */\r\n getTaskContentZip(taskId, versionString, visibility, scopeLocal) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n taskId: taskId,\r\n versionString: versionString\r\n };\r\n let queryValues = {\r\n visibility: visibility,\r\n scopeLocal: scopeLocal,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string} versionString\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n */\r\n getTaskDefinition(taskId, versionString, visibility, scopeLocal) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n taskId: taskId,\r\n versionString: versionString\r\n };\r\n let queryValues = {\r\n visibility: visibility,\r\n scopeLocal: scopeLocal,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskDefinition, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} taskId\r\n * @param {string[]} visibility\r\n * @param {boolean} scopeLocal\r\n * @param {boolean} allVersions\r\n */\r\n getTaskDefinitions(taskId, visibility, scopeLocal, allVersions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n taskId: taskId\r\n };\r\n let queryValues = {\r\n visibility: visibility,\r\n scopeLocal: scopeLocal,\r\n allVersions: allVersions,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"60aac929-f0cd-4bc8-9ce4-6b30e8f1b1bd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {number} poolId\r\n * @param {number} agentId\r\n * @param {string} currentState\r\n */\r\n updateAgentUpdateState(poolId, agentId, currentState) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (currentState == null) {\r\n throw new TypeError('currentState can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n let queryValues = {\r\n currentState: currentState,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8cc1b02b-ae49-4516-b5ad-4f9b29967c30\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {{ [key: string] : string; }} userCapabilities\r\n * @param {number} poolId\r\n * @param {number} agentId\r\n */\r\n updateAgentUserCapabilities(userCapabilities, poolId, agentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n poolId: poolId,\r\n agentId: agentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"30ba3ada-fedf-4da8-bbb5-dacf2f82e176\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, userCapabilities, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgent, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a variable group.\r\n *\r\n * @param {TaskAgentInterfaces.VariableGroupParameters} variableGroupParameters\r\n */\r\n addVariableGroup(variableGroupParameters) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, variableGroupParameters, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a variable group\r\n *\r\n * @param {number} groupId - Id of the variable group.\r\n * @param {string[]} projectIds\r\n */\r\n deleteVariableGroup(groupId, projectIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (projectIds == null) {\r\n throw new TypeError('projectIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n groupId: groupId\r\n };\r\n let queryValues = {\r\n projectIds: projectIds && projectIds.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a variable group.\r\n *\r\n * @param {TaskAgentInterfaces.VariableGroupProjectReference[]} variableGroupProjectReferences\r\n * @param {number} variableGroupId\r\n */\r\n shareVariableGroup(variableGroupProjectReferences, variableGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (variableGroupId == null) {\r\n throw new TypeError('variableGroupId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n variableGroupId: variableGroupId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, variableGroupProjectReferences, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a variable group.\r\n *\r\n * @param {TaskAgentInterfaces.VariableGroupParameters} variableGroupParameters\r\n * @param {number} groupId - Id of the variable group to update.\r\n */\r\n updateVariableGroup(variableGroupParameters, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"ef5b7057-ffc3-4c77-bbad-c10b4a4abcc7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, variableGroupParameters, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a variable group.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} groupId - Id of the variable group.\r\n */\r\n getVariableGroup(project, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"f5b09dd5-9d54-45a1-8b5a-1c8287d634cc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get variable groups.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} groupName - Name of variable group.\r\n * @param {TaskAgentInterfaces.VariableGroupActionFilter} actionFilter - Action filter for the variable group. It specifies the action which can be performed on the variable groups.\r\n * @param {number} top - Number of variable groups to get.\r\n * @param {number} continuationToken - Gets the variable groups after the continuation token provided.\r\n * @param {TaskAgentInterfaces.VariableGroupQueryOrder} queryOrder - Gets the results in the defined order. Default is 'IdDescending'.\r\n */\r\n getVariableGroups(project, groupName, actionFilter, top, continuationToken, queryOrder) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n groupName: groupName,\r\n actionFilter: actionFilter,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n queryOrder: queryOrder,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"f5b09dd5-9d54-45a1-8b5a-1c8287d634cc\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get variable groups by ids.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number[]} groupIds - Comma separated list of Ids of variable groups.\r\n */\r\n getVariableGroupsById(project, groupIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (groupIds == null) {\r\n throw new TypeError('groupIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n groupIds: groupIds && groupIds.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"f5b09dd5-9d54-45a1-8b5a-1c8287d634cc\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VariableGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.VirtualMachineGroupCreateParameters} createParameters\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n */\r\n addVirtualMachineGroup(createParameters, project, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9e597901-4af7-4cc3-8d92-47d54db8ebfb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, createParameters, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n */\r\n deleteVirtualMachineGroup(project, environmentId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9e597901-4af7-4cc3-8d92-47d54db8ebfb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n */\r\n getVirtualMachineGroup(project, environmentId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9e597901-4af7-4cc3-8d92-47d54db8ebfb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.VirtualMachineGroup} resource\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n */\r\n updateVirtualMachineGroup(resource, project, environmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9e597901-4af7-4cc3-8d92-47d54db8ebfb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, resource, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachineGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n * @param {string} continuationToken\r\n * @param {string} name\r\n * @param {boolean} partialNameMatch\r\n * @param {string[]} tags\r\n * @param {number} top\r\n */\r\n getVirtualMachines(project, environmentId, resourceId, continuationToken, name, partialNameMatch, tags, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n name: name,\r\n partialNameMatch: partialNameMatch,\r\n tags: tags && tags.join(\",\"),\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"48700676-2ba5-4282-8ec8-083280d169c7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.VirtualMachine[]} machines\r\n * @param {string} project - Project ID or project name\r\n * @param {number} environmentId\r\n * @param {number} resourceId\r\n */\r\n updateVirtualMachines(machines, project, environmentId, resourceId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n environmentId: environmentId,\r\n resourceId: resourceId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"48700676-2ba5-4282-8ec8-083280d169c7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, machines, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.VirtualMachine, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.AadOauthTokenRequest} authenticationRequest\r\n */\r\n acquireAccessToken(authenticationRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9c63205e-3a0f-42a0-ad88-095200f13607\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, authenticationRequest, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} tenantId\r\n * @param {string} redirectUri\r\n * @param {TaskAgentInterfaces.AadLoginPromptOption} promptOption\r\n * @param {string} completeCallbackPayload\r\n * @param {boolean} completeCallbackByAuthCode\r\n */\r\n createAadOAuthRequest(tenantId, redirectUri, promptOption, completeCallbackPayload, completeCallbackByAuthCode) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (tenantId == null) {\r\n throw new TypeError('tenantId can not be null or undefined');\r\n }\r\n if (redirectUri == null) {\r\n throw new TypeError('redirectUri can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n tenantId: tenantId,\r\n redirectUri: redirectUri,\r\n promptOption: promptOption,\r\n completeCallbackPayload: completeCallbackPayload,\r\n completeCallbackByAuthCode: completeCallbackByAuthCode,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9c63205e-3a0f-42a0-ad88-095200f13607\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n */\r\n getVstsAadTenantId() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"9c63205e-3a0f-42a0-ad88-095200f13607\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * GET the Yaml schema used for Yaml file validation.\r\n *\r\n * @param {boolean} validateTaskNames - Whether the schema should validate that tasks are actually installed (useful for offline tools where you don't want validation).\r\n */\r\n getYamlSchema(validateTaskNames) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n validateTaskNames: validateTaskNames,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"1f9990b9-1dba-441f-9c2e-6485888c42b6\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nTaskAgentApiBase.RESOURCE_AREA_ID = \"a85b8835-c1a1-4aac-ae97-1c3d0ba72dbd\";\r\nexports.TaskAgentApiBase = TaskAgentApiBase;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst TaskAgentInterfaces = require(\"./interfaces/TaskAgentInterfaces\");\r\nclass TaskApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Task-api', options);\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} type\r\n */\r\n getPlanAttachments(scopeIdentifier, hubName, planId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"eb55e5d6-2f30-4295-b5ed-38da50b1fc52\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} type\r\n * @param {string} name\r\n */\r\n createAttachment(customHeaders, contentStream, scopeIdentifier, hubName, planId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"7898f959-9cdf-4096-b29e-7f293031629e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"PUT\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} type\r\n * @param {string} name\r\n * @param {string} artifactHash\r\n * @param {number} length\r\n */\r\n createAttachmentFromArtifact(scopeIdentifier, hubName, planId, timelineId, recordId, type, name, artifactHash, length) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (artifactHash == null) {\r\n throw new TypeError('artifactHash can not be null or undefined');\r\n }\r\n if (length == null) {\r\n throw new TypeError('length can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n let queryValues = {\r\n artifactHash: artifactHash,\r\n length: length,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"7898f959-9cdf-4096-b29e-7f293031629e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} type\r\n * @param {string} name\r\n */\r\n getAttachment(scopeIdentifier, hubName, planId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"7898f959-9cdf-4096-b29e-7f293031629e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} type\r\n * @param {string} name\r\n */\r\n getAttachmentContent(scopeIdentifier, hubName, planId, timelineId, recordId, type, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"7898f959-9cdf-4096-b29e-7f293031629e\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} type\r\n */\r\n getAttachments(scopeIdentifier, hubName, planId, timelineId, recordId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"7898f959-9cdf-4096-b29e-7f293031629e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TimelineRecordFeedLinesWrapper} lines\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n */\r\n appendTimelineRecordFeed(lines, scopeIdentifier, hubName, planId, timelineId, recordId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"858983e4-19bd-4c5e-864c-507b59b58b12\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, lines, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {string} recordId\r\n * @param {string} stepId\r\n * @param {number} endLine\r\n * @param {number} takeCount\r\n * @param {string} continuationToken\r\n */\r\n getLines(scopeIdentifier, hubName, planId, timelineId, recordId, stepId, endLine, takeCount, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (stepId == null) {\r\n throw new TypeError('stepId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId,\r\n recordId: recordId\r\n };\r\n let queryValues = {\r\n stepId: stepId,\r\n endLine: endLine,\r\n takeCount: takeCount,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"858983e4-19bd-4c5e-864c-507b59b58b12\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} orchestrationId\r\n */\r\n getJobInstance(scopeIdentifier, hubName, orchestrationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n orchestrationId: orchestrationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"0a1efd25-abda-43bd-9629-6c7bdd2e0d60\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskAgentJob, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {number} logId\r\n */\r\n appendLogContent(customHeaders, contentStream, scopeIdentifier, hubName, planId, logId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n logId: logId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"46f5667d-263a-4684-91b1-dff7fdcf64e2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {number} logId\r\n * @param {string} serializedBlobId\r\n * @param {number} lineCount\r\n */\r\n associateLog(scopeIdentifier, hubName, planId, logId, serializedBlobId, lineCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (serializedBlobId == null) {\r\n throw new TypeError('serializedBlobId can not be null or undefined');\r\n }\r\n if (lineCount == null) {\r\n throw new TypeError('lineCount can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n logId: logId\r\n };\r\n let queryValues = {\r\n serializedBlobId: serializedBlobId,\r\n lineCount: lineCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"46f5667d-263a-4684-91b1-dff7fdcf64e2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.TaskLog} log\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n */\r\n createLog(log, scopeIdentifier, hubName, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"46f5667d-263a-4684-91b1-dff7fdcf64e2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, log, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {number} logId\r\n * @param {number} startLine\r\n * @param {number} endLine\r\n */\r\n getLog(scopeIdentifier, hubName, planId, logId, startLine, endLine) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n logId: logId\r\n };\r\n let queryValues = {\r\n startLine: startLine,\r\n endLine: endLine,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"46f5667d-263a-4684-91b1-dff7fdcf64e2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n */\r\n getLogs(scopeIdentifier, hubName, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"46f5667d-263a-4684-91b1-dff7fdcf64e2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskLog, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n */\r\n getPlanGroupsQueueMetrics(scopeIdentifier, hubName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"038fd4d5-cda7-44ca-92c0-935843fee1a7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationPlanGroupsQueueMetrics, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {TaskAgentInterfaces.PlanGroupStatus} statusFilter\r\n * @param {number} count\r\n */\r\n getQueuedPlanGroups(scopeIdentifier, hubName, statusFilter, count) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName\r\n };\r\n let queryValues = {\r\n statusFilter: statusFilter,\r\n count: count,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"0dd73091-3e36-4f43-b443-1b76dd426d84\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationQueuedPlanGroup, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planGroup\r\n */\r\n getQueuedPlanGroup(scopeIdentifier, hubName, planGroup) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planGroup: planGroup\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"65fd0708-bc1e-447b-a731-0587c5464e5b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationQueuedPlanGroup, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n */\r\n getPlan(scopeIdentifier, hubName, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"distributedtask\", \"5cecd946-d704-471e-a45f-3b4064fcfaba\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TaskOrchestrationPlan, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {number} changeId\r\n */\r\n getRecords(scopeIdentifier, hubName, planId, timelineId, changeId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId\r\n };\r\n let queryValues = {\r\n changeId: changeId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8893bc5b-35b2-4be7-83cb-99e683551db4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TimelineRecord, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {VSSInterfaces.VssJsonCollectionWrapperV} records\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n */\r\n updateRecords(records, scopeIdentifier, hubName, planId, timelineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"8893bc5b-35b2-4be7-83cb-99e683551db4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, records, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.TimelineRecord, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TaskAgentInterfaces.Timeline} timeline\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n */\r\n createTimeline(timeline, scopeIdentifier, hubName, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"83597576-cc2c-453c-bea6-2882ae6a1653\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, timeline, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.Timeline, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n */\r\n deleteTimeline(scopeIdentifier, hubName, planId, timelineId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"83597576-cc2c-453c-bea6-2882ae6a1653\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n * @param {string} timelineId\r\n * @param {number} changeId\r\n * @param {boolean} includeRecords\r\n */\r\n getTimeline(scopeIdentifier, hubName, planId, timelineId, changeId, includeRecords) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId,\r\n timelineId: timelineId\r\n };\r\n let queryValues = {\r\n changeId: changeId,\r\n includeRecords: includeRecords,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"83597576-cc2c-453c-bea6-2882ae6a1653\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.Timeline, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} scopeIdentifier - The project GUID to scope the request\r\n * @param {string} hubName - The name of the server hub: \"build\" for the Build server or \"rm\" for the Release Management server\r\n * @param {string} planId\r\n */\r\n getTimelines(scopeIdentifier, hubName, planId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n scopeIdentifier: scopeIdentifier,\r\n hubName: hubName,\r\n planId: planId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"distributedtask\", \"83597576-cc2c-453c-bea6-2882ae6a1653\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TaskAgentInterfaces.TypeInfo.Timeline, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nexports.TaskApi = TaskApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst TestInterfaces = require(\"./interfaces/TestInterfaces\");\r\nclass TestApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Test-api', options);\r\n }\r\n /**\r\n * Attach a file to test step result\r\n *\r\n * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment details TestAttachmentRequestModel\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test result that contains the iteration\r\n * @param {number} iterationId - ID of the test result iteration.\r\n * @param {string} actionPath - Hex value of test result action path.\r\n */\r\n createTestIterationResultAttachment(attachmentRequestModel, project, runId, testCaseResultId, iterationId, actionPath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (iterationId == null) {\r\n throw new TypeError('iterationId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n let queryValues = {\r\n iterationId: iterationId,\r\n actionPath: actionPath,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, attachmentRequestModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Attach a file to a test result.\r\n *\r\n * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment details TestAttachmentRequestModel\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test result against which attachment has to be uploaded.\r\n */\r\n createTestResultAttachment(attachmentRequestModel, project, runId, testCaseResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, attachmentRequestModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Attach a file to a test result\r\n *\r\n * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment Request Model.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test results that contains sub result.\r\n * @param {number} testSubResultId - ID of the test sub results against which attachment has to be uploaded.\r\n */\r\n createTestSubResultAttachment(attachmentRequestModel, project, runId, testCaseResultId, testSubResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testSubResultId == null) {\r\n throw new TypeError('testSubResultId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n let queryValues = {\r\n testSubResultId: testSubResultId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, attachmentRequestModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test result attachment by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the testCaseResultId.\r\n * @param {number} testCaseResultId - ID of the test result whose attachment has to be downloaded.\r\n * @param {number} attachmentId - ID of the test result attachment to be downloaded.\r\n */\r\n getTestResultAttachmentContent(project, runId, testCaseResultId, attachmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId,\r\n attachmentId: attachmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get list of test result attachments reference.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test result.\r\n */\r\n getTestResultAttachments(project, runId, testCaseResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test result attachment by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the testCaseResultId.\r\n * @param {number} testCaseResultId - ID of the test result whose attachment has to be downloaded.\r\n * @param {number} attachmentId - ID of the test result attachment to be downloaded.\r\n */\r\n getTestResultAttachmentZip(project, runId, testCaseResultId, attachmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId,\r\n attachmentId: attachmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test sub result attachment\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test results that contains sub result.\r\n * @param {number} attachmentId - ID of the test result attachment to be downloaded\r\n * @param {number} testSubResultId - ID of the test sub result whose attachment has to be downloaded\r\n */\r\n getTestSubResultAttachmentContent(project, runId, testCaseResultId, attachmentId, testSubResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testSubResultId == null) {\r\n throw new TypeError('testSubResultId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId,\r\n attachmentId: attachmentId\r\n };\r\n let queryValues = {\r\n testSubResultId: testSubResultId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get list of test sub result attachments\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test results that contains sub result.\r\n * @param {number} testSubResultId - ID of the test sub result whose attachment has to be downloaded\r\n */\r\n getTestSubResultAttachments(project, runId, testCaseResultId, testSubResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testSubResultId == null) {\r\n throw new TypeError('testSubResultId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n let queryValues = {\r\n testSubResultId: testSubResultId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test sub result attachment\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test results that contains sub result.\r\n * @param {number} attachmentId - ID of the test result attachment to be downloaded\r\n * @param {number} testSubResultId - ID of the test sub result whose attachment has to be downloaded\r\n */\r\n getTestSubResultAttachmentZip(project, runId, testCaseResultId, attachmentId, testSubResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testSubResultId == null) {\r\n throw new TypeError('testSubResultId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId,\r\n attachmentId: attachmentId\r\n };\r\n let queryValues = {\r\n testSubResultId: testSubResultId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"2bffebe9-2f0f-4639-9af8-56129e9fed2d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Attach a file to a test run.\r\n *\r\n * @param {TestInterfaces.TestAttachmentRequestModel} attachmentRequestModel - Attachment details TestAttachmentRequestModel\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run against which attachment has to be uploaded.\r\n */\r\n createTestRunAttachment(attachmentRequestModel, project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"4f004af4-a507-489c-9b13-cb62060beb11\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, attachmentRequestModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test run attachment by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run whose attachment has to be downloaded.\r\n * @param {number} attachmentId - ID of the test run attachment to be downloaded.\r\n */\r\n getTestRunAttachmentContent(project, runId, attachmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n attachmentId: attachmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"4f004af4-a507-489c-9b13-cb62060beb11\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get list of test run attachments reference.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run.\r\n */\r\n getTestRunAttachments(project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"4f004af4-a507-489c-9b13-cb62060beb11\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestAttachment, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Download a test run attachment by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run whose attachment has to be downloaded.\r\n * @param {number} attachmentId - ID of the test run attachment to be downloaded.\r\n */\r\n getTestRunAttachmentZip(project, runId, attachmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n attachmentId: attachmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"4f004af4-a507-489c-9b13-cb62060beb11\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId\r\n * @param {number} testCaseResultId\r\n */\r\n getBugsLinkedToTestResult(project, runId, testCaseResultId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"6de20ca2-67de-4faf-97fa-38c5d585eb00\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get code coverage data for a build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - ID of the build for which code coverage data needs to be fetched.\r\n * @param {number} flags - Value of flags determine the level of code coverage details to be fetched. Flags are additive. Expected Values are 1 for Modules, 2 for Functions, 4 for BlockData.\r\n */\r\n getBuildCodeCoverage(project, buildId, flags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n if (flags == null) {\r\n throw new TypeError('flags can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n flags: flags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"77560e8a-4e8c-4d59-894e-a5f264c24444\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.BuildCoverage, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Code Coverage Summary for Build.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId - ID of the build for which code coverage data needs to be fetched.\r\n * @param {number} deltaBuildId - Delta Build id (optional)\r\n */\r\n getCodeCoverageSummary(project, buildId, deltaBuildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n deltaBuildId: deltaBuildId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"77560e8a-4e8c-4d59-894e-a5f264c24444\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.CodeCoverageSummary, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * http://(tfsserver):8080/tfs/DefaultCollection/_apis/test/CodeCoverage?buildId=10 Request: Json of code coverage summary\r\n *\r\n * @param {TestInterfaces.CodeCoverageData} coverageData\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n */\r\n updateCodeCoverageSummary(coverageData, project, buildId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"77560e8a-4e8c-4d59-894e-a5f264c24444\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, coverageData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get code coverage data for a test run\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run for which code coverage data needs to be fetched.\r\n * @param {number} flags - Value of flags determine the level of code coverage details to be fetched. Flags are additive. Expected Values are 1 for Modules, 2 for Functions, 4 for BlockData.\r\n */\r\n getTestRunCodeCoverage(project, runId, flags) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (flags == null) {\r\n throw new TypeError('flags can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n let queryValues = {\r\n flags: flags,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"9629116f-3b89-4ed8-b358-d4694efda160\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.CustomTestFieldDefinition[]} newFields\r\n * @param {string} project - Project ID or project name\r\n */\r\n addCustomFields(newFields, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8ce1923b-f4c7-4e22-b93b-f6284e525ec2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, newFields, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.CustomTestFieldDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {TestInterfaces.CustomTestFieldScope} scopeFilter\r\n */\r\n queryCustomFields(project, scopeFilter) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (scopeFilter == null) {\r\n throw new TypeError('scopeFilter can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n scopeFilter: scopeFilter,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8ce1923b-f4c7-4e22-b93b-f6284e525ec2\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.CustomTestFieldDefinition, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.ResultsFilter} filter\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryTestResultHistory(filter, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"234616f5-429c-4e7b-9192-affd76731dfd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, filter, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultHistory, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get iteration for a result\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test result that contains the iterations.\r\n * @param {number} iterationId - Id of the test results Iteration.\r\n * @param {boolean} includeActionResults - Include result details for each action performed in the test iteration. ActionResults refer to outcome (pass/fail) of test steps that are executed as part of a running a manual test. Including the ActionResults flag gets the outcome of test steps in the actionResults section and test parameters in the parameters section for each test iteration.\r\n */\r\n getTestIteration(project, runId, testCaseResultId, iterationId, includeActionResults) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId,\r\n iterationId: iterationId\r\n };\r\n let queryValues = {\r\n includeActionResults: includeActionResults,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"73eb9074-3446-4c44-8296-2f811950ff8d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestIterationDetailsModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get iterations for a result\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the test run that contains the result.\r\n * @param {number} testCaseResultId - ID of the test result that contains the iterations.\r\n * @param {boolean} includeActionResults - Include result details for each action performed in the test iteration. ActionResults refer to outcome (pass/fail) of test steps that are executed as part of a running a manual test. Including the ActionResults flag gets the outcome of test steps in the actionResults section and test parameters in the parameters section for each test iteration.\r\n */\r\n getTestIterations(project, runId, testCaseResultId, includeActionResults) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n let queryValues = {\r\n includeActionResults: includeActionResults,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"73eb9074-3446-4c44-8296-2f811950ff8d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestIterationDetailsModel, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.LinkedWorkItemsQuery} workItemQuery\r\n * @param {string} project - Project ID or project name\r\n */\r\n getLinkedWorkItemsByQuery(workItemQuery, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"a4dcb25b-9878-49ea-abfd-e440bd9b1dcd\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemQuery, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get test run message logs\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the run to get.\r\n */\r\n getTestRunLogs(project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"a1e55200-637e-42e9-a7c0-7e5bfdedb1b3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestMessageLogDetails, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a test point.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan.\r\n * @param {number} suiteId - ID of the suite that contains the point.\r\n * @param {number} pointIds - ID of the test point to get.\r\n * @param {string} witFields - Comma-separated list of work item field names.\r\n */\r\n getPoint(project, planId, suiteId, pointIds, witFields) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n pointIds: pointIds\r\n };\r\n let queryValues = {\r\n witFields: witFields,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"3bcfd5c8-be62-488e-b1da-b8289ce9299c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPoint, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of test points.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan.\r\n * @param {number} suiteId - ID of the suite that contains the points.\r\n * @param {string} witFields - Comma-separated list of work item field names.\r\n * @param {string} configurationId - Get test points for specific configuration.\r\n * @param {string} testCaseId - Get test points for a specific test case, valid when configurationId is not set.\r\n * @param {string} testPointIds - Get test points for comma-separated list of test point IDs, valid only when configurationId and testCaseId are not set.\r\n * @param {boolean} includePointDetails - Include all properties for the test point.\r\n * @param {number} skip - Number of test points to skip..\r\n * @param {number} top - Number of test points to return.\r\n */\r\n getPoints(project, planId, suiteId, witFields, configurationId, testCaseId, testPointIds, includePointDetails, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId\r\n };\r\n let queryValues = {\r\n witFields: witFields,\r\n configurationId: configurationId,\r\n testCaseId: testCaseId,\r\n testPointIds: testPointIds,\r\n includePointDetails: includePointDetails,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"3bcfd5c8-be62-488e-b1da-b8289ce9299c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPoint, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update test points.\r\n *\r\n * @param {TestInterfaces.PointUpdateModel} pointUpdateModel - Data to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan.\r\n * @param {number} suiteId - ID of the suite that contains the points.\r\n * @param {string} pointIds - ID of the test point to get. Use a comma-separated list of IDs to update multiple test points.\r\n */\r\n updateTestPoints(pointUpdateModel, project, planId, suiteId, pointIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n pointIds: pointIds\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"3bcfd5c8-be62-488e-b1da-b8289ce9299c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, pointUpdateModel, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPoint, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get test points using query.\r\n *\r\n * @param {TestInterfaces.TestPointsQuery} query - TestPointsQuery to get test points.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} skip - Number of test points to skip..\r\n * @param {number} top - Number of test points to return.\r\n */\r\n getPointsByQuery(query, project, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"b4264fd0-a5d1-43e2-82a5-b9c46b7da9ce\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestPointsQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} publishContext\r\n * @param {string} groupBy\r\n * @param {string} filter\r\n * @param {string} orderby\r\n * @param {boolean} shouldIncludeResults\r\n * @param {boolean} queryRunSummaryForInProgress\r\n */\r\n getTestResultDetailsForBuild(project, buildId, publishContext, groupBy, filter, orderby, shouldIncludeResults, queryRunSummaryForInProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n publishContext: publishContext,\r\n groupBy: groupBy,\r\n '$filter': filter,\r\n '$orderby': orderby,\r\n shouldIncludeResults: shouldIncludeResults,\r\n queryRunSummaryForInProgress: queryRunSummaryForInProgress,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"efb387b0-10d5-42e7-be40-95e06ee9430f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultsDetails, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} releaseEnvId\r\n * @param {string} publishContext\r\n * @param {string} groupBy\r\n * @param {string} filter\r\n * @param {string} orderby\r\n * @param {boolean} shouldIncludeResults\r\n * @param {boolean} queryRunSummaryForInProgress\r\n */\r\n getTestResultDetailsForRelease(project, releaseId, releaseEnvId, publishContext, groupBy, filter, orderby, shouldIncludeResults, queryRunSummaryForInProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (releaseId == null) {\r\n throw new TypeError('releaseId can not be null or undefined');\r\n }\r\n if (releaseEnvId == null) {\r\n throw new TypeError('releaseEnvId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n releaseId: releaseId,\r\n releaseEnvId: releaseEnvId,\r\n publishContext: publishContext,\r\n groupBy: groupBy,\r\n '$filter': filter,\r\n '$orderby': orderby,\r\n shouldIncludeResults: shouldIncludeResults,\r\n queryRunSummaryForInProgress: queryRunSummaryForInProgress,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"b834ec7e-35bb-450f-a3c8-802e70ca40dd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultsDetails, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.TestResultDocument} document\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId\r\n */\r\n publishTestResultDocument(document, project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"370ca04b-8eec-4ca8-8ba3-d24dca228791\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, document, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} publishContext\r\n * @param {string[]} fields\r\n * @param {string} continuationToken\r\n */\r\n getResultGroupsByBuild(project, buildId, publishContext, fields, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n if (publishContext == null) {\r\n throw new TypeError('publishContext can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n publishContext: publishContext,\r\n fields: fields && fields.join(\",\"),\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"d279d052-c55a-4204-b913-42f733b52958\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {string} publishContext\r\n * @param {number} releaseEnvId\r\n * @param {string[]} fields\r\n * @param {string} continuationToken\r\n */\r\n getResultGroupsByRelease(project, releaseId, publishContext, releaseEnvId, fields, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (releaseId == null) {\r\n throw new TypeError('releaseId can not be null or undefined');\r\n }\r\n if (publishContext == null) {\r\n throw new TypeError('publishContext can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n releaseId: releaseId,\r\n publishContext: publishContext,\r\n releaseEnvId: releaseEnvId,\r\n fields: fields && fields.join(\",\"),\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"ef5ce5d4-a4e5-47ee-804c-354518f8d03f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get list of test Result meta data details for corresponding testcasereferenceId\r\n *\r\n * @param {string[]} testReferenceIds - TestCaseReference Ids of the test Result to be queried, comma separated list of valid ids (limit no. of ids 200).\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryTestResultsMetaData(testReferenceIds, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"afa7830e-67a7-4336-8090-2b448ca80295\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, testReferenceIds, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get test result retention settings\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getResultRetentionSettings(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"a3206d9e-fa8d-42d3-88cb-f75c51e69cde\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.ResultRetentionSettings, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update test result retention settings\r\n *\r\n * @param {TestInterfaces.ResultRetentionSettings} retentionSettings - Test result retention settings details to be updated\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateResultRetentionSettings(retentionSettings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"a3206d9e-fa8d-42d3-88cb-f75c51e69cde\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, retentionSettings, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.ResultRetentionSettings, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add test results to a test run.\r\n *\r\n * @param {TestInterfaces.TestCaseResult[]} results - List of test results to add.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - Test run ID into which test results to add.\r\n */\r\n addTestResultsToTestRun(results, project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.6\", \"Test\", \"4637d869-3a76-4468-8057-0bb02aa385cf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, results, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a test result for a test run.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - Test run ID of a test result to fetch.\r\n * @param {number} testCaseResultId - Test result ID.\r\n * @param {TestInterfaces.ResultDetails} detailsToInclude - Details to include with test results. Default is None. Other values are Iterations, WorkItems and SubResults.\r\n */\r\n getTestResultById(project, runId, testCaseResultId, detailsToInclude) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId,\r\n testCaseResultId: testCaseResultId\r\n };\r\n let queryValues = {\r\n detailsToInclude: detailsToInclude,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.6\", \"Test\", \"4637d869-3a76-4468-8057-0bb02aa385cf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get test results for a test run.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - Test run ID of test results to fetch.\r\n * @param {TestInterfaces.ResultDetails} detailsToInclude - Details to include with test results. Default is None. Other values are Iterations and WorkItems.\r\n * @param {number} skip - Number of test results to skip from beginning.\r\n * @param {number} top - Number of test results to return. Maximum is 1000 when detailsToInclude is None and 200 otherwise.\r\n * @param {TestInterfaces.TestOutcome[]} outcomes - Comma separated list of test outcomes to filter test results.\r\n */\r\n getTestResults(project, runId, detailsToInclude, skip, top, outcomes) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n let queryValues = {\r\n detailsToInclude: detailsToInclude,\r\n '$skip': skip,\r\n '$top': top,\r\n outcomes: outcomes && outcomes.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.6\", \"Test\", \"4637d869-3a76-4468-8057-0bb02aa385cf\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update test results in a test run.\r\n *\r\n * @param {TestInterfaces.TestCaseResult[]} results - List of test results to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - Test run ID whose test results to update.\r\n */\r\n updateTestResults(results, project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.6\", \"Test\", \"4637d869-3a76-4468-8057-0bb02aa385cf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, results, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestCaseResult, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * This API will return results by Ids with fields specified/trend for particular automated test method. We are still improving this API and have not finalized proper signature and contract.\r\n *\r\n * @param {TestInterfaces.TestResultsQuery} query\r\n * @param {string} project - Project ID or project name\r\n */\r\n getTestResultsByQuery(query, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.6\", \"Test\", \"6711da49-8e6f-4d35-9f73-cef7a3c81a5b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, query, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultsQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} publishContext\r\n * @param {TestInterfaces.TestOutcome[]} outcomes\r\n * @param {number} top\r\n * @param {string} continuationToken\r\n */\r\n getTestResultsByBuild(project, buildId, publishContext, outcomes, top, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n publishContext: publishContext,\r\n outcomes: outcomes && outcomes.join(\",\"),\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"3c191b88-615b-4be2-b7d9-5ff9141e91d4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} releaseEnvid\r\n * @param {string} publishContext\r\n * @param {TestInterfaces.TestOutcome[]} outcomes\r\n * @param {number} top\r\n * @param {string} continuationToken\r\n */\r\n getTestResultsByRelease(project, releaseId, releaseEnvid, publishContext, outcomes, top, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (releaseId == null) {\r\n throw new TypeError('releaseId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n releaseId: releaseId,\r\n releaseEnvid: releaseEnvid,\r\n publishContext: publishContext,\r\n outcomes: outcomes && outcomes.join(\",\"),\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"ce01820b-83f3-4c15-a583-697a43292c4e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} buildId\r\n * @param {string} publishContext\r\n * @param {boolean} includeFailureDetails\r\n * @param {TestInterfaces.BuildReference} buildToCompare\r\n */\r\n queryTestResultsReportForBuild(project, buildId, publishContext, includeFailureDetails, buildToCompare) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (buildId == null) {\r\n throw new TypeError('buildId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildId: buildId,\r\n publishContext: publishContext,\r\n includeFailureDetails: includeFailureDetails,\r\n buildToCompare: buildToCompare,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"000ef77b-fea2-498d-a10d-ad1a037f559f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultSummary, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} releaseId\r\n * @param {number} releaseEnvId\r\n * @param {string} publishContext\r\n * @param {boolean} includeFailureDetails\r\n * @param {TestInterfaces.ReleaseReference} releaseToCompare\r\n */\r\n queryTestResultsReportForRelease(project, releaseId, releaseEnvId, publishContext, includeFailureDetails, releaseToCompare) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (releaseId == null) {\r\n throw new TypeError('releaseId can not be null or undefined');\r\n }\r\n if (releaseEnvId == null) {\r\n throw new TypeError('releaseEnvId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n releaseId: releaseId,\r\n releaseEnvId: releaseEnvId,\r\n publishContext: publishContext,\r\n includeFailureDetails: includeFailureDetails,\r\n releaseToCompare: releaseToCompare,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"85765790-ac68-494e-b268-af36c3929744\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultSummary, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.ReleaseReference[]} releases\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryTestResultsSummaryForReleases(releases, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"85765790-ac68-494e-b268-af36c3929744\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, releases, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestResultSummary, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.TestResultsContext} resultsContext\r\n * @param {string} project - Project ID or project name\r\n * @param {number[]} workItemIds\r\n */\r\n queryTestSummaryByRequirement(resultsContext, project, workItemIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n workItemIds: workItemIds && workItemIds.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"cd08294e-308d-4460-a46e-4cfdefba0b4b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, resultsContext, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSummaryForWorkItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.TestResultTrendFilter} filter\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryResultTrendForBuild(filter, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"fbc82a85-0786-4442-88bb-eb0fda6b01b0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, filter, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.AggregatedDataForResultTrend, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.TestResultTrendFilter} filter\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryResultTrendForRelease(filter, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"dd178e93-d8dd-4887-9635-d6b9560b7b6e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, filter, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.AggregatedDataForResultTrend, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get test run statistics , used when we want to get summary of a run by outcome.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the run to get.\r\n */\r\n getTestRunStatistics(project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"0a42c424-d764-4a16-a2d5-5c85f87d0ae8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRunStatistic, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create new test run.\r\n *\r\n * @param {TestInterfaces.RunCreateModel} testRun - Run details RunCreateModel\r\n * @param {string} project - Project ID or project name\r\n */\r\n createTestRun(testRun, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, testRun, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a test run by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the run to delete.\r\n */\r\n deleteTestRun(project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a test run by its ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the run to get.\r\n * @param {boolean} includeDetails - Default value is true. It includes details like run statistics, release, build, test environment, post process state, and more.\r\n */\r\n getTestRunById(project, runId, includeDetails) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n let queryValues = {\r\n includeDetails: includeDetails,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of test runs.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} buildUri - URI of the build that the runs used.\r\n * @param {string} owner - Team foundation ID of the owner of the runs.\r\n * @param {string} tmiRunId\r\n * @param {number} planId - ID of the test plan that the runs are a part of.\r\n * @param {boolean} includeRunDetails - If true, include all the properties of the runs.\r\n * @param {boolean} automated - If true, only returns automated runs.\r\n * @param {number} skip - Number of test runs to skip.\r\n * @param {number} top - Number of test runs to return.\r\n */\r\n getTestRuns(project, buildUri, owner, tmiRunId, planId, includeRunDetails, automated, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n buildUri: buildUri,\r\n owner: owner,\r\n tmiRunId: tmiRunId,\r\n planId: planId,\r\n includeRunDetails: includeRunDetails,\r\n automated: automated,\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Query Test Runs based on filters. Mandatory fields are minLastUpdatedDate and maxLastUpdatedDate.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {Date} minLastUpdatedDate - Minimum Last Modified Date of run to be queried (Mandatory).\r\n * @param {Date} maxLastUpdatedDate - Maximum Last Modified Date of run to be queried (Mandatory, difference between min and max date can be atmost 7 days).\r\n * @param {TestInterfaces.TestRunState} state - Current state of the Runs to be queried.\r\n * @param {number[]} planIds - Plan Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {boolean} isAutomated - Automation type of the Runs to be queried.\r\n * @param {TestInterfaces.TestRunPublishContext} publishContext - PublishContext of the Runs to be queried.\r\n * @param {number[]} buildIds - Build Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {number[]} buildDefIds - Build Definition Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {string} branchName - Source Branch name of the Runs to be queried.\r\n * @param {number[]} releaseIds - Release Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {number[]} releaseDefIds - Release Definition Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {number[]} releaseEnvIds - Release Environment Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {number[]} releaseEnvDefIds - Release Environment Definition Ids of the Runs to be queried, comma separated list of valid ids (limit no. of ids 10).\r\n * @param {string} runTitle - Run Title of the Runs to be queried.\r\n * @param {number} top - Number of runs to be queried. Limit is 100\r\n * @param {string} continuationToken - continuationToken received from previous batch or null for first batch. It is not supposed to be created (or altered, if received from last batch) by user.\r\n */\r\n queryTestRuns(project, minLastUpdatedDate, maxLastUpdatedDate, state, planIds, isAutomated, publishContext, buildIds, buildDefIds, branchName, releaseIds, releaseDefIds, releaseEnvIds, releaseEnvDefIds, runTitle, top, continuationToken) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (minLastUpdatedDate == null) {\r\n throw new TypeError('minLastUpdatedDate can not be null or undefined');\r\n }\r\n if (maxLastUpdatedDate == null) {\r\n throw new TypeError('maxLastUpdatedDate can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n minLastUpdatedDate: minLastUpdatedDate,\r\n maxLastUpdatedDate: maxLastUpdatedDate,\r\n state: state,\r\n planIds: planIds && planIds.join(\",\"),\r\n isAutomated: isAutomated,\r\n publishContext: publishContext,\r\n buildIds: buildIds && buildIds.join(\",\"),\r\n buildDefIds: buildDefIds && buildDefIds.join(\",\"),\r\n branchName: branchName,\r\n releaseIds: releaseIds && releaseIds.join(\",\"),\r\n releaseDefIds: releaseDefIds && releaseDefIds.join(\",\"),\r\n releaseEnvIds: releaseEnvIds && releaseEnvIds.join(\",\"),\r\n releaseEnvDefIds: releaseEnvDefIds && releaseEnvDefIds.join(\",\"),\r\n runTitle: runTitle,\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update test run by its ID.\r\n *\r\n * @param {TestInterfaces.RunUpdateModel} runUpdateModel - Run details RunUpdateModel\r\n * @param {string} project - Project ID or project name\r\n * @param {number} runId - ID of the run to update.\r\n */\r\n updateTestRun(runUpdateModel, project, runId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n runId: runId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"cadb3810-d47d-4a3c-a234-fe5f3be50138\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, runUpdateModel, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestRun, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a test session\r\n *\r\n * @param {TestInterfaces.TestSession} testSession - Test session details for creation\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n createTestSession(testSession, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, testSession, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSession, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of test sessions\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {number} period - Period in days from now, for which test sessions are fetched.\r\n * @param {boolean} allSessions - If false, returns test sessions for current user. Otherwise, it returns test sessions for all users\r\n * @param {boolean} includeAllProperties - If true, it returns all properties of the test sessions. Otherwise, it returns the skinny version.\r\n * @param {TestInterfaces.TestSessionSource} source - Source of the test session.\r\n * @param {boolean} includeOnlyCompletedSessions - If true, it returns test sessions in completed state. Otherwise, it returns test sessions for all states\r\n */\r\n getTestSessions(teamContext, period, allSessions, includeAllProperties, source, includeOnlyCompletedSessions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n let queryValues = {\r\n period: period,\r\n allSessions: allSessions,\r\n includeAllProperties: includeAllProperties,\r\n source: source,\r\n includeOnlyCompletedSessions: includeOnlyCompletedSessions,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSession, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a test session\r\n *\r\n * @param {TestInterfaces.TestSession} testSession - Test session details for update\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateTestSession(testSession, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"1500b4b4-6c69-4ca6-9b18-35e9e97fe2ac\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, testSession, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestSession, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} sharedParameterId\r\n */\r\n deleteSharedParameter(project, sharedParameterId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n sharedParameterId: sharedParameterId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8300eeca-0f8c-4eff-a089-d2dda409c41f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} sharedStepId\r\n */\r\n deleteSharedStep(project, sharedStepId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n sharedStepId: sharedStepId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"fabb3cc9-e3f8-40b7-8b62-24cc4b73fccf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add test cases to suite.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan that contains the suite.\r\n * @param {number} suiteId - ID of the test suite to which the test cases must be added.\r\n * @param {string} testCaseIds - IDs of the test cases to add to the suite. Ids are specified in comma separated format.\r\n */\r\n addTestCasesToSuite(project, planId, suiteId, testCaseIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n action: \"TestCases\",\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n testCaseIds: testCaseIds\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"a4a1ec1c-b03f-41ca-8857-704594ecf58e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a specific test case in a test suite with test case id.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan that contains the suites.\r\n * @param {number} suiteId - ID of the suite that contains the test case.\r\n * @param {number} testCaseIds - ID of the test case to get.\r\n */\r\n getTestCaseById(project, planId, suiteId, testCaseIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n action: \"TestCases\",\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n testCaseIds: testCaseIds\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"a4a1ec1c-b03f-41ca-8857-704594ecf58e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all test cases in a suite.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan that contains the suites.\r\n * @param {number} suiteId - ID of the suite to get.\r\n */\r\n getTestCases(project, planId, suiteId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n action: \"TestCases\",\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"a4a1ec1c-b03f-41ca-8857-704594ecf58e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * The test points associated with the test cases are removed from the test suite. The test case work item is not deleted from the system. See test cases resource to delete a test case permanently.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan that contains the suite.\r\n * @param {number} suiteId - ID of the suite to get.\r\n * @param {string} testCaseIds - IDs of the test cases to remove from the suite.\r\n */\r\n removeTestCasesFromSuiteUrl(project, planId, suiteId, testCaseIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n action: \"TestCases\",\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n testCaseIds: testCaseIds\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"a4a1ec1c-b03f-41ca-8857-704594ecf58e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the properties of the test case association in a suite.\r\n *\r\n * @param {TestInterfaces.SuiteTestCaseUpdateModel} suiteTestCaseUpdateModel - Model for updation of the properties of test case suite association.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} planId - ID of the test plan that contains the suite.\r\n * @param {number} suiteId - ID of the test suite to which the test cases must be added.\r\n * @param {string} testCaseIds - IDs of the test cases to add to the suite. Ids are specified in comma separated format.\r\n */\r\n updateSuiteTestCases(suiteTestCaseUpdateModel, project, planId, suiteId, testCaseIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n action: \"TestCases\",\r\n project: project,\r\n planId: planId,\r\n suiteId: suiteId,\r\n testCaseIds: testCaseIds\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"Test\", \"a4a1ec1c-b03f-41ca-8857-704594ecf58e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, suiteTestCaseUpdateModel, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a test case.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} testCaseId - Id of test case to delete.\r\n */\r\n deleteTestCase(project, testCaseId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n testCaseId: testCaseId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"4d472e0f-e32c-4ef8-adf4-a4078772889c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get history of a test method using TestHistoryQuery\r\n *\r\n * @param {TestInterfaces.TestHistoryQuery} filter - TestHistoryQuery to get history\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryTestHistory(filter, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"Test\", \"929fd86c-3e38-4d8c-b4b6-90df256e5971\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, filter, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.TestHistoryQuery, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.TestSettings} testSettings\r\n * @param {string} project - Project ID or project name\r\n */\r\n createTestSettings(testSettings, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8133ce14-962f-42af-a5f9-6aa9defcb9c8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, testSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} testSettingsId\r\n */\r\n deleteTestSettings(project, testSettingsId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n testSettingsId: testSettingsId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8133ce14-962f-42af-a5f9-6aa9defcb9c8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} testSettingsId\r\n */\r\n getTestSettingsById(project, testSettingsId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n testSettingsId: testSettingsId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"8133ce14-962f-42af-a5f9-6aa9defcb9c8\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TestInterfaces.WorkItemToTestLinks} workItemToTestLinks\r\n * @param {string} project - Project ID or project name\r\n */\r\n addWorkItemToTestLinks(workItemToTestLinks, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"371b1655-ce05-412e-a113-64cc77bb78d2\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemToTestLinks, options);\r\n let ret = this.formatResponse(res.result, TestInterfaces.TypeInfo.WorkItemToTestLinks, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} testName\r\n * @param {number} workItemId\r\n */\r\n deleteTestMethodToWorkItemLink(project, testName, workItemId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testName == null) {\r\n throw new TypeError('testName can not be null or undefined');\r\n }\r\n if (workItemId == null) {\r\n throw new TypeError('workItemId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n testName: testName,\r\n workItemId: workItemId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"7b0bdee3-a354-47f9-a42c-89018d7808d5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} testName\r\n */\r\n queryTestMethodLinkedWorkItems(project, testName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (testName == null) {\r\n throw new TypeError('testName can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n testName: testName,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"7b0bdee3-a354-47f9-a42c-89018d7808d5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} workItemCategory\r\n * @param {string} automatedTestName\r\n * @param {number} testCaseId\r\n * @param {Date} maxCompleteDate\r\n * @param {number} days\r\n * @param {number} workItemCount\r\n */\r\n queryTestResultWorkItems(project, workItemCategory, automatedTestName, testCaseId, maxCompleteDate, days, workItemCount) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (workItemCategory == null) {\r\n throw new TypeError('workItemCategory can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n workItemCategory: workItemCategory,\r\n automatedTestName: automatedTestName,\r\n testCaseId: testCaseId,\r\n maxCompleteDate: maxCompleteDate,\r\n days: days,\r\n '$workItemCount': workItemCount,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"Test\", \"926ff5dc-137f-45f0-bd51-9412fa9810ce\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nTestApi.RESOURCE_AREA_ID = \"c2aa639c-3ccc-4740-b3b6-ce2a1e1d984e\";\r\nexports.TestApi = TestApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst TfvcInterfaces = require(\"./interfaces/TfvcInterfaces\");\r\nclass TfvcApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Tfvc-api', options);\r\n }\r\n /**\r\n * Get a single branch hierarchy at the given path with parents or children as specified.\r\n *\r\n * @param {string} path - Full path to the branch. Default: $/ Examples: $/, $/MyProject, $/MyProject/SomeFolder.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeParent - Return the parent branch, if there is one. Default: False\r\n * @param {boolean} includeChildren - Return child branches, if there are any. Default: False\r\n */\r\n getBranch(path, project, includeParent, includeChildren) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n includeParent: includeParent,\r\n includeChildren: includeChildren,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"bc1f417e-239d-42e7-85e1-76e80cb2d6eb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcBranch, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a collection of branch roots -- first-level children, branches with no parents.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeParent - Return the parent branch, if there is one. Default: False\r\n * @param {boolean} includeChildren - Return the child branches for each root branch. Default: False\r\n * @param {boolean} includeDeleted - Return deleted branches. Default: False\r\n * @param {boolean} includeLinks - Return links. Default: False\r\n */\r\n getBranches(project, includeParent, includeChildren, includeDeleted, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n includeParent: includeParent,\r\n includeChildren: includeChildren,\r\n includeDeleted: includeDeleted,\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"bc1f417e-239d-42e7-85e1-76e80cb2d6eb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcBranch, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get branch hierarchies below the specified scopePath\r\n *\r\n * @param {string} scopePath - Full path to the branch. Default: $/ Examples: $/, $/MyProject, $/MyProject/SomeFolder.\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} includeDeleted - Return deleted branches. Default: False\r\n * @param {boolean} includeLinks - Return links. Default: False\r\n */\r\n getBranchRefs(scopePath, project, includeDeleted, includeLinks) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (scopePath == null) {\r\n throw new TypeError('scopePath can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n scopePath: scopePath,\r\n includeDeleted: includeDeleted,\r\n includeLinks: includeLinks,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"bc1f417e-239d-42e7-85e1-76e80cb2d6eb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcBranchRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve Tfvc changes for a given changeset.\r\n *\r\n * @param {number} id - ID of the changeset. Default: null\r\n * @param {number} skip - Number of results to skip. Default: null\r\n * @param {number} top - The maximum number of results to return. Default: null\r\n */\r\n getChangesetChanges(id, skip, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n let queryValues = {\r\n '$skip': skip,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"f32b86f2-15b9-4fe6-81b1-6f8938617ee5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChange, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a new changeset.\r\n *\r\n * @param {TfvcInterfaces.TfvcChangeset} changeset\r\n * @param {string} project - Project ID or project name\r\n */\r\n createChangeset(changeset, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"tfvc\", \"0bc8f0a4-6bfb-42a9-ba84-139da7b99c49\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, changeset, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangesetRef, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve a Tfvc Changeset\r\n *\r\n * @param {number} id - Changeset Id to retrieve.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} maxChangeCount - Number of changes to return (maximum 100 changes) Default: 0\r\n * @param {boolean} includeDetails - Include policy details and check-in notes in the response. Default: false\r\n * @param {boolean} includeWorkItems - Include workitems. Default: false\r\n * @param {number} maxCommentLength - Include details about associated work items in the response. Default: null\r\n * @param {boolean} includeSourceRename - Include renames. Default: false\r\n * @param {number} skip - Number of results to skip. Default: null\r\n * @param {number} top - The maximum number of results to return. Default: null\r\n * @param {string} orderby - Results are sorted by ID in descending order by default. Use id asc to sort by ID in ascending order.\r\n * @param {TfvcInterfaces.TfvcChangesetSearchCriteria} searchCriteria - Following criteria available (.itemPath, .version, .versionType, .versionOption, .author, .fromId, .toId, .fromDate, .toDate) Default: null\r\n */\r\n getChangeset(id, project, maxChangeCount, includeDetails, includeWorkItems, maxCommentLength, includeSourceRename, skip, top, orderby, searchCriteria) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n maxChangeCount: maxChangeCount,\r\n includeDetails: includeDetails,\r\n includeWorkItems: includeWorkItems,\r\n maxCommentLength: maxCommentLength,\r\n includeSourceRename: includeSourceRename,\r\n '$skip': skip,\r\n '$top': top,\r\n '$orderby': orderby,\r\n searchCriteria: searchCriteria,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"tfvc\", \"0bc8f0a4-6bfb-42a9-ba84-139da7b99c49\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangeset, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieve Tfvc Changesets\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} maxCommentLength - Include details about associated work items in the response. Default: null\r\n * @param {number} skip - Number of results to skip. Default: null\r\n * @param {number} top - The maximum number of results to return. Default: null\r\n * @param {string} orderby - Results are sorted by ID in descending order by default. Use id asc to sort by ID in ascending order.\r\n * @param {TfvcInterfaces.TfvcChangesetSearchCriteria} searchCriteria - Following criteria available (.itemPath, .version, .versionType, .versionOption, .author, .fromId, .toId, .fromDate, .toDate) Default: null\r\n */\r\n getChangesets(project, maxCommentLength, skip, top, orderby, searchCriteria) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n maxCommentLength: maxCommentLength,\r\n '$skip': skip,\r\n '$top': top,\r\n '$orderby': orderby,\r\n searchCriteria: searchCriteria,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"tfvc\", \"0bc8f0a4-6bfb-42a9-ba84-139da7b99c49\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangesetRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns changesets for a given list of changeset Ids.\r\n *\r\n * @param {TfvcInterfaces.TfvcChangesetsRequestData} changesetsRequestData - List of changeset IDs.\r\n */\r\n getBatchedChangesets(changesetsRequestData) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"b7e7c173-803c-4fea-9ec8-31ee35c5502a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, changesetsRequestData, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChangesetRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves the work items associated with a particular changeset.\r\n *\r\n * @param {number} id - ID of the changeset.\r\n */\r\n getChangesetWorkItems(id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"64ae0bea-1d71-47c9-a9e5-fe73f5ea0ff4\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Post for retrieving a set of items given a list of paths or a long path. Allows for specifying the recursionLevel and version descriptors for each path.\r\n *\r\n * @param {TfvcInterfaces.TfvcItemRequestData} itemRequestData\r\n * @param {string} project - Project ID or project name\r\n */\r\n getItemsBatch(itemRequestData, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"fe6f827b-5f64-480f-b8af-1eca3b80e833\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, itemRequestData, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Post for retrieving a set of items given a list of paths or a long path. Allows for specifying the recursionLevel and version descriptors for each path.\r\n *\r\n * @param {TfvcInterfaces.TfvcItemRequestData} itemRequestData\r\n * @param {string} project - Project ID or project name\r\n */\r\n getItemsBatchZip(itemRequestData, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"fe6f827b-5f64-480f-b8af-1eca3b80e833\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download.\r\n *\r\n * @param {string} path - Version control path of an individual item to return.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} fileName - file name of item returned.\r\n * @param {boolean} download - If true, create a downloadable attachment.\r\n * @param {string} scopePath - Version control path of a folder to return multiple items.\r\n * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder).\r\n * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n */\r\n getItem(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n fileName: fileName,\r\n download: download,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"ba9fc436-9a38-4578-89d6-e4f3241f5040\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download.\r\n *\r\n * @param {string} path - Version control path of an individual item to return.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} fileName - file name of item returned.\r\n * @param {boolean} download - If true, create a downloadable attachment.\r\n * @param {string} scopePath - Version control path of a folder to return multiple items.\r\n * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder).\r\n * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n */\r\n getItemContent(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n fileName: fileName,\r\n download: download,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"ba9fc436-9a38-4578-89d6-e4f3241f5040\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of Tfvc items\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - Version control path of a folder to return multiple items.\r\n * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder).\r\n * @param {boolean} includeLinks - True to include links.\r\n * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor\r\n */\r\n getItems(project, scopePath, recursionLevel, includeLinks, versionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n includeLinks: includeLinks,\r\n versionDescriptor: versionDescriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"ba9fc436-9a38-4578-89d6-e4f3241f5040\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download.\r\n *\r\n * @param {string} path - Version control path of an individual item to return.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} fileName - file name of item returned.\r\n * @param {boolean} download - If true, create a downloadable attachment.\r\n * @param {string} scopePath - Version control path of a folder to return multiple items.\r\n * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder).\r\n * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n */\r\n getItemText(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n fileName: fileName,\r\n download: download,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"ba9fc436-9a38-4578-89d6-e4f3241f5040\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Item Metadata and/or Content for a single item. The download parameter is to indicate whether the content should be available as a download or just sent as a stream in the response. Doesn't apply to zipped content which is always returned as a download.\r\n *\r\n * @param {string} path - Version control path of an individual item to return.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} fileName - file name of item returned.\r\n * @param {boolean} download - If true, create a downloadable attachment.\r\n * @param {string} scopePath - Version control path of a folder to return multiple items.\r\n * @param {TfvcInterfaces.VersionControlRecursionType} recursionLevel - None (just the item), or OneLevel (contents of a folder).\r\n * @param {TfvcInterfaces.TfvcVersionDescriptor} versionDescriptor - Version descriptor. Default is null.\r\n * @param {boolean} includeContent - Set to true to include item content when requesting json. Default is false.\r\n */\r\n getItemZip(path, project, fileName, download, scopePath, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n path: path,\r\n fileName: fileName,\r\n download: download,\r\n scopePath: scopePath,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"ba9fc436-9a38-4578-89d6-e4f3241f5040\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get items under a label.\r\n *\r\n * @param {string} labelId - Unique identifier of label\r\n * @param {number} top - Max number of items to return\r\n * @param {number} skip - Number of items to skip\r\n */\r\n getLabelItems(labelId, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n labelId: labelId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"06166e34-de17-4b60-8cd1-23182a346fda\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single deep label.\r\n *\r\n * @param {string} labelId - Unique identifier of label\r\n * @param {TfvcInterfaces.TfvcLabelRequestData} requestData - maxItemCount\r\n * @param {string} project - Project ID or project name\r\n */\r\n getLabel(labelId, requestData, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (requestData == null) {\r\n throw new TypeError('requestData can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n labelId: labelId\r\n };\r\n let queryValues = {\r\n requestData: requestData,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"a5d9bd7f-b661-4d0e-b9be-d9c16affae54\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcLabel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a collection of shallow label references.\r\n *\r\n * @param {TfvcInterfaces.TfvcLabelRequestData} requestData - labelScope, name, owner, and itemLabelFilter\r\n * @param {string} project - Project ID or project name\r\n * @param {number} top - Max number of labels to return, defaults to 100 when undefined\r\n * @param {number} skip - Number of labels to skip\r\n */\r\n getLabels(requestData, project, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (requestData == null) {\r\n throw new TypeError('requestData can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n requestData: requestData,\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"a5d9bd7f-b661-4d0e-b9be-d9c16affae54\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcLabelRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get changes included in a shelveset.\r\n *\r\n * @param {string} shelvesetId - Shelveset's unique ID\r\n * @param {number} top - Max number of changes to return\r\n * @param {number} skip - Number of changes to skip\r\n */\r\n getShelvesetChanges(shelvesetId, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (shelvesetId == null) {\r\n throw new TypeError('shelvesetId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n shelvesetId: shelvesetId,\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"dbaf075b-0445-4c34-9e5b-82292f856522\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcChange, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single deep shelveset.\r\n *\r\n * @param {string} shelvesetId - Shelveset's unique ID\r\n * @param {TfvcInterfaces.TfvcShelvesetRequestData} requestData - includeDetails, includeWorkItems, maxChangeCount, and maxCommentLength\r\n */\r\n getShelveset(shelvesetId, requestData) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (shelvesetId == null) {\r\n throw new TypeError('shelvesetId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n shelvesetId: shelvesetId,\r\n requestData: requestData,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"e36d44fb-e907-4b0a-b194-f83f1ed32ad3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcShelveset, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Return a collection of shallow shelveset references.\r\n *\r\n * @param {TfvcInterfaces.TfvcShelvesetRequestData} requestData - name, owner, and maxCommentLength\r\n * @param {number} top - Max number of shelvesets to return\r\n * @param {number} skip - Number of shelvesets to skip\r\n */\r\n getShelvesets(requestData, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n requestData: requestData,\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"e36d44fb-e907-4b0a-b194-f83f1ed32ad3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, TfvcInterfaces.TypeInfo.TfvcShelvesetRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get work items associated with a shelveset.\r\n *\r\n * @param {string} shelvesetId - Shelveset's unique ID\r\n */\r\n getShelvesetWorkItems(shelvesetId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (shelvesetId == null) {\r\n throw new TypeError('shelvesetId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n shelvesetId: shelvesetId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"a7a0c1c1-373e-425a-b031-a519474d743d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Provides File Count and Uncompressed Bytes for a Collection/Project at a particular scope for TFVC.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} scopePath - '$/' for collection, '$/project' for specific project\r\n */\r\n getTfvcStatistics(project, scopePath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n scopePath: scopePath,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"tfvc\", \"e15c74c0-3605-40e0-aed4-4cc61e549ed8\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nTfvcApi.RESOURCE_AREA_ID = \"8aa40520-446d-40e6-89f6-9c9f9ce44c48\";\r\nexports.TfvcApi = TfvcApi;\r\n","\"use strict\";\r\n//*******************************************************************************************************\r\n// significant portions of this file copied from: VSO\\src\\Vssf\\WebPlatform\\Platform\\Scripts\\VSS\\WebApi\\RestClient.ts\r\n//*******************************************************************************************************\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/// Imports of 3rd Party ///\r\nconst url = require(\"url\");\r\nconst path = require(\"path\");\r\nclass InvalidApiResourceVersionError {\r\n constructor(message) {\r\n this.name = \"Invalid resource version\";\r\n this.message = message;\r\n }\r\n}\r\nexports.InvalidApiResourceVersionError = InvalidApiResourceVersionError;\r\n/**\r\n * Base class that should be used (derived from) to make requests to VSS REST apis\r\n */\r\nclass VsoClient {\r\n constructor(baseUrl, restClient) {\r\n this.baseUrl = baseUrl;\r\n this.basePath = url.parse(baseUrl).pathname;\r\n this.restClient = restClient;\r\n this._locationsByAreaPromises = {};\r\n this._initializationPromise = Promise.resolve(true);\r\n }\r\n autoNegotiateApiVersion(location, requestedVersion) {\r\n let negotiatedVersion;\r\n let apiVersion;\r\n let apiVersionString;\r\n if (requestedVersion) {\r\n let apiVersionRegEx = new RegExp('(\\\\d+(\\\\.\\\\d+)?)(-preview(\\\\.(\\\\d+))?)?');\r\n // Need to handle 3 types of api versions + invalid apiversion\r\n // '2.1-preview.1' = [\"2.1-preview.1\", \"2.1\", \".1\", -preview.1\", \".1\", \"1\"]\r\n // '2.1-preview' = [\"2.1-preview\", \"2.1\", \".1\", \"-preview\", undefined, undefined]\r\n // '2.1' = [\"2.1\", \"2.1\", \".1\", undefined, undefined, undefined]\r\n let isPreview = false;\r\n let resourceVersion;\r\n let regExExecArray = apiVersionRegEx.exec(requestedVersion);\r\n if (regExExecArray) {\r\n if (regExExecArray[1]) {\r\n // we have an api version\r\n apiVersion = +regExExecArray[1];\r\n apiVersionString = regExExecArray[1];\r\n if (regExExecArray[3]) {\r\n // requesting preview\r\n isPreview = true;\r\n if (regExExecArray[5]) {\r\n // we have a resource version\r\n resourceVersion = +regExExecArray[5];\r\n }\r\n }\r\n // compare the location version and requestedversion\r\n if (apiVersion <= +location.releasedVersion\r\n || (!resourceVersion && apiVersion <= +location.maxVersion && isPreview)\r\n || (resourceVersion && apiVersion <= +location.maxVersion && resourceVersion <= +location.resourceVersion)) {\r\n negotiatedVersion = requestedVersion;\r\n }\r\n // else fall back to latest version of the resource from location\r\n }\r\n }\r\n }\r\n if (!negotiatedVersion) {\r\n // Use the latest version of the resource if the api version was not specified in the request or if the requested version is higher then the location's supported version\r\n if (apiVersion < +location.maxVersion) {\r\n negotiatedVersion = apiVersionString + \"-preview\";\r\n }\r\n else if (location.maxVersion === location.releasedVersion) {\r\n negotiatedVersion = location.maxVersion;\r\n }\r\n else {\r\n negotiatedVersion = location.maxVersion + \"-preview.\" + location.resourceVersion;\r\n }\r\n }\r\n return negotiatedVersion;\r\n }\r\n /**\r\n * Gets the route template for a resource based on its location ID and negotiates the api version\r\n */\r\n getVersioningData(apiVersion, area, locationId, routeValues, queryParams) {\r\n let requestUrl;\r\n return this.beginGetLocation(area, locationId)\r\n .then((location) => {\r\n if (!location) {\r\n throw new Error(\"Failed to find api location for area: \" + area + \" id: \" + locationId);\r\n }\r\n apiVersion = this.autoNegotiateApiVersion(location, apiVersion);\r\n requestUrl = this.getRequestUrl(location.routeTemplate, location.area, location.resourceName, routeValues, queryParams);\r\n return {\r\n apiVersion: apiVersion,\r\n requestUrl: requestUrl\r\n };\r\n });\r\n }\r\n /**\r\n * Sets a promise that is waited on before any requests are issued. Can be used to asynchronously\r\n * set the request url and auth token manager.\r\n */\r\n _setInitializationPromise(promise) {\r\n if (promise) {\r\n this._initializationPromise = promise;\r\n }\r\n }\r\n /**\r\n * Gets information about an API resource location (route template, supported versions, etc.)\r\n *\r\n * @param area resource area name\r\n * @param locationId Guid of the location to get\r\n */\r\n beginGetLocation(area, locationId) {\r\n return this._initializationPromise.then(() => {\r\n return this.beginGetAreaLocations(area);\r\n }).then((areaLocations) => {\r\n return areaLocations[(locationId || \"\").toLowerCase()];\r\n });\r\n }\r\n beginGetAreaLocations(area) {\r\n let areaLocationsPromise = this._locationsByAreaPromises[area];\r\n if (!areaLocationsPromise) {\r\n let requestUrl = this.resolveUrl(VsoClient.APIS_RELATIVE_PATH + \"/\" + area);\r\n areaLocationsPromise = this.restClient.options(requestUrl)\r\n .then((res) => {\r\n let locationsLookup = {};\r\n let resourceLocations = res.result.value;\r\n let i;\r\n for (i = 0; i < resourceLocations.length; i++) {\r\n let resourceLocation = resourceLocations[i];\r\n locationsLookup[resourceLocation.id.toLowerCase()] = resourceLocation;\r\n }\r\n // If we have completed successfully, cache the response.\r\n this._locationsByAreaPromises[area] = areaLocationsPromise;\r\n return locationsLookup;\r\n });\r\n }\r\n return areaLocationsPromise;\r\n }\r\n resolveUrl(relativeUrl) {\r\n return url.resolve(this.baseUrl, path.join(this.basePath, relativeUrl));\r\n }\r\n queryParamsToStringHelper(queryParams, prefix) {\r\n if (!queryParams) {\r\n return '';\r\n }\r\n let queryString = '';\r\n if (typeof (queryParams) !== 'string') {\r\n for (let property in queryParams) {\r\n if (queryParams.hasOwnProperty(property)) {\r\n const prop = queryParams[property];\r\n const newPrefix = prefix + encodeURIComponent(property.toString()) + '.';\r\n queryString += this.queryParamsToStringHelper(prop, newPrefix);\r\n }\r\n }\r\n }\r\n if (queryString === '' && prefix.length > 0) {\r\n // Date.prototype.toString() returns a string that is not valid for the REST API.\r\n // Need to specially call `toUTCString()` instead for such cases\r\n const queryValue = typeof queryParams === 'object' && 'toUTCString' in queryParams ? queryParams.toUTCString() : queryParams.toString();\r\n // Will always need to chop period off of end of prefix\r\n queryString = prefix.slice(0, -1) + '=' + encodeURIComponent(queryValue) + '&';\r\n }\r\n return queryString;\r\n }\r\n queryParamsToString(queryParams) {\r\n const queryString = '?' + this.queryParamsToStringHelper(queryParams, '');\r\n // Will always need to slice either a ? or & off of the end\r\n return queryString.slice(0, -1);\r\n }\r\n getRequestUrl(routeTemplate, area, resource, routeValues, queryParams) {\r\n // Add area/resource route values (based on the location)\r\n routeValues = routeValues || {};\r\n if (!routeValues.area) {\r\n routeValues.area = area;\r\n }\r\n if (!routeValues.resource) {\r\n routeValues.resource = resource;\r\n }\r\n // Replace templated route values\r\n let relativeUrl = this.replaceRouteValues(routeTemplate, routeValues);\r\n // Append query parameters to the end\r\n if (queryParams) {\r\n relativeUrl += this.queryParamsToString(queryParams);\r\n }\r\n // Resolve the relative url with the base\r\n return url.resolve(this.baseUrl, path.join(this.basePath, relativeUrl));\r\n }\r\n // helper method copied directly from VSS\\WebAPI\\restclient.ts\r\n replaceRouteValues(routeTemplate, routeValues) {\r\n let result = \"\", currentPathPart = \"\", paramName = \"\", insideParam = false, charIndex, routeTemplateLength = routeTemplate.length, c;\r\n for (charIndex = 0; charIndex < routeTemplateLength; charIndex++) {\r\n c = routeTemplate[charIndex];\r\n if (insideParam) {\r\n if (c == \"}\") {\r\n insideParam = false;\r\n if (routeValues[paramName]) {\r\n currentPathPart += encodeURIComponent(routeValues[paramName]);\r\n }\r\n else {\r\n // Normalize param name in order to capture wild-card routes\r\n let strippedParamName = paramName.replace(/[^a-z0-9]/ig, '');\r\n if (routeValues[strippedParamName]) {\r\n currentPathPart += encodeURIComponent(routeValues[strippedParamName]);\r\n }\r\n }\r\n paramName = \"\";\r\n }\r\n else {\r\n paramName += c;\r\n }\r\n }\r\n else {\r\n if (c == \"/\") {\r\n if (currentPathPart) {\r\n if (result) {\r\n result += \"/\";\r\n }\r\n result += currentPathPart;\r\n currentPathPart = \"\";\r\n }\r\n }\r\n else if (c == \"{\") {\r\n if ((charIndex + 1) < routeTemplateLength && routeTemplate[charIndex + 1] == \"{\") {\r\n // Escaped '{'\r\n currentPathPart += c;\r\n charIndex++;\r\n }\r\n else {\r\n insideParam = true;\r\n }\r\n }\r\n else if (c == '}') {\r\n currentPathPart += c;\r\n if ((charIndex + 1) < routeTemplateLength && routeTemplate[charIndex + 1] == \"}\") {\r\n // Escaped '}'\r\n charIndex++;\r\n }\r\n }\r\n else {\r\n currentPathPart += c;\r\n }\r\n }\r\n }\r\n if (currentPathPart) {\r\n if (result) {\r\n result += \"/\";\r\n }\r\n result += currentPathPart;\r\n }\r\n return result;\r\n }\r\n}\r\nVsoClient.APIS_RELATIVE_PATH = \"_apis\";\r\nVsoClient.PREVIEW_INDICATOR = \"-preview.\";\r\nexports.VsoClient = VsoClient;\r\n",null,"\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst Comments_Contracts = require(\"./interfaces/CommentsInterfaces\");\r\nconst WikiInterfaces = require(\"./interfaces/WikiInterfaces\");\r\nclass WikiApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Wiki-api', options);\r\n }\r\n /**\r\n * Uploads an attachment on a comment on a wiki page.\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n */\r\n createCommentAttachment(customHeaders, contentStream, project, wikiIdentifier, pageId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"5100d976-363d-42e7-a19d-4171ecb44782\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentAttachment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Downloads an attachment on a comment on a wiki page.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {string} attachmentId - Attachment ID.\r\n */\r\n getAttachmentContent(project, wikiIdentifier, pageId, attachmentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n attachmentId: attachmentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"5100d976-363d-42e7-a19d-4171ecb44782\", routeValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a reaction on a wiki page comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name\r\n * @param {number} pageId - Wiki page ID\r\n * @param {number} commentId - ID of the associated comment\r\n * @param {Comments_Contracts.CommentReactionType} type - Type of the reaction being added\r\n */\r\n addCommentReaction(project, wikiIdentifier, pageId, commentId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n commentId: commentId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"7a5bc693-aab7-4d48-8f34-36f373022063\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentReaction, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a reaction on a wiki page comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or name\r\n * @param {number} pageId - Wiki page ID\r\n * @param {number} commentId - ID of the associated comment\r\n * @param {Comments_Contracts.CommentReactionType} type - Type of the reaction being deleted\r\n */\r\n deleteCommentReaction(project, wikiIdentifier, pageId, commentId, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n commentId: commentId,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"7a5bc693-aab7-4d48-8f34-36f373022063\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentReaction, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of users who have reacted for the given wiki comment with a given reaction type. Supports paging, with a default page size of 100 users at a time.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} commentId - ID of the associated comment\r\n * @param {Comments_Contracts.CommentReactionType} type - Type of the reaction for which the engaged users are being requested\r\n * @param {number} top - Number of enagaged users to be returned in a given page. Optional, defaults to 100\r\n * @param {number} skip - Number of engaged users to be skipped to page the next set of engaged users, defaults to 0\r\n */\r\n getEngagedUsers(project, wikiIdentifier, pageId, commentId, type, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n commentId: commentId,\r\n type: type\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"598a5268-41a7-4162-b7dc-344131e4d1fa\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a comment on a wiki page.\r\n *\r\n * @param {Comments_Contracts.CommentCreateParameters} request - Comment create request.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n */\r\n addComment(request, project, wikiIdentifier, pageId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"9b394e93-7db5-46cb-9c26-09a36aa5c895\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, request, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a comment on a wiki page.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} id - Comment ID.\r\n */\r\n deleteComment(project, wikiIdentifier, pageId, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"9b394e93-7db5-46cb-9c26-09a36aa5c895\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a comment associated with the Wiki Page.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} id - ID of the comment to return.\r\n * @param {boolean} excludeDeleted - Specify if the deleted comment should be skipped.\r\n * @param {Comments_Contracts.CommentExpandOptions} expand - Specifies the additional data retrieval options for comments.\r\n */\r\n getComment(project, wikiIdentifier, pageId, id, excludeDeleted, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n id: id\r\n };\r\n let queryValues = {\r\n excludeDeleted: excludeDeleted,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"9b394e93-7db5-46cb-9c26-09a36aa5c895\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a pageable list of comments.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} top - Max number of comments to return.\r\n * @param {string} continuationToken - Used to query for the next page of comments.\r\n * @param {boolean} excludeDeleted - Specify if the deleted comments should be skipped.\r\n * @param {Comments_Contracts.CommentExpandOptions} expand - Specifies the additional data retrieval options for comments.\r\n * @param {Comments_Contracts.CommentSortOrder} order - Order in which the comments should be returned.\r\n * @param {number} parentId - CommentId of the parent comment.\r\n */\r\n listComments(project, wikiIdentifier, pageId, top, continuationToken, excludeDeleted, expand, order, parentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n excludeDeleted: excludeDeleted,\r\n '$expand': expand,\r\n order: order,\r\n parentId: parentId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"9b394e93-7db5-46cb-9c26-09a36aa5c895\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.CommentList, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a comment on a wiki page.\r\n *\r\n * @param {Comments_Contracts.CommentUpdateParameters} comment - Comment update request.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} id - Comment ID.\r\n */\r\n updateComment(comment, project, wikiIdentifier, pageId, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"9b394e93-7db5-46cb-9c26-09a36aa5c895\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, comment, options);\r\n let ret = this.formatResponse(res.result, Comments_Contracts.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets metadata or content of the wiki page for the provided path. Content negotiation is done based on the `Accept` header sent in the request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {string} path - Wiki page path.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional).\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - GitVersionDescriptor for the page. Defaults to the default branch (Optional).\r\n * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional)\r\n */\r\n getPageText(project, wikiIdentifier, path, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n let queryValues = {\r\n path: path,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"25d3fbc7-fe3d-46cb-b5a5-0b6f79caf27b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets metadata or content of the wiki page for the provided path. Content negotiation is done based on the `Accept` header sent in the request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {string} path - Wiki page path.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional).\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - GitVersionDescriptor for the page. Defaults to the default branch (Optional).\r\n * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional)\r\n */\r\n getPageZip(project, wikiIdentifier, path, recursionLevel, versionDescriptor, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n let queryValues = {\r\n path: path,\r\n recursionLevel: recursionLevel,\r\n versionDescriptor: versionDescriptor,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"25d3fbc7-fe3d-46cb-b5a5-0b6f79caf27b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets metadata or content of the wiki page for the provided page id. Content negotiation is done based on the `Accept` header sent in the request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name..\r\n * @param {number} id - Wiki page ID.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional).\r\n * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional)\r\n */\r\n getPageByIdText(project, wikiIdentifier, id, recursionLevel, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n id: id\r\n };\r\n let queryValues = {\r\n recursionLevel: recursionLevel,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"ceddcf75-1068-452d-8b13-2d4d76e1f970\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"text/plain\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets metadata or content of the wiki page for the provided page id. Content negotiation is done based on the `Accept` header sent in the request.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name..\r\n * @param {number} id - Wiki page ID.\r\n * @param {GitInterfaces.VersionControlRecursionType} recursionLevel - Recursion level for subpages retrieval. Defaults to `None` (Optional).\r\n * @param {boolean} includeContent - True to include the content of the page in the response for Json content type. Defaults to false (Optional)\r\n */\r\n getPageByIdZip(project, wikiIdentifier, id, recursionLevel, includeContent) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n id: id\r\n };\r\n let queryValues = {\r\n recursionLevel: recursionLevel,\r\n includeContent: includeContent,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"ceddcf75-1068-452d-8b13-2d4d76e1f970\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns pageable list of Wiki Pages\r\n *\r\n * @param {WikiInterfaces.WikiPagesBatchRequest} pagesBatchRequest - Wiki batch page request.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {GitInterfaces.GitVersionDescriptor} versionDescriptor - GitVersionDescriptor for the page. (Optional in case of ProjectWiki).\r\n */\r\n getPagesBatch(pagesBatchRequest, project, wikiIdentifier, versionDescriptor) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n let queryValues = {\r\n versionDescriptor: versionDescriptor,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"71323c46-2592-4398-8771-ced73dd87207\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, pagesBatchRequest, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiPageDetail, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns page detail corresponding to Page ID.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {number} pageId - Wiki page ID.\r\n * @param {number} pageViewsForDays - last N days from the current day for which page views is to be returned. It's inclusive of current day.\r\n */\r\n getPageData(project, wikiIdentifier, pageId, pageViewsForDays) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier,\r\n pageId: pageId\r\n };\r\n let queryValues = {\r\n pageViewsForDays: pageViewsForDays,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"81c4e0fe-7663-4d62-ad46-6ab78459f274\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiPageDetail, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a new page view stats resource or updates an existing page view stats resource.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {GitInterfaces.GitVersionDescriptor} wikiVersion - Wiki version.\r\n * @param {string} path - Wiki page path.\r\n * @param {string} oldPath - Old page path. This is optional and required to rename path in existing page view stats.\r\n */\r\n createOrUpdatePageViewStats(project, wikiIdentifier, wikiVersion, path, oldPath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (wikiVersion == null) {\r\n throw new TypeError('wikiVersion can not be null or undefined');\r\n }\r\n if (path == null) {\r\n throw new TypeError('path can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n let queryValues = {\r\n wikiVersion: wikiVersion,\r\n path: path,\r\n oldPath: oldPath,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wiki\", \"1087b746-5d15-41b9-bea6-14e325e7f880\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, null, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiPageViewStats, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates the wiki resource.\r\n *\r\n * @param {WikiInterfaces.WikiCreateParametersV2} wikiCreateParams - Parameters for the wiki creation.\r\n * @param {string} project - Project ID or project name\r\n */\r\n createWiki(wikiCreateParams, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wiki\", \"288d122c-dbd4-451d-aa5f-7dbbba070728\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, wikiCreateParams, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the wiki corresponding to the wiki ID or wiki name provided.\r\n *\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteWiki(wikiIdentifier, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wiki\", \"288d122c-dbd4-451d-aa5f-7dbbba070728\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets all wikis in a project or collection.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getAllWikis(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wiki\", \"288d122c-dbd4-451d-aa5f-7dbbba070728\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the wiki corresponding to the wiki ID or wiki name provided.\r\n *\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWiki(wikiIdentifier, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wiki\", \"288d122c-dbd4-451d-aa5f-7dbbba070728\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates the wiki corresponding to the wiki ID or wiki name provided using the update parameters.\r\n *\r\n * @param {WikiInterfaces.WikiUpdateParameters} updateParameters - Update parameters.\r\n * @param {string} wikiIdentifier - Wiki ID or wiki name.\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateWiki(updateParameters, wikiIdentifier, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n wikiIdentifier: wikiIdentifier\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wiki\", \"288d122c-dbd4-451d-aa5f-7dbbba070728\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateParameters, options);\r\n let ret = this.formatResponse(res.result, WikiInterfaces.TypeInfo.WikiV2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nWikiApi.RESOURCE_AREA_ID = \"bf7d82a0-8aa5-4613-94ef-6172a5ea01f3\";\r\nexports.WikiApi = WikiApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst WorkInterfaces = require(\"./interfaces/WorkInterfaces\");\r\nclass WorkApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-Work-api', options);\r\n }\r\n /**\r\n * Gets backlog configuration for a team\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getBacklogConfigurations(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"7799f497-3cb5-4f16-ad4f-5cd06012db64\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BacklogConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of work items within a backlog level\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} backlogId\r\n */\r\n getBacklogLevelWorkItems(teamContext, backlogId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n backlogId: backlogId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"7c468d96-ab1d-4294-a360-92f07e9ccd98\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a backlog level\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - The id of the backlog level\r\n */\r\n getBacklog(teamContext, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"a93726f9-7867-4e38-b4f2-0bfafc2f6a94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BacklogLevelConfiguration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * List all backlog levels\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getBacklogs(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"a93726f9-7867-4e38-b4f2-0bfafc2f6a94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BacklogLevelConfiguration, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that displays the status of columns on the board.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - The id of the board.\r\n * @param {WorkInterfaces.BoardBadgeColumnOptions} columnOptions - Determines what columns to show.\r\n * @param {string[]} columns - If columnOptions is set to custom, specify the list of column names.\r\n */\r\n getBoardBadge(teamContext, id, columnOptions, columns) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n let queryValues = {\r\n columnOptions: columnOptions,\r\n columns: columns && columns.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0120b002-ab6c-4ca0-98cf-a8d7492f865c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a badge that displays the status of columns on the board.\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - The id of the board.\r\n * @param {WorkInterfaces.BoardBadgeColumnOptions} columnOptions - Determines what columns to show.\r\n * @param {string[]} columns - If columnOptions is set to custom, specify the list of column names.\r\n */\r\n getBoardBadgeData(teamContext, id, columnOptions, columns) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n let queryValues = {\r\n columnOptions: columnOptions,\r\n columns: columns && columns.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0120b002-ab6c-4ca0-98cf-a8d7492f865c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get available board columns in a project\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getColumnSuggestedValues(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"eb7ec5a3-1ba3-4fd1-b834-49a5a387e57d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the list of parent field filter model for the given list of workitem ids\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} childBacklogContextCategoryRefName\r\n * @param {number[]} workitemIds\r\n */\r\n getBoardMappingParentItems(teamContext, childBacklogContextCategoryRefName, workitemIds) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (childBacklogContextCategoryRefName == null) {\r\n throw new TypeError('childBacklogContextCategoryRefName can not be null or undefined');\r\n }\r\n if (workitemIds == null) {\r\n throw new TypeError('workitemIds can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n let queryValues = {\r\n childBacklogContextCategoryRefName: childBacklogContextCategoryRefName,\r\n workitemIds: workitemIds && workitemIds.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"186abea3-5c35-432f-9e28-7a15b4312a0e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get available board rows in a project\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRowSuggestedValues(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"bb494cc6-a0f5-4c6c-8dca-ea6912e79eb9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get board\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - identifier for board, either board's backlog level name (Eg:\"Stories\") or Id\r\n */\r\n getBoard(teamContext, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"23ad19fc-3b8e-4877-8462-b3f92bc06b40\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Board, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get boards\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getBoards(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"23ad19fc-3b8e-4877-8462-b3f92bc06b40\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update board options\r\n *\r\n * @param {{ [key: string] : string; }} options - options to updated\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - identifier for board, either category plural name (Eg:\"Stories\") or guid\r\n */\r\n setBoardOptions(options, teamContext, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"23ad19fc-3b8e-4877-8462-b3f92bc06b40\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, options, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get board user settings for a board id\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Board ID or Name\r\n */\r\n getBoardUserSettings(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"b30d9f58-1891-4b0a-b168-c46408f919b0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update board user settings for the board id\r\n *\r\n * @param {{ [key: string] : string; }} boardUserSettings\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board\r\n */\r\n updateBoardUserSettings(boardUserSettings, teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"b30d9f58-1891-4b0a-b168-c46408f919b0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, boardUserSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a team's capacity including total capacity and days off\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n getCapacitiesWithIdentityRefAndTotals(teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"work\", \"74412d15-8c1a-4352-a48d-ef1ed5587d57\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamCapacity, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a team member's capacity\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n * @param {string} teamMemberId - ID of the team member\r\n */\r\n getCapacityWithIdentityRef(teamContext, iterationId, teamMemberId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId,\r\n teamMemberId: teamMemberId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"work\", \"74412d15-8c1a-4352-a48d-ef1ed5587d57\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamMemberCapacityIdentityRef, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replace a team's capacity\r\n *\r\n * @param {WorkInterfaces.TeamMemberCapacityIdentityRef[]} capacities - Team capacity to replace\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n replaceCapacitiesWithIdentityRef(capacities, teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"work\", \"74412d15-8c1a-4352-a48d-ef1ed5587d57\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, capacities, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamMemberCapacityIdentityRef, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a team member's capacity\r\n *\r\n * @param {WorkInterfaces.CapacityPatch} patch - Updated capacity\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n * @param {string} teamMemberId - ID of the team member\r\n */\r\n updateCapacityWithIdentityRef(patch, teamContext, iterationId, teamMemberId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId,\r\n teamMemberId: teamMemberId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"work\", \"74412d15-8c1a-4352-a48d-ef1ed5587d57\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, patch, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamMemberCapacityIdentityRef, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get board card Rule settings for the board id or board by name\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board\r\n */\r\n getBoardCardRuleSettings(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"b044a3d9-02ea-49c7-91a1-b730949cc896\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update board card Rule settings for the board id or board by name\r\n *\r\n * @param {WorkInterfaces.BoardCardRuleSettings} boardCardRuleSettings\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board\r\n */\r\n updateBoardCardRuleSettings(boardCardRuleSettings, teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"b044a3d9-02ea-49c7-91a1-b730949cc896\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, boardCardRuleSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update taskboard card Rule settings\r\n *\r\n * @param {WorkInterfaces.BoardCardRuleSettings} boardCardRuleSettings\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateTaskboardCardRuleSettings(boardCardRuleSettings, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"3f84a8d1-1aab-423e-a94b-6dcbdcca511f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, boardCardRuleSettings, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get board card settings for the board id or board by name\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board\r\n */\r\n getBoardCardSettings(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"07c3b467-bc60-4f05-8e34-599ce288fafc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update board card settings for the board id or board by name\r\n *\r\n * @param {WorkInterfaces.BoardCardSettings} boardCardSettingsToSave\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board\r\n */\r\n updateBoardCardSettings(boardCardSettingsToSave, teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"07c3b467-bc60-4f05-8e34-599ce288fafc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, boardCardSettingsToSave, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update taskboard card settings\r\n *\r\n * @param {WorkInterfaces.BoardCardSettings} boardCardSettingsToSave\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateTaskboardCardSettings(boardCardSettingsToSave, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"work\", \"0d63745f-31f3-4cf3-9056-2a064e567637\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, boardCardSettingsToSave, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a board chart\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Identifier for board, either board's backlog level name (Eg:\"Stories\") or Id\r\n * @param {string} name - The chart name\r\n */\r\n getBoardChart(teamContext, board, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"45fe888c-239e-49fd-958c-df1a1ab21d97\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get board charts\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Identifier for board, either board's backlog level name (Eg:\"Stories\") or Id\r\n */\r\n getBoardCharts(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"45fe888c-239e-49fd-958c-df1a1ab21d97\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a board chart\r\n *\r\n * @param {WorkInterfaces.BoardChart} chart\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Identifier for board, either board's backlog level name (Eg:\"Stories\") or Id\r\n * @param {string} name - The chart name\r\n */\r\n updateBoardChart(chart, teamContext, board, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board,\r\n name: name\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"45fe888c-239e-49fd-958c-df1a1ab21d97\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, chart, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get columns on a board\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Name or ID of the specific board\r\n */\r\n getBoardColumns(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c555d7ff-84e1-47df-9923-a3fe0cd8751b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BoardColumn, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update columns on a board\r\n *\r\n * @param {WorkInterfaces.BoardColumn[]} boardColumns - List of board columns to update\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Name or ID of the specific board\r\n */\r\n updateBoardColumns(boardColumns, teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c555d7ff-84e1-47df-9923-a3fe0cd8751b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, boardColumns, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.BoardColumn, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get Delivery View Data\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} id - Identifier for delivery view\r\n * @param {number} revision - Revision of the plan for which you want data. If the current plan is a different revision you will get an ViewRevisionMismatchException exception. If you do not supply a revision you will get data for the latest revision.\r\n * @param {Date} startDate - The start date of timeline\r\n * @param {Date} endDate - The end date of timeline\r\n */\r\n getDeliveryTimelineData(project, id, revision, startDate, endDate) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n revision: revision,\r\n startDate: startDate,\r\n endDate: endDate,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"bdd0834e-101f-49f0-a6ae-509f384a12b4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.DeliveryViewData, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get an iteration's capacity for all teams in iteration\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n getTotalIterationCapacities(project, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"1e385ce0-396b-4273-8171-d64562c18d37\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a team's iteration by iterationId\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - ID of the iteration\r\n */\r\n deleteTeamIteration(teamContext, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c9175577-28a1-4b06-9197-8636af9f64ad\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get team's iteration by iterationId\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} id - ID of the iteration\r\n */\r\n getTeamIteration(teamContext, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c9175577-28a1-4b06-9197-8636af9f64ad\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsIteration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a team's iterations using timeframe filter\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} timeframe - A filter for which iterations are returned based on relative time. Only Current is supported currently.\r\n */\r\n getTeamIterations(teamContext, timeframe) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n let queryValues = {\r\n '$timeframe': timeframe,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c9175577-28a1-4b06-9197-8636af9f64ad\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsIteration, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add an iteration to the team\r\n *\r\n * @param {WorkInterfaces.TeamSettingsIteration} iteration - Iteration to add\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n postTeamIteration(iteration, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c9175577-28a1-4b06-9197-8636af9f64ad\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, iteration, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsIteration, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a new plan for the team\r\n *\r\n * @param {WorkInterfaces.CreatePlan} postedPlan - Plan definition\r\n * @param {string} project - Project ID or project name\r\n */\r\n createPlan(postedPlan, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0b42cb47-cd73-4810-ac90-19c9ba147453\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, postedPlan, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete the specified plan\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} id - Identifier of the plan\r\n */\r\n deletePlan(project, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0b42cb47-cd73-4810-ac90-19c9ba147453\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the information for the specified plan\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} id - Identifier of the plan\r\n */\r\n getPlan(project, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0b42cb47-cd73-4810-ac90-19c9ba147453\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the information for all the plans configured for the given team\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getPlans(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0b42cb47-cd73-4810-ac90-19c9ba147453\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update the information for the specified plan\r\n *\r\n * @param {WorkInterfaces.UpdatePlan} updatedPlan - Plan definition to be updated\r\n * @param {string} project - Project ID or project name\r\n * @param {string} id - Identifier of the plan\r\n */\r\n updatePlan(updatedPlan, project, id) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0b42cb47-cd73-4810-ac90-19c9ba147453\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, updatedPlan, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.Plan, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get process configuration\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getProcessConfiguration(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"f901ba42-86d2-4b0c-89c1-3f86d06daa84\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get rows on a board\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Name or ID of the specific board\r\n */\r\n getBoardRows(teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0863355d-aefd-4d63-8669-984c9b7b0e78\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update rows on a board\r\n *\r\n * @param {WorkInterfaces.BoardRow[]} boardRows - List of board rows to update\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} board - Name or ID of the specific board\r\n */\r\n updateBoardRows(boardRows, teamContext, board) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n board: board\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"0863355d-aefd-4d63-8669-984c9b7b0e78\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, boardRows, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getColumns(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c6815dbe-8e7e-4ffe-9a79-e83ee712aa92\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {WorkInterfaces.UpdateTaskboardColumn[]} updateColumns\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateColumns(updateColumns, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c6815dbe-8e7e-4ffe-9a79-e83ee712aa92\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, updateColumns, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId\r\n */\r\n getWorkItemColumns(teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"1be23c36-8872-4abc-b57d-402cd6c669d9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {WorkInterfaces.UpdateTaskboardWorkItemColumn} updateColumn\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId\r\n * @param {number} workItemId\r\n */\r\n updateWorkItemColumn(updateColumn, teamContext, iterationId, workItemId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId,\r\n workItemId: workItemId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"1be23c36-8872-4abc-b57d-402cd6c669d9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateColumn, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get team's days off for an iteration\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n getTeamDaysOff(teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"2d4faa2e-9150-4cbf-a47a-932b1b4a0773\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsDaysOff, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Set a team's days off for an iteration\r\n *\r\n * @param {WorkInterfaces.TeamSettingsDaysOffPatch} daysOffPatch - Team's days off patch containing a list of start and end dates\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n updateTeamDaysOff(daysOffPatch, teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"2d4faa2e-9150-4cbf-a47a-932b1b4a0773\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, daysOffPatch, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSettingsDaysOff, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a collection of team field values\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getTeamFieldValues(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"07ced576-58ed-49e6-9c1e-5cb53ab8bf2a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update team field values\r\n *\r\n * @param {WorkInterfaces.TeamFieldValuesPatch} patch\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateTeamFieldValues(patch, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"07ced576-58ed-49e6-9c1e-5cb53ab8bf2a\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, patch, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a team's settings\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n getTeamSettings(teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c3c1012b-bea7-49d7-b45e-1664e566f84c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSetting, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a team's settings\r\n *\r\n * @param {WorkInterfaces.TeamSettingsPatch} teamSettingsPatch - TeamSettings changes\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n updateTeamSettings(teamSettingsPatch, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"c3c1012b-bea7-49d7-b45e-1664e566f84c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, teamSettingsPatch, options);\r\n let ret = this.formatResponse(res.result, WorkInterfaces.TypeInfo.TeamSetting, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get work items for iteration\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - ID of the iteration\r\n */\r\n getIterationWorkItems(teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"5b3ef1a6-d3ab-44cd-bafd-c7f45db850fa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Reorder Product Backlog/Boards Work Items\r\n *\r\n * @param {WorkInterfaces.ReorderOperation} operation\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n reorderBacklogWorkItems(operation, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"1c22b714-e7e4-41b9-85e0-56ee13ef55ed\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, operation, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Reorder Sprint Backlog/Taskboard Work Items\r\n *\r\n * @param {WorkInterfaces.ReorderOperation} operation\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} iterationId - The id of the iteration\r\n */\r\n reorderIterationWorkItems(operation, teamContext, iterationId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n iterationId: iterationId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"work\", \"47755db2-d7eb-405a-8c25-675401525fc9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, operation, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nWorkApi.RESOURCE_AREA_ID = \"1d4f49f9-02b9-4e26-b826-2cdb6195f2a9\";\r\nexports.WorkApi = WorkApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst WorkItemTrackingInterfaces = require(\"./interfaces/WorkItemTrackingInterfaces\");\r\nclass WorkItemTrackingApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-WorkItemTracking-api', options);\r\n }\r\n /**\r\n * INTERNAL ONLY: USED BY ACCOUNT MY WORK PAGE. This returns Doing, Done, Follows and activity work items details.\r\n *\r\n * @param {WorkItemTrackingInterfaces.QueryOption} queryOption\r\n */\r\n getAccountMyWorkData(queryOption) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n '$queryOption': queryOption,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"def3d688-ddf5-4096-9024-69beea15cdbd\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.AccountMyWorkResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets recent work item activities\r\n *\r\n */\r\n getRecentActivityData() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"1bc988f4-c15f-4072-ad35-497c87e3a909\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.AccountRecentActivityWorkItemModel2, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * INTERNAL ONLY: USED BY ACCOUNT MY WORK PAGE.\r\n *\r\n */\r\n getRecentMentions() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"d60eeb6e-e18c-4478-9e94-a0094e28f41c\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.AccountRecentMentionWorkItemModel, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get the list of work item tracking outbound artifact link types.\r\n *\r\n */\r\n getWorkArtifactLinkTypes() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"1a31de40-e318-41cd-a6c6-881077df52e3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Queries work items linked to a given list of artifact URI.\r\n *\r\n * @param {WorkItemTrackingInterfaces.ArtifactUriQuery} artifactUriQuery - Defines a list of artifact URI for querying work items.\r\n * @param {string} project - Project ID or project name\r\n */\r\n queryWorkItemsForArtifactUris(artifactUriQuery, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"a9a9aa7a-8c09-44d3-ad1b-46e855c1e3d3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, artifactUriQuery, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Uploads an attachment.\r\n *\r\n * @param {NodeJS.ReadableStream} contentStream - Content to upload\r\n * @param {string} fileName - The name of the file\r\n * @param {string} uploadType - Attachment upload type: Simple or Chunked\r\n * @param {string} project - Project ID or project name\r\n * @param {string} areaPath - Target project Area Path\r\n */\r\n createAttachment(customHeaders, contentStream, fileName, uploadType, project, areaPath) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fileName: fileName,\r\n uploadType: uploadType,\r\n areaPath: areaPath,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/octet-stream\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"e07b5fa4-1499-494d-a496-64b860fd64ff\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.uploadStream(\"POST\", url, contentStream, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Downloads an attachment.\r\n *\r\n * @param {string} id - Attachment ID\r\n * @param {string} fileName - Name of the file\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} download - If set to true always download attachment\r\n */\r\n getAttachmentContent(id, fileName, project, download) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n fileName: fileName,\r\n download: download,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"e07b5fa4-1499-494d-a496-64b860fd64ff\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/octet-stream\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Downloads an attachment.\r\n *\r\n * @param {string} id - Attachment ID\r\n * @param {string} fileName - Name of the file\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} download - If set to true always download attachment\r\n */\r\n getAttachmentZip(id, fileName, project, download) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n fileName: fileName,\r\n download: download,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"e07b5fa4-1499-494d-a496-64b860fd64ff\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"application/zip\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets root classification nodes or list of classification nodes for a given list of nodes ids, for a given project. In case ids parameter is supplied you will get list of classification nodes for those ids. Otherwise you will get root classification nodes for this project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number[]} ids - Comma separated integer classification nodes ids. It's not required, if you want root nodes.\r\n * @param {number} depth - Depth of children to fetch.\r\n * @param {WorkItemTrackingInterfaces.ClassificationNodesErrorPolicy} errorPolicy - Flag to handle errors in getting some nodes. Possible options are Fail and Omit.\r\n */\r\n getClassificationNodes(project, ids, depth, errorPolicy) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n '$depth': depth,\r\n errorPolicy: errorPolicy,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a70579d1-f53a-48ee-a5be-7be8659023b9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets root classification nodes under the project.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} depth - Depth of children to fetch.\r\n */\r\n getRootNodes(project, depth) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$depth': depth,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a70579d1-f53a-48ee-a5be-7be8659023b9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create new or update an existing classification node.\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemClassificationNode} postedNode - Node to create or update.\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration.\r\n * @param {string} path - Path of the classification node.\r\n */\r\n createOrUpdateClassificationNode(postedNode, project, structureGroup, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n structureGroup: structureGroup,\r\n path: path\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"5a172953-1b41-49d3-840a-33f79c3ce89f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, postedNode, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete an existing classification node.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration.\r\n * @param {string} path - Path of the classification node.\r\n * @param {number} reclassifyId - Id of the target classification node for reclassification.\r\n */\r\n deleteClassificationNode(project, structureGroup, path, reclassifyId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n structureGroup: structureGroup,\r\n path: path\r\n };\r\n let queryValues = {\r\n '$reclassifyId': reclassifyId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"5a172953-1b41-49d3-840a-33f79c3ce89f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the classification node for a given node path.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration.\r\n * @param {string} path - Path of the classification node.\r\n * @param {number} depth - Depth of children to fetch.\r\n */\r\n getClassificationNode(project, structureGroup, path, depth) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n structureGroup: structureGroup,\r\n path: path\r\n };\r\n let queryValues = {\r\n '$depth': depth,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"5a172953-1b41-49d3-840a-33f79c3ce89f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update an existing classification node.\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemClassificationNode} postedNode - Node to create or update.\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.TreeStructureGroup} structureGroup - Structure group of the classification node, area or iteration.\r\n * @param {string} path - Path of the classification node.\r\n */\r\n updateClassificationNode(postedNode, project, structureGroup, path) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n structureGroup: structureGroup,\r\n path: path\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"5a172953-1b41-49d3-840a-33f79c3ce89f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, postedNode, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemClassificationNode, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get users who reacted on the comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - WorkItem ID.\r\n * @param {number} commentId - Comment ID.\r\n * @param {WorkItemTrackingInterfaces.CommentReactionType} reactionType - Type of the reaction.\r\n * @param {number} top\r\n * @param {number} skip\r\n */\r\n getEngagedUsers(project, workItemId, commentId, reactionType, top, skip) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId,\r\n reactionType: reactionType\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"e33ca5e0-2349-4285-af3d-d72d86781c35\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add a comment on a work item.\r\n *\r\n * @param {WorkItemTrackingInterfaces.CommentCreate} request - Comment create request.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item.\r\n */\r\n addComment(request, project, workItemId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, request, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a comment on a work item.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item.\r\n * @param {number} commentId\r\n */\r\n deleteComment(project, workItemId, commentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a work item comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item to get the comment.\r\n * @param {number} commentId - Id of the comment to return.\r\n * @param {boolean} includeDeleted - Specify if the deleted comment should be retrieved.\r\n * @param {WorkItemTrackingInterfaces.CommentExpandOptions} expand - Specifies the additional data retrieval options for work item comments.\r\n */\r\n getComment(project, workItemId, commentId, includeDeleted, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId\r\n };\r\n let queryValues = {\r\n includeDeleted: includeDeleted,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of work item comments, pageable.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item to get comments for.\r\n * @param {number} top - Max number of comments to return.\r\n * @param {string} continuationToken - Used to query for the next page of comments.\r\n * @param {boolean} includeDeleted - Specify if the deleted comments should be retrieved.\r\n * @param {WorkItemTrackingInterfaces.CommentExpandOptions} expand - Specifies the additional data retrieval options for work item comments.\r\n * @param {WorkItemTrackingInterfaces.CommentSortOrder} order - Order in which the comments should be returned.\r\n */\r\n getComments(project, workItemId, top, continuationToken, includeDeleted, expand, order) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n continuationToken: continuationToken,\r\n includeDeleted: includeDeleted,\r\n '$expand': expand,\r\n order: order,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentList, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of work item comments by ids.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item to get comments for.\r\n * @param {number[]} ids - Comma-separated list of comment ids to return.\r\n * @param {boolean} includeDeleted - Specify if the deleted comments should be retrieved.\r\n * @param {WorkItemTrackingInterfaces.CommentExpandOptions} expand - Specifies the additional data retrieval options for work item comments.\r\n */\r\n getCommentsBatch(project, workItemId, ids, includeDeleted, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId\r\n };\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n includeDeleted: includeDeleted,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentList, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a comment on a work item.\r\n *\r\n * @param {WorkItemTrackingInterfaces.CommentUpdate} request - Comment update request.\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - Id of a work item.\r\n * @param {number} commentId\r\n */\r\n updateComment(request, project, workItemId, commentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"608aac0a-32e1-4493-a863-b9cf4566d257\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, request, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.Comment, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a new reaction to a comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - WorkItem ID\r\n * @param {number} commentId - Comment ID\r\n * @param {WorkItemTrackingInterfaces.CommentReactionType} reactionType - Type of the reaction\r\n */\r\n createCommentReaction(project, workItemId, commentId, reactionType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId,\r\n reactionType: reactionType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"f6cb3f27-1028-4851-af96-887e570dc21f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, null, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentReaction, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes an existing reaction on a comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - WorkItem ID\r\n * @param {number} commentId - Comment ID\r\n * @param {WorkItemTrackingInterfaces.CommentReactionType} reactionType - Type of the reaction\r\n */\r\n deleteCommentReaction(project, workItemId, commentId, reactionType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId,\r\n reactionType: reactionType\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"f6cb3f27-1028-4851-af96-887e570dc21f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentReaction, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets reactions of a comment.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId - WorkItem ID\r\n * @param {number} commentId - Comment ID\r\n */\r\n getCommentReactions(project, workItemId, commentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"f6cb3f27-1028-4851-af96-887e570dc21f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentReaction, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId\r\n * @param {number} commentId\r\n * @param {number} version\r\n */\r\n getCommentVersion(project, workItemId, commentId, version) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId,\r\n version: version\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"49e03b34-3be0-42e3-8a5d-e8dfb88ac954\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentVersion, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {number} workItemId\r\n * @param {number} commentId\r\n */\r\n getCommentVersions(project, workItemId, commentId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n workItemId: workItemId,\r\n commentId: commentId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"49e03b34-3be0-42e3-8a5d-e8dfb88ac954\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.CommentVersion, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Create a new field.\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemField} workItemField - New field definition\r\n * @param {string} project - Project ID or project name\r\n */\r\n createField(workItemField, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemField, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the field. To undelete a filed, see \"Update Field\" API.\r\n *\r\n * @param {string} fieldNameOrRefName - Field simple name or reference name\r\n * @param {string} project - Project ID or project name\r\n */\r\n deleteField(fieldNameOrRefName, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fieldNameOrRefName: fieldNameOrRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets information on a specific field.\r\n *\r\n * @param {string} fieldNameOrRefName - Field simple name or reference name\r\n * @param {string} project - Project ID or project name\r\n */\r\n getField(fieldNameOrRefName, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fieldNameOrRefName: fieldNameOrRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns information for all fields. The project ID/name parameter is optional.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.GetFieldsExpand} expand - Use ExtensionFields to include extension fields, otherwise exclude them. Unless the feature flag for this parameter is enabled, extension fields are always included.\r\n */\r\n getFields(project, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a field.\r\n *\r\n * @param {WorkItemTrackingInterfaces.UpdateWorkItemField} payload - Payload contains desired value of the field's properties\r\n * @param {string} fieldNameOrRefName - Name/reference name of the field to be updated\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateField(payload, fieldNameOrRefName, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n fieldNameOrRefName: fieldNameOrRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b51fd764-e5c2-4b9b-aaf7-3395cf4bdd94\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, payload, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Migrates a project to a different process within the same OOB type. For example, you can only migrate a project from agile/custom-agile to agile/custom-agile.\r\n *\r\n * @param {WorkItemTrackingInterfaces.ProcessIdModel} newProcess\r\n * @param {string} project - Project ID or project name\r\n */\r\n migrateProjectsProcess(newProcess, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"19801631-d4e5-47e9-8166-0330de0ff1e6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, newProcess, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a query, or moves a query.\r\n *\r\n * @param {WorkItemTrackingInterfaces.QueryHierarchyItem} postedQuery - The query to create.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} query - The parent id or path under which the query is to be created.\r\n * @param {boolean} validateWiqlOnly - If you only want to validate your WIQL query without actually creating one, set it to true. Default is false.\r\n */\r\n createQuery(postedQuery, project, query, validateWiqlOnly) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n query: query\r\n };\r\n let queryValues = {\r\n validateWiqlOnly: validateWiqlOnly,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, postedQuery, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Delete a query or a folder. This deletes any permission change on the deleted query or folder and any of its descendants if it is a folder. It is important to note that the deleted permission changes cannot be recovered upon undeleting the query or folder.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} query - ID or path of the query or folder to delete.\r\n */\r\n deleteQuery(project, query) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n query: query\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the root queries and their children\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {WorkItemTrackingInterfaces.QueryExpand} expand - Include the query string (wiql), clauses, query result columns, and sort options in the results.\r\n * @param {number} depth - In the folder of queries, return child queries and folders to this depth.\r\n * @param {boolean} includeDeleted - Include deleted queries and folders\r\n */\r\n getQueries(project, expand, depth, includeDeleted) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n '$depth': depth,\r\n '$includeDeleted': includeDeleted,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Retrieves an individual query and its children\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} query - ID or path of the query.\r\n * @param {WorkItemTrackingInterfaces.QueryExpand} expand - Include the query string (wiql), clauses, query result columns, and sort options in the results.\r\n * @param {number} depth - In the folder of queries, return child queries and folders to this depth.\r\n * @param {boolean} includeDeleted - Include deleted queries and folders\r\n */\r\n getQuery(project, query, expand, depth, includeDeleted) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n query: query\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n '$depth': depth,\r\n '$includeDeleted': includeDeleted,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Searches all queries the user has access to in the current project\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} filter - The text to filter the queries with.\r\n * @param {number} top - The number of queries to return (Default is 50 and maximum is 200).\r\n * @param {WorkItemTrackingInterfaces.QueryExpand} expand\r\n * @param {boolean} includeDeleted - Include deleted queries and folders\r\n */\r\n searchQueries(project, filter, top, expand, includeDeleted) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (filter == null) {\r\n throw new TypeError('filter can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n '$filter': filter,\r\n '$top': top,\r\n '$expand': expand,\r\n '$includeDeleted': includeDeleted,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItemsResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Update a query or a folder. This allows you to update, rename and move queries and folders.\r\n *\r\n * @param {WorkItemTrackingInterfaces.QueryHierarchyItem} queryUpdate - The query to update.\r\n * @param {string} project - Project ID or project name\r\n * @param {string} query - The ID or path for the query to update.\r\n * @param {boolean} undeleteDescendants - Undelete the children of this folder. It is important to note that this will not bring back the permission changes that were previously applied to the descendants.\r\n */\r\n updateQuery(queryUpdate, project, query, undeleteDescendants) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n query: query\r\n };\r\n let queryValues = {\r\n '$undeleteDescendants': undeleteDescendants,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a67d190c-c41f-424b-814d-0e906f659301\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, queryUpdate, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of queries by ids (Maximum 1000)\r\n *\r\n * @param {WorkItemTrackingInterfaces.QueryBatchGetRequest} queryGetRequest\r\n * @param {string} project - Project ID or project name\r\n */\r\n getQueriesBatch(queryGetRequest, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"549816f9-09b0-4e75-9e81-01fbfcd07426\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, queryGetRequest, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.QueryHierarchyItem, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Destroys the specified work item permanently from the Recycle Bin. This action can not be undone.\r\n *\r\n * @param {number} id - ID of the work item to be destroyed permanently\r\n * @param {string} project - Project ID or project name\r\n */\r\n destroyWorkItem(id, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b70d8d39-926c-465e-b927-b1bf0e5ca0e0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a deleted work item from Recycle Bin.\r\n *\r\n * @param {number} id - ID of the work item to be returned\r\n * @param {string} project - Project ID or project name\r\n */\r\n getDeletedWorkItem(id, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b70d8d39-926c-465e-b927-b1bf0e5ca0e0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the work items from the recycle bin, whose IDs have been specified in the parameters\r\n *\r\n * @param {number[]} ids - Comma separated list of IDs of the deleted work items to be returned\r\n * @param {string} project - Project ID or project name\r\n */\r\n getDeletedWorkItems(ids, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b70d8d39-926c-465e-b927-b1bf0e5ca0e0\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets a list of the IDs and the URLs of the deleted the work items in the Recycle Bin.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getDeletedWorkItemShallowReferences(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b70d8d39-926c-465e-b927-b1bf0e5ca0e0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Restores the deleted work item from Recycle Bin.\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemDeleteUpdate} payload - Paylod with instructions to update the IsDeleted flag to false\r\n * @param {number} id - ID of the work item to be restored\r\n * @param {string} project - Project ID or project name\r\n */\r\n restoreWorkItem(payload, id, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"b70d8d39-926c-465e-b927-b1bf0e5ca0e0\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, payload, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a fully hydrated work item for the requested revision\r\n *\r\n * @param {number} id\r\n * @param {number} revisionNumber\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRevision(id, revisionNumber, expand, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id,\r\n revisionNumber: revisionNumber\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"a00c85a5-80fa-4565-99c3-bcd2181434bb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the list of fully hydrated work item revisions, paged.\r\n *\r\n * @param {number} id\r\n * @param {number} top\r\n * @param {number} skip\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand\r\n * @param {string} project - Project ID or project name\r\n */\r\n getRevisions(id, top, skip, expand, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"a00c85a5-80fa-4565-99c3-bcd2181434bb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * RESTful method to send mail for selected/queried work items.\r\n *\r\n * @param {WorkItemTrackingInterfaces.SendMailBody} body\r\n * @param {string} project - Project ID or project name\r\n */\r\n sendMail(body, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"12438500-2f84-4fa7-9f1a-c31871b4959d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, body, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} tagIdOrName\r\n */\r\n deleteTag(project, tagIdOrName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n tagIdOrName: tagIdOrName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"bc15bc60-e7a8-43cb-ab01-2106be3983a1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} tagIdOrName\r\n */\r\n getTag(project, tagIdOrName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n tagIdOrName: tagIdOrName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"bc15bc60-e7a8-43cb-ab01-2106be3983a1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n */\r\n getTags(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"bc15bc60-e7a8-43cb-ab01-2106be3983a1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {WorkItemTrackingInterfaces.WorkItemTagDefinition} tagData\r\n * @param {string} project - Project ID or project name\r\n * @param {string} tagIdOrName\r\n */\r\n updateTag(tagData, project, tagIdOrName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n tagIdOrName: tagIdOrName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"bc15bc60-e7a8-43cb-ab01-2106be3983a1\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, tagData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a template\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemTemplate} template - Template contents\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n */\r\n createTemplate(template, teamContext) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"6a90345f-a676-4969-afce-8e163e1d5642\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, template, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets template\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} workitemtypename - Optional, When specified returns templates for given Work item type.\r\n */\r\n getTemplates(teamContext, workitemtypename) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n let queryValues = {\r\n workitemtypename: workitemtypename,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"6a90345f-a676-4969-afce-8e163e1d5642\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the template with given id\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} templateId - Template id\r\n */\r\n deleteTemplate(teamContext, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"fb10264a-8836-48a0-8033-1b0ccd2748d5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the template with specified id\r\n *\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} templateId - Template Id\r\n */\r\n getTemplate(teamContext, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"fb10264a-8836-48a0-8033-1b0ccd2748d5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replace template contents\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemTemplate} templateContent - Template contents to replace with\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {string} templateId - Template id\r\n */\r\n replaceTemplate(templateContent, teamContext, templateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n templateId: templateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"fb10264a-8836-48a0-8033-1b0ccd2748d5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, templateContent, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single update for a work item\r\n *\r\n * @param {number} id\r\n * @param {number} updateNumber\r\n * @param {string} project - Project ID or project name\r\n */\r\n getUpdate(id, updateNumber, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id,\r\n updateNumber: updateNumber\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"6570bf97-d02c-4a91-8d93-3abe9895b1a9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemUpdate, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a the deltas between work item revisions\r\n *\r\n * @param {number} id\r\n * @param {number} top\r\n * @param {number} skip\r\n * @param {string} project - Project ID or project name\r\n */\r\n getUpdates(id, top, skip, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n '$top': top,\r\n '$skip': skip,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"6570bf97-d02c-4a91-8d93-3abe9895b1a9\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemUpdate, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the results of the query given its WIQL.\r\n *\r\n * @param {WorkItemTrackingInterfaces.Wiql} wiql - The query containing the WIQL.\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {boolean} timePrecision - Whether or not to use time precision.\r\n * @param {number} top - The max number of results to return.\r\n */\r\n queryByWiql(wiql, teamContext, timePrecision, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team\r\n };\r\n let queryValues = {\r\n timePrecision: timePrecision,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"1a9c53f7-f243-4447-b110-35ef023636e4\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, wiql, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the results of the query given the query ID.\r\n *\r\n * @param {string} id - The query ID.\r\n * @param {TfsCoreInterfaces.TeamContext} teamContext - The team context for the operation\r\n * @param {boolean} timePrecision - Whether or not to use time precision.\r\n * @param {number} top - The max number of results to return.\r\n */\r\n queryById(id, teamContext, timePrecision, top) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let project = null;\r\n let team = null;\r\n if (teamContext) {\r\n project = teamContext.projectId || teamContext.project;\r\n team = teamContext.teamId || teamContext.team;\r\n }\r\n let routeValues = {\r\n project: project,\r\n team: team,\r\n id: id\r\n };\r\n let queryValues = {\r\n timePrecision: timePrecision,\r\n '$top': top,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"a02355f5-5f8a-4671-8e32-369d23aac83d\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingInterfaces.TypeInfo.WorkItemQueryResult, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a work item icon given the friendly name and icon color.\r\n *\r\n * @param {string} icon - The name of the icon\r\n * @param {string} color - The 6-digit hex color for the icon\r\n * @param {number} v - The version of the icon (used only for cache invalidation)\r\n */\r\n getWorkItemIconJson(icon, color, v) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n icon: icon\r\n };\r\n let queryValues = {\r\n color: color,\r\n v: v,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"4e1eb4a5-1970-4228-a682-ec48eb2dca30\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of all work item icons.\r\n *\r\n */\r\n getWorkItemIcons() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"4e1eb4a5-1970-4228-a682-ec48eb2dca30\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a work item icon given the friendly name and icon color.\r\n *\r\n * @param {string} icon - The name of the icon\r\n * @param {string} color - The 6-digit hex color for the icon\r\n * @param {number} v - The version of the icon (used only for cache invalidation)\r\n */\r\n getWorkItemIconSvg(icon, color, v) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n icon: icon\r\n };\r\n let queryValues = {\r\n color: color,\r\n v: v,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"4e1eb4a5-1970-4228-a682-ec48eb2dca30\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"image/svg+xml\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a work item icon given the friendly name and icon color.\r\n *\r\n * @param {string} icon - The name of the icon\r\n * @param {string} color - The 6-digit hex color for the icon\r\n * @param {number} v - The version of the icon (used only for cache invalidation)\r\n */\r\n getWorkItemIconXaml(icon, color, v) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n icon: icon\r\n };\r\n let queryValues = {\r\n color: color,\r\n v: v,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"4e1eb4a5-1970-4228-a682-ec48eb2dca30\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let apiVersion = verData.apiVersion;\r\n let accept = this.createAcceptHeader(\"image/xaml+xml\", apiVersion);\r\n resolve((yield this.http.get(url, { \"Accept\": accept })).message);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a batch of work item links\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string[]} linkTypes - A list of types to filter the results to specific link types. Omit this parameter to get work item links of all link types.\r\n * @param {string[]} types - A list of types to filter the results to specific work item types. Omit this parameter to get work item links of all work item types.\r\n * @param {string} continuationToken - Specifies the continuationToken to start the batch from. Omit this parameter to get the first batch of links.\r\n * @param {Date} startDateTime - Date/time to use as a starting point for link changes. Only link changes that occurred after that date/time will be returned. Cannot be used in conjunction with 'watermark' parameter.\r\n */\r\n getReportingLinksByLinkType(project, linkTypes, types, continuationToken, startDateTime) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n linkTypes: linkTypes && linkTypes.join(\",\"),\r\n types: types && types.join(\",\"),\r\n continuationToken: continuationToken,\r\n startDateTime: startDateTime,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"b5b5b6d0-0308-40a1-b3f4-b9bb3c66878f\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the work item relation type definition.\r\n *\r\n * @param {string} relation - The relation name\r\n */\r\n getRelationType(relation) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n relation: relation\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"f5d33bc9-5b49-4a3c-a9bd-f3cd46dd2165\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the work item relation types.\r\n *\r\n */\r\n getRelationTypes() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"f5d33bc9-5b49-4a3c-a9bd-f3cd46dd2165\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a batch of work item revisions with the option of including deleted items\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string[]} fields - A list of fields to return in work item revisions. Omit this parameter to get all reportable fields.\r\n * @param {string[]} types - A list of types to filter the results to specific work item types. Omit this parameter to get work item revisions of all work item types.\r\n * @param {string} continuationToken - Specifies the watermark to start the batch from. Omit this parameter to get the first batch of revisions.\r\n * @param {Date} startDateTime - Date/time to use as a starting point for revisions, all revisions will occur after this date/time. Cannot be used in conjunction with 'watermark' parameter.\r\n * @param {boolean} includeIdentityRef - Return an identity reference instead of a string value for identity fields.\r\n * @param {boolean} includeDeleted - Specify if the deleted item should be returned.\r\n * @param {boolean} includeTagRef - Specify if the tag objects should be returned for System.Tags field.\r\n * @param {boolean} includeLatestOnly - Return only the latest revisions of work items, skipping all historical revisions\r\n * @param {WorkItemTrackingInterfaces.ReportingRevisionsExpand} expand - Return all the fields in work item revisions, including long text fields which are not returned by default\r\n * @param {boolean} includeDiscussionChangesOnly - Return only the those revisions of work items, where only history field was changed\r\n * @param {number} maxPageSize - The maximum number of results to return in this batch\r\n */\r\n readReportingRevisionsGet(project, fields, types, continuationToken, startDateTime, includeIdentityRef, includeDeleted, includeTagRef, includeLatestOnly, expand, includeDiscussionChangesOnly, maxPageSize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n fields: fields && fields.join(\",\"),\r\n types: types && types.join(\",\"),\r\n continuationToken: continuationToken,\r\n startDateTime: startDateTime,\r\n includeIdentityRef: includeIdentityRef,\r\n includeDeleted: includeDeleted,\r\n includeTagRef: includeTagRef,\r\n includeLatestOnly: includeLatestOnly,\r\n '$expand': expand,\r\n includeDiscussionChangesOnly: includeDiscussionChangesOnly,\r\n '$maxPageSize': maxPageSize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"f828fe59-dd87-495d-a17c-7a8d6211ca6c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a batch of work item revisions. This request may be used if your list of fields is large enough that it may run the URL over the length limit.\r\n *\r\n * @param {WorkItemTrackingInterfaces.ReportingWorkItemRevisionsFilter} filter - An object that contains request settings: field filter, type filter, identity format\r\n * @param {string} project - Project ID or project name\r\n * @param {string} continuationToken - Specifies the watermark to start the batch from. Omit this parameter to get the first batch of revisions.\r\n * @param {Date} startDateTime - Date/time to use as a starting point for revisions, all revisions will occur after this date/time. Cannot be used in conjunction with 'watermark' parameter.\r\n * @param {WorkItemTrackingInterfaces.ReportingRevisionsExpand} expand\r\n */\r\n readReportingRevisionsPost(filter, project, continuationToken, startDateTime, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n startDateTime: startDateTime,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"f828fe59-dd87-495d-a17c-7a8d6211ca6c\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, filter, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * @param {string} project - Project ID or project name\r\n * @param {string} continuationToken\r\n * @param {number} maxPageSize\r\n */\r\n readReportingDiscussions(project, continuationToken, maxPageSize) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n continuationToken: continuationToken,\r\n '$maxPageSize': maxPageSize,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"4a644469-90c5-4fcc-9a9f-be0827d369ec\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a single work item.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} document - The JSON Patch document representing the work item\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - The work item type of the work item to create\r\n * @param {boolean} validateOnly - Indicate if you only want to validate the changes without saving the work item\r\n * @param {boolean} bypassRules - Do not enforce the work item type rules on this update\r\n * @param {boolean} suppressNotifications - Do not fire any notifications for this change\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.\r\n */\r\n createWorkItem(customHeaders, document, project, type, validateOnly, bypassRules, suppressNotifications, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n let queryValues = {\r\n validateOnly: validateOnly,\r\n bypassRules: bypassRules,\r\n suppressNotifications: suppressNotifications,\r\n '$expand': expand,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"62d3d110-0047-428c-ad3c-4fe872c91c74\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.create(url, document, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single work item from a template.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - The work item type name\r\n * @param {string} fields - Comma-separated list of requested fields\r\n * @param {Date} asOf - AsOf UTC date time string\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.\r\n */\r\n getWorkItemTemplate(project, type, fields, asOf, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n let queryValues = {\r\n fields: fields,\r\n asOf: asOf,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"62d3d110-0047-428c-ad3c-4fe872c91c74\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes the specified work item and sends it to the Recycle Bin, so that it can be restored back, if required. Optionally, if the destroy parameter has been set to true, it destroys the work item permanently. WARNING: If the destroy parameter is set to true, work items deleted by this command will NOT go to recycle-bin and there is no way to restore/recover them after deletion. It is recommended NOT to use this parameter. If you do, please use this parameter with extreme caution.\r\n *\r\n * @param {number} id - ID of the work item to be deleted\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} destroy - Optional parameter, if set to true, the work item is deleted permanently. Please note: the destroy action is PERMANENT and cannot be undone.\r\n */\r\n deleteWorkItem(id, project, destroy) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n destroy: destroy,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"72c7ddf8-2cdc-4f60-90cd-ab71c14a399b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single work item.\r\n *\r\n * @param {number} id - The work item id\r\n * @param {string[]} fields - Comma-separated list of requested fields\r\n * @param {Date} asOf - AsOf UTC date time string\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWorkItem(id, fields, asOf, expand, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n fields: fields && fields.join(\",\"),\r\n asOf: asOf,\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"72c7ddf8-2cdc-4f60-90cd-ab71c14a399b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of work items (Maximum 200)\r\n *\r\n * @param {number[]} ids - The comma-separated list of requested work item ids. (Maximum 200 ids allowed).\r\n * @param {string[]} fields - Comma-separated list of requested fields\r\n * @param {Date} asOf - AsOf UTC date time string\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.\r\n * @param {WorkItemTrackingInterfaces.WorkItemErrorPolicy} errorPolicy - The flag to control error policy in a bulk get work items request. Possible options are {Fail, Omit}.\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWorkItems(ids, fields, asOf, expand, errorPolicy, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n fields: fields && fields.join(\",\"),\r\n asOf: asOf,\r\n '$expand': expand,\r\n errorPolicy: errorPolicy,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"72c7ddf8-2cdc-4f60-90cd-ab71c14a399b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a single work item.\r\n *\r\n * @param {VSSInterfaces.JsonPatchDocument} document - The JSON Patch document representing the update\r\n * @param {number} id - The id of the work item to update\r\n * @param {string} project - Project ID or project name\r\n * @param {boolean} validateOnly - Indicate if you only want to validate the changes without saving the work item\r\n * @param {boolean} bypassRules - Do not enforce the work item type rules on this update\r\n * @param {boolean} suppressNotifications - Do not fire any notifications for this change\r\n * @param {WorkItemTrackingInterfaces.WorkItemExpand} expand - The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.\r\n */\r\n updateWorkItem(customHeaders, document, id, project, validateOnly, bypassRules, suppressNotifications, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n id: id\r\n };\r\n let queryValues = {\r\n validateOnly: validateOnly,\r\n bypassRules: bypassRules,\r\n suppressNotifications: suppressNotifications,\r\n '$expand': expand,\r\n };\r\n customHeaders = customHeaders || {};\r\n customHeaders[\"Content-Type\"] = \"application/json-patch+json\";\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"72c7ddf8-2cdc-4f60-90cd-ab71c14a399b\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n options.additionalHeaders = customHeaders;\r\n let res;\r\n res = yield this.rest.update(url, document, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets work items for a list of work item ids (Maximum 200)\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemBatchGetRequest} workItemGetRequest\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWorkItemsBatch(workItemGetRequest, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"908509b6-4248-4475-a1cd-829139ba419f\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemGetRequest, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * INTERNAL ONLY: It will be used for My account work experience. Get the work item type state color for multiple projects\r\n *\r\n * @param {string[]} projectNames\r\n */\r\n getWorkItemStateColors(projectNames) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"0b83df8a-3496-4ddb-ba44-63634f4cda61\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, projectNames, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the next state on the given work item IDs.\r\n *\r\n * @param {number[]} ids - list of work item ids\r\n * @param {string} action - possible actions. Currently only supports checkin\r\n */\r\n getWorkItemNextStatesOnCheckinAction(ids, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (ids == null) {\r\n throw new TypeError('ids can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n ids: ids && ids.join(\",\"),\r\n action: action,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"afae844b-e2f6-44c2-8053-17b3bb936a40\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get all work item type categories.\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWorkItemTypeCategories(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"9b9f5734-36c8-415e-ba67-f83b45c31408\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get specific work item type category by name.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} category - The category name\r\n */\r\n getWorkItemTypeCategory(project, category) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n category: category\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"9b9f5734-36c8-415e-ba67-f83b45c31408\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * INTERNAL ONLY: It will be used for My account work experience. Get the wit type color for multiple projects\r\n *\r\n * @param {string[]} projectNames\r\n */\r\n getWorkItemTypeColors(projectNames) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"958fde80-115e-43fb-bd65-749c48057faf\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, projectNames, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * INTERNAL ONLY: It is used for color and icon providers. Get the wit type color for multiple projects\r\n *\r\n * @param {string[]} projectNames\r\n */\r\n getWorkItemTypeColorAndIcons(projectNames) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"f0f8dc62-3975-48ce-8051-f636b68b52e3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, projectNames, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a work item type definition.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - Work item type name\r\n */\r\n getWorkItemType(project, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"7c8d7a76-4a09-43e8-b5df-bd792f4ac6aa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the list of work item types\r\n *\r\n * @param {string} project - Project ID or project name\r\n */\r\n getWorkItemTypes(project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"wit\", \"7c8d7a76-4a09-43e8-b5df-bd792f4ac6aa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a list of fields for a work item type with detailed references.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - Work item type.\r\n * @param {WorkItemTrackingInterfaces.WorkItemTypeFieldsExpandLevel} expand - Expand level for the API response. Properties: to include allowedvalues, default value, isRequired etc. as a part of response; None: to skip these properties.\r\n */\r\n getWorkItemTypeFieldsWithReferences(project, type, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"bd293ce5-3d25-4192-8e67-e8092e879efb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a field for a work item type with detailed references.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - Work item type.\r\n * @param {string} field\r\n * @param {WorkItemTrackingInterfaces.WorkItemTypeFieldsExpandLevel} expand - Expand level for the API response. Properties: to include allowedvalues, default value, isRequired etc. as a part of response; None: to skip these properties.\r\n */\r\n getWorkItemTypeFieldWithReferences(project, type, field, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type,\r\n field: field\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.3\", \"wit\", \"bd293ce5-3d25-4192-8e67-e8092e879efb\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns the state names and colors for a work item type.\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type - The state name\r\n */\r\n getWorkItemTypeStates(project, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"7c9d7a76-4a09-43e8-b5df-bd792f4ac6aa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Export work item type\r\n *\r\n * @param {string} project - Project ID or project name\r\n * @param {string} type\r\n * @param {boolean} exportGlobalLists\r\n */\r\n exportWorkItemTypeDefinition(project, type, exportGlobalLists) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project,\r\n type: type\r\n };\r\n let queryValues = {\r\n exportGlobalLists: exportGlobalLists,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"8637ac8b-5eb6-4f90-b3f7-4f2ff576a459\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Add/updates a work item type\r\n *\r\n * @param {WorkItemTrackingInterfaces.WorkItemTypeTemplateUpdateModel} updateModel\r\n * @param {string} project - Project ID or project name\r\n */\r\n updateWorkItemTypeDefinition(updateModel, project) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n project: project\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"wit\", \"8637ac8b-5eb6-4f90-b3f7-4f2ff576a459\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, updateModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nWorkItemTrackingApi.RESOURCE_AREA_ID = \"5264459e-e5e0-4bd8-b118-0985e68a4ec5\";\r\nexports.WorkItemTrackingApi = WorkItemTrackingApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst WorkItemTrackingProcessInterfaces = require(\"./interfaces/WorkItemTrackingProcessInterfaces\");\r\nclass WorkItemTrackingProcessApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-WorkItemTracking-api', options);\r\n }\r\n /**\r\n * Creates a single behavior in the given process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.ProcessBehaviorCreateRequest} behavior\r\n * @param {string} processId - The ID of the process\r\n */\r\n createProcessBehavior(behavior, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"d1800200-f184-4e75-a5f2-ad0b04b4373e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, behavior, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a behavior in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n deleteProcessBehavior(processId, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"d1800200-f184-4e75-a5f2-ad0b04b4373e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a behavior of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n * @param {WorkItemTrackingProcessInterfaces.GetBehaviorsExpand} expand\r\n */\r\n getProcessBehavior(processId, behaviorRefName, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorRefName: behaviorRefName\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"d1800200-f184-4e75-a5f2-ad0b04b4373e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all behaviors in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {WorkItemTrackingProcessInterfaces.GetBehaviorsExpand} expand\r\n */\r\n getProcessBehaviors(processId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"d1800200-f184-4e75-a5f2-ad0b04b4373e\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replaces a behavior in the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.ProcessBehaviorUpdateRequest} behaviorData\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n updateProcessBehavior(behaviorData, processId, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"d1800200-f184-4e75-a5f2-ad0b04b4373e\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, behaviorData, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessBehavior, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a control in a group.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Control} control - The control.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} groupId - The ID of the group to add the control to.\r\n */\r\n createControlInGroup(control, processId, witRefName, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a control to a specified group.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Control} control - The control.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} groupId - The ID of the group to move the control to.\r\n * @param {string} controlId - The ID of the control.\r\n * @param {string} removeFromGroupId - The group ID to remove the control from.\r\n */\r\n moveControlToGroup(control, processId, witRefName, groupId, controlId, removeFromGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n let queryValues = {\r\n removeFromGroupId: removeFromGroupId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a control from the work item form.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} groupId - The ID of the group.\r\n * @param {string} controlId - The ID of the control to remove.\r\n */\r\n removeControlFromGroup(processId, witRefName, groupId, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a control on the work item form.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Control} control - The updated control.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} groupId - The ID of the group.\r\n * @param {string} controlId - The ID of the control.\r\n */\r\n updateControl(control, processId, witRefName, groupId, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1f59b363-a2d0-4b7e-9bc6-eb9f5f3f0e58\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a field to a work item type.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.AddProcessWorkItemTypeFieldRequest} field\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n addFieldToWorkItemType(field, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"bc0ad8dc-e3f3-46b0-b06c-5bf861793196\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all fields in a work item type.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n getAllWorkItemTypeFields(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"bc0ad8dc-e3f3-46b0-b06c-5bf861793196\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a field in a work item type.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} fieldRefName - The reference name of the field.\r\n * @param {WorkItemTrackingProcessInterfaces.ProcessWorkItemTypeFieldsExpandLevel} expand\r\n */\r\n getWorkItemTypeField(processId, witRefName, fieldRefName, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n fieldRefName: fieldRefName\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"bc0ad8dc-e3f3-46b0-b06c-5bf861793196\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a field from a work item type. Does not permanently delete the field.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} fieldRefName - The reference name of the field.\r\n */\r\n removeWorkItemTypeField(processId, witRefName, fieldRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n fieldRefName: fieldRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"bc0ad8dc-e3f3-46b0-b06c-5bf861793196\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a field in a work item type.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.UpdateProcessWorkItemTypeFieldRequest} field\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} fieldRefName - The reference name of the field.\r\n */\r\n updateWorkItemTypeField(field, processId, witRefName, fieldRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n fieldRefName: fieldRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"bc0ad8dc-e3f3-46b0-b06c-5bf861793196\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemTypeField, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a group to the work item form.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Group} group - The group.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} pageId - The ID of the page to add the group to.\r\n * @param {string} sectionId - The ID of the section to add the group to.\r\n */\r\n addGroup(group, processId, witRefName, pageId, sectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"766e44e1-36a8-41d7-9050-c343ff02f7a5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a group to a different page and section.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Group} group - The updated group.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} pageId - The ID of the page the group is in.\r\n * @param {string} sectionId - The ID of the section the group is i.n\r\n * @param {string} groupId - The ID of the group.\r\n * @param {string} removeFromPageId - ID of the page to remove the group from.\r\n * @param {string} removeFromSectionId - ID of the section to remove the group from.\r\n */\r\n moveGroupToPage(group, processId, witRefName, pageId, sectionId, groupId, removeFromPageId, removeFromSectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (removeFromPageId == null) {\r\n throw new TypeError('removeFromPageId can not be null or undefined');\r\n }\r\n if (removeFromSectionId == null) {\r\n throw new TypeError('removeFromSectionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n let queryValues = {\r\n removeFromPageId: removeFromPageId,\r\n removeFromSectionId: removeFromSectionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"766e44e1-36a8-41d7-9050-c343ff02f7a5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a group to a different section.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Group} group - The updated group.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} pageId - The ID of the page the group is in.\r\n * @param {string} sectionId - The ID of the section the group is in.\r\n * @param {string} groupId - The ID of the group.\r\n * @param {string} removeFromSectionId - ID of the section to remove the group from.\r\n */\r\n moveGroupToSection(group, processId, witRefName, pageId, sectionId, groupId, removeFromSectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (removeFromSectionId == null) {\r\n throw new TypeError('removeFromSectionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n let queryValues = {\r\n removeFromSectionId: removeFromSectionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"766e44e1-36a8-41d7-9050-c343ff02f7a5\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a group from the work item form.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page the group is in\r\n * @param {string} sectionId - The ID of the section to the group is in\r\n * @param {string} groupId - The ID of the group\r\n */\r\n removeGroup(processId, witRefName, pageId, sectionId, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"766e44e1-36a8-41d7-9050-c343ff02f7a5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a group in the work item form.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Group} group - The updated group.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} pageId - The ID of the page the group is in.\r\n * @param {string} sectionId - The ID of the section the group is in.\r\n * @param {string} groupId - The ID of the group.\r\n */\r\n updateGroup(group, processId, witRefName, pageId, sectionId, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"766e44e1-36a8-41d7-9050-c343ff02f7a5\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the form layout.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n getFormLayout(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"fa8646eb-43cd-4b71-9564-40106fd63e40\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.FormLayout, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a picklist.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.PickList} picklist - Picklist\r\n */\r\n createList(picklist) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"01e15468-e27c-4e20-a974-bd957dcccebc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, picklist, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a picklist.\r\n *\r\n * @param {string} listId - The ID of the list\r\n */\r\n deleteList(listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"01e15468-e27c-4e20-a974-bd957dcccebc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a picklist.\r\n *\r\n * @param {string} listId - The ID of the list\r\n */\r\n getList(listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"01e15468-e27c-4e20-a974-bd957dcccebc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns meta data of the picklist.\r\n *\r\n */\r\n getListsMetadata() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"01e15468-e27c-4e20-a974-bd957dcccebc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a list.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.PickList} picklist\r\n * @param {string} listId - The ID of the list\r\n */\r\n updateList(picklist, listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"01e15468-e27c-4e20-a974-bd957dcccebc\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, picklist, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a page to the work item form.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Page} page - The page.\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n addPage(page, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1cc7b29f-6697-4d9d-b0a1-2650d3e1d584\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, page, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.Page, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a page from the work item form\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page\r\n */\r\n removePage(processId, witRefName, pageId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1cc7b29f-6697-4d9d-b0a1-2650d3e1d584\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a page on the work item form\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Page} page - The page\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n updatePage(page, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"1cc7b29f-6697-4d9d-b0a1-2650d3e1d584\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, page, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.Page, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.CreateProcessModel} createRequest - CreateProcessModel.\r\n */\r\n createNewProcess(createRequest) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"02cc6a73-5cfb-427d-8c8e-b49fb086e8af\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, createRequest, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a process of a specific ID.\r\n *\r\n * @param {string} processTypeId\r\n */\r\n deleteProcessById(processTypeId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processTypeId: processTypeId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"02cc6a73-5cfb-427d-8c8e-b49fb086e8af\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Edit a process of a specific ID.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.UpdateProcessModel} updateRequest\r\n * @param {string} processTypeId\r\n */\r\n editProcess(updateRequest, processTypeId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processTypeId: processTypeId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"02cc6a73-5cfb-427d-8c8e-b49fb086e8af\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, updateRequest, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get list of all processes including system and inherited.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.GetProcessExpandLevel} expand\r\n */\r\n getListOfProcesses(expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"02cc6a73-5cfb-427d-8c8e-b49fb086e8af\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Get a single process of a specified ID.\r\n *\r\n * @param {string} processTypeId\r\n * @param {WorkItemTrackingProcessInterfaces.GetProcessExpandLevel} expand\r\n */\r\n getProcessByItsId(processTypeId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processTypeId: processTypeId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"02cc6a73-5cfb-427d-8c8e-b49fb086e8af\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessInfo, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a rule to work item type in the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.CreateProcessRuleRequest} processRuleCreate\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n addProcessWorkItemTypeRule(processRuleCreate, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"76fe3432-d825-479d-a5f6-983bbb78b4f3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, processRuleCreate, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a rule from the work item type in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} ruleId - The ID of the rule\r\n */\r\n deleteProcessWorkItemTypeRule(processId, witRefName, ruleId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n ruleId: ruleId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"76fe3432-d825-479d-a5f6-983bbb78b4f3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single rule in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} ruleId - The ID of the rule\r\n */\r\n getProcessWorkItemTypeRule(processId, witRefName, ruleId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n ruleId: ruleId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"76fe3432-d825-479d-a5f6-983bbb78b4f3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all rules in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n getProcessWorkItemTypeRules(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"76fe3432-d825-479d-a5f6-983bbb78b4f3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a rule in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.UpdateProcessRuleRequest} processRule\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} ruleId - The ID of the rule\r\n */\r\n updateProcessWorkItemTypeRule(processRule, processId, witRefName, ruleId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n ruleId: ruleId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"76fe3432-d825-479d-a5f6-983bbb78b4f3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, processRule, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessRule, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a state definition in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.WorkItemStateInputModel} stateModel\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n createStateDefinition(stateModel, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, stateModel, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a state definition in the work item type of the process.\r\n *\r\n * @param {string} processId - ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - ID of the state\r\n */\r\n deleteStateDefinition(processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single state definition in a work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - The ID of the state\r\n */\r\n getStateDefinition(processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all state definitions in a work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n getStateDefinitions(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Hides a state definition in the work item type of the process.Only states with customizationType:System can be hidden.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.HideStateModel} hideStateModel\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - The ID of the state\r\n */\r\n hideStateDefinition(hideStateModel, processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, hideStateModel, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a given state definition in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.WorkItemStateInputModel} stateModel\r\n * @param {string} processId - ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - ID of the state\r\n */\r\n updateStateDefinition(stateModel, processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"31015d57-2dff-4a46-adb3-2fb4ee3dcec9\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, stateModel, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.WorkItemStateResultModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Deletes a system control modification on the work item form.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} controlId - The ID of the control.\r\n */\r\n deleteSystemControl(processId, witRefName, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"ff9a3d2c-32b7-4c6c-991c-d5a251fb9098\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets edited system controls for a work item type in a process. To get all system controls (base + edited) use layout API(s)\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n getSystemControls(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"ff9a3d2c-32b7-4c6c-991c-d5a251fb9098\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates/adds a system control on the work item form.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.Control} control\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n * @param {string} controlId - The ID of the control.\r\n */\r\n updateSystemControl(control, processId, witRefName, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"ff9a3d2c-32b7-4c6c-991c-d5a251fb9098\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a work item type in the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.CreateProcessWorkItemTypeRequest} workItemType\r\n * @param {string} processId - The ID of the process on which to create work item type.\r\n */\r\n createProcessWorkItemType(workItemType, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"e2e9d1a6-432d-4062-8870-bfcb8c324ad7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemType, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a work itewm type in the process.\r\n *\r\n * @param {string} processId - The ID of the process.\r\n * @param {string} witRefName - The reference name of the work item type.\r\n */\r\n deleteProcessWorkItemType(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"e2e9d1a6-432d-4062-8870-bfcb8c324ad7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single work item type in a process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {WorkItemTrackingProcessInterfaces.GetWorkItemTypeExpand} expand - Flag to determine what properties of work item type to return\r\n */\r\n getProcessWorkItemType(processId, witRefName, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"e2e9d1a6-432d-4062-8870-bfcb8c324ad7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all work item types in a process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {WorkItemTrackingProcessInterfaces.GetWorkItemTypeExpand} expand - Flag to determine what properties of work item type to return\r\n */\r\n getProcessWorkItemTypes(processId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"e2e9d1a6-432d-4062-8870-bfcb8c324ad7\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.UpdateProcessWorkItemTypeRequest} workItemTypeUpdate\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n updateProcessWorkItemType(workItemTypeUpdate, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.2\", \"processes\", \"e2e9d1a6-432d-4062-8870-bfcb8c324ad7\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, workItemTypeUpdate, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessInterfaces.TypeInfo.ProcessWorkItemType, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a behavior to the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.WorkItemTypeBehavior} behavior\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n addBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"6d765a2e-4e1b-4b11-be93-f953be676024\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, behavior, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a behavior for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n getBehaviorForWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"6d765a2e-4e1b-4b11-be93-f953be676024\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all behaviors for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n getBehaviorsForWorkItemType(processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"6d765a2e-4e1b-4b11-be93-f953be676024\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a behavior for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n removeBehaviorFromWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"6d765a2e-4e1b-4b11-be93-f953be676024\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a behavior for the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessInterfaces.WorkItemTypeBehavior} behavior\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n updateBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processes\", \"6d765a2e-4e1b-4b11-be93-f953be676024\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, behavior, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nWorkItemTrackingProcessApi.RESOURCE_AREA_ID = \"5264459e-e5e0-4bd8-b118-0985e68a4ec5\";\r\nexports.WorkItemTrackingProcessApi = WorkItemTrackingProcessApi;\r\n","\"use strict\";\r\n/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst basem = require(\"./ClientApiBases\");\r\nconst WorkItemTrackingProcessDefinitionsInterfaces = require(\"./interfaces/WorkItemTrackingProcessDefinitionsInterfaces\");\r\nclass WorkItemTrackingProcessDefinitionsApi extends basem.ClientApiBase {\r\n constructor(baseUrl, handlers, options) {\r\n super(baseUrl, handlers, 'node-WorkItemTracking-api', options);\r\n }\r\n /**\r\n * Creates a single behavior in the given process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.BehaviorCreateModel} behavior\r\n * @param {string} processId - The ID of the process\r\n */\r\n createBehavior(behavior, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"47a651f4-fb70-43bf-b96b-7c0ba947142b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, behavior, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a behavior in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorId - The ID of the behavior\r\n */\r\n deleteBehavior(processId, behaviorId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorId: behaviorId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"47a651f4-fb70-43bf-b96b-7c0ba947142b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single behavior in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorId - The ID of the behavior\r\n */\r\n getBehavior(processId, behaviorId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorId: behaviorId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"47a651f4-fb70-43bf-b96b-7c0ba947142b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all behaviors in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n */\r\n getBehaviors(processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"47a651f4-fb70-43bf-b96b-7c0ba947142b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Replaces a behavior in the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.BehaviorReplaceModel} behaviorData\r\n * @param {string} processId - The ID of the process\r\n * @param {string} behaviorId - The ID of the behavior\r\n */\r\n replaceBehavior(behaviorData, processId, behaviorId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n behaviorId: behaviorId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"47a651f4-fb70-43bf-b96b-7c0ba947142b\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, behaviorData, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a control in a group\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Control} control - The control\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} groupId - The ID of the group to add the control to\r\n */\r\n addControlToGroup(control, processId, witRefName, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"e2e3166a-627a-4e9b-85b2-d6a097bbd731\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a control on the work item form\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Control} control - The updated control\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} groupId - The ID of the group\r\n * @param {string} controlId - The ID of the control\r\n */\r\n editControl(control, processId, witRefName, groupId, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"e2e3166a-627a-4e9b-85b2-d6a097bbd731\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a control from the work item form\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} groupId - The ID of the group\r\n * @param {string} controlId - The ID of the control to remove\r\n */\r\n removeControlFromGroup(processId, witRefName, groupId, controlId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"e2e3166a-627a-4e9b-85b2-d6a097bbd731\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a control to a new group\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Control} control - The control\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} groupId - The ID of the group to move the control to\r\n * @param {string} controlId - The id of the control\r\n * @param {string} removeFromGroupId - The group to remove the control from\r\n */\r\n setControlInGroup(control, processId, witRefName, groupId, controlId, removeFromGroupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n groupId: groupId,\r\n controlId: controlId\r\n };\r\n let queryValues = {\r\n removeFromGroupId: removeFromGroupId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"e2e3166a-627a-4e9b-85b2-d6a097bbd731\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, control, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a single field in the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.FieldModel} field\r\n * @param {string} processId - The ID of the process\r\n */\r\n createField(field, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"f36c66c7-911d-4163-8938-d3c5d0d7f5aa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.FieldModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a given field in the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.FieldUpdate} field\r\n * @param {string} processId - The ID of the process\r\n */\r\n updateField(field, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"f36c66c7-911d-4163-8938-d3c5d0d7f5aa\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.FieldModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a group to the work item form\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The group\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page to add the group to\r\n * @param {string} sectionId - The ID of the section to add the group to\r\n */\r\n addGroup(group, processId, witRefName, pageId, sectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"2617828b-e850-4375-a92a-04855704d4c3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a group in the work item form\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The updated group\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page the group is in\r\n * @param {string} sectionId - The ID of the section the group is in\r\n * @param {string} groupId - The ID of the group\r\n */\r\n editGroup(group, processId, witRefName, pageId, sectionId, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"2617828b-e850-4375-a92a-04855704d4c3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a group from the work item form\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page the group is in\r\n * @param {string} sectionId - The ID of the section to the group is in\r\n * @param {string} groupId - The ID of the group\r\n */\r\n removeGroup(processId, witRefName, pageId, sectionId, groupId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"2617828b-e850-4375-a92a-04855704d4c3\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a group to a different page and section\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The updated group\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page the group is in\r\n * @param {string} sectionId - The ID of the section the group is in\r\n * @param {string} groupId - The ID of the group\r\n * @param {string} removeFromPageId - ID of the page to remove the group from\r\n * @param {string} removeFromSectionId - ID of the section to remove the group from\r\n */\r\n setGroupInPage(group, processId, witRefName, pageId, sectionId, groupId, removeFromPageId, removeFromSectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (removeFromPageId == null) {\r\n throw new TypeError('removeFromPageId can not be null or undefined');\r\n }\r\n if (removeFromSectionId == null) {\r\n throw new TypeError('removeFromSectionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n let queryValues = {\r\n removeFromPageId: removeFromPageId,\r\n removeFromSectionId: removeFromSectionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"2617828b-e850-4375-a92a-04855704d4c3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Moves a group to a different section\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Group} group - The updated group\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page the group is in\r\n * @param {string} sectionId - The ID of the section the group is in\r\n * @param {string} groupId - The ID of the group\r\n * @param {string} removeFromSectionId - ID of the section to remove the group from\r\n */\r\n setGroupInSection(group, processId, witRefName, pageId, sectionId, groupId, removeFromSectionId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (removeFromSectionId == null) {\r\n throw new TypeError('removeFromSectionId can not be null or undefined');\r\n }\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId,\r\n sectionId: sectionId,\r\n groupId: groupId\r\n };\r\n let queryValues = {\r\n removeFromSectionId: removeFromSectionId,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"2617828b-e850-4375-a92a-04855704d4c3\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, group, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Gets the form layout\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n getFormLayout(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"3eacc80a-ddca-4404-857a-6331aac99063\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.FormLayout, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns meta data of the picklist.\r\n *\r\n */\r\n getListsMetadata() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"b45cc931-98e3-44a1-b1cd-2e8e9c6dc1c6\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a picklist.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.PickListModel} picklist\r\n */\r\n createList(picklist) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {};\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"0b6179e2-23ce-46b2-b094-2ffa5ee70286\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, picklist, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a picklist.\r\n *\r\n * @param {string} listId - The ID of the list\r\n */\r\n deleteList(listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"0b6179e2-23ce-46b2-b094-2ffa5ee70286\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a picklist.\r\n *\r\n * @param {string} listId - The ID of the list\r\n */\r\n getList(listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"0b6179e2-23ce-46b2-b094-2ffa5ee70286\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a list.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.PickListModel} picklist\r\n * @param {string} listId - The ID of the list\r\n */\r\n updateList(picklist, listId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n listId: listId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"0b6179e2-23ce-46b2-b094-2ffa5ee70286\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, picklist, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a page to the work item form\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Page} page - The page\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n addPage(page, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1b4ac126-59b2-4f37-b4df-0a48ba807edb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, page, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.Page, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a page on the work item form\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.Page} page - The page\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n editPage(page, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1b4ac126-59b2-4f37-b4df-0a48ba807edb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, page, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.Page, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a page from the work item form\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} pageId - The ID of the page\r\n */\r\n removePage(processId, witRefName, pageId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n pageId: pageId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1b4ac126-59b2-4f37-b4df-0a48ba807edb\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a state definition in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemStateInputModel} stateModel\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n createStateDefinition(stateModel, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, stateModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a state definition in the work item type of the process.\r\n *\r\n * @param {string} processId - ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - ID of the state\r\n */\r\n deleteStateDefinition(processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a state definition in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - The ID of the state\r\n */\r\n getStateDefinition(processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all state definitions in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n getStateDefinitions(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Hides a state definition in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.HideStateModel} hideStateModel\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - The ID of the state\r\n */\r\n hideStateDefinition(hideStateModel, processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.replace(url, hideStateModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a given state definition in the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemStateInputModel} stateModel\r\n * @param {string} processId - ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {string} stateId - ID of the state\r\n */\r\n updateStateDefinition(stateModel, processId, witRefName, stateId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName,\r\n stateId: stateId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"4303625d-08f4-4461-b14b-32c65bba5599\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, stateModel, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a behavior to the work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeBehavior} behavior\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n addBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"921dfb88-ef57-4c69-94e5-dd7da2d7031d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, behavior, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a behavior for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n getBehaviorForWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"921dfb88-ef57-4c69-94e5-dd7da2d7031d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all behaviors for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n getBehaviorsForWorkItemType(processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"921dfb88-ef57-4c69-94e5-dd7da2d7031d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, null, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a behavior for the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n * @param {string} behaviorRefName - The reference name of the behavior\r\n */\r\n removeBehaviorFromWorkItemType(processId, witRefNameForBehaviors, behaviorRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors,\r\n behaviorRefName: behaviorRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"921dfb88-ef57-4c69-94e5-dd7da2d7031d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates default work item type for the behavior of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeBehavior} behavior\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForBehaviors - Work item type reference name for the behavior\r\n */\r\n updateBehaviorToWorkItemType(behavior, processId, witRefNameForBehaviors) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForBehaviors: witRefNameForBehaviors\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"921dfb88-ef57-4c69-94e5-dd7da2d7031d\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, behavior, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Creates a work item type in the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeModel} workItemType\r\n * @param {string} processId - The ID of the process\r\n */\r\n createWorkItemType(workItemType, processId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1ce0acad-4638-49c3-969c-04aa65ba6bea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, workItemType, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a work itewm type in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n deleteWorkItemType(processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1ce0acad-4638-49c3-969c-04aa65ba6bea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.GetWorkItemTypeExpand} expand\r\n */\r\n getWorkItemType(processId, witRefName, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1ce0acad-4638-49c3-969c-04aa65ba6bea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all work item types in the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.GetWorkItemTypeExpand} expand\r\n */\r\n getWorkItemTypes(processId, expand) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId\r\n };\r\n let queryValues = {\r\n '$expand': expand,\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1ce0acad-4638-49c3-969c-04aa65ba6bea\", routeValues, queryValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a work item type of the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeUpdateModel} workItemTypeUpdate\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefName - The reference name of the work item type\r\n */\r\n updateWorkItemType(workItemTypeUpdate, processId, witRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefName: witRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"1ce0acad-4638-49c3-969c-04aa65ba6bea\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, workItemTypeUpdate, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeModel, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Adds a field to the work item type in the process.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeFieldModel2} field\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForFields - Work item type reference name for the field\r\n */\r\n addFieldToWorkItemType(field, processId, witRefNameForFields) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForFields: witRefNameForFields\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"976713b4-a62e-499e-94dc-eeb869ea9126\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.create(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a single field in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForFields - Work item type reference name for fields\r\n * @param {string} fieldRefName - The reference name of the field\r\n */\r\n getWorkItemTypeField(processId, witRefNameForFields, fieldRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForFields: witRefNameForFields,\r\n fieldRefName: fieldRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"976713b4-a62e-499e-94dc-eeb869ea9126\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Returns a list of all fields in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForFields - Work item type reference name for fields\r\n */\r\n getWorkItemTypeFields(processId, witRefNameForFields) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForFields: witRefNameForFields\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"976713b4-a62e-499e-94dc-eeb869ea9126\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.get(url, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, true);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Removes a field in the work item type of the process.\r\n *\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForFields - Work item type reference name for fields\r\n * @param {string} fieldRefName - The reference name of the field\r\n */\r\n removeFieldFromWorkItemType(processId, witRefNameForFields, fieldRefName) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForFields: witRefNameForFields,\r\n fieldRefName: fieldRefName\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"976713b4-a62e-499e-94dc-eeb869ea9126\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.del(url, options);\r\n let ret = this.formatResponse(res.result, null, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n /**\r\n * Updates a single field in the scope of the given process and work item type.\r\n *\r\n * @param {WorkItemTrackingProcessDefinitionsInterfaces.WorkItemTypeFieldModel2} field - The model with which to update the field\r\n * @param {string} processId - The ID of the process\r\n * @param {string} witRefNameForFields - Work item type reference name for fields\r\n */\r\n updateWorkItemTypeField(field, processId, witRefNameForFields) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n let routeValues = {\r\n processId: processId,\r\n witRefNameForFields: witRefNameForFields\r\n };\r\n try {\r\n let verData = yield this.vsoClient.getVersioningData(\"6.1-preview.1\", \"processDefinitions\", \"976713b4-a62e-499e-94dc-eeb869ea9126\", routeValues);\r\n let url = verData.requestUrl;\r\n let options = this.createRequestOptions('application/json', verData.apiVersion);\r\n let res;\r\n res = yield this.rest.update(url, field, options);\r\n let ret = this.formatResponse(res.result, WorkItemTrackingProcessDefinitionsInterfaces.TypeInfo.WorkItemTypeFieldModel2, false);\r\n resolve(ret);\r\n }\r\n catch (err) {\r\n reject(err);\r\n }\r\n }));\r\n });\r\n }\r\n}\r\nWorkItemTrackingProcessDefinitionsApi.RESOURCE_AREA_ID = \"5264459e-e5e0-4bd8-b118-0985e68a4ec5\";\r\nexports.WorkItemTrackingProcessDefinitionsApi = WorkItemTrackingProcessDefinitionsApi;\r\n","\"use strict\";\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst resthandlers = require(\"typed-rest-client/Handlers\");\r\nclass BasicCredentialHandler extends resthandlers.BasicCredentialHandler {\r\n constructor(username, password, allowCrossOriginAuthentication = true) {\r\n super(username, password, allowCrossOriginAuthentication);\r\n }\r\n}\r\nexports.BasicCredentialHandler = BasicCredentialHandler;\r\n","\"use strict\";\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst resthandlers = require(\"typed-rest-client/Handlers\");\r\nclass BearerCredentialHandler extends resthandlers.BearerCredentialHandler {\r\n constructor(token, allowCrossOriginAuthentication = true) {\r\n super(token, allowCrossOriginAuthentication);\r\n }\r\n}\r\nexports.BearerCredentialHandler = BearerCredentialHandler;\r\n","\"use strict\";\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst resthandlers = require(\"typed-rest-client/Handlers\");\r\nclass NtlmCredentialHandler extends resthandlers.NtlmCredentialHandler {\r\n constructor(username, password, workstation, domain) {\r\n super(username, password, workstation, domain);\r\n }\r\n}\r\nexports.NtlmCredentialHandler = NtlmCredentialHandler;\r\n","\"use strict\";\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst resthandlers = require(\"typed-rest-client/Handlers\");\r\nclass PersonalAccessTokenCredentialHandler extends resthandlers.PersonalAccessTokenCredentialHandler {\r\n constructor(token, allowCrossOriginAuthentication = true) {\r\n super(token, allowCrossOriginAuthentication);\r\n }\r\n}\r\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst TFS_TestManagement_Contracts = require(\"../interfaces/TestInterfaces\");\r\nconst TfsCoreInterfaces = require(\"../interfaces/CoreInterfaces\");\r\nvar AgentStatus;\r\n(function (AgentStatus) {\r\n /**\r\n * Indicates that the build agent cannot be contacted.\r\n */\r\n AgentStatus[AgentStatus[\"Unavailable\"] = 0] = \"Unavailable\";\r\n /**\r\n * Indicates that the build agent is currently available.\r\n */\r\n AgentStatus[AgentStatus[\"Available\"] = 1] = \"Available\";\r\n /**\r\n * Indicates that the build agent has taken itself offline.\r\n */\r\n AgentStatus[AgentStatus[\"Offline\"] = 2] = \"Offline\";\r\n})(AgentStatus = exports.AgentStatus || (exports.AgentStatus = {}));\r\nvar AuditAction;\r\n(function (AuditAction) {\r\n AuditAction[AuditAction[\"Add\"] = 1] = \"Add\";\r\n AuditAction[AuditAction[\"Update\"] = 2] = \"Update\";\r\n AuditAction[AuditAction[\"Delete\"] = 3] = \"Delete\";\r\n})(AuditAction = exports.AuditAction || (exports.AuditAction = {}));\r\n/**\r\n * Represents the desired scope of authorization for a build.\r\n */\r\nvar BuildAuthorizationScope;\r\n(function (BuildAuthorizationScope) {\r\n /**\r\n * The identity used should have build service account permissions scoped to the project collection. This is useful when resources for a single build are spread across multiple projects.\r\n */\r\n BuildAuthorizationScope[BuildAuthorizationScope[\"ProjectCollection\"] = 1] = \"ProjectCollection\";\r\n /**\r\n * The identity used should have build service account permissions scoped to the project in which the build definition resides. This is useful for isolation of build jobs to a particular team project to avoid any unintentional escalation of privilege attacks during a build.\r\n */\r\n BuildAuthorizationScope[BuildAuthorizationScope[\"Project\"] = 2] = \"Project\";\r\n})(BuildAuthorizationScope = exports.BuildAuthorizationScope || (exports.BuildAuthorizationScope = {}));\r\nvar BuildOptionInputType;\r\n(function (BuildOptionInputType) {\r\n BuildOptionInputType[BuildOptionInputType[\"String\"] = 0] = \"String\";\r\n BuildOptionInputType[BuildOptionInputType[\"Boolean\"] = 1] = \"Boolean\";\r\n BuildOptionInputType[BuildOptionInputType[\"StringList\"] = 2] = \"StringList\";\r\n BuildOptionInputType[BuildOptionInputType[\"Radio\"] = 3] = \"Radio\";\r\n BuildOptionInputType[BuildOptionInputType[\"PickList\"] = 4] = \"PickList\";\r\n BuildOptionInputType[BuildOptionInputType[\"MultiLine\"] = 5] = \"MultiLine\";\r\n BuildOptionInputType[BuildOptionInputType[\"BranchFilter\"] = 6] = \"BranchFilter\";\r\n})(BuildOptionInputType = exports.BuildOptionInputType || (exports.BuildOptionInputType = {}));\r\nvar BuildPhaseStatus;\r\n(function (BuildPhaseStatus) {\r\n /**\r\n * The state is not known.\r\n */\r\n BuildPhaseStatus[BuildPhaseStatus[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * The build phase completed unsuccessfully.\r\n */\r\n BuildPhaseStatus[BuildPhaseStatus[\"Failed\"] = 1] = \"Failed\";\r\n /**\r\n * The build phase completed successfully.\r\n */\r\n BuildPhaseStatus[BuildPhaseStatus[\"Succeeded\"] = 2] = \"Succeeded\";\r\n})(BuildPhaseStatus = exports.BuildPhaseStatus || (exports.BuildPhaseStatus = {}));\r\n/**\r\n * Specifies the desired ordering of builds.\r\n */\r\nvar BuildQueryOrder;\r\n(function (BuildQueryOrder) {\r\n /**\r\n * Order by finish time ascending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"FinishTimeAscending\"] = 2] = \"FinishTimeAscending\";\r\n /**\r\n * Order by finish time descending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"FinishTimeDescending\"] = 3] = \"FinishTimeDescending\";\r\n /**\r\n * Order by queue time descending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"QueueTimeDescending\"] = 4] = \"QueueTimeDescending\";\r\n /**\r\n * Order by queue time ascending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"QueueTimeAscending\"] = 5] = \"QueueTimeAscending\";\r\n /**\r\n * Order by start time descending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"StartTimeDescending\"] = 6] = \"StartTimeDescending\";\r\n /**\r\n * Order by start time ascending.\r\n */\r\n BuildQueryOrder[BuildQueryOrder[\"StartTimeAscending\"] = 7] = \"StartTimeAscending\";\r\n})(BuildQueryOrder = exports.BuildQueryOrder || (exports.BuildQueryOrder = {}));\r\nvar BuildReason;\r\n(function (BuildReason) {\r\n /**\r\n * No reason. This value should not be used.\r\n */\r\n BuildReason[BuildReason[\"None\"] = 0] = \"None\";\r\n /**\r\n * The build was started manually.\r\n */\r\n BuildReason[BuildReason[\"Manual\"] = 1] = \"Manual\";\r\n /**\r\n * The build was started for the trigger TriggerType.ContinuousIntegration.\r\n */\r\n BuildReason[BuildReason[\"IndividualCI\"] = 2] = \"IndividualCI\";\r\n /**\r\n * The build was started for the trigger TriggerType.BatchedContinuousIntegration.\r\n */\r\n BuildReason[BuildReason[\"BatchedCI\"] = 4] = \"BatchedCI\";\r\n /**\r\n * The build was started for the trigger TriggerType.Schedule.\r\n */\r\n BuildReason[BuildReason[\"Schedule\"] = 8] = \"Schedule\";\r\n /**\r\n * The build was started for the trigger TriggerType.ScheduleForced.\r\n */\r\n BuildReason[BuildReason[\"ScheduleForced\"] = 16] = \"ScheduleForced\";\r\n /**\r\n * The build was created by a user.\r\n */\r\n BuildReason[BuildReason[\"UserCreated\"] = 32] = \"UserCreated\";\r\n /**\r\n * The build was started manually for private validation.\r\n */\r\n BuildReason[BuildReason[\"ValidateShelveset\"] = 64] = \"ValidateShelveset\";\r\n /**\r\n * The build was started for the trigger ContinuousIntegrationType.Gated.\r\n */\r\n BuildReason[BuildReason[\"CheckInShelveset\"] = 128] = \"CheckInShelveset\";\r\n /**\r\n * The build was started by a pull request. Added in resource version 3.\r\n */\r\n BuildReason[BuildReason[\"PullRequest\"] = 256] = \"PullRequest\";\r\n /**\r\n * The build was started when another build completed.\r\n */\r\n BuildReason[BuildReason[\"BuildCompletion\"] = 512] = \"BuildCompletion\";\r\n /**\r\n * The build was started when resources in pipeline triggered it\r\n */\r\n BuildReason[BuildReason[\"ResourceTrigger\"] = 1024] = \"ResourceTrigger\";\r\n /**\r\n * The build was triggered for retention policy purposes.\r\n */\r\n BuildReason[BuildReason[\"Triggered\"] = 1967] = \"Triggered\";\r\n /**\r\n * All reasons.\r\n */\r\n BuildReason[BuildReason[\"All\"] = 2031] = \"All\";\r\n})(BuildReason = exports.BuildReason || (exports.BuildReason = {}));\r\n/**\r\n * This is not a Flags enum because we don't want to set multiple statuses on a build. However, when adding values, please stick to powers of 2 as if it were a Flags enum This will ensure that things that key off multiple result types (like labelling sources) continue to work\r\n */\r\nvar BuildResult;\r\n(function (BuildResult) {\r\n /**\r\n * No result\r\n */\r\n BuildResult[BuildResult[\"None\"] = 0] = \"None\";\r\n /**\r\n * The build completed successfully.\r\n */\r\n BuildResult[BuildResult[\"Succeeded\"] = 2] = \"Succeeded\";\r\n /**\r\n * The build completed compilation successfully but had other errors.\r\n */\r\n BuildResult[BuildResult[\"PartiallySucceeded\"] = 4] = \"PartiallySucceeded\";\r\n /**\r\n * The build completed unsuccessfully.\r\n */\r\n BuildResult[BuildResult[\"Failed\"] = 8] = \"Failed\";\r\n /**\r\n * The build was canceled before starting.\r\n */\r\n BuildResult[BuildResult[\"Canceled\"] = 32] = \"Canceled\";\r\n})(BuildResult = exports.BuildResult || (exports.BuildResult = {}));\r\nvar BuildStatus;\r\n(function (BuildStatus) {\r\n /**\r\n * No status.\r\n */\r\n BuildStatus[BuildStatus[\"None\"] = 0] = \"None\";\r\n /**\r\n * The build is currently in progress.\r\n */\r\n BuildStatus[BuildStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n /**\r\n * The build has completed.\r\n */\r\n BuildStatus[BuildStatus[\"Completed\"] = 2] = \"Completed\";\r\n /**\r\n * The build is cancelling\r\n */\r\n BuildStatus[BuildStatus[\"Cancelling\"] = 4] = \"Cancelling\";\r\n /**\r\n * The build is inactive in the queue.\r\n */\r\n BuildStatus[BuildStatus[\"Postponed\"] = 8] = \"Postponed\";\r\n /**\r\n * The build has not yet started.\r\n */\r\n BuildStatus[BuildStatus[\"NotStarted\"] = 32] = \"NotStarted\";\r\n /**\r\n * All status.\r\n */\r\n BuildStatus[BuildStatus[\"All\"] = 47] = \"All\";\r\n})(BuildStatus = exports.BuildStatus || (exports.BuildStatus = {}));\r\nvar ControllerStatus;\r\n(function (ControllerStatus) {\r\n /**\r\n * Indicates that the build controller cannot be contacted.\r\n */\r\n ControllerStatus[ControllerStatus[\"Unavailable\"] = 0] = \"Unavailable\";\r\n /**\r\n * Indicates that the build controller is currently available.\r\n */\r\n ControllerStatus[ControllerStatus[\"Available\"] = 1] = \"Available\";\r\n /**\r\n * Indicates that the build controller has taken itself offline.\r\n */\r\n ControllerStatus[ControllerStatus[\"Offline\"] = 2] = \"Offline\";\r\n})(ControllerStatus = exports.ControllerStatus || (exports.ControllerStatus = {}));\r\nvar DefinitionQuality;\r\n(function (DefinitionQuality) {\r\n DefinitionQuality[DefinitionQuality[\"Definition\"] = 1] = \"Definition\";\r\n DefinitionQuality[DefinitionQuality[\"Draft\"] = 2] = \"Draft\";\r\n})(DefinitionQuality = exports.DefinitionQuality || (exports.DefinitionQuality = {}));\r\n/**\r\n * Specifies the desired ordering of definitions.\r\n */\r\nvar DefinitionQueryOrder;\r\n(function (DefinitionQueryOrder) {\r\n /**\r\n * No order\r\n */\r\n DefinitionQueryOrder[DefinitionQueryOrder[\"None\"] = 0] = \"None\";\r\n /**\r\n * Order by created on/last modified time ascending.\r\n */\r\n DefinitionQueryOrder[DefinitionQueryOrder[\"LastModifiedAscending\"] = 1] = \"LastModifiedAscending\";\r\n /**\r\n * Order by created on/last modified time descending.\r\n */\r\n DefinitionQueryOrder[DefinitionQueryOrder[\"LastModifiedDescending\"] = 2] = \"LastModifiedDescending\";\r\n /**\r\n * Order by definition name ascending.\r\n */\r\n DefinitionQueryOrder[DefinitionQueryOrder[\"DefinitionNameAscending\"] = 3] = \"DefinitionNameAscending\";\r\n /**\r\n * Order by definition name descending.\r\n */\r\n DefinitionQueryOrder[DefinitionQueryOrder[\"DefinitionNameDescending\"] = 4] = \"DefinitionNameDescending\";\r\n})(DefinitionQueryOrder = exports.DefinitionQueryOrder || (exports.DefinitionQueryOrder = {}));\r\nvar DefinitionQueueStatus;\r\n(function (DefinitionQueueStatus) {\r\n /**\r\n * When enabled the definition queue allows builds to be queued by users, the system will queue scheduled, gated and continuous integration builds, and the queued builds will be started by the system.\r\n */\r\n DefinitionQueueStatus[DefinitionQueueStatus[\"Enabled\"] = 0] = \"Enabled\";\r\n /**\r\n * When paused the definition queue allows builds to be queued by users and the system will queue scheduled, gated and continuous integration builds. Builds in the queue will not be started by the system.\r\n */\r\n DefinitionQueueStatus[DefinitionQueueStatus[\"Paused\"] = 1] = \"Paused\";\r\n /**\r\n * When disabled the definition queue will not allow builds to be queued by users and the system will not queue scheduled, gated or continuous integration builds. Builds already in the queue will not be started by the system.\r\n */\r\n DefinitionQueueStatus[DefinitionQueueStatus[\"Disabled\"] = 2] = \"Disabled\";\r\n})(DefinitionQueueStatus = exports.DefinitionQueueStatus || (exports.DefinitionQueueStatus = {}));\r\nvar DefinitionTriggerType;\r\n(function (DefinitionTriggerType) {\r\n /**\r\n * Manual builds only.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"None\"] = 1] = \"None\";\r\n /**\r\n * A build should be started for each changeset.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"ContinuousIntegration\"] = 2] = \"ContinuousIntegration\";\r\n /**\r\n * A build should be started for multiple changesets at a time at a specified interval.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"BatchedContinuousIntegration\"] = 4] = \"BatchedContinuousIntegration\";\r\n /**\r\n * A build should be started on a specified schedule whether or not changesets exist.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"Schedule\"] = 8] = \"Schedule\";\r\n /**\r\n * A validation build should be started for each check-in.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"GatedCheckIn\"] = 16] = \"GatedCheckIn\";\r\n /**\r\n * A validation build should be started for each batch of check-ins.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"BatchedGatedCheckIn\"] = 32] = \"BatchedGatedCheckIn\";\r\n /**\r\n * A build should be triggered when a GitHub pull request is created or updated. Added in resource version 3\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"PullRequest\"] = 64] = \"PullRequest\";\r\n /**\r\n * A build should be triggered when another build completes.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"BuildCompletion\"] = 128] = \"BuildCompletion\";\r\n /**\r\n * All types.\r\n */\r\n DefinitionTriggerType[DefinitionTriggerType[\"All\"] = 255] = \"All\";\r\n})(DefinitionTriggerType = exports.DefinitionTriggerType || (exports.DefinitionTriggerType = {}));\r\nvar DefinitionType;\r\n(function (DefinitionType) {\r\n DefinitionType[DefinitionType[\"Xaml\"] = 1] = \"Xaml\";\r\n DefinitionType[DefinitionType[\"Build\"] = 2] = \"Build\";\r\n})(DefinitionType = exports.DefinitionType || (exports.DefinitionType = {}));\r\nvar DeleteOptions;\r\n(function (DeleteOptions) {\r\n /**\r\n * No data should be deleted. This value should not be used.\r\n */\r\n DeleteOptions[DeleteOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * The drop location should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"DropLocation\"] = 1] = \"DropLocation\";\r\n /**\r\n * The test results should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"TestResults\"] = 2] = \"TestResults\";\r\n /**\r\n * The version control label should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"Label\"] = 4] = \"Label\";\r\n /**\r\n * The build should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"Details\"] = 8] = \"Details\";\r\n /**\r\n * Published symbols should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"Symbols\"] = 16] = \"Symbols\";\r\n /**\r\n * All data should be deleted.\r\n */\r\n DeleteOptions[DeleteOptions[\"All\"] = 31] = \"All\";\r\n})(DeleteOptions = exports.DeleteOptions || (exports.DeleteOptions = {}));\r\n/**\r\n * Specifies the desired ordering of folders.\r\n */\r\nvar FolderQueryOrder;\r\n(function (FolderQueryOrder) {\r\n /**\r\n * No order\r\n */\r\n FolderQueryOrder[FolderQueryOrder[\"None\"] = 0] = \"None\";\r\n /**\r\n * Order by folder name and path ascending.\r\n */\r\n FolderQueryOrder[FolderQueryOrder[\"FolderAscending\"] = 1] = \"FolderAscending\";\r\n /**\r\n * Order by folder name and path descending.\r\n */\r\n FolderQueryOrder[FolderQueryOrder[\"FolderDescending\"] = 2] = \"FolderDescending\";\r\n})(FolderQueryOrder = exports.FolderQueryOrder || (exports.FolderQueryOrder = {}));\r\nvar GetOption;\r\n(function (GetOption) {\r\n /**\r\n * Use the latest changeset at the time the build is queued.\r\n */\r\n GetOption[GetOption[\"LatestOnQueue\"] = 0] = \"LatestOnQueue\";\r\n /**\r\n * Use the latest changeset at the time the build is started.\r\n */\r\n GetOption[GetOption[\"LatestOnBuild\"] = 1] = \"LatestOnBuild\";\r\n /**\r\n * A user-specified version has been supplied.\r\n */\r\n GetOption[GetOption[\"Custom\"] = 2] = \"Custom\";\r\n})(GetOption = exports.GetOption || (exports.GetOption = {}));\r\nvar IssueType;\r\n(function (IssueType) {\r\n IssueType[IssueType[\"Error\"] = 1] = \"Error\";\r\n IssueType[IssueType[\"Warning\"] = 2] = \"Warning\";\r\n})(IssueType = exports.IssueType || (exports.IssueType = {}));\r\nvar ProcessTemplateType;\r\n(function (ProcessTemplateType) {\r\n /**\r\n * Indicates a custom template.\r\n */\r\n ProcessTemplateType[ProcessTemplateType[\"Custom\"] = 0] = \"Custom\";\r\n /**\r\n * Indicates a default template.\r\n */\r\n ProcessTemplateType[ProcessTemplateType[\"Default\"] = 1] = \"Default\";\r\n /**\r\n * Indicates an upgrade template.\r\n */\r\n ProcessTemplateType[ProcessTemplateType[\"Upgrade\"] = 2] = \"Upgrade\";\r\n})(ProcessTemplateType = exports.ProcessTemplateType || (exports.ProcessTemplateType = {}));\r\nvar QueryDeletedOption;\r\n(function (QueryDeletedOption) {\r\n /**\r\n * Include only non-deleted builds.\r\n */\r\n QueryDeletedOption[QueryDeletedOption[\"ExcludeDeleted\"] = 0] = \"ExcludeDeleted\";\r\n /**\r\n * Include deleted and non-deleted builds.\r\n */\r\n QueryDeletedOption[QueryDeletedOption[\"IncludeDeleted\"] = 1] = \"IncludeDeleted\";\r\n /**\r\n * Include only deleted builds.\r\n */\r\n QueryDeletedOption[QueryDeletedOption[\"OnlyDeleted\"] = 2] = \"OnlyDeleted\";\r\n})(QueryDeletedOption = exports.QueryDeletedOption || (exports.QueryDeletedOption = {}));\r\nvar QueueOptions;\r\n(function (QueueOptions) {\r\n /**\r\n * No queue options\r\n */\r\n QueueOptions[QueueOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Create a plan Id for the build, do not run it\r\n */\r\n QueueOptions[QueueOptions[\"DoNotRun\"] = 1] = \"DoNotRun\";\r\n})(QueueOptions = exports.QueueOptions || (exports.QueueOptions = {}));\r\nvar QueuePriority;\r\n(function (QueuePriority) {\r\n /**\r\n * Low priority.\r\n */\r\n QueuePriority[QueuePriority[\"Low\"] = 5] = \"Low\";\r\n /**\r\n * Below normal priority.\r\n */\r\n QueuePriority[QueuePriority[\"BelowNormal\"] = 4] = \"BelowNormal\";\r\n /**\r\n * Normal priority.\r\n */\r\n QueuePriority[QueuePriority[\"Normal\"] = 3] = \"Normal\";\r\n /**\r\n * Above normal priority.\r\n */\r\n QueuePriority[QueuePriority[\"AboveNormal\"] = 2] = \"AboveNormal\";\r\n /**\r\n * High priority.\r\n */\r\n QueuePriority[QueuePriority[\"High\"] = 1] = \"High\";\r\n})(QueuePriority = exports.QueuePriority || (exports.QueuePriority = {}));\r\nvar RepositoryCleanOptions;\r\n(function (RepositoryCleanOptions) {\r\n RepositoryCleanOptions[RepositoryCleanOptions[\"Source\"] = 0] = \"Source\";\r\n RepositoryCleanOptions[RepositoryCleanOptions[\"SourceAndOutputDir\"] = 1] = \"SourceAndOutputDir\";\r\n /**\r\n * Re-create $(build.sourcesDirectory)\r\n */\r\n RepositoryCleanOptions[RepositoryCleanOptions[\"SourceDir\"] = 2] = \"SourceDir\";\r\n /**\r\n * Re-create $(agnet.buildDirectory) which contains $(build.sourcesDirectory), $(build.binariesDirectory) and any folders that left from previous build.\r\n */\r\n RepositoryCleanOptions[RepositoryCleanOptions[\"AllBuildDir\"] = 3] = \"AllBuildDir\";\r\n})(RepositoryCleanOptions = exports.RepositoryCleanOptions || (exports.RepositoryCleanOptions = {}));\r\nvar ResultSet;\r\n(function (ResultSet) {\r\n /**\r\n * Include all repositories\r\n */\r\n ResultSet[ResultSet[\"All\"] = 0] = \"All\";\r\n /**\r\n * Include most relevant repositories for user\r\n */\r\n ResultSet[ResultSet[\"Top\"] = 1] = \"Top\";\r\n})(ResultSet = exports.ResultSet || (exports.ResultSet = {}));\r\nvar ScheduleDays;\r\n(function (ScheduleDays) {\r\n /**\r\n * Do not run.\r\n */\r\n ScheduleDays[ScheduleDays[\"None\"] = 0] = \"None\";\r\n /**\r\n * Run on Monday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Monday\"] = 1] = \"Monday\";\r\n /**\r\n * Run on Tuesday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Tuesday\"] = 2] = \"Tuesday\";\r\n /**\r\n * Run on Wednesday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Wednesday\"] = 4] = \"Wednesday\";\r\n /**\r\n * Run on Thursday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Thursday\"] = 8] = \"Thursday\";\r\n /**\r\n * Run on Friday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Friday\"] = 16] = \"Friday\";\r\n /**\r\n * Run on Saturday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Saturday\"] = 32] = \"Saturday\";\r\n /**\r\n * Run on Sunday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Sunday\"] = 64] = \"Sunday\";\r\n /**\r\n * Run on all days of the week.\r\n */\r\n ScheduleDays[ScheduleDays[\"All\"] = 127] = \"All\";\r\n})(ScheduleDays = exports.ScheduleDays || (exports.ScheduleDays = {}));\r\nvar ServiceHostStatus;\r\n(function (ServiceHostStatus) {\r\n /**\r\n * The service host is currently connected and accepting commands.\r\n */\r\n ServiceHostStatus[ServiceHostStatus[\"Online\"] = 1] = \"Online\";\r\n /**\r\n * The service host is currently disconnected and not accepting commands.\r\n */\r\n ServiceHostStatus[ServiceHostStatus[\"Offline\"] = 2] = \"Offline\";\r\n})(ServiceHostStatus = exports.ServiceHostStatus || (exports.ServiceHostStatus = {}));\r\nvar SourceProviderAvailability;\r\n(function (SourceProviderAvailability) {\r\n /**\r\n * The source provider is available in the hosted environment.\r\n */\r\n SourceProviderAvailability[SourceProviderAvailability[\"Hosted\"] = 1] = \"Hosted\";\r\n /**\r\n * The source provider is available in the on-premises environment.\r\n */\r\n SourceProviderAvailability[SourceProviderAvailability[\"OnPremises\"] = 2] = \"OnPremises\";\r\n /**\r\n * The source provider is available in all environments.\r\n */\r\n SourceProviderAvailability[SourceProviderAvailability[\"All\"] = 3] = \"All\";\r\n})(SourceProviderAvailability = exports.SourceProviderAvailability || (exports.SourceProviderAvailability = {}));\r\nvar StageUpdateType;\r\n(function (StageUpdateType) {\r\n StageUpdateType[StageUpdateType[\"Cancel\"] = 0] = \"Cancel\";\r\n StageUpdateType[StageUpdateType[\"Retry\"] = 1] = \"Retry\";\r\n})(StageUpdateType = exports.StageUpdateType || (exports.StageUpdateType = {}));\r\nvar SupportLevel;\r\n(function (SupportLevel) {\r\n /**\r\n * The functionality is not supported.\r\n */\r\n SupportLevel[SupportLevel[\"Unsupported\"] = 0] = \"Unsupported\";\r\n /**\r\n * The functionality is supported.\r\n */\r\n SupportLevel[SupportLevel[\"Supported\"] = 1] = \"Supported\";\r\n /**\r\n * The functionality is required.\r\n */\r\n SupportLevel[SupportLevel[\"Required\"] = 2] = \"Required\";\r\n})(SupportLevel = exports.SupportLevel || (exports.SupportLevel = {}));\r\nvar TaskResult;\r\n(function (TaskResult) {\r\n TaskResult[TaskResult[\"Succeeded\"] = 0] = \"Succeeded\";\r\n TaskResult[TaskResult[\"SucceededWithIssues\"] = 1] = \"SucceededWithIssues\";\r\n TaskResult[TaskResult[\"Failed\"] = 2] = \"Failed\";\r\n TaskResult[TaskResult[\"Canceled\"] = 3] = \"Canceled\";\r\n TaskResult[TaskResult[\"Skipped\"] = 4] = \"Skipped\";\r\n TaskResult[TaskResult[\"Abandoned\"] = 5] = \"Abandoned\";\r\n})(TaskResult = exports.TaskResult || (exports.TaskResult = {}));\r\nvar TimelineRecordState;\r\n(function (TimelineRecordState) {\r\n TimelineRecordState[TimelineRecordState[\"Pending\"] = 0] = \"Pending\";\r\n TimelineRecordState[TimelineRecordState[\"InProgress\"] = 1] = \"InProgress\";\r\n TimelineRecordState[TimelineRecordState[\"Completed\"] = 2] = \"Completed\";\r\n})(TimelineRecordState = exports.TimelineRecordState || (exports.TimelineRecordState = {}));\r\nvar ValidationResult;\r\n(function (ValidationResult) {\r\n ValidationResult[ValidationResult[\"OK\"] = 0] = \"OK\";\r\n ValidationResult[ValidationResult[\"Warning\"] = 1] = \"Warning\";\r\n ValidationResult[ValidationResult[\"Error\"] = 2] = \"Error\";\r\n})(ValidationResult = exports.ValidationResult || (exports.ValidationResult = {}));\r\nvar WorkspaceMappingType;\r\n(function (WorkspaceMappingType) {\r\n /**\r\n * The path is mapped in the workspace.\r\n */\r\n WorkspaceMappingType[WorkspaceMappingType[\"Map\"] = 0] = \"Map\";\r\n /**\r\n * The path is cloaked in the workspace.\r\n */\r\n WorkspaceMappingType[WorkspaceMappingType[\"Cloak\"] = 1] = \"Cloak\";\r\n})(WorkspaceMappingType = exports.WorkspaceMappingType || (exports.WorkspaceMappingType = {}));\r\nexports.TypeInfo = {\r\n AgentStatus: {\r\n enumValues: {\r\n \"unavailable\": 0,\r\n \"available\": 1,\r\n \"offline\": 2\r\n }\r\n },\r\n AuditAction: {\r\n enumValues: {\r\n \"add\": 1,\r\n \"update\": 2,\r\n \"delete\": 3\r\n }\r\n },\r\n Build: {},\r\n BuildAgent: {},\r\n BuildAuthorizationScope: {\r\n enumValues: {\r\n \"projectCollection\": 1,\r\n \"project\": 2\r\n }\r\n },\r\n BuildCompletedEvent: {},\r\n BuildCompletionTrigger: {},\r\n BuildController: {},\r\n BuildDefinition: {},\r\n BuildDefinition3_2: {},\r\n BuildDefinitionReference: {},\r\n BuildDefinitionReference3_2: {},\r\n BuildDefinitionRevision: {},\r\n BuildDefinitionSourceProvider: {},\r\n BuildDefinitionTemplate: {},\r\n BuildDefinitionTemplate3_2: {},\r\n BuildDeletedEvent: {},\r\n BuildDeployment: {},\r\n BuildLog: {},\r\n BuildMetric: {},\r\n BuildOptionDefinition: {},\r\n BuildOptionInputDefinition: {},\r\n BuildOptionInputType: {\r\n enumValues: {\r\n \"string\": 0,\r\n \"boolean\": 1,\r\n \"stringList\": 2,\r\n \"radio\": 3,\r\n \"pickList\": 4,\r\n \"multiLine\": 5,\r\n \"branchFilter\": 6\r\n }\r\n },\r\n BuildPhaseStatus: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"failed\": 1,\r\n \"succeeded\": 2\r\n }\r\n },\r\n BuildProcessTemplate: {},\r\n BuildQueryOrder: {\r\n enumValues: {\r\n \"finishTimeAscending\": 2,\r\n \"finishTimeDescending\": 3,\r\n \"queueTimeDescending\": 4,\r\n \"queueTimeAscending\": 5,\r\n \"startTimeDescending\": 6,\r\n \"startTimeAscending\": 7\r\n }\r\n },\r\n BuildQueuedEvent: {},\r\n BuildReason: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manual\": 1,\r\n \"individualCI\": 2,\r\n \"batchedCI\": 4,\r\n \"schedule\": 8,\r\n \"scheduleForced\": 16,\r\n \"userCreated\": 32,\r\n \"validateShelveset\": 64,\r\n \"checkInShelveset\": 128,\r\n \"pullRequest\": 256,\r\n \"buildCompletion\": 512,\r\n \"resourceTrigger\": 1024,\r\n \"triggered\": 1967,\r\n \"all\": 2031\r\n }\r\n },\r\n BuildReference: {},\r\n BuildRequestValidationResult: {},\r\n BuildResult: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"succeeded\": 2,\r\n \"partiallySucceeded\": 4,\r\n \"failed\": 8,\r\n \"canceled\": 32\r\n }\r\n },\r\n BuildRetentionHistory: {},\r\n BuildRetentionSample: {},\r\n BuildServer: {},\r\n BuildStatus: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"inProgress\": 1,\r\n \"completed\": 2,\r\n \"cancelling\": 4,\r\n \"postponed\": 8,\r\n \"notStarted\": 32,\r\n \"all\": 47\r\n }\r\n },\r\n BuildSummary: {},\r\n BuildTagsAddedEvent: {},\r\n BuildTrigger: {},\r\n BuildUpdatedEvent: {},\r\n Change: {},\r\n ContinuousDeploymentDefinition: {},\r\n ContinuousIntegrationTrigger: {},\r\n ControllerStatus: {\r\n enumValues: {\r\n \"unavailable\": 0,\r\n \"available\": 1,\r\n \"offline\": 2\r\n }\r\n },\r\n DefinitionQuality: {\r\n enumValues: {\r\n \"definition\": 1,\r\n \"draft\": 2\r\n }\r\n },\r\n DefinitionQueryOrder: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"lastModifiedAscending\": 1,\r\n \"lastModifiedDescending\": 2,\r\n \"definitionNameAscending\": 3,\r\n \"definitionNameDescending\": 4\r\n }\r\n },\r\n DefinitionQueueStatus: {\r\n enumValues: {\r\n \"enabled\": 0,\r\n \"paused\": 1,\r\n \"disabled\": 2\r\n }\r\n },\r\n DefinitionReference: {},\r\n DefinitionTriggerType: {\r\n enumValues: {\r\n \"none\": 1,\r\n \"continuousIntegration\": 2,\r\n \"batchedContinuousIntegration\": 4,\r\n \"schedule\": 8,\r\n \"gatedCheckIn\": 16,\r\n \"batchedGatedCheckIn\": 32,\r\n \"pullRequest\": 64,\r\n \"buildCompletion\": 128,\r\n \"all\": 255\r\n }\r\n },\r\n DefinitionType: {\r\n enumValues: {\r\n \"xaml\": 1,\r\n \"build\": 2\r\n }\r\n },\r\n DeleteOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"dropLocation\": 1,\r\n \"testResults\": 2,\r\n \"label\": 4,\r\n \"details\": 8,\r\n \"symbols\": 16,\r\n \"all\": 31\r\n }\r\n },\r\n DesignerProcess: {},\r\n Folder: {},\r\n FolderQueryOrder: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"folderAscending\": 1,\r\n \"folderDescending\": 2\r\n }\r\n },\r\n GatedCheckInTrigger: {},\r\n GetOption: {\r\n enumValues: {\r\n \"latestOnQueue\": 0,\r\n \"latestOnBuild\": 1,\r\n \"custom\": 2\r\n }\r\n },\r\n InformationNode: {},\r\n Issue: {},\r\n IssueType: {\r\n enumValues: {\r\n \"error\": 1,\r\n \"warning\": 2\r\n }\r\n },\r\n Phase: {},\r\n ProcessTemplateType: {\r\n enumValues: {\r\n \"custom\": 0,\r\n \"default\": 1,\r\n \"upgrade\": 2\r\n }\r\n },\r\n PullRequestTrigger: {},\r\n QueryDeletedOption: {\r\n enumValues: {\r\n \"excludeDeleted\": 0,\r\n \"includeDeleted\": 1,\r\n \"onlyDeleted\": 2\r\n }\r\n },\r\n QueueOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"doNotRun\": 1\r\n }\r\n },\r\n QueuePriority: {\r\n enumValues: {\r\n \"low\": 5,\r\n \"belowNormal\": 4,\r\n \"normal\": 3,\r\n \"aboveNormal\": 2,\r\n \"high\": 1\r\n }\r\n },\r\n RepositoryCleanOptions: {\r\n enumValues: {\r\n \"source\": 0,\r\n \"sourceAndOutputDir\": 1,\r\n \"sourceDir\": 2,\r\n \"allBuildDir\": 3\r\n }\r\n },\r\n RepositoryWebhook: {},\r\n ResultSet: {\r\n enumValues: {\r\n \"all\": 0,\r\n \"top\": 1\r\n }\r\n },\r\n RetentionLease: {},\r\n Schedule: {},\r\n ScheduleDays: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"monday\": 1,\r\n \"tuesday\": 2,\r\n \"wednesday\": 4,\r\n \"thursday\": 8,\r\n \"friday\": 16,\r\n \"saturday\": 32,\r\n \"sunday\": 64,\r\n \"all\": 127\r\n }\r\n },\r\n ScheduleTrigger: {},\r\n ServiceHostStatus: {\r\n enumValues: {\r\n \"online\": 1,\r\n \"offline\": 2\r\n }\r\n },\r\n SourceProviderAttributes: {},\r\n SourceProviderAvailability: {\r\n enumValues: {\r\n \"hosted\": 1,\r\n \"onPremises\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n StageUpdateType: {\r\n enumValues: {\r\n \"cancel\": 0,\r\n \"retry\": 1\r\n }\r\n },\r\n SupportedTrigger: {},\r\n SupportLevel: {\r\n enumValues: {\r\n \"unsupported\": 0,\r\n \"supported\": 1,\r\n \"required\": 2\r\n }\r\n },\r\n TaskResult: {\r\n enumValues: {\r\n \"succeeded\": 0,\r\n \"succeededWithIssues\": 1,\r\n \"failed\": 2,\r\n \"canceled\": 3,\r\n \"skipped\": 4,\r\n \"abandoned\": 5\r\n }\r\n },\r\n Timeline: {},\r\n TimelineRecord: {},\r\n TimelineRecordState: {\r\n enumValues: {\r\n \"pending\": 0,\r\n \"inProgress\": 1,\r\n \"completed\": 2\r\n }\r\n },\r\n TimelineRecordsUpdatedEvent: {},\r\n UpdateStageParameters: {},\r\n ValidationResult: {\r\n enumValues: {\r\n \"ok\": 0,\r\n \"warning\": 1,\r\n \"error\": 2\r\n }\r\n },\r\n WorkspaceMapping: {},\r\n WorkspaceMappingType: {\r\n enumValues: {\r\n \"map\": 0,\r\n \"cloak\": 1\r\n }\r\n },\r\n WorkspaceTemplate: {},\r\n XamlBuildDefinition: {},\r\n};\r\nexports.TypeInfo.Build.fields = {\r\n controller: {\r\n typeInfo: exports.TypeInfo.BuildController\r\n },\r\n definition: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n deletedDate: {\r\n isDate: true,\r\n },\r\n finishTime: {\r\n isDate: true,\r\n },\r\n lastChangedDate: {\r\n isDate: true,\r\n },\r\n priority: {\r\n enumType: exports.TypeInfo.QueuePriority\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n queueOptions: {\r\n enumType: exports.TypeInfo.QueueOptions\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.BuildReason\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.BuildResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.BuildStatus\r\n },\r\n triggeredByBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n validationResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildRequestValidationResult\r\n }\r\n};\r\nexports.TypeInfo.BuildAgent.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.AgentStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildCompletedEvent.fields = {\r\n build: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Change\r\n },\r\n testResults: {\r\n typeInfo: TFS_TestManagement_Contracts.TypeInfo.AggregatedResultsAnalysis\r\n },\r\n timelineRecords: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineRecord\r\n }\r\n};\r\nexports.TypeInfo.BuildCompletionTrigger.fields = {\r\n definition: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.BuildController.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ControllerStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinition.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n draftOf: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n drafts: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n jobAuthorizationScope: {\r\n enumType: exports.TypeInfo.BuildAuthorizationScope\r\n },\r\n latestBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n latestCompletedBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n metrics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildMetric\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n quality: {\r\n enumType: exports.TypeInfo.DefinitionQuality\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n triggers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildTrigger\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinition3_2.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n draftOf: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n drafts: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n jobAuthorizationScope: {\r\n enumType: exports.TypeInfo.BuildAuthorizationScope\r\n },\r\n latestBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n latestCompletedBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n metrics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildMetric\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n quality: {\r\n enumType: exports.TypeInfo.DefinitionQuality\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n triggers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildTrigger\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionReference.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n draftOf: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n drafts: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n latestBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n latestCompletedBuild: {\r\n typeInfo: exports.TypeInfo.Build\r\n },\r\n metrics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildMetric\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n quality: {\r\n enumType: exports.TypeInfo.DefinitionQuality\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionReference3_2.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n draftOf: {\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n drafts: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DefinitionReference\r\n },\r\n metrics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildMetric\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n quality: {\r\n enumType: exports.TypeInfo.DefinitionQuality\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionRevision.fields = {\r\n changedDate: {\r\n isDate: true,\r\n },\r\n changeType: {\r\n enumType: exports.TypeInfo.AuditAction\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionSourceProvider.fields = {\r\n lastModified: {\r\n isDate: true,\r\n },\r\n supportedTriggerTypes: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionTemplate.fields = {\r\n template: {\r\n typeInfo: exports.TypeInfo.BuildDefinition\r\n }\r\n};\r\nexports.TypeInfo.BuildDefinitionTemplate3_2.fields = {\r\n template: {\r\n typeInfo: exports.TypeInfo.BuildDefinition3_2\r\n }\r\n};\r\nexports.TypeInfo.BuildDeletedEvent.fields = {\r\n build: {\r\n typeInfo: exports.TypeInfo.Build\r\n }\r\n};\r\nexports.TypeInfo.BuildDeployment.fields = {\r\n deployment: {\r\n typeInfo: exports.TypeInfo.BuildSummary\r\n }\r\n};\r\nexports.TypeInfo.BuildLog.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastChangedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildMetric.fields = {\r\n date: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildOptionDefinition.fields = {\r\n inputs: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildOptionInputDefinition\r\n }\r\n};\r\nexports.TypeInfo.BuildOptionInputDefinition.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.BuildOptionInputType\r\n }\r\n};\r\nexports.TypeInfo.BuildProcessTemplate.fields = {\r\n supportedReasons: {\r\n enumType: exports.TypeInfo.BuildReason\r\n },\r\n templateType: {\r\n enumType: exports.TypeInfo.ProcessTemplateType\r\n }\r\n};\r\nexports.TypeInfo.BuildQueuedEvent.fields = {\r\n build: {\r\n typeInfo: exports.TypeInfo.Build\r\n }\r\n};\r\nexports.TypeInfo.BuildReference.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.BuildResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.BuildStatus\r\n }\r\n};\r\nexports.TypeInfo.BuildRequestValidationResult.fields = {\r\n result: {\r\n enumType: exports.TypeInfo.ValidationResult\r\n }\r\n};\r\nexports.TypeInfo.BuildRetentionHistory.fields = {\r\n buildRetentionSamples: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildRetentionSample\r\n }\r\n};\r\nexports.TypeInfo.BuildRetentionSample.fields = {\r\n sampleTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildServer.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.ServiceHostStatus\r\n },\r\n statusChangedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildSummary.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.BuildReason\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.BuildStatus\r\n }\r\n};\r\nexports.TypeInfo.BuildTagsAddedEvent.fields = {\r\n build: {\r\n typeInfo: exports.TypeInfo.Build\r\n }\r\n};\r\nexports.TypeInfo.BuildTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.BuildUpdatedEvent.fields = {\r\n build: {\r\n typeInfo: exports.TypeInfo.Build\r\n }\r\n};\r\nexports.TypeInfo.Change.fields = {\r\n timestamp: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ContinuousDeploymentDefinition.fields = {\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.ContinuousIntegrationTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.DefinitionReference.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\nexports.TypeInfo.DesignerProcess.fields = {\r\n phases: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Phase\r\n }\r\n};\r\nexports.TypeInfo.Folder.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastChangedDate: {\r\n isDate: true,\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GatedCheckInTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.InformationNode.fields = {\r\n lastModifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Issue.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.IssueType\r\n }\r\n};\r\nexports.TypeInfo.Phase.fields = {\r\n jobAuthorizationScope: {\r\n enumType: exports.TypeInfo.BuildAuthorizationScope\r\n }\r\n};\r\nexports.TypeInfo.PullRequestTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.RepositoryWebhook.fields = {\r\n types: {\r\n isArray: true,\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.RetentionLease.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n validUntil: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Schedule.fields = {\r\n daysToBuild: {\r\n enumType: exports.TypeInfo.ScheduleDays\r\n }\r\n};\r\nexports.TypeInfo.ScheduleTrigger.fields = {\r\n schedules: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Schedule\r\n },\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.SourceProviderAttributes.fields = {\r\n supportedTriggers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.SupportedTrigger\r\n }\r\n};\r\nexports.TypeInfo.SupportedTrigger.fields = {\r\n supportedCapabilities: {\r\n isDictionary: true,\r\n dictionaryValueEnumType: exports.TypeInfo.SupportLevel\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n }\r\n};\r\nexports.TypeInfo.Timeline.fields = {\r\n lastChangedOn: {\r\n isDate: true,\r\n },\r\n records: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineRecord\r\n }\r\n};\r\nexports.TypeInfo.TimelineRecord.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n issues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Issue\r\n },\r\n lastModified: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TimelineRecordState\r\n }\r\n};\r\nexports.TypeInfo.TimelineRecordsUpdatedEvent.fields = {\r\n timelineRecords: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineRecord\r\n }\r\n};\r\nexports.TypeInfo.UpdateStageParameters.fields = {\r\n state: {\r\n enumType: exports.TypeInfo.StageUpdateType\r\n }\r\n};\r\nexports.TypeInfo.WorkspaceMapping.fields = {\r\n mappingType: {\r\n enumType: exports.TypeInfo.WorkspaceMappingType\r\n }\r\n};\r\nexports.TypeInfo.WorkspaceTemplate.fields = {\r\n lastModifiedDate: {\r\n isDate: true,\r\n },\r\n mappings: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkspaceMapping\r\n }\r\n};\r\nexports.TypeInfo.XamlBuildDefinition.fields = {\r\n controller: {\r\n typeInfo: exports.TypeInfo.BuildController\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n createdOn: {\r\n isDate: true,\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n queueStatus: {\r\n enumType: exports.TypeInfo.DefinitionQueueStatus\r\n },\r\n supportedReasons: {\r\n enumType: exports.TypeInfo.BuildReason\r\n },\r\n triggerType: {\r\n enumType: exports.TypeInfo.DefinitionTriggerType\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.DefinitionType\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Specifies the additional data retrieval options for comments.\r\n */\r\nvar CommentExpandOptions;\r\n(function (CommentExpandOptions) {\r\n /**\r\n * Include comments only, no mentions, reactions or rendered text\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include comment reactions\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"Reactions\"] = 1] = \"Reactions\";\r\n /**\r\n * Include the rendered text (html) in addition to markdown text\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"RenderedText\"] = 8] = \"RenderedText\";\r\n CommentExpandOptions[CommentExpandOptions[\"RenderedTextOnly\"] = 16] = \"RenderedTextOnly\";\r\n /**\r\n * If specified, then responses will be expanded in the results\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"Children\"] = 32] = \"Children\";\r\n /**\r\n * Expand everything including Reactions, Mentions and also include RenderedText (HTML) for markdown comments\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"All\"] = -17] = \"All\";\r\n})(CommentExpandOptions = exports.CommentExpandOptions || (exports.CommentExpandOptions = {}));\r\n/**\r\n * Format of the comment. Ex. Markdown, Html.\r\n */\r\nvar CommentFormat;\r\n(function (CommentFormat) {\r\n CommentFormat[CommentFormat[\"Markdown\"] = 0] = \"Markdown\";\r\n CommentFormat[CommentFormat[\"Html\"] = 1] = \"Html\";\r\n})(CommentFormat = exports.CommentFormat || (exports.CommentFormat = {}));\r\nvar CommentMentionType;\r\n(function (CommentMentionType) {\r\n /**\r\n * An identity was mentioned by using the format @{VSID}\r\n */\r\n CommentMentionType[CommentMentionType[\"Person\"] = 0] = \"Person\";\r\n /**\r\n * A work item was mentioned by using the format #{Work Item ID}\r\n */\r\n CommentMentionType[CommentMentionType[\"WorkItem\"] = 1] = \"WorkItem\";\r\n /**\r\n * A Pull Request was mentioned by using the format !{PR Number}\r\n */\r\n CommentMentionType[CommentMentionType[\"PullRequest\"] = 2] = \"PullRequest\";\r\n})(CommentMentionType = exports.CommentMentionType || (exports.CommentMentionType = {}));\r\n/**\r\n * Represents different reaction types for a comment\r\n */\r\nvar CommentReactionType;\r\n(function (CommentReactionType) {\r\n CommentReactionType[CommentReactionType[\"Like\"] = 0] = \"Like\";\r\n CommentReactionType[CommentReactionType[\"Dislike\"] = 1] = \"Dislike\";\r\n CommentReactionType[CommentReactionType[\"Heart\"] = 2] = \"Heart\";\r\n CommentReactionType[CommentReactionType[\"Hooray\"] = 3] = \"Hooray\";\r\n CommentReactionType[CommentReactionType[\"Smile\"] = 4] = \"Smile\";\r\n CommentReactionType[CommentReactionType[\"Confused\"] = 5] = \"Confused\";\r\n})(CommentReactionType = exports.CommentReactionType || (exports.CommentReactionType = {}));\r\nvar CommentSortOrder;\r\n(function (CommentSortOrder) {\r\n /**\r\n * The results will be sorted in Ascending order.\r\n */\r\n CommentSortOrder[CommentSortOrder[\"Asc\"] = 1] = \"Asc\";\r\n /**\r\n * The results will be sorted in Descending order.\r\n */\r\n CommentSortOrder[CommentSortOrder[\"Desc\"] = 2] = \"Desc\";\r\n})(CommentSortOrder = exports.CommentSortOrder || (exports.CommentSortOrder = {}));\r\n/**\r\n * Represents the possible comment states.\r\n */\r\nvar CommentState;\r\n(function (CommentState) {\r\n CommentState[CommentState[\"Active\"] = 0] = \"Active\";\r\n CommentState[CommentState[\"Resolved\"] = 1] = \"Resolved\";\r\n CommentState[CommentState[\"Closed\"] = 2] = \"Closed\";\r\n})(CommentState = exports.CommentState || (exports.CommentState = {}));\r\nexports.TypeInfo = {\r\n Comment: {},\r\n CommentAttachment: {},\r\n CommentExpandOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"reactions\": 1,\r\n \"renderedText\": 8,\r\n \"renderedTextOnly\": 16,\r\n \"children\": 32,\r\n \"all\": -17\r\n }\r\n },\r\n CommentFormat: {\r\n enumValues: {\r\n \"markdown\": 0,\r\n \"html\": 1\r\n }\r\n },\r\n CommentList: {},\r\n CommentMention: {},\r\n CommentMentionType: {\r\n enumValues: {\r\n \"person\": 0,\r\n \"workItem\": 1,\r\n \"pullRequest\": 2\r\n }\r\n },\r\n CommentReaction: {},\r\n CommentReactionType: {\r\n enumValues: {\r\n \"like\": 0,\r\n \"dislike\": 1,\r\n \"heart\": 2,\r\n \"hooray\": 3,\r\n \"smile\": 4,\r\n \"confused\": 5\r\n }\r\n },\r\n CommentSortOrder: {\r\n enumValues: {\r\n \"asc\": 1,\r\n \"desc\": 2\r\n }\r\n },\r\n CommentState: {\r\n enumValues: {\r\n \"active\": 0,\r\n \"resolved\": 1,\r\n \"closed\": 2\r\n }\r\n },\r\n CommentUpdateParameters: {},\r\n CommentVersion: {},\r\n};\r\nexports.TypeInfo.Comment.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n mentions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.CommentMention\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n reactions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.CommentReaction\r\n },\r\n replies: {\r\n typeInfo: exports.TypeInfo.CommentList\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.CommentState\r\n }\r\n};\r\nexports.TypeInfo.CommentAttachment.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CommentList.fields = {\r\n comments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Comment\r\n }\r\n};\r\nexports.TypeInfo.CommentMention.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.CommentMentionType\r\n }\r\n};\r\nexports.TypeInfo.CommentReaction.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.CommentReactionType\r\n }\r\n};\r\nexports.TypeInfo.CommentUpdateParameters.fields = {\r\n state: {\r\n enumType: exports.TypeInfo.CommentState\r\n }\r\n};\r\nexports.TypeInfo.CommentVersion.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.CommentState\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ConnectedServiceKind;\r\n(function (ConnectedServiceKind) {\r\n /**\r\n * Custom or unknown service\r\n */\r\n ConnectedServiceKind[ConnectedServiceKind[\"Custom\"] = 0] = \"Custom\";\r\n /**\r\n * Azure Subscription\r\n */\r\n ConnectedServiceKind[ConnectedServiceKind[\"AzureSubscription\"] = 1] = \"AzureSubscription\";\r\n /**\r\n * Chef Connection\r\n */\r\n ConnectedServiceKind[ConnectedServiceKind[\"Chef\"] = 2] = \"Chef\";\r\n /**\r\n * Generic Connection\r\n */\r\n ConnectedServiceKind[ConnectedServiceKind[\"Generic\"] = 3] = \"Generic\";\r\n})(ConnectedServiceKind = exports.ConnectedServiceKind || (exports.ConnectedServiceKind = {}));\r\n/**\r\n * Type of process customization on a collection.\r\n */\r\nvar ProcessCustomizationType;\r\n(function (ProcessCustomizationType) {\r\n /**\r\n * Process customization can't be computed.\r\n */\r\n ProcessCustomizationType[ProcessCustomizationType[\"Unknown\"] = -1] = \"Unknown\";\r\n /**\r\n * Customization based on project-scoped xml customization\r\n */\r\n ProcessCustomizationType[ProcessCustomizationType[\"Xml\"] = 0] = \"Xml\";\r\n /**\r\n * Customization based on process inheritance\r\n */\r\n ProcessCustomizationType[ProcessCustomizationType[\"Inherited\"] = 1] = \"Inherited\";\r\n})(ProcessCustomizationType = exports.ProcessCustomizationType || (exports.ProcessCustomizationType = {}));\r\nvar ProcessType;\r\n(function (ProcessType) {\r\n ProcessType[ProcessType[\"System\"] = 0] = \"System\";\r\n ProcessType[ProcessType[\"Custom\"] = 1] = \"Custom\";\r\n ProcessType[ProcessType[\"Inherited\"] = 2] = \"Inherited\";\r\n})(ProcessType = exports.ProcessType || (exports.ProcessType = {}));\r\nvar ProjectChangeType;\r\n(function (ProjectChangeType) {\r\n ProjectChangeType[ProjectChangeType[\"Modified\"] = 0] = \"Modified\";\r\n ProjectChangeType[ProjectChangeType[\"Deleted\"] = 1] = \"Deleted\";\r\n ProjectChangeType[ProjectChangeType[\"Added\"] = 2] = \"Added\";\r\n})(ProjectChangeType = exports.ProjectChangeType || (exports.ProjectChangeType = {}));\r\nvar ProjectVisibility;\r\n(function (ProjectVisibility) {\r\n ProjectVisibility[ProjectVisibility[\"Unchanged\"] = -1] = \"Unchanged\";\r\n /**\r\n * The project is only visible to users with explicit access.\r\n */\r\n ProjectVisibility[ProjectVisibility[\"Private\"] = 0] = \"Private\";\r\n /**\r\n * Enterprise level project visibility\r\n */\r\n ProjectVisibility[ProjectVisibility[\"Organization\"] = 1] = \"Organization\";\r\n /**\r\n * The project is visible to all.\r\n */\r\n ProjectVisibility[ProjectVisibility[\"Public\"] = 2] = \"Public\";\r\n ProjectVisibility[ProjectVisibility[\"SystemPrivate\"] = 3] = \"SystemPrivate\";\r\n})(ProjectVisibility = exports.ProjectVisibility || (exports.ProjectVisibility = {}));\r\nvar SourceControlTypes;\r\n(function (SourceControlTypes) {\r\n SourceControlTypes[SourceControlTypes[\"Tfvc\"] = 1] = \"Tfvc\";\r\n SourceControlTypes[SourceControlTypes[\"Git\"] = 2] = \"Git\";\r\n})(SourceControlTypes = exports.SourceControlTypes || (exports.SourceControlTypes = {}));\r\nexports.TypeInfo = {\r\n ConnectedServiceKind: {\r\n enumValues: {\r\n \"custom\": 0,\r\n \"azureSubscription\": 1,\r\n \"chef\": 2,\r\n \"generic\": 3\r\n }\r\n },\r\n Process: {},\r\n ProcessCustomizationType: {\r\n enumValues: {\r\n \"unknown\": -1,\r\n \"xml\": 0,\r\n \"inherited\": 1\r\n }\r\n },\r\n ProcessType: {\r\n enumValues: {\r\n \"system\": 0,\r\n \"custom\": 1,\r\n \"inherited\": 2\r\n }\r\n },\r\n ProjectChangeType: {\r\n enumValues: {\r\n \"modified\": 0,\r\n \"deleted\": 1,\r\n \"added\": 2\r\n }\r\n },\r\n ProjectInfo: {},\r\n ProjectMessage: {},\r\n ProjectVisibility: {\r\n enumValues: {\r\n \"private\": 0,\r\n \"organization\": 1,\r\n \"public\": 2\r\n }\r\n },\r\n SourceControlTypes: {\r\n enumValues: {\r\n \"tfvc\": 1,\r\n \"git\": 2\r\n }\r\n },\r\n TeamProject: {},\r\n TeamProjectCollection: {},\r\n TeamProjectReference: {},\r\n TemporaryDataCreatedDTO: {},\r\n WebApiConnectedService: {},\r\n WebApiConnectedServiceDetails: {},\r\n WebApiProject: {},\r\n};\r\nexports.TypeInfo.Process.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.ProcessType\r\n }\r\n};\r\nexports.TypeInfo.ProjectInfo.fields = {\r\n lastUpdateTime: {\r\n isDate: true,\r\n },\r\n visibility: {\r\n enumType: exports.TypeInfo.ProjectVisibility\r\n }\r\n};\r\nexports.TypeInfo.ProjectMessage.fields = {\r\n project: {\r\n typeInfo: exports.TypeInfo.ProjectInfo\r\n },\r\n projectChangeType: {\r\n enumType: exports.TypeInfo.ProjectChangeType\r\n }\r\n};\r\nexports.TypeInfo.TeamProject.fields = {\r\n lastUpdateTime: {\r\n isDate: true,\r\n },\r\n visibility: {\r\n enumType: exports.TypeInfo.ProjectVisibility\r\n }\r\n};\r\nexports.TypeInfo.TeamProjectCollection.fields = {\r\n processCustomizationType: {\r\n enumType: exports.TypeInfo.ProcessCustomizationType\r\n }\r\n};\r\nexports.TypeInfo.TeamProjectReference.fields = {\r\n lastUpdateTime: {\r\n isDate: true,\r\n },\r\n visibility: {\r\n enumType: exports.TypeInfo.ProjectVisibility\r\n }\r\n};\r\nexports.TypeInfo.TemporaryDataCreatedDTO.fields = {\r\n expirationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.WebApiConnectedService.fields = {\r\n project: {\r\n typeInfo: exports.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.WebApiConnectedServiceDetails.fields = {\r\n connectedServiceMetaData: {\r\n typeInfo: exports.TypeInfo.WebApiConnectedService\r\n }\r\n};\r\nexports.TypeInfo.WebApiProject.fields = {\r\n lastUpdateTime: {\r\n isDate: true,\r\n },\r\n visibility: {\r\n enumType: exports.TypeInfo.ProjectVisibility\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * identifies the scope of dashboard storage and permissions.\r\n */\r\nvar DashboardScope;\r\n(function (DashboardScope) {\r\n /**\r\n * [DEPRECATED] Dashboard is scoped to the collection user.\r\n */\r\n DashboardScope[DashboardScope[\"Collection_User\"] = 0] = \"Collection_User\";\r\n /**\r\n * Dashboard is scoped to the team.\r\n */\r\n DashboardScope[DashboardScope[\"Project_Team\"] = 1] = \"Project_Team\";\r\n /**\r\n * Dashboard is scoped to the project.\r\n */\r\n DashboardScope[DashboardScope[\"Project\"] = 2] = \"Project\";\r\n})(DashboardScope = exports.DashboardScope || (exports.DashboardScope = {}));\r\nvar GroupMemberPermission;\r\n(function (GroupMemberPermission) {\r\n GroupMemberPermission[GroupMemberPermission[\"None\"] = 0] = \"None\";\r\n GroupMemberPermission[GroupMemberPermission[\"Edit\"] = 1] = \"Edit\";\r\n GroupMemberPermission[GroupMemberPermission[\"Manage\"] = 2] = \"Manage\";\r\n GroupMemberPermission[GroupMemberPermission[\"ManagePermissions\"] = 3] = \"ManagePermissions\";\r\n})(GroupMemberPermission = exports.GroupMemberPermission || (exports.GroupMemberPermission = {}));\r\nvar TeamDashboardPermission;\r\n(function (TeamDashboardPermission) {\r\n TeamDashboardPermission[TeamDashboardPermission[\"None\"] = 0] = \"None\";\r\n TeamDashboardPermission[TeamDashboardPermission[\"Read\"] = 1] = \"Read\";\r\n TeamDashboardPermission[TeamDashboardPermission[\"Create\"] = 2] = \"Create\";\r\n TeamDashboardPermission[TeamDashboardPermission[\"Edit\"] = 4] = \"Edit\";\r\n TeamDashboardPermission[TeamDashboardPermission[\"Delete\"] = 8] = \"Delete\";\r\n TeamDashboardPermission[TeamDashboardPermission[\"ManagePermissions\"] = 16] = \"ManagePermissions\";\r\n})(TeamDashboardPermission = exports.TeamDashboardPermission || (exports.TeamDashboardPermission = {}));\r\n/**\r\n * data contract required for the widget to function in a webaccess area or page.\r\n */\r\nvar WidgetScope;\r\n(function (WidgetScope) {\r\n WidgetScope[WidgetScope[\"Collection_User\"] = 0] = \"Collection_User\";\r\n WidgetScope[WidgetScope[\"Project_Team\"] = 1] = \"Project_Team\";\r\n})(WidgetScope = exports.WidgetScope || (exports.WidgetScope = {}));\r\nexports.TypeInfo = {\r\n Dashboard: {},\r\n DashboardGroup: {},\r\n DashboardGroupEntry: {},\r\n DashboardGroupEntryResponse: {},\r\n DashboardResponse: {},\r\n DashboardScope: {\r\n enumValues: {\r\n \"collection_User\": 0,\r\n \"project_Team\": 1,\r\n \"project\": 2\r\n }\r\n },\r\n GroupMemberPermission: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"edit\": 1,\r\n \"manage\": 2,\r\n \"managePermissions\": 3\r\n }\r\n },\r\n TeamDashboardPermission: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"read\": 1,\r\n \"create\": 2,\r\n \"edit\": 4,\r\n \"delete\": 8,\r\n \"managePermissions\": 16\r\n }\r\n },\r\n Widget: {},\r\n WidgetMetadata: {},\r\n WidgetMetadataResponse: {},\r\n WidgetResponse: {},\r\n WidgetScope: {\r\n enumValues: {\r\n \"collection_User\": 0,\r\n \"project_Team\": 1\r\n }\r\n },\r\n WidgetsVersionedList: {},\r\n WidgetTypesResponse: {},\r\n};\r\nexports.TypeInfo.Dashboard.fields = {\r\n dashboardScope: {\r\n enumType: exports.TypeInfo.DashboardScope\r\n },\r\n widgets: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Widget\r\n }\r\n};\r\nexports.TypeInfo.DashboardGroup.fields = {\r\n dashboardEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DashboardGroupEntry\r\n },\r\n permission: {\r\n enumType: exports.TypeInfo.GroupMemberPermission\r\n },\r\n teamDashboardPermission: {\r\n enumType: exports.TypeInfo.TeamDashboardPermission\r\n }\r\n};\r\nexports.TypeInfo.DashboardGroupEntry.fields = {\r\n dashboardScope: {\r\n enumType: exports.TypeInfo.DashboardScope\r\n },\r\n widgets: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Widget\r\n }\r\n};\r\nexports.TypeInfo.DashboardGroupEntryResponse.fields = {\r\n dashboardScope: {\r\n enumType: exports.TypeInfo.DashboardScope\r\n },\r\n widgets: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Widget\r\n }\r\n};\r\nexports.TypeInfo.DashboardResponse.fields = {\r\n dashboardScope: {\r\n enumType: exports.TypeInfo.DashboardScope\r\n },\r\n widgets: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Widget\r\n }\r\n};\r\nexports.TypeInfo.Widget.fields = {\r\n dashboard: {\r\n typeInfo: exports.TypeInfo.Dashboard\r\n }\r\n};\r\nexports.TypeInfo.WidgetMetadata.fields = {\r\n supportedScopes: {\r\n isArray: true,\r\n enumType: exports.TypeInfo.WidgetScope\r\n }\r\n};\r\nexports.TypeInfo.WidgetMetadataResponse.fields = {\r\n widgetMetadata: {\r\n typeInfo: exports.TypeInfo.WidgetMetadata\r\n }\r\n};\r\nexports.TypeInfo.WidgetResponse.fields = {\r\n dashboard: {\r\n typeInfo: exports.TypeInfo.Dashboard\r\n }\r\n};\r\nexports.TypeInfo.WidgetsVersionedList.fields = {\r\n widgets: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Widget\r\n }\r\n};\r\nexports.TypeInfo.WidgetTypesResponse.fields = {\r\n widgetTypes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WidgetMetadata\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst GalleryInterfaces = require(\"../interfaces/GalleryInterfaces\");\r\n/**\r\n * How the acquisition is assigned\r\n */\r\nvar AcquisitionAssignmentType;\r\n(function (AcquisitionAssignmentType) {\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Just assign for me\r\n */\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"Me\"] = 1] = \"Me\";\r\n /**\r\n * Assign for all users in the account\r\n */\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"All\"] = 2] = \"All\";\r\n})(AcquisitionAssignmentType = exports.AcquisitionAssignmentType || (exports.AcquisitionAssignmentType = {}));\r\nvar AcquisitionOperationState;\r\n(function (AcquisitionOperationState) {\r\n /**\r\n * Not allowed to use this AcquisitionOperation\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Disallow\"] = 0] = \"Disallow\";\r\n /**\r\n * Allowed to use this AcquisitionOperation\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Allow\"] = 1] = \"Allow\";\r\n /**\r\n * Operation has already been completed and is no longer available\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Completed\"] = 3] = \"Completed\";\r\n})(AcquisitionOperationState = exports.AcquisitionOperationState || (exports.AcquisitionOperationState = {}));\r\n/**\r\n * Set of different types of operations that can be requested.\r\n */\r\nvar AcquisitionOperationType;\r\n(function (AcquisitionOperationType) {\r\n /**\r\n * Not yet used\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Get\"] = 0] = \"Get\";\r\n /**\r\n * Install this extension into the host provided\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Install\"] = 1] = \"Install\";\r\n /**\r\n * Buy licenses for this extension and install into the host provided\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Buy\"] = 2] = \"Buy\";\r\n /**\r\n * Try this extension\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Try\"] = 3] = \"Try\";\r\n /**\r\n * Request this extension for installation\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Request\"] = 4] = \"Request\";\r\n /**\r\n * No action found\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"None\"] = 5] = \"None\";\r\n /**\r\n * Request admins for purchasing extension\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"PurchaseRequest\"] = 6] = \"PurchaseRequest\";\r\n})(AcquisitionOperationType = exports.AcquisitionOperationType || (exports.AcquisitionOperationType = {}));\r\n/**\r\n * Represents different ways of including contributions based on licensing\r\n */\r\nvar ContributionLicensingBehaviorType;\r\n(function (ContributionLicensingBehaviorType) {\r\n /**\r\n * Default value - only include the contribution if the user is licensed for the extension\r\n */\r\n ContributionLicensingBehaviorType[ContributionLicensingBehaviorType[\"OnlyIfLicensed\"] = 0] = \"OnlyIfLicensed\";\r\n /**\r\n * Only include the contribution if the user is NOT licensed for the extension\r\n */\r\n ContributionLicensingBehaviorType[ContributionLicensingBehaviorType[\"OnlyIfUnlicensed\"] = 1] = \"OnlyIfUnlicensed\";\r\n /**\r\n * Always include the contribution regardless of whether or not the user is licensed for the extension\r\n */\r\n ContributionLicensingBehaviorType[ContributionLicensingBehaviorType[\"AlwaysInclude\"] = 2] = \"AlwaysInclude\";\r\n})(ContributionLicensingBehaviorType = exports.ContributionLicensingBehaviorType || (exports.ContributionLicensingBehaviorType = {}));\r\n/**\r\n * The type of value used for a property\r\n */\r\nvar ContributionPropertyType;\r\n(function (ContributionPropertyType) {\r\n /**\r\n * Contribution type is unknown (value may be anything)\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * Value is a string\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"String\"] = 1] = \"String\";\r\n /**\r\n * Value is a Uri\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Uri\"] = 2] = \"Uri\";\r\n /**\r\n * Value is a GUID\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Guid\"] = 4] = \"Guid\";\r\n /**\r\n * Value is True or False\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Boolean\"] = 8] = \"Boolean\";\r\n /**\r\n * Value is an integer\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Integer\"] = 16] = \"Integer\";\r\n /**\r\n * Value is a double\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Double\"] = 32] = \"Double\";\r\n /**\r\n * Value is a DateTime object\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"DateTime\"] = 64] = \"DateTime\";\r\n /**\r\n * Value is a generic Dictionary/JObject/property bag\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Dictionary\"] = 128] = \"Dictionary\";\r\n /**\r\n * Value is an array\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Array\"] = 256] = \"Array\";\r\n /**\r\n * Value is an arbitrary/custom object\r\n */\r\n ContributionPropertyType[ContributionPropertyType[\"Object\"] = 512] = \"Object\";\r\n})(ContributionPropertyType = exports.ContributionPropertyType || (exports.ContributionPropertyType = {}));\r\n/**\r\n * Options that control the contributions to include in a query\r\n */\r\nvar ContributionQueryOptions;\r\n(function (ContributionQueryOptions) {\r\n ContributionQueryOptions[ContributionQueryOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include the direct contributions that have the ids queried.\r\n */\r\n ContributionQueryOptions[ContributionQueryOptions[\"IncludeSelf\"] = 16] = \"IncludeSelf\";\r\n /**\r\n * Include the contributions that directly target the contributions queried.\r\n */\r\n ContributionQueryOptions[ContributionQueryOptions[\"IncludeChildren\"] = 32] = \"IncludeChildren\";\r\n /**\r\n * Include the contributions from the entire sub-tree targeting the contributions queried.\r\n */\r\n ContributionQueryOptions[ContributionQueryOptions[\"IncludeSubTree\"] = 96] = \"IncludeSubTree\";\r\n /**\r\n * Include the contribution being queried as well as all contributions that target them recursively.\r\n */\r\n ContributionQueryOptions[ContributionQueryOptions[\"IncludeAll\"] = 112] = \"IncludeAll\";\r\n /**\r\n * Some callers may want the entire tree back without constraint evaluation being performed.\r\n */\r\n ContributionQueryOptions[ContributionQueryOptions[\"IgnoreConstraints\"] = 256] = \"IgnoreConstraints\";\r\n})(ContributionQueryOptions = exports.ContributionQueryOptions || (exports.ContributionQueryOptions = {}));\r\n/**\r\n * Set of flags applied to extensions that are relevant to contribution consumers\r\n */\r\nvar ExtensionFlags;\r\n(function (ExtensionFlags) {\r\n /**\r\n * A built-in extension is installed for all VSTS accounts by default\r\n */\r\n ExtensionFlags[ExtensionFlags[\"BuiltIn\"] = 1] = \"BuiltIn\";\r\n /**\r\n * The extension comes from a fully-trusted publisher\r\n */\r\n ExtensionFlags[ExtensionFlags[\"Trusted\"] = 2] = \"Trusted\";\r\n})(ExtensionFlags = exports.ExtensionFlags || (exports.ExtensionFlags = {}));\r\n/**\r\n * Represents the state of an extension request\r\n */\r\nvar ExtensionRequestState;\r\n(function (ExtensionRequestState) {\r\n /**\r\n * The request has been opened, but not yet responded to\r\n */\r\n ExtensionRequestState[ExtensionRequestState[\"Open\"] = 0] = \"Open\";\r\n /**\r\n * The request was accepted (extension installed or license assigned)\r\n */\r\n ExtensionRequestState[ExtensionRequestState[\"Accepted\"] = 1] = \"Accepted\";\r\n /**\r\n * The request was rejected (extension not installed or license not assigned)\r\n */\r\n ExtensionRequestState[ExtensionRequestState[\"Rejected\"] = 2] = \"Rejected\";\r\n})(ExtensionRequestState = exports.ExtensionRequestState || (exports.ExtensionRequestState = {}));\r\nvar ExtensionRequestUpdateType;\r\n(function (ExtensionRequestUpdateType) {\r\n ExtensionRequestUpdateType[ExtensionRequestUpdateType[\"Created\"] = 1] = \"Created\";\r\n ExtensionRequestUpdateType[ExtensionRequestUpdateType[\"Approved\"] = 2] = \"Approved\";\r\n ExtensionRequestUpdateType[ExtensionRequestUpdateType[\"Rejected\"] = 3] = \"Rejected\";\r\n ExtensionRequestUpdateType[ExtensionRequestUpdateType[\"Deleted\"] = 4] = \"Deleted\";\r\n})(ExtensionRequestUpdateType = exports.ExtensionRequestUpdateType || (exports.ExtensionRequestUpdateType = {}));\r\n/**\r\n * States of an extension Note: If you add value to this enum, you need to do 2 other things. First add the back compat enum in value src\\Vssf\\Sdk\\Server\\Contributions\\InstalledExtensionMessage.cs. Second, you can not send the new value on the message bus. You need to remove it from the message bus event prior to being sent.\r\n */\r\nvar ExtensionStateFlags;\r\n(function (ExtensionStateFlags) {\r\n /**\r\n * No flags set\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Extension is disabled\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"Disabled\"] = 1] = \"Disabled\";\r\n /**\r\n * Extension is a built in\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"BuiltIn\"] = 2] = \"BuiltIn\";\r\n /**\r\n * Extension has multiple versions\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"MultiVersion\"] = 4] = \"MultiVersion\";\r\n /**\r\n * Extension is not installed. This is for builtin extensions only and can not otherwise be set.\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"UnInstalled\"] = 8] = \"UnInstalled\";\r\n /**\r\n * Error performing version check\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"VersionCheckError\"] = 16] = \"VersionCheckError\";\r\n /**\r\n * Trusted extensions are ones that are given special capabilities. These tend to come from Microsoft and can't be published by the general public. Note: BuiltIn extensions are always trusted.\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"Trusted\"] = 32] = \"Trusted\";\r\n /**\r\n * Extension is currently in an error state\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"Error\"] = 64] = \"Error\";\r\n /**\r\n * Extension scopes have changed and the extension requires re-authorization\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"NeedsReauthorization\"] = 128] = \"NeedsReauthorization\";\r\n /**\r\n * Error performing auto-upgrade. For example, if the new version has demands not supported the extension cannot be auto-upgraded.\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"AutoUpgradeError\"] = 256] = \"AutoUpgradeError\";\r\n /**\r\n * Extension is currently in a warning state, that can cause a degraded experience. The degraded experience can be caused for example by some installation issues detected such as implicit demands not supported.\r\n */\r\n ExtensionStateFlags[ExtensionStateFlags[\"Warning\"] = 512] = \"Warning\";\r\n})(ExtensionStateFlags = exports.ExtensionStateFlags || (exports.ExtensionStateFlags = {}));\r\nvar ExtensionUpdateType;\r\n(function (ExtensionUpdateType) {\r\n ExtensionUpdateType[ExtensionUpdateType[\"Installed\"] = 1] = \"Installed\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"Uninstalled\"] = 2] = \"Uninstalled\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"Enabled\"] = 3] = \"Enabled\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"Disabled\"] = 4] = \"Disabled\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"VersionUpdated\"] = 5] = \"VersionUpdated\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"ActionRequired\"] = 6] = \"ActionRequired\";\r\n ExtensionUpdateType[ExtensionUpdateType[\"ActionResolved\"] = 7] = \"ActionResolved\";\r\n})(ExtensionUpdateType = exports.ExtensionUpdateType || (exports.ExtensionUpdateType = {}));\r\n/**\r\n * Installation issue type (Warning, Error)\r\n */\r\nvar InstalledExtensionStateIssueType;\r\n(function (InstalledExtensionStateIssueType) {\r\n /**\r\n * Represents an installation warning, for example an implicit demand not supported\r\n */\r\n InstalledExtensionStateIssueType[InstalledExtensionStateIssueType[\"Warning\"] = 0] = \"Warning\";\r\n /**\r\n * Represents an installation error, for example an explicit demand not supported\r\n */\r\n InstalledExtensionStateIssueType[InstalledExtensionStateIssueType[\"Error\"] = 1] = \"Error\";\r\n})(InstalledExtensionStateIssueType = exports.InstalledExtensionStateIssueType || (exports.InstalledExtensionStateIssueType = {}));\r\nexports.TypeInfo = {\r\n AcquisitionAssignmentType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"me\": 1,\r\n \"all\": 2\r\n }\r\n },\r\n AcquisitionOperation: {},\r\n AcquisitionOperationState: {\r\n enumValues: {\r\n \"disallow\": 0,\r\n \"allow\": 1,\r\n \"completed\": 3\r\n }\r\n },\r\n AcquisitionOperationType: {\r\n enumValues: {\r\n \"get\": 0,\r\n \"install\": 1,\r\n \"buy\": 2,\r\n \"try\": 3,\r\n \"request\": 4,\r\n \"none\": 5,\r\n \"purchaseRequest\": 6\r\n }\r\n },\r\n AcquisitionOptions: {},\r\n ContributionLicensingBehaviorType: {\r\n enumValues: {\r\n \"onlyIfLicensed\": 0,\r\n \"onlyIfUnlicensed\": 1,\r\n \"alwaysInclude\": 2\r\n }\r\n },\r\n ContributionNodeQuery: {},\r\n ContributionPropertyDescription: {},\r\n ContributionPropertyType: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"string\": 1,\r\n \"uri\": 2,\r\n \"guid\": 4,\r\n \"boolean\": 8,\r\n \"integer\": 16,\r\n \"double\": 32,\r\n \"dateTime\": 64,\r\n \"dictionary\": 128,\r\n \"array\": 256,\r\n \"object\": 512\r\n }\r\n },\r\n ContributionQueryOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeSelf\": 16,\r\n \"includeChildren\": 32,\r\n \"includeSubTree\": 96,\r\n \"includeAll\": 112,\r\n \"ignoreConstraints\": 256\r\n }\r\n },\r\n ContributionType: {},\r\n ExtensionAcquisitionRequest: {},\r\n ExtensionAuditLog: {},\r\n ExtensionAuditLogEntry: {},\r\n ExtensionEvent: {},\r\n ExtensionFlags: {\r\n enumValues: {\r\n \"builtIn\": 1,\r\n \"trusted\": 2\r\n }\r\n },\r\n ExtensionLicensing: {},\r\n ExtensionManifest: {},\r\n ExtensionRequest: {},\r\n ExtensionRequestEvent: {},\r\n ExtensionRequestsEvent: {},\r\n ExtensionRequestState: {\r\n enumValues: {\r\n \"open\": 0,\r\n \"accepted\": 1,\r\n \"rejected\": 2\r\n }\r\n },\r\n ExtensionRequestUpdateType: {\r\n enumValues: {\r\n \"created\": 1,\r\n \"approved\": 2,\r\n \"rejected\": 3,\r\n \"deleted\": 4\r\n }\r\n },\r\n ExtensionState: {},\r\n ExtensionStateFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"disabled\": 1,\r\n \"builtIn\": 2,\r\n \"multiVersion\": 4,\r\n \"unInstalled\": 8,\r\n \"versionCheckError\": 16,\r\n \"trusted\": 32,\r\n \"error\": 64,\r\n \"needsReauthorization\": 128,\r\n \"autoUpgradeError\": 256,\r\n \"warning\": 512\r\n }\r\n },\r\n ExtensionUpdateType: {\r\n enumValues: {\r\n \"installed\": 1,\r\n \"uninstalled\": 2,\r\n \"enabled\": 3,\r\n \"disabled\": 4,\r\n \"versionUpdated\": 5,\r\n \"actionRequired\": 6,\r\n \"actionResolved\": 7\r\n }\r\n },\r\n InstalledExtension: {},\r\n InstalledExtensionState: {},\r\n InstalledExtensionStateIssue: {},\r\n InstalledExtensionStateIssueType: {\r\n enumValues: {\r\n \"warning\": 0,\r\n \"error\": 1\r\n }\r\n },\r\n LicensingOverride: {},\r\n RequestedExtension: {},\r\n};\r\nexports.TypeInfo.AcquisitionOperation.fields = {\r\n operationState: {\r\n enumType: exports.TypeInfo.AcquisitionOperationState\r\n },\r\n operationType: {\r\n enumType: exports.TypeInfo.AcquisitionOperationType\r\n }\r\n};\r\nexports.TypeInfo.AcquisitionOptions.fields = {\r\n defaultOperation: {\r\n typeInfo: exports.TypeInfo.AcquisitionOperation\r\n },\r\n operations: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.AcquisitionOperation\r\n }\r\n};\r\nexports.TypeInfo.ContributionNodeQuery.fields = {\r\n queryOptions: {\r\n enumType: exports.TypeInfo.ContributionQueryOptions\r\n }\r\n};\r\nexports.TypeInfo.ContributionPropertyDescription.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.ContributionPropertyType\r\n }\r\n};\r\nexports.TypeInfo.ContributionType.fields = {\r\n properties: {\r\n isDictionary: true,\r\n dictionaryValueTypeInfo: exports.TypeInfo.ContributionPropertyDescription\r\n }\r\n};\r\nexports.TypeInfo.ExtensionAcquisitionRequest.fields = {\r\n assignmentType: {\r\n enumType: exports.TypeInfo.AcquisitionAssignmentType\r\n },\r\n operationType: {\r\n enumType: exports.TypeInfo.AcquisitionOperationType\r\n }\r\n};\r\nexports.TypeInfo.ExtensionAuditLog.fields = {\r\n entries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionAuditLogEntry\r\n }\r\n};\r\nexports.TypeInfo.ExtensionAuditLogEntry.fields = {\r\n auditDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ExtensionEvent.fields = {\r\n extension: {\r\n typeInfo: GalleryInterfaces.TypeInfo.PublishedExtension\r\n },\r\n updateType: {\r\n enumType: exports.TypeInfo.ExtensionUpdateType\r\n }\r\n};\r\nexports.TypeInfo.ExtensionLicensing.fields = {\r\n overrides: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LicensingOverride\r\n }\r\n};\r\nexports.TypeInfo.ExtensionManifest.fields = {\r\n contributionTypes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ContributionType\r\n },\r\n licensing: {\r\n typeInfo: exports.TypeInfo.ExtensionLicensing\r\n }\r\n};\r\nexports.TypeInfo.ExtensionRequest.fields = {\r\n requestDate: {\r\n isDate: true,\r\n },\r\n requestState: {\r\n enumType: exports.TypeInfo.ExtensionRequestState\r\n },\r\n resolveDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ExtensionRequestEvent.fields = {\r\n extension: {\r\n typeInfo: GalleryInterfaces.TypeInfo.PublishedExtension\r\n },\r\n request: {\r\n typeInfo: exports.TypeInfo.ExtensionRequest\r\n },\r\n updateType: {\r\n enumType: exports.TypeInfo.ExtensionRequestUpdateType\r\n }\r\n};\r\nexports.TypeInfo.ExtensionRequestsEvent.fields = {\r\n extension: {\r\n typeInfo: GalleryInterfaces.TypeInfo.PublishedExtension\r\n },\r\n requests: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionRequest\r\n },\r\n updateType: {\r\n enumType: exports.TypeInfo.ExtensionRequestUpdateType\r\n }\r\n};\r\nexports.TypeInfo.ExtensionState.fields = {\r\n flags: {\r\n enumType: exports.TypeInfo.ExtensionStateFlags\r\n },\r\n installationIssues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.InstalledExtensionStateIssue\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n lastVersionCheck: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.InstalledExtension.fields = {\r\n contributionTypes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ContributionType\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.ExtensionFlags\r\n },\r\n installState: {\r\n typeInfo: exports.TypeInfo.InstalledExtensionState\r\n },\r\n lastPublished: {\r\n isDate: true,\r\n },\r\n licensing: {\r\n typeInfo: exports.TypeInfo.ExtensionLicensing\r\n }\r\n};\r\nexports.TypeInfo.InstalledExtensionState.fields = {\r\n flags: {\r\n enumType: exports.TypeInfo.ExtensionStateFlags\r\n },\r\n installationIssues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.InstalledExtensionStateIssue\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.InstalledExtensionStateIssue.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.InstalledExtensionStateIssueType\r\n }\r\n};\r\nexports.TypeInfo.LicensingOverride.fields = {\r\n behavior: {\r\n enumType: exports.TypeInfo.ContributionLicensingBehaviorType\r\n }\r\n};\r\nexports.TypeInfo.RequestedExtension.fields = {\r\n extensionRequests: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionRequest\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * The current state of a feature within a given scope\r\n */\r\nvar ContributedFeatureEnabledValue;\r\n(function (ContributedFeatureEnabledValue) {\r\n /**\r\n * The state of the feature is not set for the specified scope\r\n */\r\n ContributedFeatureEnabledValue[ContributedFeatureEnabledValue[\"Undefined\"] = -1] = \"Undefined\";\r\n /**\r\n * The feature is disabled at the specified scope\r\n */\r\n ContributedFeatureEnabledValue[ContributedFeatureEnabledValue[\"Disabled\"] = 0] = \"Disabled\";\r\n /**\r\n * The feature is enabled at the specified scope\r\n */\r\n ContributedFeatureEnabledValue[ContributedFeatureEnabledValue[\"Enabled\"] = 1] = \"Enabled\";\r\n})(ContributedFeatureEnabledValue = exports.ContributedFeatureEnabledValue || (exports.ContributedFeatureEnabledValue = {}));\r\nexports.TypeInfo = {\r\n ContributedFeatureEnabledValue: {\r\n enumValues: {\r\n \"undefined\": -1,\r\n \"disabled\": 0,\r\n \"enabled\": 1\r\n }\r\n },\r\n ContributedFeatureState: {},\r\n ContributedFeatureStateQuery: {},\r\n};\r\nexports.TypeInfo.ContributedFeatureState.fields = {\r\n state: {\r\n enumType: exports.TypeInfo.ContributedFeatureEnabledValue\r\n }\r\n};\r\nexports.TypeInfo.ContributedFeatureStateQuery.fields = {\r\n featureStates: {\r\n isDictionary: true,\r\n dictionaryValueTypeInfo: exports.TypeInfo.ContributedFeatureState\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Compression type for file stored in Blobstore\r\n */\r\nvar BlobCompressionType;\r\n(function (BlobCompressionType) {\r\n BlobCompressionType[BlobCompressionType[\"None\"] = 0] = \"None\";\r\n BlobCompressionType[BlobCompressionType[\"GZip\"] = 1] = \"GZip\";\r\n})(BlobCompressionType = exports.BlobCompressionType || (exports.BlobCompressionType = {}));\r\n/**\r\n * Status of a container item.\r\n */\r\nvar ContainerItemStatus;\r\n(function (ContainerItemStatus) {\r\n /**\r\n * Item is created.\r\n */\r\n ContainerItemStatus[ContainerItemStatus[\"Created\"] = 1] = \"Created\";\r\n /**\r\n * Item is a file pending for upload.\r\n */\r\n ContainerItemStatus[ContainerItemStatus[\"PendingUpload\"] = 2] = \"PendingUpload\";\r\n})(ContainerItemStatus = exports.ContainerItemStatus || (exports.ContainerItemStatus = {}));\r\n/**\r\n * Type of a container item.\r\n */\r\nvar ContainerItemType;\r\n(function (ContainerItemType) {\r\n /**\r\n * Any item type.\r\n */\r\n ContainerItemType[ContainerItemType[\"Any\"] = 0] = \"Any\";\r\n /**\r\n * Item is a folder which can have child items.\r\n */\r\n ContainerItemType[ContainerItemType[\"Folder\"] = 1] = \"Folder\";\r\n /**\r\n * Item is a file which is stored in the file service.\r\n */\r\n ContainerItemType[ContainerItemType[\"File\"] = 2] = \"File\";\r\n})(ContainerItemType = exports.ContainerItemType || (exports.ContainerItemType = {}));\r\n/**\r\n * Options a container can have.\r\n */\r\nvar ContainerOptions;\r\n(function (ContainerOptions) {\r\n /**\r\n * No option.\r\n */\r\n ContainerOptions[ContainerOptions[\"None\"] = 0] = \"None\";\r\n})(ContainerOptions = exports.ContainerOptions || (exports.ContainerOptions = {}));\r\nexports.TypeInfo = {\r\n BlobCompressionType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"gZip\": 1\r\n }\r\n },\r\n ContainerItemBlobReference: {},\r\n ContainerItemStatus: {\r\n enumValues: {\r\n \"created\": 1,\r\n \"pendingUpload\": 2\r\n }\r\n },\r\n ContainerItemType: {\r\n enumValues: {\r\n \"any\": 0,\r\n \"folder\": 1,\r\n \"file\": 2\r\n }\r\n },\r\n ContainerOptions: {\r\n enumValues: {\r\n \"none\": 0\r\n }\r\n },\r\n FileContainer: {},\r\n FileContainerItem: {},\r\n};\r\nexports.TypeInfo.ContainerItemBlobReference.fields = {\r\n compressionType: {\r\n enumType: exports.TypeInfo.BlobCompressionType\r\n }\r\n};\r\nexports.TypeInfo.FileContainer.fields = {\r\n dateCreated: {\r\n isDate: true,\r\n },\r\n options: {\r\n enumType: exports.TypeInfo.ContainerOptions\r\n }\r\n};\r\nexports.TypeInfo.FileContainerItem.fields = {\r\n blobMetadata: {\r\n typeInfo: exports.TypeInfo.ContainerItemBlobReference\r\n },\r\n dateCreated: {\r\n isDate: true,\r\n },\r\n dateLastModified: {\r\n isDate: true,\r\n },\r\n itemType: {\r\n enumType: exports.TypeInfo.ContainerItemType\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ContainerItemStatus\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * How the acquisition is assigned\r\n */\r\nvar AcquisitionAssignmentType;\r\n(function (AcquisitionAssignmentType) {\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Just assign for me\r\n */\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"Me\"] = 1] = \"Me\";\r\n /**\r\n * Assign for all users in the account\r\n */\r\n AcquisitionAssignmentType[AcquisitionAssignmentType[\"All\"] = 2] = \"All\";\r\n})(AcquisitionAssignmentType = exports.AcquisitionAssignmentType || (exports.AcquisitionAssignmentType = {}));\r\nvar AcquisitionOperationState;\r\n(function (AcquisitionOperationState) {\r\n /**\r\n * Not allowed to use this AcquisitionOperation\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Disallow\"] = 0] = \"Disallow\";\r\n /**\r\n * Allowed to use this AcquisitionOperation\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Allow\"] = 1] = \"Allow\";\r\n /**\r\n * Operation has already been completed and is no longer available\r\n */\r\n AcquisitionOperationState[AcquisitionOperationState[\"Completed\"] = 3] = \"Completed\";\r\n})(AcquisitionOperationState = exports.AcquisitionOperationState || (exports.AcquisitionOperationState = {}));\r\n/**\r\n * Set of different types of operations that can be requested.\r\n */\r\nvar AcquisitionOperationType;\r\n(function (AcquisitionOperationType) {\r\n /**\r\n * Not yet used\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Get\"] = 0] = \"Get\";\r\n /**\r\n * Install this extension into the host provided\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Install\"] = 1] = \"Install\";\r\n /**\r\n * Buy licenses for this extension and install into the host provided\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Buy\"] = 2] = \"Buy\";\r\n /**\r\n * Try this extension\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Try\"] = 3] = \"Try\";\r\n /**\r\n * Request this extension for installation\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"Request\"] = 4] = \"Request\";\r\n /**\r\n * No action found\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"None\"] = 5] = \"None\";\r\n /**\r\n * Request admins for purchasing extension\r\n */\r\n AcquisitionOperationType[AcquisitionOperationType[\"PurchaseRequest\"] = 6] = \"PurchaseRequest\";\r\n})(AcquisitionOperationType = exports.AcquisitionOperationType || (exports.AcquisitionOperationType = {}));\r\nvar ConcernCategory;\r\n(function (ConcernCategory) {\r\n ConcernCategory[ConcernCategory[\"General\"] = 1] = \"General\";\r\n ConcernCategory[ConcernCategory[\"Abusive\"] = 2] = \"Abusive\";\r\n ConcernCategory[ConcernCategory[\"Spam\"] = 4] = \"Spam\";\r\n})(ConcernCategory = exports.ConcernCategory || (exports.ConcernCategory = {}));\r\nvar DraftPatchOperation;\r\n(function (DraftPatchOperation) {\r\n DraftPatchOperation[DraftPatchOperation[\"Publish\"] = 1] = \"Publish\";\r\n DraftPatchOperation[DraftPatchOperation[\"Cancel\"] = 2] = \"Cancel\";\r\n})(DraftPatchOperation = exports.DraftPatchOperation || (exports.DraftPatchOperation = {}));\r\nvar DraftStateType;\r\n(function (DraftStateType) {\r\n DraftStateType[DraftStateType[\"Unpublished\"] = 1] = \"Unpublished\";\r\n DraftStateType[DraftStateType[\"Published\"] = 2] = \"Published\";\r\n DraftStateType[DraftStateType[\"Cancelled\"] = 3] = \"Cancelled\";\r\n DraftStateType[DraftStateType[\"Error\"] = 4] = \"Error\";\r\n})(DraftStateType = exports.DraftStateType || (exports.DraftStateType = {}));\r\nvar ExtensionDeploymentTechnology;\r\n(function (ExtensionDeploymentTechnology) {\r\n ExtensionDeploymentTechnology[ExtensionDeploymentTechnology[\"Exe\"] = 1] = \"Exe\";\r\n ExtensionDeploymentTechnology[ExtensionDeploymentTechnology[\"Msi\"] = 2] = \"Msi\";\r\n ExtensionDeploymentTechnology[ExtensionDeploymentTechnology[\"Vsix\"] = 3] = \"Vsix\";\r\n ExtensionDeploymentTechnology[ExtensionDeploymentTechnology[\"ReferralLink\"] = 4] = \"ReferralLink\";\r\n})(ExtensionDeploymentTechnology = exports.ExtensionDeploymentTechnology || (exports.ExtensionDeploymentTechnology = {}));\r\n/**\r\n * Type of event\r\n */\r\nvar ExtensionLifecycleEventType;\r\n(function (ExtensionLifecycleEventType) {\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Uninstall\"] = 1] = \"Uninstall\";\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Install\"] = 2] = \"Install\";\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Review\"] = 3] = \"Review\";\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Acquisition\"] = 4] = \"Acquisition\";\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Sales\"] = 5] = \"Sales\";\r\n ExtensionLifecycleEventType[ExtensionLifecycleEventType[\"Other\"] = 999] = \"Other\";\r\n})(ExtensionLifecycleEventType = exports.ExtensionLifecycleEventType || (exports.ExtensionLifecycleEventType = {}));\r\n/**\r\n * Set of flags that can be associated with a given permission over an extension\r\n */\r\nvar ExtensionPolicyFlags;\r\n(function (ExtensionPolicyFlags) {\r\n /**\r\n * No permission\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Permission on private extensions\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"Private\"] = 1] = \"Private\";\r\n /**\r\n * Permission on public extensions\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"Public\"] = 2] = \"Public\";\r\n /**\r\n * Permission in extensions that are in preview\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"Preview\"] = 4] = \"Preview\";\r\n /**\r\n * Permission in released extensions\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"Released\"] = 8] = \"Released\";\r\n /**\r\n * Permission in 1st party extensions\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"FirstParty\"] = 16] = \"FirstParty\";\r\n /**\r\n * Mask that defines all permissions\r\n */\r\n ExtensionPolicyFlags[ExtensionPolicyFlags[\"All\"] = 31] = \"All\";\r\n})(ExtensionPolicyFlags = exports.ExtensionPolicyFlags || (exports.ExtensionPolicyFlags = {}));\r\n/**\r\n * Type of extension filters that are supported in the queries.\r\n */\r\nvar ExtensionQueryFilterType;\r\n(function (ExtensionQueryFilterType) {\r\n /**\r\n * The values are used as tags. All tags are treated as \"OR\" conditions with each other. There may be some value put on the number of matched tags from the query.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Tag\"] = 1] = \"Tag\";\r\n /**\r\n * The Values are an ExtensionName or fragment that is used to match other extension names.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"DisplayName\"] = 2] = \"DisplayName\";\r\n /**\r\n * The Filter is one or more tokens that define what scope to return private extensions for.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Private\"] = 3] = \"Private\";\r\n /**\r\n * Retrieve a set of extensions based on their id's. The values should be the extension id's encoded as strings.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Id\"] = 4] = \"Id\";\r\n /**\r\n * The category is unlike other filters. It is AND'd with the other filters instead of being a separate query.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Category\"] = 5] = \"Category\";\r\n /**\r\n * Certain contribution types may be indexed to allow for query by type. User defined types can't be indexed at the moment.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"ContributionType\"] = 6] = \"ContributionType\";\r\n /**\r\n * Retrieve an set extension based on the name based identifier. This differs from the internal id (which is being deprecated).\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Name\"] = 7] = \"Name\";\r\n /**\r\n * The InstallationTarget for an extension defines the target consumer for the extension. This may be something like VS, VSOnline, or VSCode\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"InstallationTarget\"] = 8] = \"InstallationTarget\";\r\n /**\r\n * Query for featured extensions, no value is allowed when using the query type.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Featured\"] = 9] = \"Featured\";\r\n /**\r\n * The SearchText provided by the user to search for extensions\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"SearchText\"] = 10] = \"SearchText\";\r\n /**\r\n * Query for extensions that are featured in their own category, The filterValue for this is name of category of extensions.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"FeaturedInCategory\"] = 11] = \"FeaturedInCategory\";\r\n /**\r\n * When retrieving extensions from a query, exclude the extensions which are having the given flags. The value specified for this filter should be a string representing the integer values of the flags to be excluded. In case of multiple flags to be specified, a logical OR of the interger values should be given as value for this filter This should be at most one filter of this type. This only acts as a restrictive filter after. In case of having a particular flag in both IncludeWithFlags and ExcludeWithFlags, excludeFlags will remove the included extensions giving empty result for that flag.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"ExcludeWithFlags\"] = 12] = \"ExcludeWithFlags\";\r\n /**\r\n * When retrieving extensions from a query, include the extensions which are having the given flags. The value specified for this filter should be a string representing the integer values of the flags to be included. In case of multiple flags to be specified, a logical OR of the integer values should be given as value for this filter This should be at most one filter of this type. This only acts as a restrictive filter after. In case of having a particular flag in both IncludeWithFlags and ExcludeWithFlags, excludeFlags will remove the included extensions giving empty result for that flag. In case of multiple flags given in IncludeWithFlags in ORed fashion, extensions having any of the given flags will be included.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"IncludeWithFlags\"] = 13] = \"IncludeWithFlags\";\r\n /**\r\n * Filter the extensions based on the LCID values applicable. Any extensions which are not having any LCID values will also be filtered. This is currently only supported for VS extensions.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"Lcid\"] = 14] = \"Lcid\";\r\n /**\r\n * Filter to provide the version of the installation target. This filter will be used along with InstallationTarget filter. The value should be a valid version string. Currently supported only if search text is provided.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"InstallationTargetVersion\"] = 15] = \"InstallationTargetVersion\";\r\n /**\r\n * Filter type for specifying a range of installation target version. The filter will be used along with InstallationTarget filter. The value should be a pair of well formed version values separated by hyphen(-). Currently supported only if search text is provided.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"InstallationTargetVersionRange\"] = 16] = \"InstallationTargetVersionRange\";\r\n /**\r\n * Filter type for specifying metadata key and value to be used for filtering.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"VsixMetadata\"] = 17] = \"VsixMetadata\";\r\n /**\r\n * Filter to get extensions published by a publisher having supplied internal name\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"PublisherName\"] = 18] = \"PublisherName\";\r\n /**\r\n * Filter to get extensions published by all publishers having supplied display name\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"PublisherDisplayName\"] = 19] = \"PublisherDisplayName\";\r\n /**\r\n * When retrieving extensions from a query, include the extensions which have a publisher having the given flags. The value specified for this filter should be a string representing the integer values of the flags to be included. In case of multiple flags to be specified, a logical OR of the integer values should be given as value for this filter There should be at most one filter of this type. This only acts as a restrictive filter after. In case of multiple flags given in IncludeWithFlags in ORed fashion, extensions having any of the given flags will be included.\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"IncludeWithPublisherFlags\"] = 20] = \"IncludeWithPublisherFlags\";\r\n /**\r\n * Filter to get extensions shared with particular organization\r\n */\r\n ExtensionQueryFilterType[ExtensionQueryFilterType[\"OrganizationSharedWith\"] = 21] = \"OrganizationSharedWith\";\r\n})(ExtensionQueryFilterType = exports.ExtensionQueryFilterType || (exports.ExtensionQueryFilterType = {}));\r\n/**\r\n * Set of flags used to determine which set of information is retrieved when reading published extensions\r\n */\r\nvar ExtensionQueryFlags;\r\n(function (ExtensionQueryFlags) {\r\n /**\r\n * None is used to retrieve only the basic extension details.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * IncludeVersions will return version information for extensions returned\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeVersions\"] = 1] = \"IncludeVersions\";\r\n /**\r\n * IncludeFiles will return information about which files were found within the extension that were stored independent of the manifest. When asking for files, versions will be included as well since files are returned as a property of the versions. These files can be retrieved using the path to the file without requiring the entire manifest be downloaded.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeFiles\"] = 2] = \"IncludeFiles\";\r\n /**\r\n * Include the Categories and Tags that were added to the extension definition.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeCategoryAndTags\"] = 4] = \"IncludeCategoryAndTags\";\r\n /**\r\n * Include the details about which accounts the extension has been shared with if the extension is a private extension.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeSharedAccounts\"] = 8] = \"IncludeSharedAccounts\";\r\n /**\r\n * Include properties associated with versions of the extension\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeVersionProperties\"] = 16] = \"IncludeVersionProperties\";\r\n /**\r\n * Excluding non-validated extensions will remove any extension versions that either are in the process of being validated or have failed validation.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"ExcludeNonValidated\"] = 32] = \"ExcludeNonValidated\";\r\n /**\r\n * Include the set of installation targets the extension has requested.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeInstallationTargets\"] = 64] = \"IncludeInstallationTargets\";\r\n /**\r\n * Include the base uri for assets of this extension\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeAssetUri\"] = 128] = \"IncludeAssetUri\";\r\n /**\r\n * Include the statistics associated with this extension\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeStatistics\"] = 256] = \"IncludeStatistics\";\r\n /**\r\n * When retrieving versions from a query, only include the latest version of the extensions that matched. This is useful when the caller doesn't need all the published versions. It will save a significant size in the returned payload.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeLatestVersionOnly\"] = 512] = \"IncludeLatestVersionOnly\";\r\n /**\r\n * This flag switches the asset uri to use GetAssetByName instead of CDN When this is used, values of base asset uri and base asset uri fallback are switched When this is used, source of asset files are pointed to Gallery service always even if CDN is available\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"UseFallbackAssetUri\"] = 1024] = \"UseFallbackAssetUri\";\r\n /**\r\n * This flag is used to get all the metadata values associated with the extension. This is not applicable to VSTS or VSCode extensions and usage is only internal.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeMetadata\"] = 2048] = \"IncludeMetadata\";\r\n /**\r\n * This flag is used to indicate to return very small data for extension required by VS IDE. This flag is only compatible when querying is done by VS IDE\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeMinimalPayloadForVsIde\"] = 4096] = \"IncludeMinimalPayloadForVsIde\";\r\n /**\r\n * This flag is used to get Lcid values associated with the extension. This is not applicable to VSTS or VSCode extensions and usage is only internal\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeLcids\"] = 8192] = \"IncludeLcids\";\r\n /**\r\n * Include the details about which organizations the extension has been shared with if the extension is a private extension.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"IncludeSharedOrganizations\"] = 16384] = \"IncludeSharedOrganizations\";\r\n /**\r\n * AllAttributes is designed to be a mask that defines all sub-elements of the extension should be returned. NOTE: This is not actually All flags. This is now locked to the set defined since changing this enum would be a breaking change and would change the behavior of anyone using it. Try not to use this value when making calls to the service, instead be explicit about the options required.\r\n */\r\n ExtensionQueryFlags[ExtensionQueryFlags[\"AllAttributes\"] = 16863] = \"AllAttributes\";\r\n})(ExtensionQueryFlags = exports.ExtensionQueryFlags || (exports.ExtensionQueryFlags = {}));\r\nvar ExtensionStatisticOperation;\r\n(function (ExtensionStatisticOperation) {\r\n ExtensionStatisticOperation[ExtensionStatisticOperation[\"None\"] = 0] = \"None\";\r\n ExtensionStatisticOperation[ExtensionStatisticOperation[\"Set\"] = 1] = \"Set\";\r\n ExtensionStatisticOperation[ExtensionStatisticOperation[\"Increment\"] = 2] = \"Increment\";\r\n ExtensionStatisticOperation[ExtensionStatisticOperation[\"Decrement\"] = 3] = \"Decrement\";\r\n ExtensionStatisticOperation[ExtensionStatisticOperation[\"Delete\"] = 4] = \"Delete\";\r\n})(ExtensionStatisticOperation = exports.ExtensionStatisticOperation || (exports.ExtensionStatisticOperation = {}));\r\n/**\r\n * Stats aggregation type\r\n */\r\nvar ExtensionStatsAggregateType;\r\n(function (ExtensionStatsAggregateType) {\r\n ExtensionStatsAggregateType[ExtensionStatsAggregateType[\"Daily\"] = 1] = \"Daily\";\r\n})(ExtensionStatsAggregateType = exports.ExtensionStatsAggregateType || (exports.ExtensionStatsAggregateType = {}));\r\n/**\r\n * Set of flags that can be associated with a given extension version. These flags apply to a specific version of the extension.\r\n */\r\nvar ExtensionVersionFlags;\r\n(function (ExtensionVersionFlags) {\r\n /**\r\n * No flags exist for this version.\r\n */\r\n ExtensionVersionFlags[ExtensionVersionFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * The Validated flag for a version means the extension version has passed validation and can be used..\r\n */\r\n ExtensionVersionFlags[ExtensionVersionFlags[\"Validated\"] = 1] = \"Validated\";\r\n})(ExtensionVersionFlags = exports.ExtensionVersionFlags || (exports.ExtensionVersionFlags = {}));\r\n/**\r\n * Type of event\r\n */\r\nvar NotificationTemplateType;\r\n(function (NotificationTemplateType) {\r\n /**\r\n * Template type for Review Notification.\r\n */\r\n NotificationTemplateType[NotificationTemplateType[\"ReviewNotification\"] = 1] = \"ReviewNotification\";\r\n /**\r\n * Template type for Qna Notification.\r\n */\r\n NotificationTemplateType[NotificationTemplateType[\"QnaNotification\"] = 2] = \"QnaNotification\";\r\n /**\r\n * Template type for Customer Contact Notification.\r\n */\r\n NotificationTemplateType[NotificationTemplateType[\"CustomerContactNotification\"] = 3] = \"CustomerContactNotification\";\r\n /**\r\n * Template type for Publisher Member Notification.\r\n */\r\n NotificationTemplateType[NotificationTemplateType[\"PublisherMemberUpdateNotification\"] = 4] = \"PublisherMemberUpdateNotification\";\r\n})(NotificationTemplateType = exports.NotificationTemplateType || (exports.NotificationTemplateType = {}));\r\n/**\r\n * PagingDirection is used to define which set direction to move the returned result set based on a previous query.\r\n */\r\nvar PagingDirection;\r\n(function (PagingDirection) {\r\n /**\r\n * Backward will return results from earlier in the resultset.\r\n */\r\n PagingDirection[PagingDirection[\"Backward\"] = 1] = \"Backward\";\r\n /**\r\n * Forward will return results from later in the resultset.\r\n */\r\n PagingDirection[PagingDirection[\"Forward\"] = 2] = \"Forward\";\r\n})(PagingDirection = exports.PagingDirection || (exports.PagingDirection = {}));\r\n/**\r\n * Set of flags that can be associated with a given extension. These flags apply to all versions of the extension and not to a specific version.\r\n */\r\nvar PublishedExtensionFlags;\r\n(function (PublishedExtensionFlags) {\r\n /**\r\n * No flags exist for this extension.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * The Disabled flag for an extension means the extension can't be changed and won't be used by consumers. The disabled flag is managed by the service and can't be supplied by the Extension Developers.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Disabled\"] = 1] = \"Disabled\";\r\n /**\r\n * BuiltIn Extension are available to all Tenants. An explicit registration is not required. This attribute is reserved and can't be supplied by Extension Developers. BuiltIn extensions are by definition Public. There is no need to set the public flag for extensions marked BuiltIn.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"BuiltIn\"] = 2] = \"BuiltIn\";\r\n /**\r\n * This extension has been validated by the service. The extension meets the requirements specified. This attribute is reserved and can't be supplied by the Extension Developers. Validation is a process that ensures that all contributions are well formed. They meet the requirements defined by the contribution type they are extending. Note this attribute will be updated asynchronously as the extension is validated by the developer of the contribution type. There will be restricted access to the extension while this process is performed.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Validated\"] = 4] = \"Validated\";\r\n /**\r\n * Trusted extensions are ones that are given special capabilities. These tend to come from Microsoft and can't be published by the general public. Note: BuiltIn extensions are always trusted.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Trusted\"] = 8] = \"Trusted\";\r\n /**\r\n * The Paid flag indicates that the commerce can be enabled for this extension. Publisher needs to setup Offer/Pricing plan in Azure. If Paid flag is set and a corresponding Offer is not available, the extension will automatically be marked as Preview. If the publisher intends to make the extension Paid in the future, it is mandatory to set the Preview flag. This is currently available only for VSTS extensions only.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Paid\"] = 16] = \"Paid\";\r\n /**\r\n * This extension registration is public, making its visibility open to the public. This means all tenants have the ability to install this extension. Without this flag the extension will be private and will need to be shared with the tenants that can install it.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Public\"] = 256] = \"Public\";\r\n /**\r\n * This extension has multiple versions active at one time and version discovery should be done using the defined \"Version Discovery\" protocol to determine the version available to a specific user or tenant. @TODO: Link to Version Discovery Protocol.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"MultiVersion\"] = 512] = \"MultiVersion\";\r\n /**\r\n * The system flag is reserved, and cant be used by publishers.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"System\"] = 1024] = \"System\";\r\n /**\r\n * The Preview flag indicates that the extension is still under preview (not yet of \"release\" quality). These extensions may be decorated differently in the gallery and may have different policies applied to them.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Preview\"] = 2048] = \"Preview\";\r\n /**\r\n * The Unpublished flag indicates that the extension can't be installed/downloaded. Users who have installed such an extension can continue to use the extension.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Unpublished\"] = 4096] = \"Unpublished\";\r\n /**\r\n * The Trial flag indicates that the extension is in Trial version. The flag is right now being used only with respect to Visual Studio extensions.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Trial\"] = 8192] = \"Trial\";\r\n /**\r\n * The Locked flag indicates that extension has been locked from Marketplace. Further updates/acquisitions are not allowed on the extension until this is present. This should be used along with making the extension private/unpublished.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Locked\"] = 16384] = \"Locked\";\r\n /**\r\n * This flag is set for extensions we want to hide from Marketplace home and search pages. This will be used to override the exposure of builtIn flags.\r\n */\r\n PublishedExtensionFlags[PublishedExtensionFlags[\"Hidden\"] = 32768] = \"Hidden\";\r\n})(PublishedExtensionFlags = exports.PublishedExtensionFlags || (exports.PublishedExtensionFlags = {}));\r\nvar PublisherFlags;\r\n(function (PublisherFlags) {\r\n /**\r\n * This should never be returned, it is used to represent a publisher who's flags haven't changed during update calls.\r\n */\r\n PublisherFlags[PublisherFlags[\"UnChanged\"] = 1073741824] = \"UnChanged\";\r\n /**\r\n * No flags exist for this publisher.\r\n */\r\n PublisherFlags[PublisherFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * The Disabled flag for a publisher means the publisher can't be changed and won't be used by consumers, this extends to extensions owned by the publisher as well. The disabled flag is managed by the service and can't be supplied by the Extension Developers.\r\n */\r\n PublisherFlags[PublisherFlags[\"Disabled\"] = 1] = \"Disabled\";\r\n /**\r\n * A verified publisher is one that Microsoft has done some review of and ensured the publisher meets a set of requirements. The requirements to become a verified publisher are not listed here. They can be found in public documentation (TBD).\r\n */\r\n PublisherFlags[PublisherFlags[\"Verified\"] = 2] = \"Verified\";\r\n /**\r\n * A Certified publisher is one that is Microsoft verified and in addition meets a set of requirements for its published extensions. The requirements to become a certified publisher are not listed here. They can be found in public documentation (TBD).\r\n */\r\n PublisherFlags[PublisherFlags[\"Certified\"] = 4] = \"Certified\";\r\n /**\r\n * This is the set of flags that can't be supplied by the developer and is managed by the service itself.\r\n */\r\n PublisherFlags[PublisherFlags[\"ServiceFlags\"] = 7] = \"ServiceFlags\";\r\n})(PublisherFlags = exports.PublisherFlags || (exports.PublisherFlags = {}));\r\nvar PublisherPermissions;\r\n(function (PublisherPermissions) {\r\n /**\r\n * This gives the bearer the rights to read Publishers and Extensions.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"Read\"] = 1] = \"Read\";\r\n /**\r\n * This gives the bearer the rights to update, delete, and share Extensions (but not the ability to create them).\r\n */\r\n PublisherPermissions[PublisherPermissions[\"UpdateExtension\"] = 2] = \"UpdateExtension\";\r\n /**\r\n * This gives the bearer the rights to create new Publishers at the root of the namespace.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"CreatePublisher\"] = 4] = \"CreatePublisher\";\r\n /**\r\n * This gives the bearer the rights to create new Extensions within a publisher.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"PublishExtension\"] = 8] = \"PublishExtension\";\r\n /**\r\n * Admin gives the bearer the rights to manage restricted attributes of Publishers and Extensions.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"Admin\"] = 16] = \"Admin\";\r\n /**\r\n * TrustedPartner gives the bearer the rights to publish a extensions with restricted capabilities.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"TrustedPartner\"] = 32] = \"TrustedPartner\";\r\n /**\r\n * PrivateRead is another form of read designed to allow higher privilege accessors the ability to read private extensions.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"PrivateRead\"] = 64] = \"PrivateRead\";\r\n /**\r\n * This gives the bearer the rights to delete any extension.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"DeleteExtension\"] = 128] = \"DeleteExtension\";\r\n /**\r\n * This gives the bearer the rights edit the publisher settings.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"EditSettings\"] = 256] = \"EditSettings\";\r\n /**\r\n * This gives the bearer the rights to see all permissions on the publisher.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"ViewPermissions\"] = 512] = \"ViewPermissions\";\r\n /**\r\n * This gives the bearer the rights to assign permissions on the publisher.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"ManagePermissions\"] = 1024] = \"ManagePermissions\";\r\n /**\r\n * This gives the bearer the rights to delete the publisher.\r\n */\r\n PublisherPermissions[PublisherPermissions[\"DeletePublisher\"] = 2048] = \"DeletePublisher\";\r\n})(PublisherPermissions = exports.PublisherPermissions || (exports.PublisherPermissions = {}));\r\n/**\r\n * Set of flags used to define the attributes requested when a publisher is returned. Some API's allow the caller to specify the level of detail needed.\r\n */\r\nvar PublisherQueryFlags;\r\n(function (PublisherQueryFlags) {\r\n /**\r\n * None is used to retrieve only the basic publisher details.\r\n */\r\n PublisherQueryFlags[PublisherQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Is used to include a list of basic extension details for all extensions published by the requested publisher.\r\n */\r\n PublisherQueryFlags[PublisherQueryFlags[\"IncludeExtensions\"] = 1] = \"IncludeExtensions\";\r\n /**\r\n * Is used to include email address of all the users who are marked as owners for the publisher\r\n */\r\n PublisherQueryFlags[PublisherQueryFlags[\"IncludeEmailAddress\"] = 2] = \"IncludeEmailAddress\";\r\n})(PublisherQueryFlags = exports.PublisherQueryFlags || (exports.PublisherQueryFlags = {}));\r\n/**\r\n * Access definition for a RoleAssignment.\r\n */\r\nvar PublisherRoleAccess;\r\n(function (PublisherRoleAccess) {\r\n /**\r\n * Access has been explicitly set.\r\n */\r\n PublisherRoleAccess[PublisherRoleAccess[\"Assigned\"] = 1] = \"Assigned\";\r\n /**\r\n * Access has been inherited from a higher scope.\r\n */\r\n PublisherRoleAccess[PublisherRoleAccess[\"Inherited\"] = 2] = \"Inherited\";\r\n})(PublisherRoleAccess = exports.PublisherRoleAccess || (exports.PublisherRoleAccess = {}));\r\nvar PublisherState;\r\n(function (PublisherState) {\r\n /**\r\n * No state exists for this publisher.\r\n */\r\n PublisherState[PublisherState[\"None\"] = 0] = \"None\";\r\n /**\r\n * This state indicates that publisher has applied for Marketplace verification (via UI) and still not been certified. This state would be reset once the publisher is verified.\r\n */\r\n PublisherState[PublisherState[\"VerificationPending\"] = 1] = \"VerificationPending\";\r\n /**\r\n * This state indicates that publisher has applied for Marketplace certification (via UI) and still not been certified. This state would be reset once the publisher is certified.\r\n */\r\n PublisherState[PublisherState[\"CertificationPending\"] = 2] = \"CertificationPending\";\r\n /**\r\n * This state indicates that publisher had applied for Marketplace certification (via UI) but his/her certification got rejected. This state would be reset if and when the publisher is certified.\r\n */\r\n PublisherState[PublisherState[\"CertificationRejected\"] = 4] = \"CertificationRejected\";\r\n /**\r\n * This state indicates that publisher was certified on the Marketplace, but his/her certification got revoked. This state would never be reset, even after publisher gets re-certified. It would indicate that the publisher certification was revoked at least once.\r\n */\r\n PublisherState[PublisherState[\"CertificationRevoked\"] = 8] = \"CertificationRevoked\";\r\n})(PublisherState = exports.PublisherState || (exports.PublisherState = {}));\r\n/**\r\n * Denotes the status of the QnA Item\r\n */\r\nvar QnAItemStatus;\r\n(function (QnAItemStatus) {\r\n QnAItemStatus[QnAItemStatus[\"None\"] = 0] = \"None\";\r\n /**\r\n * The UserEditable flag indicates whether the item is editable by the logged in user.\r\n */\r\n QnAItemStatus[QnAItemStatus[\"UserEditable\"] = 1] = \"UserEditable\";\r\n /**\r\n * The PublisherCreated flag indicates whether the item has been created by extension publisher.\r\n */\r\n QnAItemStatus[QnAItemStatus[\"PublisherCreated\"] = 2] = \"PublisherCreated\";\r\n})(QnAItemStatus = exports.QnAItemStatus || (exports.QnAItemStatus = {}));\r\n/**\r\n * The status of a REST Api response status.\r\n */\r\nvar RestApiResponseStatus;\r\n(function (RestApiResponseStatus) {\r\n /**\r\n * The operation is completed.\r\n */\r\n RestApiResponseStatus[RestApiResponseStatus[\"Completed\"] = 0] = \"Completed\";\r\n /**\r\n * The operation is failed.\r\n */\r\n RestApiResponseStatus[RestApiResponseStatus[\"Failed\"] = 1] = \"Failed\";\r\n /**\r\n * The operation is in progress.\r\n */\r\n RestApiResponseStatus[RestApiResponseStatus[\"Inprogress\"] = 2] = \"Inprogress\";\r\n /**\r\n * The operation is in skipped.\r\n */\r\n RestApiResponseStatus[RestApiResponseStatus[\"Skipped\"] = 3] = \"Skipped\";\r\n})(RestApiResponseStatus = exports.RestApiResponseStatus || (exports.RestApiResponseStatus = {}));\r\n/**\r\n * Type of operation\r\n */\r\nvar ReviewEventOperation;\r\n(function (ReviewEventOperation) {\r\n ReviewEventOperation[ReviewEventOperation[\"Create\"] = 1] = \"Create\";\r\n ReviewEventOperation[ReviewEventOperation[\"Update\"] = 2] = \"Update\";\r\n ReviewEventOperation[ReviewEventOperation[\"Delete\"] = 3] = \"Delete\";\r\n})(ReviewEventOperation = exports.ReviewEventOperation || (exports.ReviewEventOperation = {}));\r\n/**\r\n * Options to GetReviews query\r\n */\r\nvar ReviewFilterOptions;\r\n(function (ReviewFilterOptions) {\r\n /**\r\n * No filtering, all reviews are returned (default option)\r\n */\r\n ReviewFilterOptions[ReviewFilterOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Filter out review items with empty review text\r\n */\r\n ReviewFilterOptions[ReviewFilterOptions[\"FilterEmptyReviews\"] = 1] = \"FilterEmptyReviews\";\r\n /**\r\n * Filter out review items with empty usernames\r\n */\r\n ReviewFilterOptions[ReviewFilterOptions[\"FilterEmptyUserNames\"] = 2] = \"FilterEmptyUserNames\";\r\n})(ReviewFilterOptions = exports.ReviewFilterOptions || (exports.ReviewFilterOptions = {}));\r\n/**\r\n * Denotes the patch operation type\r\n */\r\nvar ReviewPatchOperation;\r\n(function (ReviewPatchOperation) {\r\n /**\r\n * Flag a review\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"FlagReview\"] = 1] = \"FlagReview\";\r\n /**\r\n * Update an existing review\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"UpdateReview\"] = 2] = \"UpdateReview\";\r\n /**\r\n * Submit a reply for a review\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"ReplyToReview\"] = 3] = \"ReplyToReview\";\r\n /**\r\n * Submit an admin response\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"AdminResponseForReview\"] = 4] = \"AdminResponseForReview\";\r\n /**\r\n * Delete an Admin Reply\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"DeleteAdminReply\"] = 5] = \"DeleteAdminReply\";\r\n /**\r\n * Delete Publisher Reply\r\n */\r\n ReviewPatchOperation[ReviewPatchOperation[\"DeletePublisherReply\"] = 6] = \"DeletePublisherReply\";\r\n})(ReviewPatchOperation = exports.ReviewPatchOperation || (exports.ReviewPatchOperation = {}));\r\n/**\r\n * Type of event\r\n */\r\nvar ReviewResourceType;\r\n(function (ReviewResourceType) {\r\n ReviewResourceType[ReviewResourceType[\"Review\"] = 1] = \"Review\";\r\n ReviewResourceType[ReviewResourceType[\"PublisherReply\"] = 2] = \"PublisherReply\";\r\n ReviewResourceType[ReviewResourceType[\"AdminReply\"] = 3] = \"AdminReply\";\r\n})(ReviewResourceType = exports.ReviewResourceType || (exports.ReviewResourceType = {}));\r\n/**\r\n * Defines the sort order that can be defined for Extensions query\r\n */\r\nvar SortByType;\r\n(function (SortByType) {\r\n /**\r\n * The results will be sorted by relevance in case search query is given, if no search query resutls will be provided as is\r\n */\r\n SortByType[SortByType[\"Relevance\"] = 0] = \"Relevance\";\r\n /**\r\n * The results will be sorted as per Last Updated date of the extensions with recently updated at the top\r\n */\r\n SortByType[SortByType[\"LastUpdatedDate\"] = 1] = \"LastUpdatedDate\";\r\n /**\r\n * Results will be sorted Alphabetically as per the title of the extension\r\n */\r\n SortByType[SortByType[\"Title\"] = 2] = \"Title\";\r\n /**\r\n * Results will be sorted Alphabetically as per Publisher title\r\n */\r\n SortByType[SortByType[\"Publisher\"] = 3] = \"Publisher\";\r\n /**\r\n * Results will be sorted by Install Count\r\n */\r\n SortByType[SortByType[\"InstallCount\"] = 4] = \"InstallCount\";\r\n /**\r\n * The results will be sorted as per Published date of the extensions\r\n */\r\n SortByType[SortByType[\"PublishedDate\"] = 5] = \"PublishedDate\";\r\n /**\r\n * The results will be sorted as per Average ratings of the extensions\r\n */\r\n SortByType[SortByType[\"AverageRating\"] = 6] = \"AverageRating\";\r\n /**\r\n * The results will be sorted as per Trending Daily Score of the extensions\r\n */\r\n SortByType[SortByType[\"TrendingDaily\"] = 7] = \"TrendingDaily\";\r\n /**\r\n * The results will be sorted as per Trending weekly Score of the extensions\r\n */\r\n SortByType[SortByType[\"TrendingWeekly\"] = 8] = \"TrendingWeekly\";\r\n /**\r\n * The results will be sorted as per Trending monthly Score of the extensions\r\n */\r\n SortByType[SortByType[\"TrendingMonthly\"] = 9] = \"TrendingMonthly\";\r\n /**\r\n * The results will be sorted as per ReleaseDate of the extensions (date on which the extension first went public)\r\n */\r\n SortByType[SortByType[\"ReleaseDate\"] = 10] = \"ReleaseDate\";\r\n /**\r\n * The results will be sorted as per Author defined in the VSix/Metadata. If not defined, publisher name is used This is specifically needed by VS IDE, other (new and old) clients are not encouraged to use this\r\n */\r\n SortByType[SortByType[\"Author\"] = 11] = \"Author\";\r\n /**\r\n * The results will be sorted as per Weighted Rating of the extension.\r\n */\r\n SortByType[SortByType[\"WeightedRating\"] = 12] = \"WeightedRating\";\r\n})(SortByType = exports.SortByType || (exports.SortByType = {}));\r\n/**\r\n * Defines the sort order that can be defined for Extensions query\r\n */\r\nvar SortOrderType;\r\n(function (SortOrderType) {\r\n /**\r\n * Results will be sorted in the default order as per the sorting type defined. The default varies for each type, e.g. for Relevance, default is Descending, for Title default is Ascending etc.\r\n */\r\n SortOrderType[SortOrderType[\"Default\"] = 0] = \"Default\";\r\n /**\r\n * The results will be sorted in Ascending order\r\n */\r\n SortOrderType[SortOrderType[\"Ascending\"] = 1] = \"Ascending\";\r\n /**\r\n * The results will be sorted in Descending order\r\n */\r\n SortOrderType[SortOrderType[\"Descending\"] = 2] = \"Descending\";\r\n})(SortOrderType = exports.SortOrderType || (exports.SortOrderType = {}));\r\nexports.TypeInfo = {\r\n AcquisitionAssignmentType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"me\": 1,\r\n \"all\": 2\r\n }\r\n },\r\n AcquisitionOperation: {},\r\n AcquisitionOperationState: {\r\n enumValues: {\r\n \"disallow\": 0,\r\n \"allow\": 1,\r\n \"completed\": 3\r\n }\r\n },\r\n AcquisitionOperationType: {\r\n enumValues: {\r\n \"get\": 0,\r\n \"install\": 1,\r\n \"buy\": 2,\r\n \"try\": 3,\r\n \"request\": 4,\r\n \"none\": 5,\r\n \"purchaseRequest\": 6\r\n }\r\n },\r\n AcquisitionOptions: {},\r\n AzureRestApiResponseModel: {},\r\n Concern: {},\r\n ConcernCategory: {\r\n enumValues: {\r\n \"general\": 1,\r\n \"abusive\": 2,\r\n \"spam\": 4\r\n }\r\n },\r\n CustomerLastContact: {},\r\n CustomerSupportRequest: {},\r\n DraftPatchOperation: {\r\n enumValues: {\r\n \"publish\": 1,\r\n \"cancel\": 2\r\n }\r\n },\r\n DraftStateType: {\r\n enumValues: {\r\n \"unpublished\": 1,\r\n \"published\": 2,\r\n \"cancelled\": 3,\r\n \"error\": 4\r\n }\r\n },\r\n ExtensionAcquisitionRequest: {},\r\n ExtensionDailyStat: {},\r\n ExtensionDailyStats: {},\r\n ExtensionDeploymentTechnology: {\r\n enumValues: {\r\n \"exe\": 1,\r\n \"msi\": 2,\r\n \"vsix\": 3,\r\n \"referralLink\": 4\r\n }\r\n },\r\n ExtensionDraft: {},\r\n ExtensionDraftPatch: {},\r\n ExtensionEvent: {},\r\n ExtensionEvents: {},\r\n ExtensionFilterResult: {},\r\n ExtensionLifecycleEventType: {\r\n enumValues: {\r\n \"uninstall\": 1,\r\n \"install\": 2,\r\n \"review\": 3,\r\n \"acquisition\": 4,\r\n \"sales\": 5,\r\n \"other\": 999\r\n }\r\n },\r\n ExtensionPayload: {},\r\n ExtensionPolicy: {},\r\n ExtensionPolicyFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"private\": 1,\r\n \"public\": 2,\r\n \"preview\": 4,\r\n \"released\": 8,\r\n \"firstParty\": 16,\r\n \"all\": 31\r\n }\r\n },\r\n ExtensionQuery: {},\r\n ExtensionQueryFilterType: {\r\n enumValues: {\r\n \"tag\": 1,\r\n \"displayName\": 2,\r\n \"private\": 3,\r\n \"id\": 4,\r\n \"category\": 5,\r\n \"contributionType\": 6,\r\n \"name\": 7,\r\n \"installationTarget\": 8,\r\n \"featured\": 9,\r\n \"searchText\": 10,\r\n \"featuredInCategory\": 11,\r\n \"excludeWithFlags\": 12,\r\n \"includeWithFlags\": 13,\r\n \"lcid\": 14,\r\n \"installationTargetVersion\": 15,\r\n \"installationTargetVersionRange\": 16,\r\n \"vsixMetadata\": 17,\r\n \"publisherName\": 18,\r\n \"publisherDisplayName\": 19,\r\n \"includeWithPublisherFlags\": 20,\r\n \"organizationSharedWith\": 21\r\n }\r\n },\r\n ExtensionQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeVersions\": 1,\r\n \"includeFiles\": 2,\r\n \"includeCategoryAndTags\": 4,\r\n \"includeSharedAccounts\": 8,\r\n \"includeVersionProperties\": 16,\r\n \"excludeNonValidated\": 32,\r\n \"includeInstallationTargets\": 64,\r\n \"includeAssetUri\": 128,\r\n \"includeStatistics\": 256,\r\n \"includeLatestVersionOnly\": 512,\r\n \"useFallbackAssetUri\": 1024,\r\n \"includeMetadata\": 2048,\r\n \"includeMinimalPayloadForVsIde\": 4096,\r\n \"includeLcids\": 8192,\r\n \"includeSharedOrganizations\": 16384,\r\n \"allAttributes\": 16863\r\n }\r\n },\r\n ExtensionQueryResult: {},\r\n ExtensionStatisticOperation: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"set\": 1,\r\n \"increment\": 2,\r\n \"decrement\": 3,\r\n \"delete\": 4\r\n }\r\n },\r\n ExtensionStatisticUpdate: {},\r\n ExtensionStatsAggregateType: {\r\n enumValues: {\r\n \"daily\": 1\r\n }\r\n },\r\n ExtensionVersion: {},\r\n ExtensionVersionFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"validated\": 1\r\n }\r\n },\r\n NotificationsData: {},\r\n NotificationTemplateType: {\r\n enumValues: {\r\n \"reviewNotification\": 1,\r\n \"qnaNotification\": 2,\r\n \"customerContactNotification\": 3,\r\n \"publisherMemberUpdateNotification\": 4\r\n }\r\n },\r\n PagingDirection: {\r\n enumValues: {\r\n \"backward\": 1,\r\n \"forward\": 2\r\n }\r\n },\r\n PublishedExtension: {},\r\n PublishedExtensionFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"disabled\": 1,\r\n \"builtIn\": 2,\r\n \"validated\": 4,\r\n \"trusted\": 8,\r\n \"paid\": 16,\r\n \"public\": 256,\r\n \"multiVersion\": 512,\r\n \"system\": 1024,\r\n \"preview\": 2048,\r\n \"unpublished\": 4096,\r\n \"trial\": 8192,\r\n \"locked\": 16384,\r\n \"hidden\": 32768\r\n }\r\n },\r\n Publisher: {},\r\n PublisherBase: {},\r\n PublisherFacts: {},\r\n PublisherFilterResult: {},\r\n PublisherFlags: {\r\n enumValues: {\r\n \"unChanged\": 1073741824,\r\n \"none\": 0,\r\n \"disabled\": 1,\r\n \"verified\": 2,\r\n \"certified\": 4,\r\n \"serviceFlags\": 7\r\n }\r\n },\r\n PublisherPermissions: {\r\n enumValues: {\r\n \"read\": 1,\r\n \"updateExtension\": 2,\r\n \"createPublisher\": 4,\r\n \"publishExtension\": 8,\r\n \"admin\": 16,\r\n \"trustedPartner\": 32,\r\n \"privateRead\": 64,\r\n \"deleteExtension\": 128,\r\n \"editSettings\": 256,\r\n \"viewPermissions\": 512,\r\n \"managePermissions\": 1024,\r\n \"deletePublisher\": 2048\r\n }\r\n },\r\n PublisherQuery: {},\r\n PublisherQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeExtensions\": 1,\r\n \"includeEmailAddress\": 2\r\n }\r\n },\r\n PublisherQueryResult: {},\r\n PublisherRoleAccess: {\r\n enumValues: {\r\n \"assigned\": 1,\r\n \"inherited\": 2\r\n }\r\n },\r\n PublisherRoleAssignment: {},\r\n PublisherState: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"verificationPending\": 1,\r\n \"certificationPending\": 2,\r\n \"certificationRejected\": 4,\r\n \"certificationRevoked\": 8\r\n }\r\n },\r\n QnAItem: {},\r\n QnAItemStatus: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"userEditable\": 1,\r\n \"publisherCreated\": 2\r\n }\r\n },\r\n QueryFilter: {},\r\n Question: {},\r\n QuestionsResult: {},\r\n Response: {},\r\n RestApiResponseStatus: {\r\n enumValues: {\r\n \"completed\": 0,\r\n \"failed\": 1,\r\n \"inprogress\": 2,\r\n \"skipped\": 3\r\n }\r\n },\r\n RestApiResponseStatusModel: {},\r\n Review: {},\r\n ReviewEventOperation: {\r\n enumValues: {\r\n \"create\": 1,\r\n \"update\": 2,\r\n \"delete\": 3\r\n }\r\n },\r\n ReviewEventProperties: {},\r\n ReviewFilterOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"filterEmptyReviews\": 1,\r\n \"filterEmptyUserNames\": 2\r\n }\r\n },\r\n ReviewPatch: {},\r\n ReviewPatchOperation: {\r\n enumValues: {\r\n \"flagReview\": 1,\r\n \"updateReview\": 2,\r\n \"replyToReview\": 3,\r\n \"adminResponseForReview\": 4,\r\n \"deleteAdminReply\": 5,\r\n \"deletePublisherReply\": 6\r\n }\r\n },\r\n ReviewReply: {},\r\n ReviewResourceType: {\r\n enumValues: {\r\n \"review\": 1,\r\n \"publisherReply\": 2,\r\n \"adminReply\": 3\r\n }\r\n },\r\n ReviewsResult: {},\r\n SortByType: {\r\n enumValues: {\r\n \"relevance\": 0,\r\n \"lastUpdatedDate\": 1,\r\n \"title\": 2,\r\n \"publisher\": 3,\r\n \"installCount\": 4,\r\n \"publishedDate\": 5,\r\n \"averageRating\": 6,\r\n \"trendingDaily\": 7,\r\n \"trendingWeekly\": 8,\r\n \"trendingMonthly\": 9,\r\n \"releaseDate\": 10,\r\n \"author\": 11,\r\n \"weightedRating\": 12\r\n }\r\n },\r\n SortOrderType: {\r\n enumValues: {\r\n \"default\": 0,\r\n \"ascending\": 1,\r\n \"descending\": 2\r\n }\r\n },\r\n UserExtensionPolicy: {},\r\n UserReportedConcern: {},\r\n};\r\nexports.TypeInfo.AcquisitionOperation.fields = {\r\n operationState: {\r\n enumType: exports.TypeInfo.AcquisitionOperationState\r\n },\r\n operationType: {\r\n enumType: exports.TypeInfo.AcquisitionOperationType\r\n }\r\n};\r\nexports.TypeInfo.AcquisitionOptions.fields = {\r\n defaultOperation: {\r\n typeInfo: exports.TypeInfo.AcquisitionOperation\r\n },\r\n operations: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.AcquisitionOperation\r\n }\r\n};\r\nexports.TypeInfo.AzureRestApiResponseModel.fields = {\r\n operationStatus: {\r\n typeInfo: exports.TypeInfo.RestApiResponseStatusModel\r\n }\r\n};\r\nexports.TypeInfo.Concern.fields = {\r\n category: {\r\n enumType: exports.TypeInfo.ConcernCategory\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.QnAItemStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CustomerLastContact.fields = {\r\n lastContactDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CustomerSupportRequest.fields = {\r\n review: {\r\n typeInfo: exports.TypeInfo.Review\r\n }\r\n};\r\nexports.TypeInfo.ExtensionAcquisitionRequest.fields = {\r\n assignmentType: {\r\n enumType: exports.TypeInfo.AcquisitionAssignmentType\r\n },\r\n operationType: {\r\n enumType: exports.TypeInfo.AcquisitionOperationType\r\n }\r\n};\r\nexports.TypeInfo.ExtensionDailyStat.fields = {\r\n statisticDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ExtensionDailyStats.fields = {\r\n dailyStats: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionDailyStat\r\n }\r\n};\r\nexports.TypeInfo.ExtensionDraft.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n draftState: {\r\n enumType: exports.TypeInfo.DraftStateType\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n payload: {\r\n typeInfo: exports.TypeInfo.ExtensionPayload\r\n }\r\n};\r\nexports.TypeInfo.ExtensionDraftPatch.fields = {\r\n operation: {\r\n enumType: exports.TypeInfo.DraftPatchOperation\r\n }\r\n};\r\nexports.TypeInfo.ExtensionEvent.fields = {\r\n statisticDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ExtensionEvents.fields = {\r\n events: {\r\n isDictionary: true,\r\n dictionaryValueFieldInfo: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionEvent\r\n }\r\n }\r\n};\r\nexports.TypeInfo.ExtensionFilterResult.fields = {\r\n extensions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PublishedExtension\r\n }\r\n};\r\nexports.TypeInfo.ExtensionPayload.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.ExtensionDeploymentTechnology\r\n }\r\n};\r\nexports.TypeInfo.ExtensionPolicy.fields = {\r\n install: {\r\n enumType: exports.TypeInfo.ExtensionPolicyFlags\r\n },\r\n request: {\r\n enumType: exports.TypeInfo.ExtensionPolicyFlags\r\n }\r\n};\r\nexports.TypeInfo.ExtensionQuery.fields = {\r\n filters: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.QueryFilter\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.ExtensionQueryFlags\r\n }\r\n};\r\nexports.TypeInfo.ExtensionQueryResult.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionFilterResult\r\n }\r\n};\r\nexports.TypeInfo.ExtensionStatisticUpdate.fields = {\r\n operation: {\r\n enumType: exports.TypeInfo.ExtensionStatisticOperation\r\n }\r\n};\r\nexports.TypeInfo.ExtensionVersion.fields = {\r\n flags: {\r\n enumType: exports.TypeInfo.ExtensionVersionFlags\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationsData.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.NotificationTemplateType\r\n }\r\n};\r\nexports.TypeInfo.PublishedExtension.fields = {\r\n deploymentType: {\r\n enumType: exports.TypeInfo.ExtensionDeploymentTechnology\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.PublishedExtensionFlags\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n publishedDate: {\r\n isDate: true,\r\n },\r\n publisher: {\r\n typeInfo: exports.TypeInfo.PublisherFacts\r\n },\r\n releaseDate: {\r\n isDate: true,\r\n },\r\n versions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ExtensionVersion\r\n }\r\n};\r\nexports.TypeInfo.Publisher.fields = {\r\n extensions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PublishedExtension\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.PublisherFlags\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.PublisherState\r\n }\r\n};\r\nexports.TypeInfo.PublisherBase.fields = {\r\n extensions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PublishedExtension\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.PublisherFlags\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.PublisherState\r\n }\r\n};\r\nexports.TypeInfo.PublisherFacts.fields = {\r\n flags: {\r\n enumType: exports.TypeInfo.PublisherFlags\r\n }\r\n};\r\nexports.TypeInfo.PublisherFilterResult.fields = {\r\n publishers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Publisher\r\n }\r\n};\r\nexports.TypeInfo.PublisherQuery.fields = {\r\n filters: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.QueryFilter\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.PublisherQueryFlags\r\n }\r\n};\r\nexports.TypeInfo.PublisherQueryResult.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PublisherFilterResult\r\n }\r\n};\r\nexports.TypeInfo.PublisherRoleAssignment.fields = {\r\n access: {\r\n enumType: exports.TypeInfo.PublisherRoleAccess\r\n }\r\n};\r\nexports.TypeInfo.QnAItem.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.QnAItemStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.QueryFilter.fields = {\r\n direction: {\r\n enumType: exports.TypeInfo.PagingDirection\r\n }\r\n};\r\nexports.TypeInfo.Question.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n responses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Response\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.QnAItemStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.QuestionsResult.fields = {\r\n questions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Question\r\n }\r\n};\r\nexports.TypeInfo.Response.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.QnAItemStatus\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.RestApiResponseStatusModel.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.RestApiResponseStatus\r\n }\r\n};\r\nexports.TypeInfo.Review.fields = {\r\n adminReply: {\r\n typeInfo: exports.TypeInfo.ReviewReply\r\n },\r\n reply: {\r\n typeInfo: exports.TypeInfo.ReviewReply\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReviewEventProperties.fields = {\r\n eventOperation: {\r\n enumType: exports.TypeInfo.ReviewEventOperation\r\n },\r\n replyDate: {\r\n isDate: true,\r\n },\r\n resourceType: {\r\n enumType: exports.TypeInfo.ReviewResourceType\r\n },\r\n reviewDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReviewPatch.fields = {\r\n operation: {\r\n enumType: exports.TypeInfo.ReviewPatchOperation\r\n },\r\n reportedConcern: {\r\n typeInfo: exports.TypeInfo.UserReportedConcern\r\n },\r\n reviewItem: {\r\n typeInfo: exports.TypeInfo.Review\r\n }\r\n};\r\nexports.TypeInfo.ReviewReply.fields = {\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReviewsResult.fields = {\r\n reviews: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Review\r\n }\r\n};\r\nexports.TypeInfo.UserExtensionPolicy.fields = {\r\n permissions: {\r\n typeInfo: exports.TypeInfo.ExtensionPolicy\r\n }\r\n};\r\nexports.TypeInfo.UserReportedConcern.fields = {\r\n category: {\r\n enumType: exports.TypeInfo.ConcernCategory\r\n },\r\n submittedDate: {\r\n isDate: true,\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst PolicyInterfaces = require(\"../interfaces/PolicyInterfaces\");\r\nconst TfsCoreInterfaces = require(\"../interfaces/CoreInterfaces\");\r\n/**\r\n * The status of a comment thread.\r\n */\r\nvar CommentThreadStatus;\r\n(function (CommentThreadStatus) {\r\n /**\r\n * The thread status is unknown.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * The thread status is active.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"Active\"] = 1] = \"Active\";\r\n /**\r\n * The thread status is resolved as fixed.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"Fixed\"] = 2] = \"Fixed\";\r\n /**\r\n * The thread status is resolved as won't fix.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"WontFix\"] = 3] = \"WontFix\";\r\n /**\r\n * The thread status is closed.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"Closed\"] = 4] = \"Closed\";\r\n /**\r\n * The thread status is resolved as by design.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"ByDesign\"] = 5] = \"ByDesign\";\r\n /**\r\n * The thread status is pending.\r\n */\r\n CommentThreadStatus[CommentThreadStatus[\"Pending\"] = 6] = \"Pending\";\r\n})(CommentThreadStatus = exports.CommentThreadStatus || (exports.CommentThreadStatus = {}));\r\n/**\r\n * The type of a comment.\r\n */\r\nvar CommentType;\r\n(function (CommentType) {\r\n /**\r\n * The comment type is not known.\r\n */\r\n CommentType[CommentType[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * This is a regular user comment.\r\n */\r\n CommentType[CommentType[\"Text\"] = 1] = \"Text\";\r\n /**\r\n * The comment comes as a result of a code change.\r\n */\r\n CommentType[CommentType[\"CodeChange\"] = 2] = \"CodeChange\";\r\n /**\r\n * The comment represents a system message.\r\n */\r\n CommentType[CommentType[\"System\"] = 3] = \"System\";\r\n})(CommentType = exports.CommentType || (exports.CommentType = {}));\r\n/**\r\n * Current status of the asynchronous operation.\r\n */\r\nvar GitAsyncOperationStatus;\r\n(function (GitAsyncOperationStatus) {\r\n /**\r\n * The operation is waiting in a queue and has not yet started.\r\n */\r\n GitAsyncOperationStatus[GitAsyncOperationStatus[\"Queued\"] = 1] = \"Queued\";\r\n /**\r\n * The operation is currently in progress.\r\n */\r\n GitAsyncOperationStatus[GitAsyncOperationStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The operation has completed.\r\n */\r\n GitAsyncOperationStatus[GitAsyncOperationStatus[\"Completed\"] = 3] = \"Completed\";\r\n /**\r\n * The operation has failed. Check for an error message.\r\n */\r\n GitAsyncOperationStatus[GitAsyncOperationStatus[\"Failed\"] = 4] = \"Failed\";\r\n /**\r\n * The operation has been abandoned.\r\n */\r\n GitAsyncOperationStatus[GitAsyncOperationStatus[\"Abandoned\"] = 5] = \"Abandoned\";\r\n})(GitAsyncOperationStatus = exports.GitAsyncOperationStatus || (exports.GitAsyncOperationStatus = {}));\r\nvar GitAsyncRefOperationFailureStatus;\r\n(function (GitAsyncRefOperationFailureStatus) {\r\n /**\r\n * No status\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"None\"] = 0] = \"None\";\r\n /**\r\n * Indicates that the ref update request could not be completed because the ref name presented in the request was not valid.\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"InvalidRefName\"] = 1] = \"InvalidRefName\";\r\n /**\r\n * The ref update could not be completed because, in case-insensitive mode, the ref name conflicts with an existing, differently-cased ref name.\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"RefNameConflict\"] = 2] = \"RefNameConflict\";\r\n /**\r\n * The ref update request could not be completed because the user lacks the permission to create a branch\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"CreateBranchPermissionRequired\"] = 3] = \"CreateBranchPermissionRequired\";\r\n /**\r\n * The ref update request could not be completed because the user lacks write permissions required to write this ref\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"WritePermissionRequired\"] = 4] = \"WritePermissionRequired\";\r\n /**\r\n * Target branch was deleted after Git async operation started\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"TargetBranchDeleted\"] = 5] = \"TargetBranchDeleted\";\r\n /**\r\n * Git object is too large to materialize into memory\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"GitObjectTooLarge\"] = 6] = \"GitObjectTooLarge\";\r\n /**\r\n * Identity who authorized the operation was not found\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"OperationIndentityNotFound\"] = 7] = \"OperationIndentityNotFound\";\r\n /**\r\n * Async operation was not found\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"AsyncOperationNotFound\"] = 8] = \"AsyncOperationNotFound\";\r\n /**\r\n * Unexpected failure\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"Other\"] = 9] = \"Other\";\r\n /**\r\n * Initiator of async operation has signature with empty name or email\r\n */\r\n GitAsyncRefOperationFailureStatus[GitAsyncRefOperationFailureStatus[\"EmptyCommitterSignature\"] = 10] = \"EmptyCommitterSignature\";\r\n})(GitAsyncRefOperationFailureStatus = exports.GitAsyncRefOperationFailureStatus || (exports.GitAsyncRefOperationFailureStatus = {}));\r\n/**\r\n * The type of a merge conflict.\r\n */\r\nvar GitConflictType;\r\n(function (GitConflictType) {\r\n /**\r\n * No conflict\r\n */\r\n GitConflictType[GitConflictType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Added on source and target; content differs\r\n */\r\n GitConflictType[GitConflictType[\"AddAdd\"] = 1] = \"AddAdd\";\r\n /**\r\n * Added on source and rename destination on target\r\n */\r\n GitConflictType[GitConflictType[\"AddRename\"] = 2] = \"AddRename\";\r\n /**\r\n * Deleted on source and edited on target\r\n */\r\n GitConflictType[GitConflictType[\"DeleteEdit\"] = 3] = \"DeleteEdit\";\r\n /**\r\n * Deleted on source and renamed on target\r\n */\r\n GitConflictType[GitConflictType[\"DeleteRename\"] = 4] = \"DeleteRename\";\r\n /**\r\n * Path is a directory on source and a file on target\r\n */\r\n GitConflictType[GitConflictType[\"DirectoryFile\"] = 5] = \"DirectoryFile\";\r\n /**\r\n * Children of directory which has DirectoryFile or FileDirectory conflict\r\n */\r\n GitConflictType[GitConflictType[\"DirectoryChild\"] = 6] = \"DirectoryChild\";\r\n /**\r\n * Edited on source and deleted on target\r\n */\r\n GitConflictType[GitConflictType[\"EditDelete\"] = 7] = \"EditDelete\";\r\n /**\r\n * Edited on source and target; content differs\r\n */\r\n GitConflictType[GitConflictType[\"EditEdit\"] = 8] = \"EditEdit\";\r\n /**\r\n * Path is a file on source and a directory on target\r\n */\r\n GitConflictType[GitConflictType[\"FileDirectory\"] = 9] = \"FileDirectory\";\r\n /**\r\n * Same file renamed on both source and target; destination paths differ\r\n */\r\n GitConflictType[GitConflictType[\"Rename1to2\"] = 10] = \"Rename1to2\";\r\n /**\r\n * Different files renamed to same destination path on both source and target\r\n */\r\n GitConflictType[GitConflictType[\"Rename2to1\"] = 11] = \"Rename2to1\";\r\n /**\r\n * Rename destination on source and new file on target\r\n */\r\n GitConflictType[GitConflictType[\"RenameAdd\"] = 12] = \"RenameAdd\";\r\n /**\r\n * Renamed on source and deleted on target\r\n */\r\n GitConflictType[GitConflictType[\"RenameDelete\"] = 13] = \"RenameDelete\";\r\n /**\r\n * Rename destination on both source and target; content differs\r\n */\r\n GitConflictType[GitConflictType[\"RenameRename\"] = 14] = \"RenameRename\";\r\n})(GitConflictType = exports.GitConflictType || (exports.GitConflictType = {}));\r\n/**\r\n * Represents the possible outcomes from a request to update a pull request conflict\r\n */\r\nvar GitConflictUpdateStatus;\r\n(function (GitConflictUpdateStatus) {\r\n /**\r\n * Indicates that pull request conflict update request was completed successfully\r\n */\r\n GitConflictUpdateStatus[GitConflictUpdateStatus[\"Succeeded\"] = 0] = \"Succeeded\";\r\n /**\r\n * Indicates that the update request did not fit the expected data contract\r\n */\r\n GitConflictUpdateStatus[GitConflictUpdateStatus[\"BadRequest\"] = 1] = \"BadRequest\";\r\n /**\r\n * Indicates that the requested resolution was not valid\r\n */\r\n GitConflictUpdateStatus[GitConflictUpdateStatus[\"InvalidResolution\"] = 2] = \"InvalidResolution\";\r\n /**\r\n * Indicates that the conflict in the update request was not a supported conflict type\r\n */\r\n GitConflictUpdateStatus[GitConflictUpdateStatus[\"UnsupportedConflictType\"] = 3] = \"UnsupportedConflictType\";\r\n /**\r\n * Indicates that the conflict could not be found\r\n */\r\n GitConflictUpdateStatus[GitConflictUpdateStatus[\"NotFound\"] = 4] = \"NotFound\";\r\n})(GitConflictUpdateStatus = exports.GitConflictUpdateStatus || (exports.GitConflictUpdateStatus = {}));\r\n/**\r\n * Accepted types of version\r\n */\r\nvar GitHistoryMode;\r\n(function (GitHistoryMode) {\r\n /**\r\n * The history mode used by `git log`. This is the default.\r\n */\r\n GitHistoryMode[GitHistoryMode[\"SimplifiedHistory\"] = 0] = \"SimplifiedHistory\";\r\n /**\r\n * The history mode used by `git log --first-parent`\r\n */\r\n GitHistoryMode[GitHistoryMode[\"FirstParent\"] = 1] = \"FirstParent\";\r\n /**\r\n * The history mode used by `git log --full-history`\r\n */\r\n GitHistoryMode[GitHistoryMode[\"FullHistory\"] = 2] = \"FullHistory\";\r\n /**\r\n * The history mode used by `git log --full-history --simplify-merges`\r\n */\r\n GitHistoryMode[GitHistoryMode[\"FullHistorySimplifyMerges\"] = 3] = \"FullHistorySimplifyMerges\";\r\n})(GitHistoryMode = exports.GitHistoryMode || (exports.GitHistoryMode = {}));\r\nvar GitObjectType;\r\n(function (GitObjectType) {\r\n GitObjectType[GitObjectType[\"Bad\"] = 0] = \"Bad\";\r\n GitObjectType[GitObjectType[\"Commit\"] = 1] = \"Commit\";\r\n GitObjectType[GitObjectType[\"Tree\"] = 2] = \"Tree\";\r\n GitObjectType[GitObjectType[\"Blob\"] = 3] = \"Blob\";\r\n GitObjectType[GitObjectType[\"Tag\"] = 4] = \"Tag\";\r\n GitObjectType[GitObjectType[\"Ext2\"] = 5] = \"Ext2\";\r\n GitObjectType[GitObjectType[\"OfsDelta\"] = 6] = \"OfsDelta\";\r\n GitObjectType[GitObjectType[\"RefDelta\"] = 7] = \"RefDelta\";\r\n})(GitObjectType = exports.GitObjectType || (exports.GitObjectType = {}));\r\nvar GitPathActions;\r\n(function (GitPathActions) {\r\n GitPathActions[GitPathActions[\"None\"] = 0] = \"None\";\r\n GitPathActions[GitPathActions[\"Edit\"] = 1] = \"Edit\";\r\n GitPathActions[GitPathActions[\"Delete\"] = 2] = \"Delete\";\r\n GitPathActions[GitPathActions[\"Add\"] = 3] = \"Add\";\r\n GitPathActions[GitPathActions[\"Rename\"] = 4] = \"Rename\";\r\n})(GitPathActions = exports.GitPathActions || (exports.GitPathActions = {}));\r\n/**\r\n * Enumeration of possible merge strategies which can be used to complete a pull request.\r\n */\r\nvar GitPullRequestMergeStrategy;\r\n(function (GitPullRequestMergeStrategy) {\r\n /**\r\n * A two-parent, no-fast-forward merge. The source branch is unchanged. This is the default behavior.\r\n */\r\n GitPullRequestMergeStrategy[GitPullRequestMergeStrategy[\"NoFastForward\"] = 1] = \"NoFastForward\";\r\n /**\r\n * Put all changes from the pull request into a single-parent commit.\r\n */\r\n GitPullRequestMergeStrategy[GitPullRequestMergeStrategy[\"Squash\"] = 2] = \"Squash\";\r\n /**\r\n * Rebase the source branch on top of the target branch HEAD commit, and fast-forward the target branch. The source branch is updated during the rebase operation.\r\n */\r\n GitPullRequestMergeStrategy[GitPullRequestMergeStrategy[\"Rebase\"] = 3] = \"Rebase\";\r\n /**\r\n * Rebase the source branch on top of the target branch HEAD commit, and create a two-parent, no-fast-forward merge. The source branch is updated during the rebase operation.\r\n */\r\n GitPullRequestMergeStrategy[GitPullRequestMergeStrategy[\"RebaseMerge\"] = 4] = \"RebaseMerge\";\r\n})(GitPullRequestMergeStrategy = exports.GitPullRequestMergeStrategy || (exports.GitPullRequestMergeStrategy = {}));\r\n/**\r\n * Accepted types of pull request queries.\r\n */\r\nvar GitPullRequestQueryType;\r\n(function (GitPullRequestQueryType) {\r\n /**\r\n * No query type set.\r\n */\r\n GitPullRequestQueryType[GitPullRequestQueryType[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * Search for pull requests that created the supplied merge commits.\r\n */\r\n GitPullRequestQueryType[GitPullRequestQueryType[\"LastMergeCommit\"] = 1] = \"LastMergeCommit\";\r\n /**\r\n * Search for pull requests that merged the supplied commits.\r\n */\r\n GitPullRequestQueryType[GitPullRequestQueryType[\"Commit\"] = 2] = \"Commit\";\r\n})(GitPullRequestQueryType = exports.GitPullRequestQueryType || (exports.GitPullRequestQueryType = {}));\r\nvar GitPullRequestReviewFileType;\r\n(function (GitPullRequestReviewFileType) {\r\n GitPullRequestReviewFileType[GitPullRequestReviewFileType[\"ChangeEntry\"] = 0] = \"ChangeEntry\";\r\n GitPullRequestReviewFileType[GitPullRequestReviewFileType[\"Attachment\"] = 1] = \"Attachment\";\r\n})(GitPullRequestReviewFileType = exports.GitPullRequestReviewFileType || (exports.GitPullRequestReviewFileType = {}));\r\n/**\r\n * Search type on ref name\r\n */\r\nvar GitRefSearchType;\r\n(function (GitRefSearchType) {\r\n GitRefSearchType[GitRefSearchType[\"Exact\"] = 0] = \"Exact\";\r\n GitRefSearchType[GitRefSearchType[\"StartsWith\"] = 1] = \"StartsWith\";\r\n GitRefSearchType[GitRefSearchType[\"Contains\"] = 2] = \"Contains\";\r\n})(GitRefSearchType = exports.GitRefSearchType || (exports.GitRefSearchType = {}));\r\n/**\r\n * Enumerates the modes under which ref updates can be written to their repositories.\r\n */\r\nvar GitRefUpdateMode;\r\n(function (GitRefUpdateMode) {\r\n /**\r\n * Indicates the Git protocol model where any refs that can be updated will be updated, but any failures will not prevent other updates from succeeding.\r\n */\r\n GitRefUpdateMode[GitRefUpdateMode[\"BestEffort\"] = 0] = \"BestEffort\";\r\n /**\r\n * Indicates that all ref updates must succeed or none will succeed. All ref updates will be atomically written. If any failure is encountered, previously successful updates will be rolled back and the entire operation will fail.\r\n */\r\n GitRefUpdateMode[GitRefUpdateMode[\"AllOrNone\"] = 1] = \"AllOrNone\";\r\n})(GitRefUpdateMode = exports.GitRefUpdateMode || (exports.GitRefUpdateMode = {}));\r\n/**\r\n * Represents the possible outcomes from a request to update a ref in a repository.\r\n */\r\nvar GitRefUpdateStatus;\r\n(function (GitRefUpdateStatus) {\r\n /**\r\n * Indicates that the ref update request was completed successfully.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"Succeeded\"] = 0] = \"Succeeded\";\r\n /**\r\n * Indicates that the ref update request could not be completed because part of the graph would be disconnected by this change, and the caller does not have ForcePush permission on the repository.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"ForcePushRequired\"] = 1] = \"ForcePushRequired\";\r\n /**\r\n * Indicates that the ref update request could not be completed because the old object ID presented in the request was not the object ID of the ref when the database attempted the update. The most likely scenario is that the caller lost a race to update the ref.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"StaleOldObjectId\"] = 2] = \"StaleOldObjectId\";\r\n /**\r\n * Indicates that the ref update request could not be completed because the ref name presented in the request was not valid.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"InvalidRefName\"] = 3] = \"InvalidRefName\";\r\n /**\r\n * The request was not processed\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"Unprocessed\"] = 4] = \"Unprocessed\";\r\n /**\r\n * The ref update request could not be completed because the new object ID for the ref could not be resolved to a commit object (potentially through any number of tags)\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"UnresolvableToCommit\"] = 5] = \"UnresolvableToCommit\";\r\n /**\r\n * The ref update request could not be completed because the user lacks write permissions required to write this ref\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"WritePermissionRequired\"] = 6] = \"WritePermissionRequired\";\r\n /**\r\n * The ref update request could not be completed because the user lacks note creation permissions required to write this note\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"ManageNotePermissionRequired\"] = 7] = \"ManageNotePermissionRequired\";\r\n /**\r\n * The ref update request could not be completed because the user lacks the permission to create a branch\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"CreateBranchPermissionRequired\"] = 8] = \"CreateBranchPermissionRequired\";\r\n /**\r\n * The ref update request could not be completed because the user lacks the permission to create a tag\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"CreateTagPermissionRequired\"] = 9] = \"CreateTagPermissionRequired\";\r\n /**\r\n * The ref update could not be completed because it was rejected by the plugin.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"RejectedByPlugin\"] = 10] = \"RejectedByPlugin\";\r\n /**\r\n * The ref update could not be completed because the ref is locked by another user.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"Locked\"] = 11] = \"Locked\";\r\n /**\r\n * The ref update could not be completed because, in case-insensitive mode, the ref name conflicts with an existing, differently-cased ref name.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"RefNameConflict\"] = 12] = \"RefNameConflict\";\r\n /**\r\n * The ref update could not be completed because it was rejected by policy.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"RejectedByPolicy\"] = 13] = \"RejectedByPolicy\";\r\n /**\r\n * Indicates that the ref update request was completed successfully, but the ref doesn't actually exist so no changes were made. This should only happen during deletes.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"SucceededNonExistentRef\"] = 14] = \"SucceededNonExistentRef\";\r\n /**\r\n * Indicates that the ref update request was completed successfully, but the passed-in ref was corrupt - as in, the old object ID was bad. This should only happen during deletes.\r\n */\r\n GitRefUpdateStatus[GitRefUpdateStatus[\"SucceededCorruptRef\"] = 15] = \"SucceededCorruptRef\";\r\n})(GitRefUpdateStatus = exports.GitRefUpdateStatus || (exports.GitRefUpdateStatus = {}));\r\n/**\r\n * The type of a merge conflict.\r\n */\r\nvar GitResolutionError;\r\n(function (GitResolutionError) {\r\n /**\r\n * No error\r\n */\r\n GitResolutionError[GitResolutionError[\"None\"] = 0] = \"None\";\r\n /**\r\n * User set a blob id for resolving a content merge, but blob was not found in repo during application\r\n */\r\n GitResolutionError[GitResolutionError[\"MergeContentNotFound\"] = 1] = \"MergeContentNotFound\";\r\n /**\r\n * Attempted to resolve a conflict by moving a file to another path, but path was already in use\r\n */\r\n GitResolutionError[GitResolutionError[\"PathInUse\"] = 2] = \"PathInUse\";\r\n /**\r\n * No error\r\n */\r\n GitResolutionError[GitResolutionError[\"InvalidPath\"] = 3] = \"InvalidPath\";\r\n /**\r\n * GitResolutionAction was set to an unrecognized value\r\n */\r\n GitResolutionError[GitResolutionError[\"UnknownAction\"] = 4] = \"UnknownAction\";\r\n /**\r\n * GitResolutionMergeType was set to an unrecognized value\r\n */\r\n GitResolutionError[GitResolutionError[\"UnknownMergeType\"] = 5] = \"UnknownMergeType\";\r\n /**\r\n * Any error for which a more specific code doesn't apply\r\n */\r\n GitResolutionError[GitResolutionError[\"OtherError\"] = 255] = \"OtherError\";\r\n})(GitResolutionError = exports.GitResolutionError || (exports.GitResolutionError = {}));\r\nvar GitResolutionMergeType;\r\n(function (GitResolutionMergeType) {\r\n GitResolutionMergeType[GitResolutionMergeType[\"Undecided\"] = 0] = \"Undecided\";\r\n GitResolutionMergeType[GitResolutionMergeType[\"TakeSourceContent\"] = 1] = \"TakeSourceContent\";\r\n GitResolutionMergeType[GitResolutionMergeType[\"TakeTargetContent\"] = 2] = \"TakeTargetContent\";\r\n GitResolutionMergeType[GitResolutionMergeType[\"AutoMerged\"] = 3] = \"AutoMerged\";\r\n GitResolutionMergeType[GitResolutionMergeType[\"UserMerged\"] = 4] = \"UserMerged\";\r\n})(GitResolutionMergeType = exports.GitResolutionMergeType || (exports.GitResolutionMergeType = {}));\r\nvar GitResolutionPathConflictAction;\r\n(function (GitResolutionPathConflictAction) {\r\n GitResolutionPathConflictAction[GitResolutionPathConflictAction[\"Undecided\"] = 0] = \"Undecided\";\r\n GitResolutionPathConflictAction[GitResolutionPathConflictAction[\"KeepSourceRenameTarget\"] = 1] = \"KeepSourceRenameTarget\";\r\n GitResolutionPathConflictAction[GitResolutionPathConflictAction[\"KeepSourceDeleteTarget\"] = 2] = \"KeepSourceDeleteTarget\";\r\n GitResolutionPathConflictAction[GitResolutionPathConflictAction[\"KeepTargetRenameSource\"] = 3] = \"KeepTargetRenameSource\";\r\n GitResolutionPathConflictAction[GitResolutionPathConflictAction[\"KeepTargetDeleteSource\"] = 4] = \"KeepTargetDeleteSource\";\r\n})(GitResolutionPathConflictAction = exports.GitResolutionPathConflictAction || (exports.GitResolutionPathConflictAction = {}));\r\nvar GitResolutionRename1to2Action;\r\n(function (GitResolutionRename1to2Action) {\r\n GitResolutionRename1to2Action[GitResolutionRename1to2Action[\"Undecided\"] = 0] = \"Undecided\";\r\n GitResolutionRename1to2Action[GitResolutionRename1to2Action[\"KeepSourcePath\"] = 1] = \"KeepSourcePath\";\r\n GitResolutionRename1to2Action[GitResolutionRename1to2Action[\"KeepTargetPath\"] = 2] = \"KeepTargetPath\";\r\n GitResolutionRename1to2Action[GitResolutionRename1to2Action[\"KeepBothFiles\"] = 3] = \"KeepBothFiles\";\r\n})(GitResolutionRename1to2Action = exports.GitResolutionRename1to2Action || (exports.GitResolutionRename1to2Action = {}));\r\n/**\r\n * Resolution status of a conflict.\r\n */\r\nvar GitResolutionStatus;\r\n(function (GitResolutionStatus) {\r\n GitResolutionStatus[GitResolutionStatus[\"Unresolved\"] = 0] = \"Unresolved\";\r\n GitResolutionStatus[GitResolutionStatus[\"PartiallyResolved\"] = 1] = \"PartiallyResolved\";\r\n GitResolutionStatus[GitResolutionStatus[\"Resolved\"] = 2] = \"Resolved\";\r\n})(GitResolutionStatus = exports.GitResolutionStatus || (exports.GitResolutionStatus = {}));\r\nvar GitResolutionWhichAction;\r\n(function (GitResolutionWhichAction) {\r\n GitResolutionWhichAction[GitResolutionWhichAction[\"Undecided\"] = 0] = \"Undecided\";\r\n GitResolutionWhichAction[GitResolutionWhichAction[\"PickSourceAction\"] = 1] = \"PickSourceAction\";\r\n GitResolutionWhichAction[GitResolutionWhichAction[\"PickTargetAction\"] = 2] = \"PickTargetAction\";\r\n})(GitResolutionWhichAction = exports.GitResolutionWhichAction || (exports.GitResolutionWhichAction = {}));\r\n/**\r\n * State of the status.\r\n */\r\nvar GitStatusState;\r\n(function (GitStatusState) {\r\n /**\r\n * Status state not set. Default state.\r\n */\r\n GitStatusState[GitStatusState[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * Status pending.\r\n */\r\n GitStatusState[GitStatusState[\"Pending\"] = 1] = \"Pending\";\r\n /**\r\n * Status succeeded.\r\n */\r\n GitStatusState[GitStatusState[\"Succeeded\"] = 2] = \"Succeeded\";\r\n /**\r\n * Status failed.\r\n */\r\n GitStatusState[GitStatusState[\"Failed\"] = 3] = \"Failed\";\r\n /**\r\n * Status with an error.\r\n */\r\n GitStatusState[GitStatusState[\"Error\"] = 4] = \"Error\";\r\n /**\r\n * Status is not applicable to the target object.\r\n */\r\n GitStatusState[GitStatusState[\"NotApplicable\"] = 5] = \"NotApplicable\";\r\n})(GitStatusState = exports.GitStatusState || (exports.GitStatusState = {}));\r\n/**\r\n * Accepted types of version options\r\n */\r\nvar GitVersionOptions;\r\n(function (GitVersionOptions) {\r\n /**\r\n * Not specified\r\n */\r\n GitVersionOptions[GitVersionOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Commit that changed item prior to the current version\r\n */\r\n GitVersionOptions[GitVersionOptions[\"PreviousChange\"] = 1] = \"PreviousChange\";\r\n /**\r\n * First parent of commit (HEAD^)\r\n */\r\n GitVersionOptions[GitVersionOptions[\"FirstParent\"] = 2] = \"FirstParent\";\r\n})(GitVersionOptions = exports.GitVersionOptions || (exports.GitVersionOptions = {}));\r\n/**\r\n * Accepted types of version\r\n */\r\nvar GitVersionType;\r\n(function (GitVersionType) {\r\n /**\r\n * Interpret the version as a branch name\r\n */\r\n GitVersionType[GitVersionType[\"Branch\"] = 0] = \"Branch\";\r\n /**\r\n * Interpret the version as a tag name\r\n */\r\n GitVersionType[GitVersionType[\"Tag\"] = 1] = \"Tag\";\r\n /**\r\n * Interpret the version as a commit ID (SHA1)\r\n */\r\n GitVersionType[GitVersionType[\"Commit\"] = 2] = \"Commit\";\r\n})(GitVersionType = exports.GitVersionType || (exports.GitVersionType = {}));\r\nvar ItemContentType;\r\n(function (ItemContentType) {\r\n ItemContentType[ItemContentType[\"RawText\"] = 0] = \"RawText\";\r\n ItemContentType[ItemContentType[\"Base64Encoded\"] = 1] = \"Base64Encoded\";\r\n})(ItemContentType = exports.ItemContentType || (exports.ItemContentType = {}));\r\n/**\r\n * The reason for which the pull request iteration was created.\r\n */\r\nvar IterationReason;\r\n(function (IterationReason) {\r\n IterationReason[IterationReason[\"Push\"] = 0] = \"Push\";\r\n IterationReason[IterationReason[\"ForcePush\"] = 1] = \"ForcePush\";\r\n IterationReason[IterationReason[\"Create\"] = 2] = \"Create\";\r\n IterationReason[IterationReason[\"Rebase\"] = 4] = \"Rebase\";\r\n IterationReason[IterationReason[\"Unknown\"] = 8] = \"Unknown\";\r\n IterationReason[IterationReason[\"Retarget\"] = 16] = \"Retarget\";\r\n})(IterationReason = exports.IterationReason || (exports.IterationReason = {}));\r\n/**\r\n * Type of change for a line diff block\r\n */\r\nvar LineDiffBlockChangeType;\r\n(function (LineDiffBlockChangeType) {\r\n /**\r\n * No change - both the blocks are identical\r\n */\r\n LineDiffBlockChangeType[LineDiffBlockChangeType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Lines were added to the block in the modified file\r\n */\r\n LineDiffBlockChangeType[LineDiffBlockChangeType[\"Add\"] = 1] = \"Add\";\r\n /**\r\n * Lines were deleted from the block in the original file\r\n */\r\n LineDiffBlockChangeType[LineDiffBlockChangeType[\"Delete\"] = 2] = \"Delete\";\r\n /**\r\n * Lines were modified\r\n */\r\n LineDiffBlockChangeType[LineDiffBlockChangeType[\"Edit\"] = 3] = \"Edit\";\r\n})(LineDiffBlockChangeType = exports.LineDiffBlockChangeType || (exports.LineDiffBlockChangeType = {}));\r\n/**\r\n * The status of a pull request merge.\r\n */\r\nvar PullRequestAsyncStatus;\r\n(function (PullRequestAsyncStatus) {\r\n /**\r\n * Status is not set. Default state.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * Pull request merge is queued.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"Queued\"] = 1] = \"Queued\";\r\n /**\r\n * Pull request merge failed due to conflicts.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"Conflicts\"] = 2] = \"Conflicts\";\r\n /**\r\n * Pull request merge succeeded.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"Succeeded\"] = 3] = \"Succeeded\";\r\n /**\r\n * Pull request merge rejected by policy.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"RejectedByPolicy\"] = 4] = \"RejectedByPolicy\";\r\n /**\r\n * Pull request merge failed.\r\n */\r\n PullRequestAsyncStatus[PullRequestAsyncStatus[\"Failure\"] = 5] = \"Failure\";\r\n})(PullRequestAsyncStatus = exports.PullRequestAsyncStatus || (exports.PullRequestAsyncStatus = {}));\r\n/**\r\n * The specific type of a pull request merge failure.\r\n */\r\nvar PullRequestMergeFailureType;\r\n(function (PullRequestMergeFailureType) {\r\n /**\r\n * Type is not set. Default type.\r\n */\r\n PullRequestMergeFailureType[PullRequestMergeFailureType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Pull request merge failure type unknown.\r\n */\r\n PullRequestMergeFailureType[PullRequestMergeFailureType[\"Unknown\"] = 1] = \"Unknown\";\r\n /**\r\n * Pull request merge failed due to case mismatch.\r\n */\r\n PullRequestMergeFailureType[PullRequestMergeFailureType[\"CaseSensitive\"] = 2] = \"CaseSensitive\";\r\n /**\r\n * Pull request merge failed due to an object being too large.\r\n */\r\n PullRequestMergeFailureType[PullRequestMergeFailureType[\"ObjectTooLarge\"] = 3] = \"ObjectTooLarge\";\r\n})(PullRequestMergeFailureType = exports.PullRequestMergeFailureType || (exports.PullRequestMergeFailureType = {}));\r\n/**\r\n * Status of a pull request.\r\n */\r\nvar PullRequestStatus;\r\n(function (PullRequestStatus) {\r\n /**\r\n * Status not set. Default state.\r\n */\r\n PullRequestStatus[PullRequestStatus[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * Pull request is active.\r\n */\r\n PullRequestStatus[PullRequestStatus[\"Active\"] = 1] = \"Active\";\r\n /**\r\n * Pull request is abandoned.\r\n */\r\n PullRequestStatus[PullRequestStatus[\"Abandoned\"] = 2] = \"Abandoned\";\r\n /**\r\n * Pull request is completed.\r\n */\r\n PullRequestStatus[PullRequestStatus[\"Completed\"] = 3] = \"Completed\";\r\n /**\r\n * Used in pull request search criteria to include all statuses.\r\n */\r\n PullRequestStatus[PullRequestStatus[\"All\"] = 4] = \"All\";\r\n})(PullRequestStatus = exports.PullRequestStatus || (exports.PullRequestStatus = {}));\r\nvar RefFavoriteType;\r\n(function (RefFavoriteType) {\r\n RefFavoriteType[RefFavoriteType[\"Invalid\"] = 0] = \"Invalid\";\r\n RefFavoriteType[RefFavoriteType[\"Folder\"] = 1] = \"Folder\";\r\n RefFavoriteType[RefFavoriteType[\"Ref\"] = 2] = \"Ref\";\r\n})(RefFavoriteType = exports.RefFavoriteType || (exports.RefFavoriteType = {}));\r\n/**\r\n * Enumeration that represents the types of IDEs supported.\r\n */\r\nvar SupportedIdeType;\r\n(function (SupportedIdeType) {\r\n SupportedIdeType[SupportedIdeType[\"Unknown\"] = 0] = \"Unknown\";\r\n SupportedIdeType[SupportedIdeType[\"AndroidStudio\"] = 1] = \"AndroidStudio\";\r\n SupportedIdeType[SupportedIdeType[\"AppCode\"] = 2] = \"AppCode\";\r\n SupportedIdeType[SupportedIdeType[\"CLion\"] = 3] = \"CLion\";\r\n SupportedIdeType[SupportedIdeType[\"DataGrip\"] = 4] = \"DataGrip\";\r\n SupportedIdeType[SupportedIdeType[\"Eclipse\"] = 13] = \"Eclipse\";\r\n SupportedIdeType[SupportedIdeType[\"IntelliJ\"] = 5] = \"IntelliJ\";\r\n SupportedIdeType[SupportedIdeType[\"MPS\"] = 6] = \"MPS\";\r\n SupportedIdeType[SupportedIdeType[\"PhpStorm\"] = 7] = \"PhpStorm\";\r\n SupportedIdeType[SupportedIdeType[\"PyCharm\"] = 8] = \"PyCharm\";\r\n SupportedIdeType[SupportedIdeType[\"RubyMine\"] = 9] = \"RubyMine\";\r\n SupportedIdeType[SupportedIdeType[\"Tower\"] = 10] = \"Tower\";\r\n SupportedIdeType[SupportedIdeType[\"VisualStudio\"] = 11] = \"VisualStudio\";\r\n SupportedIdeType[SupportedIdeType[\"VSCode\"] = 14] = \"VSCode\";\r\n SupportedIdeType[SupportedIdeType[\"WebStorm\"] = 12] = \"WebStorm\";\r\n})(SupportedIdeType = exports.SupportedIdeType || (exports.SupportedIdeType = {}));\r\n/**\r\n * Options for Version handling.\r\n */\r\nvar TfvcVersionOption;\r\n(function (TfvcVersionOption) {\r\n /**\r\n * None.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"None\"] = 0] = \"None\";\r\n /**\r\n * Return the previous version.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"Previous\"] = 1] = \"Previous\";\r\n /**\r\n * Only usuable with versiontype MergeSource and integer versions, uses RenameSource identifier instead of Merge identifier.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"UseRename\"] = 2] = \"UseRename\";\r\n})(TfvcVersionOption = exports.TfvcVersionOption || (exports.TfvcVersionOption = {}));\r\n/**\r\n * Type of Version object\r\n */\r\nvar TfvcVersionType;\r\n(function (TfvcVersionType) {\r\n /**\r\n * Version is treated as a ChangesetId.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Version is treated as a ChangesetId.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Changeset\"] = 1] = \"Changeset\";\r\n /**\r\n * Version is treated as a Shelveset name and owner.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Shelveset\"] = 2] = \"Shelveset\";\r\n /**\r\n * Version is treated as a Change.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Change\"] = 3] = \"Change\";\r\n /**\r\n * Version is treated as a Date.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Date\"] = 4] = \"Date\";\r\n /**\r\n * If Version is defined the Latest of that Version will be used, if no version is defined the latest ChangesetId will be used.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Latest\"] = 5] = \"Latest\";\r\n /**\r\n * Version will be treated as a Tip, if no version is defined latest will be used.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Tip\"] = 6] = \"Tip\";\r\n /**\r\n * Version will be treated as a MergeSource.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"MergeSource\"] = 7] = \"MergeSource\";\r\n})(TfvcVersionType = exports.TfvcVersionType || (exports.TfvcVersionType = {}));\r\nvar VersionControlChangeType;\r\n(function (VersionControlChangeType) {\r\n VersionControlChangeType[VersionControlChangeType[\"None\"] = 0] = \"None\";\r\n VersionControlChangeType[VersionControlChangeType[\"Add\"] = 1] = \"Add\";\r\n VersionControlChangeType[VersionControlChangeType[\"Edit\"] = 2] = \"Edit\";\r\n VersionControlChangeType[VersionControlChangeType[\"Encoding\"] = 4] = \"Encoding\";\r\n VersionControlChangeType[VersionControlChangeType[\"Rename\"] = 8] = \"Rename\";\r\n VersionControlChangeType[VersionControlChangeType[\"Delete\"] = 16] = \"Delete\";\r\n VersionControlChangeType[VersionControlChangeType[\"Undelete\"] = 32] = \"Undelete\";\r\n VersionControlChangeType[VersionControlChangeType[\"Branch\"] = 64] = \"Branch\";\r\n VersionControlChangeType[VersionControlChangeType[\"Merge\"] = 128] = \"Merge\";\r\n VersionControlChangeType[VersionControlChangeType[\"Lock\"] = 256] = \"Lock\";\r\n VersionControlChangeType[VersionControlChangeType[\"Rollback\"] = 512] = \"Rollback\";\r\n VersionControlChangeType[VersionControlChangeType[\"SourceRename\"] = 1024] = \"SourceRename\";\r\n VersionControlChangeType[VersionControlChangeType[\"TargetRename\"] = 2048] = \"TargetRename\";\r\n VersionControlChangeType[VersionControlChangeType[\"Property\"] = 4096] = \"Property\";\r\n VersionControlChangeType[VersionControlChangeType[\"All\"] = 8191] = \"All\";\r\n})(VersionControlChangeType = exports.VersionControlChangeType || (exports.VersionControlChangeType = {}));\r\nvar VersionControlRecursionType;\r\n(function (VersionControlRecursionType) {\r\n /**\r\n * Only return the specified item.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Return the specified item and its direct children.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"OneLevel\"] = 1] = \"OneLevel\";\r\n /**\r\n * Return the specified item and its direct children, as well as recursive chains of nested child folders that only contain a single folder.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"OneLevelPlusNestedEmptyFolders\"] = 4] = \"OneLevelPlusNestedEmptyFolders\";\r\n /**\r\n * Return specified item and all descendants\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"Full\"] = 120] = \"Full\";\r\n})(VersionControlRecursionType = exports.VersionControlRecursionType || (exports.VersionControlRecursionType = {}));\r\nexports.TypeInfo = {\r\n Attachment: {},\r\n Change: {},\r\n ChangeList: {},\r\n Comment: {},\r\n CommentThread: {},\r\n CommentThreadStatus: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"active\": 1,\r\n \"fixed\": 2,\r\n \"wontFix\": 3,\r\n \"closed\": 4,\r\n \"byDesign\": 5,\r\n \"pending\": 6\r\n }\r\n },\r\n CommentType: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"text\": 1,\r\n \"codeChange\": 2,\r\n \"system\": 3\r\n }\r\n },\r\n FileDiff: {},\r\n GitAnnotatedTag: {},\r\n GitAsyncOperationStatus: {\r\n enumValues: {\r\n \"queued\": 1,\r\n \"inProgress\": 2,\r\n \"completed\": 3,\r\n \"failed\": 4,\r\n \"abandoned\": 5\r\n }\r\n },\r\n GitAsyncRefOperation: {},\r\n GitAsyncRefOperationDetail: {},\r\n GitAsyncRefOperationFailureStatus: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"invalidRefName\": 1,\r\n \"refNameConflict\": 2,\r\n \"createBranchPermissionRequired\": 3,\r\n \"writePermissionRequired\": 4,\r\n \"targetBranchDeleted\": 5,\r\n \"gitObjectTooLarge\": 6,\r\n \"operationIndentityNotFound\": 7,\r\n \"asyncOperationNotFound\": 8,\r\n \"other\": 9,\r\n \"emptyCommitterSignature\": 10\r\n }\r\n },\r\n GitAsyncRefOperationParameters: {},\r\n GitAsyncRefOperationSource: {},\r\n GitBaseVersionDescriptor: {},\r\n GitBranchStats: {},\r\n GitChange: {},\r\n GitCherryPick: {},\r\n GitCommit: {},\r\n GitCommitChanges: {},\r\n GitCommitDiffs: {},\r\n GitCommitRef: {},\r\n GitCommitToCreate: {},\r\n GitConflict: {},\r\n GitConflictAddAdd: {},\r\n GitConflictAddRename: {},\r\n GitConflictDeleteEdit: {},\r\n GitConflictDeleteRename: {},\r\n GitConflictDirectoryFile: {},\r\n GitConflictEditDelete: {},\r\n GitConflictEditEdit: {},\r\n GitConflictFileDirectory: {},\r\n GitConflictRename1to2: {},\r\n GitConflictRename2to1: {},\r\n GitConflictRenameAdd: {},\r\n GitConflictRenameDelete: {},\r\n GitConflictRenameRename: {},\r\n GitConflictType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"addAdd\": 1,\r\n \"addRename\": 2,\r\n \"deleteEdit\": 3,\r\n \"deleteRename\": 4,\r\n \"directoryFile\": 5,\r\n \"directoryChild\": 6,\r\n \"editDelete\": 7,\r\n \"editEdit\": 8,\r\n \"fileDirectory\": 9,\r\n \"rename1to2\": 10,\r\n \"rename2to1\": 11,\r\n \"renameAdd\": 12,\r\n \"renameDelete\": 13,\r\n \"renameRename\": 14\r\n }\r\n },\r\n GitConflictUpdateResult: {},\r\n GitConflictUpdateStatus: {\r\n enumValues: {\r\n \"succeeded\": 0,\r\n \"badRequest\": 1,\r\n \"invalidResolution\": 2,\r\n \"unsupportedConflictType\": 3,\r\n \"notFound\": 4\r\n }\r\n },\r\n GitDeletedRepository: {},\r\n GitForkRef: {},\r\n GitForkSyncRequest: {},\r\n GitForkTeamProjectReference: {},\r\n GitHistoryMode: {\r\n enumValues: {\r\n \"simplifiedHistory\": 0,\r\n \"firstParent\": 1,\r\n \"fullHistory\": 2,\r\n \"fullHistorySimplifyMerges\": 3\r\n }\r\n },\r\n GitImportFailedEvent: {},\r\n GitImportRequest: {},\r\n GitImportSucceededEvent: {},\r\n GitItem: {},\r\n GitItemDescriptor: {},\r\n GitItemRequestData: {},\r\n GitLastChangeTreeItems: {},\r\n GitMerge: {},\r\n GitObject: {},\r\n GitObjectType: {\r\n enumValues: {\r\n \"bad\": 0,\r\n \"commit\": 1,\r\n \"tree\": 2,\r\n \"blob\": 3,\r\n \"tag\": 4,\r\n \"ext2\": 5,\r\n \"ofsDelta\": 6,\r\n \"refDelta\": 7\r\n }\r\n },\r\n GitPathAction: {},\r\n GitPathActions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"edit\": 1,\r\n \"delete\": 2,\r\n \"add\": 3,\r\n \"rename\": 4\r\n }\r\n },\r\n GitPathToItemsCollection: {},\r\n GitPolicyConfigurationResponse: {},\r\n GitPullRequest: {},\r\n GitPullRequestChange: {},\r\n GitPullRequestCommentThread: {},\r\n GitPullRequestCompletionOptions: {},\r\n GitPullRequestIteration: {},\r\n GitPullRequestIterationChanges: {},\r\n GitPullRequestMergeStrategy: {\r\n enumValues: {\r\n \"noFastForward\": 1,\r\n \"squash\": 2,\r\n \"rebase\": 3,\r\n \"rebaseMerge\": 4\r\n }\r\n },\r\n GitPullRequestQuery: {},\r\n GitPullRequestQueryInput: {},\r\n GitPullRequestQueryType: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"lastMergeCommit\": 1,\r\n \"commit\": 2\r\n }\r\n },\r\n GitPullRequestReviewFileType: {\r\n enumValues: {\r\n \"changeEntry\": 0,\r\n \"attachment\": 1\r\n }\r\n },\r\n GitPullRequestSearchCriteria: {},\r\n GitPullRequestStatus: {},\r\n GitPush: {},\r\n GitPushEventData: {},\r\n GitPushRef: {},\r\n GitPushSearchCriteria: {},\r\n GitQueryBranchStatsCriteria: {},\r\n GitQueryCommitsCriteria: {},\r\n GitQueryRefsCriteria: {},\r\n GitRef: {},\r\n GitRefFavorite: {},\r\n GitRefSearchType: {\r\n enumValues: {\r\n \"exact\": 0,\r\n \"startsWith\": 1,\r\n \"contains\": 2\r\n }\r\n },\r\n GitRefUpdateMode: {\r\n enumValues: {\r\n \"bestEffort\": 0,\r\n \"allOrNone\": 1\r\n }\r\n },\r\n GitRefUpdateResult: {},\r\n GitRefUpdateStatus: {\r\n enumValues: {\r\n \"succeeded\": 0,\r\n \"forcePushRequired\": 1,\r\n \"staleOldObjectId\": 2,\r\n \"invalidRefName\": 3,\r\n \"unprocessed\": 4,\r\n \"unresolvableToCommit\": 5,\r\n \"writePermissionRequired\": 6,\r\n \"manageNotePermissionRequired\": 7,\r\n \"createBranchPermissionRequired\": 8,\r\n \"createTagPermissionRequired\": 9,\r\n \"rejectedByPlugin\": 10,\r\n \"locked\": 11,\r\n \"refNameConflict\": 12,\r\n \"rejectedByPolicy\": 13,\r\n \"succeededNonExistentRef\": 14,\r\n \"succeededCorruptRef\": 15\r\n }\r\n },\r\n GitRepository: {},\r\n GitRepositoryCreateOptions: {},\r\n GitRepositoryRef: {},\r\n GitResolutionError: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"mergeContentNotFound\": 1,\r\n \"pathInUse\": 2,\r\n \"invalidPath\": 3,\r\n \"unknownAction\": 4,\r\n \"unknownMergeType\": 5,\r\n \"otherError\": 255\r\n }\r\n },\r\n GitResolutionMergeContent: {},\r\n GitResolutionMergeType: {\r\n enumValues: {\r\n \"undecided\": 0,\r\n \"takeSourceContent\": 1,\r\n \"takeTargetContent\": 2,\r\n \"autoMerged\": 3,\r\n \"userMerged\": 4\r\n }\r\n },\r\n GitResolutionPathConflict: {},\r\n GitResolutionPathConflictAction: {\r\n enumValues: {\r\n \"undecided\": 0,\r\n \"keepSourceRenameTarget\": 1,\r\n \"keepSourceDeleteTarget\": 2,\r\n \"keepTargetRenameSource\": 3,\r\n \"keepTargetDeleteSource\": 4\r\n }\r\n },\r\n GitResolutionPickOneAction: {},\r\n GitResolutionRename1to2: {},\r\n GitResolutionRename1to2Action: {\r\n enumValues: {\r\n \"undecided\": 0,\r\n \"keepSourcePath\": 1,\r\n \"keepTargetPath\": 2,\r\n \"keepBothFiles\": 3\r\n }\r\n },\r\n GitResolutionStatus: {\r\n enumValues: {\r\n \"unresolved\": 0,\r\n \"partiallyResolved\": 1,\r\n \"resolved\": 2\r\n }\r\n },\r\n GitResolutionWhichAction: {\r\n enumValues: {\r\n \"undecided\": 0,\r\n \"pickSourceAction\": 1,\r\n \"pickTargetAction\": 2\r\n }\r\n },\r\n GitRevert: {},\r\n GitStatus: {},\r\n GitStatusState: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"pending\": 1,\r\n \"succeeded\": 2,\r\n \"failed\": 3,\r\n \"error\": 4,\r\n \"notApplicable\": 5\r\n }\r\n },\r\n GitTargetVersionDescriptor: {},\r\n GitTreeDiff: {},\r\n GitTreeDiffEntry: {},\r\n GitTreeDiffResponse: {},\r\n GitTreeEntryRef: {},\r\n GitTreeRef: {},\r\n GitUserDate: {},\r\n GitVersionDescriptor: {},\r\n GitVersionOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"previousChange\": 1,\r\n \"firstParent\": 2\r\n }\r\n },\r\n GitVersionType: {\r\n enumValues: {\r\n \"branch\": 0,\r\n \"tag\": 1,\r\n \"commit\": 2\r\n }\r\n },\r\n HistoryEntry: {},\r\n IncludedGitCommit: {},\r\n ItemContent: {},\r\n ItemContentType: {\r\n enumValues: {\r\n \"rawText\": 0,\r\n \"base64Encoded\": 1\r\n }\r\n },\r\n ItemDetailsOptions: {},\r\n IterationReason: {\r\n enumValues: {\r\n \"push\": 0,\r\n \"forcePush\": 1,\r\n \"create\": 2,\r\n \"rebase\": 4,\r\n \"unknown\": 8,\r\n \"retarget\": 16\r\n }\r\n },\r\n LineDiffBlock: {},\r\n LineDiffBlockChangeType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"add\": 1,\r\n \"delete\": 2,\r\n \"edit\": 3\r\n }\r\n },\r\n PullRequestAsyncStatus: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"queued\": 1,\r\n \"conflicts\": 2,\r\n \"succeeded\": 3,\r\n \"rejectedByPolicy\": 4,\r\n \"failure\": 5\r\n }\r\n },\r\n PullRequestMergeFailureType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"unknown\": 1,\r\n \"caseSensitive\": 2,\r\n \"objectTooLarge\": 3\r\n }\r\n },\r\n PullRequestStatus: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"active\": 1,\r\n \"abandoned\": 2,\r\n \"completed\": 3,\r\n \"all\": 4\r\n }\r\n },\r\n RefFavoriteType: {\r\n enumValues: {\r\n \"invalid\": 0,\r\n \"folder\": 1,\r\n \"ref\": 2\r\n }\r\n },\r\n SupportedIde: {},\r\n SupportedIdeType: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"androidStudio\": 1,\r\n \"appCode\": 2,\r\n \"cLion\": 3,\r\n \"dataGrip\": 4,\r\n \"eclipse\": 13,\r\n \"intelliJ\": 5,\r\n \"mps\": 6,\r\n \"phpStorm\": 7,\r\n \"pyCharm\": 8,\r\n \"rubyMine\": 9,\r\n \"tower\": 10,\r\n \"visualStudio\": 11,\r\n \"vsCode\": 14,\r\n \"webStorm\": 12\r\n }\r\n },\r\n TfvcBranch: {},\r\n TfvcBranchRef: {},\r\n TfvcChange: {},\r\n TfvcChangeset: {},\r\n TfvcChangesetRef: {},\r\n TfvcCheckinEventData: {},\r\n TfvcHistoryEntry: {},\r\n TfvcItem: {},\r\n TfvcItemDescriptor: {},\r\n TfvcItemPreviousHash: {},\r\n TfvcItemRequestData: {},\r\n TfvcLabel: {},\r\n TfvcLabelRef: {},\r\n TfvcShelveset: {},\r\n TfvcShelvesetRef: {},\r\n TfvcVersionDescriptor: {},\r\n TfvcVersionOption: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"previous\": 1,\r\n \"useRename\": 2\r\n }\r\n },\r\n TfvcVersionType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"changeset\": 1,\r\n \"shelveset\": 2,\r\n \"change\": 3,\r\n \"date\": 4,\r\n \"latest\": 5,\r\n \"tip\": 6,\r\n \"mergeSource\": 7\r\n }\r\n },\r\n UpdateRefsRequest: {},\r\n VersionControlChangeType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"add\": 1,\r\n \"edit\": 2,\r\n \"encoding\": 4,\r\n \"rename\": 8,\r\n \"delete\": 16,\r\n \"undelete\": 32,\r\n \"branch\": 64,\r\n \"merge\": 128,\r\n \"lock\": 256,\r\n \"rollback\": 512,\r\n \"sourceRename\": 1024,\r\n \"targetRename\": 2048,\r\n \"property\": 4096,\r\n \"all\": 8191\r\n }\r\n },\r\n VersionControlProjectInfo: {},\r\n VersionControlRecursionType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"oneLevel\": 1,\r\n \"oneLevelPlusNestedEmptyFolders\": 4,\r\n \"full\": 120\r\n }\r\n },\r\n};\r\nexports.TypeInfo.Attachment.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Change.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.ChangeList.fields = {\r\n changeCounts: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.VersionControlChangeType,\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n sortDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Comment.fields = {\r\n commentType: {\r\n enumType: exports.TypeInfo.CommentType\r\n },\r\n lastContentUpdatedDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n publishedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CommentThread.fields = {\r\n comments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Comment\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n publishedDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.CommentThreadStatus\r\n }\r\n};\r\nexports.TypeInfo.FileDiff.fields = {\r\n lineDiffBlocks: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LineDiffBlock\r\n }\r\n};\r\nexports.TypeInfo.GitAnnotatedTag.fields = {\r\n taggedBy: {\r\n typeInfo: exports.TypeInfo.GitUserDate\r\n },\r\n taggedObject: {\r\n typeInfo: exports.TypeInfo.GitObject\r\n }\r\n};\r\nexports.TypeInfo.GitAsyncRefOperation.fields = {\r\n detailedStatus: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationDetail\r\n },\r\n parameters: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationParameters\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitAsyncRefOperationDetail.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncRefOperationFailureStatus\r\n }\r\n};\r\nexports.TypeInfo.GitAsyncRefOperationParameters.fields = {\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n },\r\n source: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationSource\r\n }\r\n};\r\nexports.TypeInfo.GitAsyncRefOperationSource.fields = {\r\n commitList: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n }\r\n};\r\nexports.TypeInfo.GitBaseVersionDescriptor.fields = {\r\n baseVersionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n baseVersionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n },\r\n versionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n }\r\n};\r\nexports.TypeInfo.GitBranchStats.fields = {\r\n commit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n }\r\n};\r\nexports.TypeInfo.GitChange.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.GitCherryPick.fields = {\r\n detailedStatus: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationDetail\r\n },\r\n parameters: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationParameters\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitCommit.fields = {\r\n author: {\r\n typeInfo: exports.TypeInfo.GitUserDate\r\n },\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitChange\r\n },\r\n committer: {\r\n typeInfo: exports.TypeInfo.GitUserDate\r\n },\r\n push: {\r\n typeInfo: exports.TypeInfo.GitPushRef\r\n },\r\n statuses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitStatus\r\n }\r\n};\r\nexports.TypeInfo.GitCommitChanges.fields = {\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitChange\r\n }\r\n};\r\nexports.TypeInfo.GitCommitDiffs.fields = {\r\n changeCounts: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.VersionControlChangeType,\r\n },\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitChange\r\n }\r\n};\r\nexports.TypeInfo.GitCommitRef.fields = {\r\n author: {\r\n typeInfo: exports.TypeInfo.GitUserDate\r\n },\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitChange\r\n },\r\n committer: {\r\n typeInfo: exports.TypeInfo.GitUserDate\r\n },\r\n push: {\r\n typeInfo: exports.TypeInfo.GitPushRef\r\n },\r\n statuses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitStatus\r\n }\r\n};\r\nexports.TypeInfo.GitCommitToCreate.fields = {\r\n baseRef: {\r\n typeInfo: exports.TypeInfo.GitRef\r\n },\r\n pathActions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitPathAction\r\n }\r\n};\r\nexports.TypeInfo.GitConflict.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictAddAdd.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionMergeContent\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictAddRename.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPathConflict\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictDeleteEdit.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPickOneAction\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictDeleteRename.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPickOneAction\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictDirectoryFile.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPathConflict\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n },\r\n sourceTree: {\r\n typeInfo: exports.TypeInfo.GitTreeRef\r\n }\r\n};\r\nexports.TypeInfo.GitConflictEditDelete.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPickOneAction\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictEditEdit.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionMergeContent\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictFileDirectory.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPathConflict\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n },\r\n targetTree: {\r\n typeInfo: exports.TypeInfo.GitTreeRef\r\n }\r\n};\r\nexports.TypeInfo.GitConflictRename1to2.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionRename1to2\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictRename2to1.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPathConflict\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictRenameAdd.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPathConflict\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictRenameDelete.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionPickOneAction\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictRenameRename.fields = {\r\n conflictType: {\r\n enumType: exports.TypeInfo.GitConflictType\r\n },\r\n mergeBaseCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n resolution: {\r\n typeInfo: exports.TypeInfo.GitResolutionMergeContent\r\n },\r\n resolutionError: {\r\n enumType: exports.TypeInfo.GitResolutionError\r\n },\r\n resolutionStatus: {\r\n enumType: exports.TypeInfo.GitResolutionStatus\r\n },\r\n resolvedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitConflictUpdateResult.fields = {\r\n updatedConflict: {\r\n typeInfo: exports.TypeInfo.GitConflict\r\n },\r\n updateStatus: {\r\n enumType: exports.TypeInfo.GitConflictUpdateStatus\r\n }\r\n};\r\nexports.TypeInfo.GitDeletedRepository.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n deletedDate: {\r\n isDate: true,\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GitForkRef.fields = {\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n },\r\n statuses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitStatus\r\n }\r\n};\r\nexports.TypeInfo.GitForkSyncRequest.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitForkTeamProjectReference.fields = {\r\n lastUpdateTime: {\r\n isDate: true,\r\n },\r\n visibility: {\r\n enumType: TfsCoreInterfaces.TypeInfo.ProjectVisibility\r\n }\r\n};\r\nexports.TypeInfo.GitImportFailedEvent.fields = {\r\n targetRepository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n }\r\n};\r\nexports.TypeInfo.GitImportRequest.fields = {\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitImportSucceededEvent.fields = {\r\n targetRepository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n }\r\n};\r\nexports.TypeInfo.GitItem.fields = {\r\n gitObjectType: {\r\n enumType: exports.TypeInfo.GitObjectType\r\n },\r\n latestProcessedChange: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n }\r\n};\r\nexports.TypeInfo.GitItemDescriptor.fields = {\r\n recursionLevel: {\r\n enumType: exports.TypeInfo.VersionControlRecursionType\r\n },\r\n versionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n }\r\n};\r\nexports.TypeInfo.GitItemRequestData.fields = {\r\n itemDescriptors: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitItemDescriptor\r\n }\r\n};\r\nexports.TypeInfo.GitLastChangeTreeItems.fields = {\r\n commits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n lastExploredTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitMerge.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitObject.fields = {\r\n objectType: {\r\n enumType: exports.TypeInfo.GitObjectType\r\n }\r\n};\r\nexports.TypeInfo.GitPathAction.fields = {\r\n action: {\r\n enumType: exports.TypeInfo.GitPathActions\r\n }\r\n};\r\nexports.TypeInfo.GitPathToItemsCollection.fields = {\r\n items: {\r\n isDictionary: true,\r\n dictionaryValueFieldInfo: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitItem\r\n }\r\n }\r\n};\r\nexports.TypeInfo.GitPolicyConfigurationResponse.fields = {\r\n policyConfigurations: {\r\n isArray: true,\r\n typeInfo: PolicyInterfaces.TypeInfo.PolicyConfiguration\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequest.fields = {\r\n closedDate: {\r\n isDate: true,\r\n },\r\n commits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n completionOptions: {\r\n typeInfo: exports.TypeInfo.GitPullRequestCompletionOptions\r\n },\r\n completionQueueTime: {\r\n isDate: true,\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n forkSource: {\r\n typeInfo: exports.TypeInfo.GitForkRef\r\n },\r\n lastMergeCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n lastMergeSourceCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n lastMergeTargetCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n mergeFailureType: {\r\n enumType: exports.TypeInfo.PullRequestMergeFailureType\r\n },\r\n mergeStatus: {\r\n enumType: exports.TypeInfo.PullRequestAsyncStatus\r\n },\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.PullRequestStatus\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestChange.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestCommentThread.fields = {\r\n comments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Comment\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n publishedDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.CommentThreadStatus\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestCompletionOptions.fields = {\r\n mergeStrategy: {\r\n enumType: exports.TypeInfo.GitPullRequestMergeStrategy\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestIteration.fields = {\r\n changeList: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitPullRequestChange\r\n },\r\n commits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n commonRefCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n push: {\r\n typeInfo: exports.TypeInfo.GitPushRef\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.IterationReason\r\n },\r\n sourceRefCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n targetRefCommit: {\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestIterationChanges.fields = {\r\n changeEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitPullRequestChange\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestQuery.fields = {\r\n queries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitPullRequestQueryInput\r\n },\r\n};\r\nexports.TypeInfo.GitPullRequestQueryInput.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.GitPullRequestQueryType\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestSearchCriteria.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.PullRequestStatus\r\n }\r\n};\r\nexports.TypeInfo.GitPullRequestStatus.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.GitStatusState\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitPush.fields = {\r\n commits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommitRef\r\n },\r\n date: {\r\n isDate: true,\r\n },\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n }\r\n};\r\nexports.TypeInfo.GitPushEventData.fields = {\r\n commits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitCommit\r\n },\r\n repository: {\r\n typeInfo: exports.TypeInfo.GitRepository\r\n }\r\n};\r\nexports.TypeInfo.GitPushRef.fields = {\r\n date: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitPushSearchCriteria.fields = {\r\n fromDate: {\r\n isDate: true,\r\n },\r\n toDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitQueryBranchStatsCriteria.fields = {\r\n baseCommit: {\r\n typeInfo: exports.TypeInfo.GitVersionDescriptor\r\n },\r\n targetCommits: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitVersionDescriptor\r\n }\r\n};\r\nexports.TypeInfo.GitQueryCommitsCriteria.fields = {\r\n compareVersion: {\r\n typeInfo: exports.TypeInfo.GitVersionDescriptor\r\n },\r\n historyMode: {\r\n enumType: exports.TypeInfo.GitHistoryMode\r\n },\r\n itemVersion: {\r\n typeInfo: exports.TypeInfo.GitVersionDescriptor\r\n }\r\n};\r\nexports.TypeInfo.GitQueryRefsCriteria.fields = {\r\n searchType: {\r\n enumType: exports.TypeInfo.GitRefSearchType\r\n }\r\n};\r\nexports.TypeInfo.GitRef.fields = {\r\n statuses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitStatus\r\n }\r\n};\r\nexports.TypeInfo.GitRefFavorite.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.RefFavoriteType\r\n }\r\n};\r\nexports.TypeInfo.GitRefUpdateResult.fields = {\r\n updateStatus: {\r\n enumType: exports.TypeInfo.GitRefUpdateStatus\r\n }\r\n};\r\nexports.TypeInfo.GitRepository.fields = {\r\n parentRepository: {\r\n typeInfo: exports.TypeInfo.GitRepositoryRef\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GitRepositoryCreateOptions.fields = {\r\n parentRepository: {\r\n typeInfo: exports.TypeInfo.GitRepositoryRef\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GitRepositoryRef.fields = {\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GitResolutionMergeContent.fields = {\r\n mergeType: {\r\n enumType: exports.TypeInfo.GitResolutionMergeType\r\n }\r\n};\r\nexports.TypeInfo.GitResolutionPathConflict.fields = {\r\n action: {\r\n enumType: exports.TypeInfo.GitResolutionPathConflictAction\r\n }\r\n};\r\nexports.TypeInfo.GitResolutionPickOneAction.fields = {\r\n action: {\r\n enumType: exports.TypeInfo.GitResolutionWhichAction\r\n }\r\n};\r\nexports.TypeInfo.GitResolutionRename1to2.fields = {\r\n action: {\r\n enumType: exports.TypeInfo.GitResolutionRename1to2Action\r\n },\r\n mergeType: {\r\n enumType: exports.TypeInfo.GitResolutionMergeType\r\n }\r\n};\r\nexports.TypeInfo.GitRevert.fields = {\r\n detailedStatus: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationDetail\r\n },\r\n parameters: {\r\n typeInfo: exports.TypeInfo.GitAsyncRefOperationParameters\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.GitAsyncOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.GitStatus.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.GitStatusState\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitTargetVersionDescriptor.fields = {\r\n targetVersionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n targetVersionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n },\r\n versionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n }\r\n};\r\nexports.TypeInfo.GitTreeDiff.fields = {\r\n diffEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitTreeDiffEntry\r\n }\r\n};\r\nexports.TypeInfo.GitTreeDiffEntry.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n objectType: {\r\n enumType: exports.TypeInfo.GitObjectType\r\n }\r\n};\r\nexports.TypeInfo.GitTreeDiffResponse.fields = {\r\n treeDiff: {\r\n typeInfo: exports.TypeInfo.GitTreeDiff\r\n }\r\n};\r\nexports.TypeInfo.GitTreeEntryRef.fields = {\r\n gitObjectType: {\r\n enumType: exports.TypeInfo.GitObjectType\r\n }\r\n};\r\nexports.TypeInfo.GitTreeRef.fields = {\r\n treeEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.GitTreeEntryRef\r\n }\r\n};\r\nexports.TypeInfo.GitUserDate.fields = {\r\n date: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GitVersionDescriptor.fields = {\r\n versionOptions: {\r\n enumType: exports.TypeInfo.GitVersionOptions\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.GitVersionType\r\n }\r\n};\r\nexports.TypeInfo.HistoryEntry.fields = {\r\n itemChangeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n }\r\n};\r\nexports.TypeInfo.IncludedGitCommit.fields = {\r\n commitTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ItemContent.fields = {\r\n contentType: {\r\n enumType: exports.TypeInfo.ItemContentType\r\n }\r\n};\r\nexports.TypeInfo.ItemDetailsOptions.fields = {\r\n recursionLevel: {\r\n enumType: exports.TypeInfo.VersionControlRecursionType\r\n }\r\n};\r\nexports.TypeInfo.LineDiffBlock.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.LineDiffBlockChangeType\r\n }\r\n};\r\nexports.TypeInfo.SupportedIde.fields = {\r\n ideType: {\r\n enumType: exports.TypeInfo.SupportedIdeType\r\n }\r\n};\r\nexports.TypeInfo.TfvcBranch.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcBranch\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcBranchRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcChange.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.TfvcChangeset.fields = {\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcChange\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcChangesetRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcCheckinEventData.fields = {\r\n changeset: {\r\n typeInfo: exports.TypeInfo.TfvcChangeset\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.TfvcHistoryEntry.fields = {\r\n itemChangeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n }\r\n};\r\nexports.TypeInfo.TfvcItem.fields = {\r\n changeDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcItemDescriptor.fields = {\r\n recursionLevel: {\r\n enumType: exports.TypeInfo.VersionControlRecursionType\r\n },\r\n versionOption: {\r\n enumType: exports.TypeInfo.TfvcVersionOption\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.TfvcVersionType\r\n }\r\n};\r\nexports.TypeInfo.TfvcItemPreviousHash.fields = {\r\n changeDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcItemRequestData.fields = {\r\n itemDescriptors: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcItemDescriptor\r\n }\r\n};\r\nexports.TypeInfo.TfvcLabel.fields = {\r\n items: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcItem\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcLabelRef.fields = {\r\n modifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcShelveset.fields = {\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcChange\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcShelvesetRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcVersionDescriptor.fields = {\r\n versionOption: {\r\n enumType: exports.TypeInfo.TfvcVersionOption\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.TfvcVersionType\r\n }\r\n};\r\nexports.TypeInfo.UpdateRefsRequest.fields = {\r\n updateMode: {\r\n enumType: exports.TypeInfo.GitRefUpdateMode\r\n }\r\n};\r\nexports.TypeInfo.VersionControlProjectInfo.fields = {\r\n defaultSourceControlType: {\r\n enumType: TfsCoreInterfaces.TypeInfo.SourceControlTypes\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst VSSInterfaces = require(\"../interfaces/common/VSSInterfaces\");\r\nvar InheritLevel;\r\n(function (InheritLevel) {\r\n InheritLevel[InheritLevel[\"None\"] = 0] = \"None\";\r\n InheritLevel[InheritLevel[\"Deployment\"] = 1] = \"Deployment\";\r\n InheritLevel[InheritLevel[\"Account\"] = 2] = \"Account\";\r\n InheritLevel[InheritLevel[\"Collection\"] = 4] = \"Collection\";\r\n InheritLevel[InheritLevel[\"All\"] = 7] = \"All\";\r\n})(InheritLevel = exports.InheritLevel || (exports.InheritLevel = {}));\r\nvar RelativeToSetting;\r\n(function (RelativeToSetting) {\r\n RelativeToSetting[RelativeToSetting[\"Context\"] = 0] = \"Context\";\r\n RelativeToSetting[RelativeToSetting[\"WebApplication\"] = 2] = \"WebApplication\";\r\n RelativeToSetting[RelativeToSetting[\"FullyQualified\"] = 3] = \"FullyQualified\";\r\n})(RelativeToSetting = exports.RelativeToSetting || (exports.RelativeToSetting = {}));\r\nvar ServiceStatus;\r\n(function (ServiceStatus) {\r\n ServiceStatus[ServiceStatus[\"Assigned\"] = 0] = \"Assigned\";\r\n ServiceStatus[ServiceStatus[\"Active\"] = 1] = \"Active\";\r\n ServiceStatus[ServiceStatus[\"Moving\"] = 2] = \"Moving\";\r\n})(ServiceStatus = exports.ServiceStatus || (exports.ServiceStatus = {}));\r\nexports.TypeInfo = {\r\n ConnectionData: {},\r\n InheritLevel: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"deployment\": 1,\r\n \"account\": 2,\r\n \"collection\": 4,\r\n \"all\": 7\r\n }\r\n },\r\n LocationServiceData: {},\r\n RelativeToSetting: {\r\n enumValues: {\r\n \"context\": 0,\r\n \"webApplication\": 2,\r\n \"fullyQualified\": 3\r\n }\r\n },\r\n ServiceDefinition: {},\r\n ServiceStatus: {\r\n enumValues: {\r\n \"assigned\": 0,\r\n \"active\": 1,\r\n \"moving\": 2\r\n }\r\n },\r\n};\r\nexports.TypeInfo.ConnectionData.fields = {\r\n deploymentType: {\r\n enumType: VSSInterfaces.TypeInfo.DeploymentFlags\r\n },\r\n lastUserAccess: {\r\n isDate: true,\r\n },\r\n locationServiceData: {\r\n typeInfo: exports.TypeInfo.LocationServiceData\r\n }\r\n};\r\nexports.TypeInfo.LocationServiceData.fields = {\r\n serviceDefinitions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ServiceDefinition\r\n }\r\n};\r\nexports.TypeInfo.ServiceDefinition.fields = {\r\n inheritLevel: {\r\n enumType: exports.TypeInfo.InheritLevel\r\n },\r\n relativeToSetting: {\r\n enumType: exports.TypeInfo.RelativeToSetting\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ServiceStatus\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Default delivery preference for group subscribers. Indicates how the subscriber should be notified.\r\n */\r\nvar DefaultGroupDeliveryPreference;\r\n(function (DefaultGroupDeliveryPreference) {\r\n DefaultGroupDeliveryPreference[DefaultGroupDeliveryPreference[\"NoDelivery\"] = -1] = \"NoDelivery\";\r\n DefaultGroupDeliveryPreference[DefaultGroupDeliveryPreference[\"EachMember\"] = 2] = \"EachMember\";\r\n})(DefaultGroupDeliveryPreference = exports.DefaultGroupDeliveryPreference || (exports.DefaultGroupDeliveryPreference = {}));\r\n/**\r\n * Describes the subscription evaluation operation status.\r\n */\r\nvar EvaluationOperationStatus;\r\n(function (EvaluationOperationStatus) {\r\n /**\r\n * The operation object does not have the status set.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * The operation has been queued.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"Queued\"] = 1] = \"Queued\";\r\n /**\r\n * The operation is in progress.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The operation was cancelled by the user.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"Cancelled\"] = 3] = \"Cancelled\";\r\n /**\r\n * The operation completed successfully.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"Succeeded\"] = 4] = \"Succeeded\";\r\n /**\r\n * The operation completed with a failure.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"Failed\"] = 5] = \"Failed\";\r\n /**\r\n * The operation timed out.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"TimedOut\"] = 6] = \"TimedOut\";\r\n /**\r\n * The operation could not be found.\r\n */\r\n EvaluationOperationStatus[EvaluationOperationStatus[\"NotFound\"] = 7] = \"NotFound\";\r\n})(EvaluationOperationStatus = exports.EvaluationOperationStatus || (exports.EvaluationOperationStatus = {}));\r\n/**\r\n * Set of flags used to determine which set of information is retrieved when querying for event publishers\r\n */\r\nvar EventPublisherQueryFlags;\r\n(function (EventPublisherQueryFlags) {\r\n EventPublisherQueryFlags[EventPublisherQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include event types from the remote services too\r\n */\r\n EventPublisherQueryFlags[EventPublisherQueryFlags[\"IncludeRemoteServices\"] = 2] = \"IncludeRemoteServices\";\r\n})(EventPublisherQueryFlags = exports.EventPublisherQueryFlags || (exports.EventPublisherQueryFlags = {}));\r\n/**\r\n * Set of flags used to determine which set of information is retrieved when querying for eventtypes\r\n */\r\nvar EventTypeQueryFlags;\r\n(function (EventTypeQueryFlags) {\r\n EventTypeQueryFlags[EventTypeQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * IncludeFields will include all fields and their types\r\n */\r\n EventTypeQueryFlags[EventTypeQueryFlags[\"IncludeFields\"] = 1] = \"IncludeFields\";\r\n})(EventTypeQueryFlags = exports.EventTypeQueryFlags || (exports.EventTypeQueryFlags = {}));\r\nvar NotificationOperation;\r\n(function (NotificationOperation) {\r\n NotificationOperation[NotificationOperation[\"None\"] = 0] = \"None\";\r\n NotificationOperation[NotificationOperation[\"SuspendUnprocessed\"] = 1] = \"SuspendUnprocessed\";\r\n})(NotificationOperation = exports.NotificationOperation || (exports.NotificationOperation = {}));\r\nvar NotificationReasonType;\r\n(function (NotificationReasonType) {\r\n NotificationReasonType[NotificationReasonType[\"Unknown\"] = 0] = \"Unknown\";\r\n NotificationReasonType[NotificationReasonType[\"Follows\"] = 1] = \"Follows\";\r\n NotificationReasonType[NotificationReasonType[\"Personal\"] = 2] = \"Personal\";\r\n NotificationReasonType[NotificationReasonType[\"PersonalAlias\"] = 3] = \"PersonalAlias\";\r\n NotificationReasonType[NotificationReasonType[\"DirectMember\"] = 4] = \"DirectMember\";\r\n NotificationReasonType[NotificationReasonType[\"IndirectMember\"] = 5] = \"IndirectMember\";\r\n NotificationReasonType[NotificationReasonType[\"GroupAlias\"] = 6] = \"GroupAlias\";\r\n NotificationReasonType[NotificationReasonType[\"SubscriptionAlias\"] = 7] = \"SubscriptionAlias\";\r\n NotificationReasonType[NotificationReasonType[\"SingleRole\"] = 8] = \"SingleRole\";\r\n NotificationReasonType[NotificationReasonType[\"DirectMemberGroupRole\"] = 9] = \"DirectMemberGroupRole\";\r\n NotificationReasonType[NotificationReasonType[\"InDirectMemberGroupRole\"] = 10] = \"InDirectMemberGroupRole\";\r\n NotificationReasonType[NotificationReasonType[\"AliasMemberGroupRole\"] = 11] = \"AliasMemberGroupRole\";\r\n})(NotificationReasonType = exports.NotificationReasonType || (exports.NotificationReasonType = {}));\r\nvar NotificationStatisticType;\r\n(function (NotificationStatisticType) {\r\n NotificationStatisticType[NotificationStatisticType[\"NotificationBySubscription\"] = 0] = \"NotificationBySubscription\";\r\n NotificationStatisticType[NotificationStatisticType[\"EventsByEventType\"] = 1] = \"EventsByEventType\";\r\n NotificationStatisticType[NotificationStatisticType[\"NotificationByEventType\"] = 2] = \"NotificationByEventType\";\r\n NotificationStatisticType[NotificationStatisticType[\"EventsByEventTypePerUser\"] = 3] = \"EventsByEventTypePerUser\";\r\n NotificationStatisticType[NotificationStatisticType[\"NotificationByEventTypePerUser\"] = 4] = \"NotificationByEventTypePerUser\";\r\n NotificationStatisticType[NotificationStatisticType[\"Events\"] = 5] = \"Events\";\r\n NotificationStatisticType[NotificationStatisticType[\"Notifications\"] = 6] = \"Notifications\";\r\n NotificationStatisticType[NotificationStatisticType[\"NotificationFailureBySubscription\"] = 7] = \"NotificationFailureBySubscription\";\r\n NotificationStatisticType[NotificationStatisticType[\"UnprocessedRangeStart\"] = 100] = \"UnprocessedRangeStart\";\r\n NotificationStatisticType[NotificationStatisticType[\"UnprocessedEventsByPublisher\"] = 101] = \"UnprocessedEventsByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"UnprocessedEventDelayByPublisher\"] = 102] = \"UnprocessedEventDelayByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"UnprocessedNotificationsByChannelByPublisher\"] = 103] = \"UnprocessedNotificationsByChannelByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"UnprocessedNotificationDelayByChannelByPublisher\"] = 104] = \"UnprocessedNotificationDelayByChannelByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"DelayRangeStart\"] = 200] = \"DelayRangeStart\";\r\n NotificationStatisticType[NotificationStatisticType[\"TotalPipelineTime\"] = 201] = \"TotalPipelineTime\";\r\n NotificationStatisticType[NotificationStatisticType[\"NotificationPipelineTime\"] = 202] = \"NotificationPipelineTime\";\r\n NotificationStatisticType[NotificationStatisticType[\"EventPipelineTime\"] = 203] = \"EventPipelineTime\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyRangeStart\"] = 1000] = \"HourlyRangeStart\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyNotificationBySubscription\"] = 1001] = \"HourlyNotificationBySubscription\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyEventsByEventTypePerUser\"] = 1002] = \"HourlyEventsByEventTypePerUser\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyEvents\"] = 1003] = \"HourlyEvents\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyNotifications\"] = 1004] = \"HourlyNotifications\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyUnprocessedEventsByPublisher\"] = 1101] = \"HourlyUnprocessedEventsByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyUnprocessedEventDelayByPublisher\"] = 1102] = \"HourlyUnprocessedEventDelayByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyUnprocessedNotificationsByChannelByPublisher\"] = 1103] = \"HourlyUnprocessedNotificationsByChannelByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyUnprocessedNotificationDelayByChannelByPublisher\"] = 1104] = \"HourlyUnprocessedNotificationDelayByChannelByPublisher\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyTotalPipelineTime\"] = 1201] = \"HourlyTotalPipelineTime\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyNotificationPipelineTime\"] = 1202] = \"HourlyNotificationPipelineTime\";\r\n NotificationStatisticType[NotificationStatisticType[\"HourlyEventPipelineTime\"] = 1203] = \"HourlyEventPipelineTime\";\r\n})(NotificationStatisticType = exports.NotificationStatisticType || (exports.NotificationStatisticType = {}));\r\n/**\r\n * Delivery preference for a subscriber. Indicates how the subscriber should be notified.\r\n */\r\nvar NotificationSubscriberDeliveryPreference;\r\n(function (NotificationSubscriberDeliveryPreference) {\r\n /**\r\n * Do not send notifications by default. Note: notifications can still be delivered to this subscriber, for example via a custom subscription.\r\n */\r\n NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference[\"NoDelivery\"] = -1] = \"NoDelivery\";\r\n /**\r\n * Deliver notifications to the subscriber's preferred email address.\r\n */\r\n NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference[\"PreferredEmailAddress\"] = 1] = \"PreferredEmailAddress\";\r\n /**\r\n * Deliver notifications to each member of the group representing the subscriber. Only applicable when the subscriber is a group.\r\n */\r\n NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference[\"EachMember\"] = 2] = \"EachMember\";\r\n /**\r\n * Use default\r\n */\r\n NotificationSubscriberDeliveryPreference[NotificationSubscriberDeliveryPreference[\"UseDefault\"] = 3] = \"UseDefault\";\r\n})(NotificationSubscriberDeliveryPreference = exports.NotificationSubscriberDeliveryPreference || (exports.NotificationSubscriberDeliveryPreference = {}));\r\nvar SubscriberFlags;\r\n(function (SubscriberFlags) {\r\n SubscriberFlags[SubscriberFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Subscriber's delivery preferences could be updated\r\n */\r\n SubscriberFlags[SubscriberFlags[\"DeliveryPreferencesEditable\"] = 2] = \"DeliveryPreferencesEditable\";\r\n /**\r\n * Subscriber's delivery preferences supports email delivery\r\n */\r\n SubscriberFlags[SubscriberFlags[\"SupportsPreferredEmailAddressDelivery\"] = 4] = \"SupportsPreferredEmailAddressDelivery\";\r\n /**\r\n * Subscriber's delivery preferences supports individual members delivery(group expansion)\r\n */\r\n SubscriberFlags[SubscriberFlags[\"SupportsEachMemberDelivery\"] = 8] = \"SupportsEachMemberDelivery\";\r\n /**\r\n * Subscriber's delivery preferences supports no delivery\r\n */\r\n SubscriberFlags[SubscriberFlags[\"SupportsNoDelivery\"] = 16] = \"SupportsNoDelivery\";\r\n /**\r\n * Subscriber is a user\r\n */\r\n SubscriberFlags[SubscriberFlags[\"IsUser\"] = 32] = \"IsUser\";\r\n /**\r\n * Subscriber is a group\r\n */\r\n SubscriberFlags[SubscriberFlags[\"IsGroup\"] = 64] = \"IsGroup\";\r\n /**\r\n * Subscriber is a team\r\n */\r\n SubscriberFlags[SubscriberFlags[\"IsTeam\"] = 128] = \"IsTeam\";\r\n})(SubscriberFlags = exports.SubscriberFlags || (exports.SubscriberFlags = {}));\r\nvar SubscriptionFieldType;\r\n(function (SubscriptionFieldType) {\r\n SubscriptionFieldType[SubscriptionFieldType[\"String\"] = 1] = \"String\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Integer\"] = 2] = \"Integer\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"DateTime\"] = 3] = \"DateTime\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"PlainText\"] = 5] = \"PlainText\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Html\"] = 7] = \"Html\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"TreePath\"] = 8] = \"TreePath\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"History\"] = 9] = \"History\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Double\"] = 10] = \"Double\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Guid\"] = 11] = \"Guid\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Boolean\"] = 12] = \"Boolean\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"Identity\"] = 13] = \"Identity\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"PicklistInteger\"] = 14] = \"PicklistInteger\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"PicklistString\"] = 15] = \"PicklistString\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"PicklistDouble\"] = 16] = \"PicklistDouble\";\r\n SubscriptionFieldType[SubscriptionFieldType[\"TeamProject\"] = 17] = \"TeamProject\";\r\n})(SubscriptionFieldType = exports.SubscriptionFieldType || (exports.SubscriptionFieldType = {}));\r\n/**\r\n * Read-only indicators that further describe the subscription.\r\n */\r\nvar SubscriptionFlags;\r\n(function (SubscriptionFlags) {\r\n /**\r\n * None\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Subscription's subscriber is a group, not a user\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"GroupSubscription\"] = 1] = \"GroupSubscription\";\r\n /**\r\n * Subscription is contributed and not persisted. This means certain fields of the subscription, like Filter, are read-only.\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"ContributedSubscription\"] = 2] = \"ContributedSubscription\";\r\n /**\r\n * A user that is member of the subscription's subscriber group can opt in/out of the subscription.\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"CanOptOut\"] = 4] = \"CanOptOut\";\r\n /**\r\n * If the subscriber is a group, is it a team.\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"TeamSubscription\"] = 8] = \"TeamSubscription\";\r\n /**\r\n * For role based subscriptions, there is an expectation that there will always be at least one actor that matches\r\n */\r\n SubscriptionFlags[SubscriptionFlags[\"OneActorMatches\"] = 16] = \"OneActorMatches\";\r\n})(SubscriptionFlags = exports.SubscriptionFlags || (exports.SubscriptionFlags = {}));\r\n/**\r\n * The permissions that a user has to a certain subscription\r\n */\r\nvar SubscriptionPermissions;\r\n(function (SubscriptionPermissions) {\r\n /**\r\n * None\r\n */\r\n SubscriptionPermissions[SubscriptionPermissions[\"None\"] = 0] = \"None\";\r\n /**\r\n * full view of description, filters, etc. Not limited.\r\n */\r\n SubscriptionPermissions[SubscriptionPermissions[\"View\"] = 1] = \"View\";\r\n /**\r\n * update subscription\r\n */\r\n SubscriptionPermissions[SubscriptionPermissions[\"Edit\"] = 2] = \"Edit\";\r\n /**\r\n * delete subscription\r\n */\r\n SubscriptionPermissions[SubscriptionPermissions[\"Delete\"] = 4] = \"Delete\";\r\n})(SubscriptionPermissions = exports.SubscriptionPermissions || (exports.SubscriptionPermissions = {}));\r\n/**\r\n * Flags that influence the result set of a subscription query.\r\n */\r\nvar SubscriptionQueryFlags;\r\n(function (SubscriptionQueryFlags) {\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include subscriptions with invalid subscribers.\r\n */\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"IncludeInvalidSubscriptions\"] = 2] = \"IncludeInvalidSubscriptions\";\r\n /**\r\n * Include subscriptions marked for deletion.\r\n */\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"IncludeDeletedSubscriptions\"] = 4] = \"IncludeDeletedSubscriptions\";\r\n /**\r\n * Include the full filter details with each subscription.\r\n */\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"IncludeFilterDetails\"] = 8] = \"IncludeFilterDetails\";\r\n /**\r\n * For a subscription the caller does not have permission to view, return basic (non-confidential) information.\r\n */\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"AlwaysReturnBasicInformation\"] = 16] = \"AlwaysReturnBasicInformation\";\r\n /**\r\n * Include system subscriptions.\r\n */\r\n SubscriptionQueryFlags[SubscriptionQueryFlags[\"IncludeSystemSubscriptions\"] = 32] = \"IncludeSystemSubscriptions\";\r\n})(SubscriptionQueryFlags = exports.SubscriptionQueryFlags || (exports.SubscriptionQueryFlags = {}));\r\n/**\r\n * Subscription status values. A value greater than or equal to zero indicates the subscription is enabled. A negative value indicates the subscription is disabled.\r\n */\r\nvar SubscriptionStatus;\r\n(function (SubscriptionStatus) {\r\n /**\r\n * Subscription is disabled because it generated a high volume of notifications.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"JailedByNotificationsVolume\"] = -200] = \"JailedByNotificationsVolume\";\r\n /**\r\n * Subscription is disabled and will be deleted.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"PendingDeletion\"] = -100] = \"PendingDeletion\";\r\n /**\r\n * Subscription is disabled because of an Argument Exception while processing the subscription\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledArgumentException\"] = -12] = \"DisabledArgumentException\";\r\n /**\r\n * Subscription is disabled because the project is invalid\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledProjectInvalid\"] = -11] = \"DisabledProjectInvalid\";\r\n /**\r\n * Subscription is disabled because the identity does not have the appropriate permissions\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledMissingPermissions\"] = -10] = \"DisabledMissingPermissions\";\r\n /**\r\n * Subscription is disabled service due to failures.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledFromProbation\"] = -9] = \"DisabledFromProbation\";\r\n /**\r\n * Subscription is disabled because the identity is no longer active\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledInactiveIdentity\"] = -8] = \"DisabledInactiveIdentity\";\r\n /**\r\n * Subscription is disabled because message queue is not supported.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledMessageQueueNotSupported\"] = -7] = \"DisabledMessageQueueNotSupported\";\r\n /**\r\n * Subscription is disabled because its subscriber is unknown.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledMissingIdentity\"] = -6] = \"DisabledMissingIdentity\";\r\n /**\r\n * Subscription is disabled because it has an invalid role expression.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledInvalidRoleExpression\"] = -5] = \"DisabledInvalidRoleExpression\";\r\n /**\r\n * Subscription is disabled because it has an invalid filter expression.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledInvalidPathClause\"] = -4] = \"DisabledInvalidPathClause\";\r\n /**\r\n * Subscription is disabled because it is a duplicate of a default subscription.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledAsDuplicateOfDefault\"] = -3] = \"DisabledAsDuplicateOfDefault\";\r\n /**\r\n * Subscription is disabled by an administrator, not the subscription's subscriber.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"DisabledByAdmin\"] = -2] = \"DisabledByAdmin\";\r\n /**\r\n * Subscription is disabled, typically by the owner of the subscription, and will not produce any notifications.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"Disabled\"] = -1] = \"Disabled\";\r\n /**\r\n * Subscription is active.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"Enabled\"] = 0] = \"Enabled\";\r\n /**\r\n * Subscription is active, but is on probation due to failed deliveries or other issues with the subscription.\r\n */\r\n SubscriptionStatus[SubscriptionStatus[\"EnabledOnProbation\"] = 1] = \"EnabledOnProbation\";\r\n})(SubscriptionStatus = exports.SubscriptionStatus || (exports.SubscriptionStatus = {}));\r\n/**\r\n * Set of flags used to determine which set of templates is retrieved when querying for subscription templates\r\n */\r\nvar SubscriptionTemplateQueryFlags;\r\n(function (SubscriptionTemplateQueryFlags) {\r\n SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include user templates\r\n */\r\n SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags[\"IncludeUser\"] = 1] = \"IncludeUser\";\r\n /**\r\n * Include group templates\r\n */\r\n SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags[\"IncludeGroup\"] = 2] = \"IncludeGroup\";\r\n /**\r\n * Include user and group templates\r\n */\r\n SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags[\"IncludeUserAndGroup\"] = 4] = \"IncludeUserAndGroup\";\r\n /**\r\n * Include the event type details like the fields and operators\r\n */\r\n SubscriptionTemplateQueryFlags[SubscriptionTemplateQueryFlags[\"IncludeEventTypeInformation\"] = 22] = \"IncludeEventTypeInformation\";\r\n})(SubscriptionTemplateQueryFlags = exports.SubscriptionTemplateQueryFlags || (exports.SubscriptionTemplateQueryFlags = {}));\r\nvar SubscriptionTemplateType;\r\n(function (SubscriptionTemplateType) {\r\n SubscriptionTemplateType[SubscriptionTemplateType[\"User\"] = 0] = \"User\";\r\n SubscriptionTemplateType[SubscriptionTemplateType[\"Team\"] = 1] = \"Team\";\r\n SubscriptionTemplateType[SubscriptionTemplateType[\"Both\"] = 2] = \"Both\";\r\n SubscriptionTemplateType[SubscriptionTemplateType[\"None\"] = 3] = \"None\";\r\n})(SubscriptionTemplateType = exports.SubscriptionTemplateType || (exports.SubscriptionTemplateType = {}));\r\nexports.TypeInfo = {\r\n ActorNotificationReason: {},\r\n BatchNotificationOperation: {},\r\n DefaultGroupDeliveryPreference: {\r\n enumValues: {\r\n \"noDelivery\": -1,\r\n \"eachMember\": 2\r\n }\r\n },\r\n EvaluationOperationStatus: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"queued\": 1,\r\n \"inProgress\": 2,\r\n \"cancelled\": 3,\r\n \"succeeded\": 4,\r\n \"failed\": 5,\r\n \"timedOut\": 6,\r\n \"notFound\": 7\r\n }\r\n },\r\n EventBacklogStatus: {},\r\n EventProcessingLog: {},\r\n EventPublisherQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeRemoteServices\": 2\r\n }\r\n },\r\n EventTypeQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeFields\": 1\r\n }\r\n },\r\n INotificationDiagnosticLog: {},\r\n NotificationAdminSettings: {},\r\n NotificationAdminSettingsUpdateParameters: {},\r\n NotificationBacklogStatus: {},\r\n NotificationDeliveryLog: {},\r\n NotificationDiagnosticLog: {},\r\n NotificationEventBacklogStatus: {},\r\n NotificationEventField: {},\r\n NotificationEventFieldType: {},\r\n NotificationEventType: {},\r\n NotificationJobDiagnosticLog: {},\r\n NotificationOperation: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"suspendUnprocessed\": 1\r\n }\r\n },\r\n NotificationReason: {},\r\n NotificationReasonType: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"follows\": 1,\r\n \"personal\": 2,\r\n \"personalAlias\": 3,\r\n \"directMember\": 4,\r\n \"indirectMember\": 5,\r\n \"groupAlias\": 6,\r\n \"subscriptionAlias\": 7,\r\n \"singleRole\": 8,\r\n \"directMemberGroupRole\": 9,\r\n \"inDirectMemberGroupRole\": 10,\r\n \"aliasMemberGroupRole\": 11\r\n }\r\n },\r\n NotificationStatistic: {},\r\n NotificationStatisticsQuery: {},\r\n NotificationStatisticsQueryConditions: {},\r\n NotificationStatisticType: {\r\n enumValues: {\r\n \"notificationBySubscription\": 0,\r\n \"eventsByEventType\": 1,\r\n \"notificationByEventType\": 2,\r\n \"eventsByEventTypePerUser\": 3,\r\n \"notificationByEventTypePerUser\": 4,\r\n \"events\": 5,\r\n \"notifications\": 6,\r\n \"notificationFailureBySubscription\": 7,\r\n \"unprocessedRangeStart\": 100,\r\n \"unprocessedEventsByPublisher\": 101,\r\n \"unprocessedEventDelayByPublisher\": 102,\r\n \"unprocessedNotificationsByChannelByPublisher\": 103,\r\n \"unprocessedNotificationDelayByChannelByPublisher\": 104,\r\n \"delayRangeStart\": 200,\r\n \"totalPipelineTime\": 201,\r\n \"notificationPipelineTime\": 202,\r\n \"eventPipelineTime\": 203,\r\n \"hourlyRangeStart\": 1000,\r\n \"hourlyNotificationBySubscription\": 1001,\r\n \"hourlyEventsByEventTypePerUser\": 1002,\r\n \"hourlyEvents\": 1003,\r\n \"hourlyNotifications\": 1004,\r\n \"hourlyUnprocessedEventsByPublisher\": 1101,\r\n \"hourlyUnprocessedEventDelayByPublisher\": 1102,\r\n \"hourlyUnprocessedNotificationsByChannelByPublisher\": 1103,\r\n \"hourlyUnprocessedNotificationDelayByChannelByPublisher\": 1104,\r\n \"hourlyTotalPipelineTime\": 1201,\r\n \"hourlyNotificationPipelineTime\": 1202,\r\n \"hourlyEventPipelineTime\": 1203\r\n }\r\n },\r\n NotificationSubscriber: {},\r\n NotificationSubscriberDeliveryPreference: {\r\n enumValues: {\r\n \"noDelivery\": -1,\r\n \"preferredEmailAddress\": 1,\r\n \"eachMember\": 2,\r\n \"useDefault\": 3\r\n }\r\n },\r\n NotificationSubscriberUpdateParameters: {},\r\n NotificationSubscription: {},\r\n NotificationSubscriptionTemplate: {},\r\n NotificationSubscriptionUpdateParameters: {},\r\n SubscriberFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"deliveryPreferencesEditable\": 2,\r\n \"supportsPreferredEmailAddressDelivery\": 4,\r\n \"supportsEachMemberDelivery\": 8,\r\n \"supportsNoDelivery\": 16,\r\n \"isUser\": 32,\r\n \"isGroup\": 64,\r\n \"isTeam\": 128\r\n }\r\n },\r\n SubscriptionDiagnostics: {},\r\n SubscriptionEvaluationRequest: {},\r\n SubscriptionEvaluationResult: {},\r\n SubscriptionFieldType: {\r\n enumValues: {\r\n \"string\": 1,\r\n \"integer\": 2,\r\n \"dateTime\": 3,\r\n \"plainText\": 5,\r\n \"html\": 7,\r\n \"treePath\": 8,\r\n \"history\": 9,\r\n \"double\": 10,\r\n \"guid\": 11,\r\n \"boolean\": 12,\r\n \"identity\": 13,\r\n \"picklistInteger\": 14,\r\n \"picklistString\": 15,\r\n \"picklistDouble\": 16,\r\n \"teamProject\": 17\r\n }\r\n },\r\n SubscriptionFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"groupSubscription\": 1,\r\n \"contributedSubscription\": 2,\r\n \"canOptOut\": 4,\r\n \"teamSubscription\": 8,\r\n \"oneActorMatches\": 16\r\n }\r\n },\r\n SubscriptionPermissions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"view\": 1,\r\n \"edit\": 2,\r\n \"delete\": 4\r\n }\r\n },\r\n SubscriptionQuery: {},\r\n SubscriptionQueryCondition: {},\r\n SubscriptionQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeInvalidSubscriptions\": 2,\r\n \"includeDeletedSubscriptions\": 4,\r\n \"includeFilterDetails\": 8,\r\n \"alwaysReturnBasicInformation\": 16,\r\n \"includeSystemSubscriptions\": 32\r\n }\r\n },\r\n SubscriptionStatus: {\r\n enumValues: {\r\n \"jailedByNotificationsVolume\": -200,\r\n \"pendingDeletion\": -100,\r\n \"disabledArgumentException\": -12,\r\n \"disabledProjectInvalid\": -11,\r\n \"disabledMissingPermissions\": -10,\r\n \"disabledFromProbation\": -9,\r\n \"disabledInactiveIdentity\": -8,\r\n \"disabledMessageQueueNotSupported\": -7,\r\n \"disabledMissingIdentity\": -6,\r\n \"disabledInvalidRoleExpression\": -5,\r\n \"disabledInvalidPathClause\": -4,\r\n \"disabledAsDuplicateOfDefault\": -3,\r\n \"disabledByAdmin\": -2,\r\n \"disabled\": -1,\r\n \"enabled\": 0,\r\n \"enabledOnProbation\": 1\r\n }\r\n },\r\n SubscriptionTemplateQueryFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeUser\": 1,\r\n \"includeGroup\": 2,\r\n \"includeUserAndGroup\": 4,\r\n \"includeEventTypeInformation\": 22\r\n }\r\n },\r\n SubscriptionTemplateType: {\r\n enumValues: {\r\n \"user\": 0,\r\n \"team\": 1,\r\n \"both\": 2,\r\n \"none\": 3\r\n }\r\n },\r\n SubscriptionTraceDiagnosticLog: {},\r\n SubscriptionTraceEventProcessingLog: {},\r\n SubscriptionTraceNotificationDeliveryLog: {},\r\n SubscriptionTracing: {},\r\n};\r\nexports.TypeInfo.ActorNotificationReason.fields = {\r\n notificationReasonType: {\r\n enumType: exports.TypeInfo.NotificationReasonType\r\n }\r\n};\r\nexports.TypeInfo.BatchNotificationOperation.fields = {\r\n notificationOperation: {\r\n enumType: exports.TypeInfo.NotificationOperation\r\n }\r\n};\r\nexports.TypeInfo.EventBacklogStatus.fields = {\r\n captureTime: {\r\n isDate: true,\r\n },\r\n lastEventBatchStartTime: {\r\n isDate: true,\r\n },\r\n lastEventProcessedTime: {\r\n isDate: true,\r\n },\r\n lastJobBatchStartTime: {\r\n isDate: true,\r\n },\r\n lastJobProcessedTime: {\r\n isDate: true,\r\n },\r\n oldestPendingEventTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.EventProcessingLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.INotificationDiagnosticLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationAdminSettings.fields = {\r\n defaultGroupDeliveryPreference: {\r\n enumType: exports.TypeInfo.DefaultGroupDeliveryPreference\r\n }\r\n};\r\nexports.TypeInfo.NotificationAdminSettingsUpdateParameters.fields = {\r\n defaultGroupDeliveryPreference: {\r\n enumType: exports.TypeInfo.DefaultGroupDeliveryPreference\r\n }\r\n};\r\nexports.TypeInfo.NotificationBacklogStatus.fields = {\r\n captureTime: {\r\n isDate: true,\r\n },\r\n lastJobBatchStartTime: {\r\n isDate: true,\r\n },\r\n lastJobProcessedTime: {\r\n isDate: true,\r\n },\r\n lastNotificationBatchStartTime: {\r\n isDate: true,\r\n },\r\n lastNotificationProcessedTime: {\r\n isDate: true,\r\n },\r\n oldestPendingNotificationTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationDeliveryLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationDiagnosticLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationEventBacklogStatus.fields = {\r\n eventBacklogStatus: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.EventBacklogStatus\r\n },\r\n notificationBacklogStatus: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.NotificationBacklogStatus\r\n }\r\n};\r\nexports.TypeInfo.NotificationEventField.fields = {\r\n fieldType: {\r\n typeInfo: exports.TypeInfo.NotificationEventFieldType\r\n }\r\n};\r\nexports.TypeInfo.NotificationEventFieldType.fields = {\r\n subscriptionFieldType: {\r\n enumType: exports.TypeInfo.SubscriptionFieldType\r\n }\r\n};\r\nexports.TypeInfo.NotificationEventType.fields = {\r\n fields: {\r\n isDictionary: true,\r\n dictionaryValueTypeInfo: exports.TypeInfo.NotificationEventField\r\n }\r\n};\r\nexports.TypeInfo.NotificationJobDiagnosticLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.NotificationReason.fields = {\r\n notificationReasonType: {\r\n enumType: exports.TypeInfo.NotificationReasonType\r\n }\r\n};\r\nexports.TypeInfo.NotificationStatistic.fields = {\r\n date: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.NotificationStatisticType\r\n }\r\n};\r\nexports.TypeInfo.NotificationStatisticsQuery.fields = {\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.NotificationStatisticsQueryConditions\r\n }\r\n};\r\nexports.TypeInfo.NotificationStatisticsQueryConditions.fields = {\r\n endDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.NotificationStatisticType\r\n }\r\n};\r\nexports.TypeInfo.NotificationSubscriber.fields = {\r\n deliveryPreference: {\r\n enumType: exports.TypeInfo.NotificationSubscriberDeliveryPreference\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.SubscriberFlags\r\n }\r\n};\r\nexports.TypeInfo.NotificationSubscriberUpdateParameters.fields = {\r\n deliveryPreference: {\r\n enumType: exports.TypeInfo.NotificationSubscriberDeliveryPreference\r\n }\r\n};\r\nexports.TypeInfo.NotificationSubscription.fields = {\r\n diagnostics: {\r\n typeInfo: exports.TypeInfo.SubscriptionDiagnostics\r\n },\r\n flags: {\r\n enumType: exports.TypeInfo.SubscriptionFlags\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n permissions: {\r\n enumType: exports.TypeInfo.SubscriptionPermissions\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.SubscriptionStatus\r\n }\r\n};\r\nexports.TypeInfo.NotificationSubscriptionTemplate.fields = {\r\n notificationEventInformation: {\r\n typeInfo: exports.TypeInfo.NotificationEventType\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.SubscriptionTemplateType\r\n }\r\n};\r\nexports.TypeInfo.NotificationSubscriptionUpdateParameters.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.SubscriptionStatus\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionDiagnostics.fields = {\r\n deliveryResults: {\r\n typeInfo: exports.TypeInfo.SubscriptionTracing\r\n },\r\n deliveryTracing: {\r\n typeInfo: exports.TypeInfo.SubscriptionTracing\r\n },\r\n evaluationTracing: {\r\n typeInfo: exports.TypeInfo.SubscriptionTracing\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionEvaluationRequest.fields = {\r\n minEventsCreatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionEvaluationResult.fields = {\r\n evaluationJobStatus: {\r\n enumType: exports.TypeInfo.EvaluationOperationStatus\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionQuery.fields = {\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.SubscriptionQueryCondition\r\n },\r\n queryFlags: {\r\n enumType: exports.TypeInfo.SubscriptionQueryFlags\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionQueryCondition.fields = {\r\n flags: {\r\n enumType: exports.TypeInfo.SubscriptionFlags\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionTraceDiagnosticLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionTraceEventProcessingLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionTraceNotificationDeliveryLog.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SubscriptionTracing.fields = {\r\n endDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Status of a policy which is running against a specific pull request.\r\n */\r\nvar PolicyEvaluationStatus;\r\n(function (PolicyEvaluationStatus) {\r\n /**\r\n * The policy is either queued to run, or is waiting for some event before progressing.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"Queued\"] = 0] = \"Queued\";\r\n /**\r\n * The policy is currently running.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"Running\"] = 1] = \"Running\";\r\n /**\r\n * The policy has been fulfilled for this pull request.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"Approved\"] = 2] = \"Approved\";\r\n /**\r\n * The policy has rejected this pull request.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"Rejected\"] = 3] = \"Rejected\";\r\n /**\r\n * The policy does not apply to this pull request.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"NotApplicable\"] = 4] = \"NotApplicable\";\r\n /**\r\n * The policy has encountered an unexpected error.\r\n */\r\n PolicyEvaluationStatus[PolicyEvaluationStatus[\"Broken\"] = 5] = \"Broken\";\r\n})(PolicyEvaluationStatus = exports.PolicyEvaluationStatus || (exports.PolicyEvaluationStatus = {}));\r\nexports.TypeInfo = {\r\n PolicyConfiguration: {},\r\n PolicyEvaluationRecord: {},\r\n PolicyEvaluationStatus: {\r\n enumValues: {\r\n \"queued\": 0,\r\n \"running\": 1,\r\n \"approved\": 2,\r\n \"rejected\": 3,\r\n \"notApplicable\": 4,\r\n \"broken\": 5\r\n }\r\n },\r\n};\r\nexports.TypeInfo.PolicyConfiguration.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.PolicyEvaluationRecord.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n configuration: {\r\n typeInfo: exports.TypeInfo.PolicyConfiguration\r\n },\r\n startedDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.PolicyEvaluationStatus\r\n }\r\n};\r\n","/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*/\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AvatarSize;\r\n(function (AvatarSize) {\r\n AvatarSize[AvatarSize[\"Small\"] = 0] = \"Small\";\r\n AvatarSize[AvatarSize[\"Medium\"] = 1] = \"Medium\";\r\n AvatarSize[AvatarSize[\"Large\"] = 2] = \"Large\";\r\n})(AvatarSize = exports.AvatarSize || (exports.AvatarSize = {}));\r\nexports.TypeInfo = {\r\n AttributeDescriptor: {\r\n fields: null\r\n },\r\n AttributesContainer: {\r\n fields: null\r\n },\r\n Avatar: {\r\n fields: null\r\n },\r\n AvatarSize: {\r\n enumValues: {\r\n \"small\": 0,\r\n \"medium\": 1,\r\n \"large\": 2,\r\n }\r\n },\r\n CoreProfileAttribute: {\r\n fields: null\r\n },\r\n Country: {\r\n fields: null\r\n },\r\n CreateProfileContext: {\r\n fields: null\r\n },\r\n GeoRegion: {\r\n fields: null\r\n },\r\n Profile: {\r\n fields: null\r\n },\r\n ProfileAttribute: {\r\n fields: null\r\n },\r\n ProfileAttributeBase: {\r\n fields: null\r\n },\r\n ProfileRegion: {\r\n fields: null\r\n },\r\n ProfileRegions: {\r\n fields: null\r\n },\r\n};\r\nexports.TypeInfo.AttributeDescriptor.fields = {};\r\nexports.TypeInfo.AttributesContainer.fields = {\r\n attributes: {},\r\n};\r\nexports.TypeInfo.Avatar.fields = {\r\n size: {\r\n enumType: exports.TypeInfo.AvatarSize\r\n },\r\n timeStamp: {\r\n isDate: true,\r\n },\r\n};\r\nexports.TypeInfo.CoreProfileAttribute.fields = {\r\n descriptor: {\r\n typeInfo: exports.TypeInfo.AttributeDescriptor\r\n },\r\n timeStamp: {\r\n isDate: true,\r\n },\r\n};\r\nexports.TypeInfo.Country.fields = {};\r\nexports.TypeInfo.CreateProfileContext.fields = {};\r\nexports.TypeInfo.GeoRegion.fields = {};\r\nexports.TypeInfo.Profile.fields = {\r\n applicationContainer: {\r\n typeInfo: exports.TypeInfo.AttributesContainer\r\n },\r\n coreAttributes: {},\r\n timeStamp: {\r\n isDate: true,\r\n },\r\n};\r\nexports.TypeInfo.ProfileAttribute.fields = {\r\n descriptor: {\r\n typeInfo: exports.TypeInfo.AttributeDescriptor\r\n },\r\n timeStamp: {\r\n isDate: true,\r\n },\r\n};\r\nexports.TypeInfo.ProfileAttributeBase.fields = {\r\n descriptor: {\r\n typeInfo: exports.TypeInfo.AttributeDescriptor\r\n },\r\n timeStamp: {\r\n isDate: true,\r\n },\r\n};\r\nexports.TypeInfo.ProfileRegion.fields = {};\r\nexports.TypeInfo.ProfileRegions.fields = {\r\n regions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ProfileRegion\r\n },\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar AggregationType;\r\n(function (AggregationType) {\r\n AggregationType[AggregationType[\"Hourly\"] = 0] = \"Hourly\";\r\n AggregationType[AggregationType[\"Daily\"] = 1] = \"Daily\";\r\n})(AggregationType = exports.AggregationType || (exports.AggregationType = {}));\r\nvar ResultPhase;\r\n(function (ResultPhase) {\r\n ResultPhase[ResultPhase[\"Preliminary\"] = 0] = \"Preliminary\";\r\n ResultPhase[ResultPhase[\"Full\"] = 1] = \"Full\";\r\n})(ResultPhase = exports.ResultPhase || (exports.ResultPhase = {}));\r\nexports.TypeInfo = {\r\n AggregationType: {\r\n enumValues: {\r\n \"hourly\": 0,\r\n \"daily\": 1\r\n }\r\n },\r\n CodeChangeTrendItem: {},\r\n ProjectActivityMetrics: {},\r\n ProjectLanguageAnalytics: {},\r\n RepositoryActivityMetrics: {},\r\n RepositoryLanguageAnalytics: {},\r\n ResultPhase: {\r\n enumValues: {\r\n \"preliminary\": 0,\r\n \"full\": 1\r\n }\r\n },\r\n};\r\nexports.TypeInfo.CodeChangeTrendItem.fields = {\r\n time: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ProjectActivityMetrics.fields = {\r\n codeChangesTrend: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.CodeChangeTrendItem\r\n }\r\n};\r\nexports.TypeInfo.ProjectLanguageAnalytics.fields = {\r\n repositoryLanguageAnalytics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RepositoryLanguageAnalytics\r\n },\r\n resultPhase: {\r\n enumType: exports.TypeInfo.ResultPhase\r\n }\r\n};\r\nexports.TypeInfo.RepositoryActivityMetrics.fields = {\r\n codeChangesTrend: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.CodeChangeTrendItem\r\n }\r\n};\r\nexports.TypeInfo.RepositoryLanguageAnalytics.fields = {\r\n resultPhase: {\r\n enumType: exports.TypeInfo.ResultPhase\r\n },\r\n updatedTime: {\r\n isDate: true,\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst FormInputInterfaces = require(\"../interfaces/common/FormInputInterfaces\");\r\nvar AgentArtifactType;\r\n(function (AgentArtifactType) {\r\n /**\r\n * Indicates XamlBuild artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"XamlBuild\"] = 0] = \"XamlBuild\";\r\n /**\r\n * Indicates Build artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"Build\"] = 1] = \"Build\";\r\n /**\r\n * Indicates Jenkins artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"Jenkins\"] = 2] = \"Jenkins\";\r\n /**\r\n * Indicates FileShare artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"FileShare\"] = 3] = \"FileShare\";\r\n /**\r\n * Indicates Nuget artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"Nuget\"] = 4] = \"Nuget\";\r\n /**\r\n * Indicates TfsOnPrem artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"TfsOnPrem\"] = 5] = \"TfsOnPrem\";\r\n /**\r\n * Indicates GitHub artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"GitHub\"] = 6] = \"GitHub\";\r\n /**\r\n * Indicates TFGit artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"TFGit\"] = 7] = \"TFGit\";\r\n /**\r\n * Indicates ExternalTfsBuild artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"ExternalTfsBuild\"] = 8] = \"ExternalTfsBuild\";\r\n /**\r\n * Indicates Custom artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"Custom\"] = 9] = \"Custom\";\r\n /**\r\n * Indicates Tfvc artifact\r\n */\r\n AgentArtifactType[AgentArtifactType[\"Tfvc\"] = 10] = \"Tfvc\";\r\n})(AgentArtifactType = exports.AgentArtifactType || (exports.AgentArtifactType = {}));\r\nvar ApprovalExecutionOrder;\r\n(function (ApprovalExecutionOrder) {\r\n /**\r\n * Approvals shown before gates.\r\n */\r\n ApprovalExecutionOrder[ApprovalExecutionOrder[\"BeforeGates\"] = 1] = \"BeforeGates\";\r\n /**\r\n * Approvals shown after successful execution of gates.\r\n */\r\n ApprovalExecutionOrder[ApprovalExecutionOrder[\"AfterSuccessfulGates\"] = 2] = \"AfterSuccessfulGates\";\r\n /**\r\n * Approvals shown always after execution of gates.\r\n */\r\n ApprovalExecutionOrder[ApprovalExecutionOrder[\"AfterGatesAlways\"] = 4] = \"AfterGatesAlways\";\r\n})(ApprovalExecutionOrder = exports.ApprovalExecutionOrder || (exports.ApprovalExecutionOrder = {}));\r\nvar ApprovalFilters;\r\n(function (ApprovalFilters) {\r\n /**\r\n * No approvals or approval snapshots.\r\n */\r\n ApprovalFilters[ApprovalFilters[\"None\"] = 0] = \"None\";\r\n /**\r\n * Manual approval steps but no approval snapshots (Use with ApprovalSnapshots for snapshots).\r\n */\r\n ApprovalFilters[ApprovalFilters[\"ManualApprovals\"] = 1] = \"ManualApprovals\";\r\n /**\r\n * Automated approval steps but no approval snapshots (Use with ApprovalSnapshots for snapshots).\r\n */\r\n ApprovalFilters[ApprovalFilters[\"AutomatedApprovals\"] = 2] = \"AutomatedApprovals\";\r\n /**\r\n * No approval steps, but approval snapshots (Use with either ManualApprovals or AutomatedApprovals for approval steps).\r\n */\r\n ApprovalFilters[ApprovalFilters[\"ApprovalSnapshots\"] = 4] = \"ApprovalSnapshots\";\r\n /**\r\n * All approval steps and approval snapshots.\r\n */\r\n ApprovalFilters[ApprovalFilters[\"All\"] = 7] = \"All\";\r\n})(ApprovalFilters = exports.ApprovalFilters || (exports.ApprovalFilters = {}));\r\nvar ApprovalStatus;\r\n(function (ApprovalStatus) {\r\n /**\r\n * Indicates the approval does not have the status set.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Indicates the approval is pending.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Pending\"] = 1] = \"Pending\";\r\n /**\r\n * Indicates the approval is approved.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Approved\"] = 2] = \"Approved\";\r\n /**\r\n * Indicates the approval is rejected.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Rejected\"] = 4] = \"Rejected\";\r\n /**\r\n * Indicates the approval is reassigned.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Reassigned\"] = 6] = \"Reassigned\";\r\n /**\r\n * Indicates the approval is canceled.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Canceled\"] = 7] = \"Canceled\";\r\n /**\r\n * Indicates the approval is skipped.\r\n */\r\n ApprovalStatus[ApprovalStatus[\"Skipped\"] = 8] = \"Skipped\";\r\n})(ApprovalStatus = exports.ApprovalStatus || (exports.ApprovalStatus = {}));\r\nvar ApprovalType;\r\n(function (ApprovalType) {\r\n /**\r\n * Indicates the approval type does not set.\r\n */\r\n ApprovalType[ApprovalType[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Indicates the approvals which executed before deployment.\r\n */\r\n ApprovalType[ApprovalType[\"PreDeploy\"] = 1] = \"PreDeploy\";\r\n /**\r\n * Indicates the approvals which executed after deployment.\r\n */\r\n ApprovalType[ApprovalType[\"PostDeploy\"] = 2] = \"PostDeploy\";\r\n /**\r\n * Indicates all approvals.\r\n */\r\n ApprovalType[ApprovalType[\"All\"] = 3] = \"All\";\r\n})(ApprovalType = exports.ApprovalType || (exports.ApprovalType = {}));\r\nvar AuditAction;\r\n(function (AuditAction) {\r\n /**\r\n * Indicates the audit add.\r\n */\r\n AuditAction[AuditAction[\"Add\"] = 1] = \"Add\";\r\n /**\r\n * Indicates the audit update.\r\n */\r\n AuditAction[AuditAction[\"Update\"] = 2] = \"Update\";\r\n /**\r\n * Indicates the audit delete.\r\n */\r\n AuditAction[AuditAction[\"Delete\"] = 3] = \"Delete\";\r\n /**\r\n * Indicates the audit undelete.\r\n */\r\n AuditAction[AuditAction[\"Undelete\"] = 4] = \"Undelete\";\r\n})(AuditAction = exports.AuditAction || (exports.AuditAction = {}));\r\nvar AuthorizationHeaderFor;\r\n(function (AuthorizationHeaderFor) {\r\n AuthorizationHeaderFor[AuthorizationHeaderFor[\"RevalidateApproverIdentity\"] = 0] = \"RevalidateApproverIdentity\";\r\n AuthorizationHeaderFor[AuthorizationHeaderFor[\"OnBehalfOf\"] = 1] = \"OnBehalfOf\";\r\n})(AuthorizationHeaderFor = exports.AuthorizationHeaderFor || (exports.AuthorizationHeaderFor = {}));\r\nvar ConditionType;\r\n(function (ConditionType) {\r\n /**\r\n * The condition type is undefined.\r\n */\r\n ConditionType[ConditionType[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * The condition type is event.\r\n */\r\n ConditionType[ConditionType[\"Event\"] = 1] = \"Event\";\r\n /**\r\n * The condition type is environment state.\r\n */\r\n ConditionType[ConditionType[\"EnvironmentState\"] = 2] = \"EnvironmentState\";\r\n /**\r\n * The condition type is artifact.\r\n */\r\n ConditionType[ConditionType[\"Artifact\"] = 4] = \"Artifact\";\r\n})(ConditionType = exports.ConditionType || (exports.ConditionType = {}));\r\nvar DeploymentAuthorizationOwner;\r\n(function (DeploymentAuthorizationOwner) {\r\n DeploymentAuthorizationOwner[DeploymentAuthorizationOwner[\"Automatic\"] = 0] = \"Automatic\";\r\n DeploymentAuthorizationOwner[DeploymentAuthorizationOwner[\"DeploymentSubmitter\"] = 1] = \"DeploymentSubmitter\";\r\n DeploymentAuthorizationOwner[DeploymentAuthorizationOwner[\"FirstPreDeploymentApprover\"] = 2] = \"FirstPreDeploymentApprover\";\r\n})(DeploymentAuthorizationOwner = exports.DeploymentAuthorizationOwner || (exports.DeploymentAuthorizationOwner = {}));\r\nvar DeploymentExpands;\r\n(function (DeploymentExpands) {\r\n DeploymentExpands[DeploymentExpands[\"All\"] = 0] = \"All\";\r\n DeploymentExpands[DeploymentExpands[\"DeploymentOnly\"] = 1] = \"DeploymentOnly\";\r\n DeploymentExpands[DeploymentExpands[\"Approvals\"] = 2] = \"Approvals\";\r\n DeploymentExpands[DeploymentExpands[\"Artifacts\"] = 4] = \"Artifacts\";\r\n})(DeploymentExpands = exports.DeploymentExpands || (exports.DeploymentExpands = {}));\r\nvar DeploymentOperationStatus;\r\n(function (DeploymentOperationStatus) {\r\n /**\r\n * The deployment operation status is undefined.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * The deployment operation status is queued.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Queued\"] = 1] = \"Queued\";\r\n /**\r\n * The deployment operation status is scheduled.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Scheduled\"] = 2] = \"Scheduled\";\r\n /**\r\n * The deployment operation status is pending.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Pending\"] = 4] = \"Pending\";\r\n /**\r\n * The deployment operation status is approved.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Approved\"] = 8] = \"Approved\";\r\n /**\r\n * The deployment operation status is rejected.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Rejected\"] = 16] = \"Rejected\";\r\n /**\r\n * The deployment operation status is deferred.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Deferred\"] = 32] = \"Deferred\";\r\n /**\r\n * The deployment operation status is queued for agent.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"QueuedForAgent\"] = 64] = \"QueuedForAgent\";\r\n /**\r\n * The deployment operation status is phase in progress.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"PhaseInProgress\"] = 128] = \"PhaseInProgress\";\r\n /**\r\n * The deployment operation status is phase succeeded.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"PhaseSucceeded\"] = 256] = \"PhaseSucceeded\";\r\n /**\r\n * The deployment operation status is phase partially succeeded.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"PhasePartiallySucceeded\"] = 512] = \"PhasePartiallySucceeded\";\r\n /**\r\n * The deployment operation status is phase failed.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"PhaseFailed\"] = 1024] = \"PhaseFailed\";\r\n /**\r\n * The deployment operation status is canceled.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Canceled\"] = 2048] = \"Canceled\";\r\n /**\r\n * The deployment operation status is phase canceled.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"PhaseCanceled\"] = 4096] = \"PhaseCanceled\";\r\n /**\r\n * The deployment operation status is manualintervention pending.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"ManualInterventionPending\"] = 8192] = \"ManualInterventionPending\";\r\n /**\r\n * The deployment operation status is queued for pipeline.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"QueuedForPipeline\"] = 16384] = \"QueuedForPipeline\";\r\n /**\r\n * The deployment operation status is cancelling.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"Cancelling\"] = 32768] = \"Cancelling\";\r\n /**\r\n * The deployment operation status is EvaluatingGates.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"EvaluatingGates\"] = 65536] = \"EvaluatingGates\";\r\n /**\r\n * The deployment operation status is GateFailed.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"GateFailed\"] = 131072] = \"GateFailed\";\r\n /**\r\n * The deployment operation status is all.\r\n */\r\n DeploymentOperationStatus[DeploymentOperationStatus[\"All\"] = 258047] = \"All\";\r\n})(DeploymentOperationStatus = exports.DeploymentOperationStatus || (exports.DeploymentOperationStatus = {}));\r\nvar DeploymentReason;\r\n(function (DeploymentReason) {\r\n /**\r\n * The deployment reason is none.\r\n */\r\n DeploymentReason[DeploymentReason[\"None\"] = 0] = \"None\";\r\n /**\r\n * The deployment reason is manual.\r\n */\r\n DeploymentReason[DeploymentReason[\"Manual\"] = 1] = \"Manual\";\r\n /**\r\n * The deployment reason is automated.\r\n */\r\n DeploymentReason[DeploymentReason[\"Automated\"] = 2] = \"Automated\";\r\n /**\r\n * The deployment reason is scheduled.\r\n */\r\n DeploymentReason[DeploymentReason[\"Scheduled\"] = 4] = \"Scheduled\";\r\n /**\r\n * The deployment reason is RedeployTrigger.\r\n */\r\n DeploymentReason[DeploymentReason[\"RedeployTrigger\"] = 8] = \"RedeployTrigger\";\r\n})(DeploymentReason = exports.DeploymentReason || (exports.DeploymentReason = {}));\r\nvar DeploymentsQueryType;\r\n(function (DeploymentsQueryType) {\r\n DeploymentsQueryType[DeploymentsQueryType[\"Regular\"] = 1] = \"Regular\";\r\n DeploymentsQueryType[DeploymentsQueryType[\"FailingSince\"] = 2] = \"FailingSince\";\r\n})(DeploymentsQueryType = exports.DeploymentsQueryType || (exports.DeploymentsQueryType = {}));\r\nvar DeploymentStatus;\r\n(function (DeploymentStatus) {\r\n /**\r\n * The deployment status is undefined.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * The deployment status is not deployed.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"NotDeployed\"] = 1] = \"NotDeployed\";\r\n /**\r\n * The deployment status is in progress.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The deployment status is succeeded.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"Succeeded\"] = 4] = \"Succeeded\";\r\n /**\r\n * The deployment status is partiallysucceeded.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"PartiallySucceeded\"] = 8] = \"PartiallySucceeded\";\r\n /**\r\n * The deployment status is failed.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"Failed\"] = 16] = \"Failed\";\r\n /**\r\n * The deployment status is all.\r\n */\r\n DeploymentStatus[DeploymentStatus[\"All\"] = 31] = \"All\";\r\n})(DeploymentStatus = exports.DeploymentStatus || (exports.DeploymentStatus = {}));\r\nvar DeployPhaseStatus;\r\n(function (DeployPhaseStatus) {\r\n /**\r\n * Phase status not set.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Phase execution not started.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"NotStarted\"] = 1] = \"NotStarted\";\r\n /**\r\n * Phase execution in progress.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * Phase execution partially succeeded.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"PartiallySucceeded\"] = 4] = \"PartiallySucceeded\";\r\n /**\r\n * Phase execution succeeded.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Succeeded\"] = 8] = \"Succeeded\";\r\n /**\r\n * Phase execution failed.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Failed\"] = 16] = \"Failed\";\r\n /**\r\n * Phase execution canceled.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Canceled\"] = 32] = \"Canceled\";\r\n /**\r\n * Phase execution skipped.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Skipped\"] = 64] = \"Skipped\";\r\n /**\r\n * Phase is in cancelling state.\r\n */\r\n DeployPhaseStatus[DeployPhaseStatus[\"Cancelling\"] = 128] = \"Cancelling\";\r\n})(DeployPhaseStatus = exports.DeployPhaseStatus || (exports.DeployPhaseStatus = {}));\r\nvar DeployPhaseTypes;\r\n(function (DeployPhaseTypes) {\r\n /**\r\n * Phase type not defined. Don't use this.\r\n */\r\n DeployPhaseTypes[DeployPhaseTypes[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Phase type which contains tasks executed on agent.\r\n */\r\n DeployPhaseTypes[DeployPhaseTypes[\"AgentBasedDeployment\"] = 1] = \"AgentBasedDeployment\";\r\n /**\r\n * Phase type which contains tasks executed by server.\r\n */\r\n DeployPhaseTypes[DeployPhaseTypes[\"RunOnServer\"] = 2] = \"RunOnServer\";\r\n /**\r\n * Phase type which contains tasks executed on deployment group machines.\r\n */\r\n DeployPhaseTypes[DeployPhaseTypes[\"MachineGroupBasedDeployment\"] = 4] = \"MachineGroupBasedDeployment\";\r\n /**\r\n * Phase type which contains tasks which acts as Gates for the deployment to go forward.\r\n */\r\n DeployPhaseTypes[DeployPhaseTypes[\"DeploymentGates\"] = 8] = \"DeploymentGates\";\r\n})(DeployPhaseTypes = exports.DeployPhaseTypes || (exports.DeployPhaseTypes = {}));\r\nvar EnvironmentStatus;\r\n(function (EnvironmentStatus) {\r\n /**\r\n * Environment status not set.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Environment is in not started state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"NotStarted\"] = 1] = \"NotStarted\";\r\n /**\r\n * Environment is in progress state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * Environment is in succeeded state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Succeeded\"] = 4] = \"Succeeded\";\r\n /**\r\n * Environment is in canceled state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Canceled\"] = 8] = \"Canceled\";\r\n /**\r\n * Environment is in rejected state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Rejected\"] = 16] = \"Rejected\";\r\n /**\r\n * Environment is in queued state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Queued\"] = 32] = \"Queued\";\r\n /**\r\n * Environment is in scheduled state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"Scheduled\"] = 64] = \"Scheduled\";\r\n /**\r\n * Environment is in partially succeeded state.\r\n */\r\n EnvironmentStatus[EnvironmentStatus[\"PartiallySucceeded\"] = 128] = \"PartiallySucceeded\";\r\n})(EnvironmentStatus = exports.EnvironmentStatus || (exports.EnvironmentStatus = {}));\r\nvar EnvironmentTriggerType;\r\n(function (EnvironmentTriggerType) {\r\n /**\r\n * Environment trigger type undefined.\r\n */\r\n EnvironmentTriggerType[EnvironmentTriggerType[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Environment trigger type is deployment group redeploy.\r\n */\r\n EnvironmentTriggerType[EnvironmentTriggerType[\"DeploymentGroupRedeploy\"] = 1] = \"DeploymentGroupRedeploy\";\r\n /**\r\n * Environment trigger type is Rollback.\r\n */\r\n EnvironmentTriggerType[EnvironmentTriggerType[\"RollbackRedeploy\"] = 2] = \"RollbackRedeploy\";\r\n})(EnvironmentTriggerType = exports.EnvironmentTriggerType || (exports.EnvironmentTriggerType = {}));\r\nvar FolderPathQueryOrder;\r\n(function (FolderPathQueryOrder) {\r\n /**\r\n * No order.\r\n */\r\n FolderPathQueryOrder[FolderPathQueryOrder[\"None\"] = 0] = \"None\";\r\n /**\r\n * Order by folder name and path ascending.\r\n */\r\n FolderPathQueryOrder[FolderPathQueryOrder[\"Ascending\"] = 1] = \"Ascending\";\r\n /**\r\n * Order by folder name and path descending.\r\n */\r\n FolderPathQueryOrder[FolderPathQueryOrder[\"Descending\"] = 2] = \"Descending\";\r\n})(FolderPathQueryOrder = exports.FolderPathQueryOrder || (exports.FolderPathQueryOrder = {}));\r\nvar GateStatus;\r\n(function (GateStatus) {\r\n /**\r\n * The gate does not have the status set.\r\n */\r\n GateStatus[GateStatus[\"None\"] = 0] = \"None\";\r\n /**\r\n * The gate is in pending state.\r\n */\r\n GateStatus[GateStatus[\"Pending\"] = 1] = \"Pending\";\r\n /**\r\n * The gate is currently in progress.\r\n */\r\n GateStatus[GateStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The gate completed successfully.\r\n */\r\n GateStatus[GateStatus[\"Succeeded\"] = 4] = \"Succeeded\";\r\n /**\r\n * The gate execution failed.\r\n */\r\n GateStatus[GateStatus[\"Failed\"] = 8] = \"Failed\";\r\n /**\r\n * The gate execution cancelled.\r\n */\r\n GateStatus[GateStatus[\"Canceled\"] = 16] = \"Canceled\";\r\n})(GateStatus = exports.GateStatus || (exports.GateStatus = {}));\r\nvar IssueSource;\r\n(function (IssueSource) {\r\n IssueSource[IssueSource[\"None\"] = 0] = \"None\";\r\n IssueSource[IssueSource[\"User\"] = 1] = \"User\";\r\n IssueSource[IssueSource[\"System\"] = 2] = \"System\";\r\n})(IssueSource = exports.IssueSource || (exports.IssueSource = {}));\r\nvar MailSectionType;\r\n(function (MailSectionType) {\r\n MailSectionType[MailSectionType[\"Details\"] = 0] = \"Details\";\r\n MailSectionType[MailSectionType[\"Environments\"] = 1] = \"Environments\";\r\n MailSectionType[MailSectionType[\"Issues\"] = 2] = \"Issues\";\r\n MailSectionType[MailSectionType[\"TestResults\"] = 3] = \"TestResults\";\r\n MailSectionType[MailSectionType[\"WorkItems\"] = 4] = \"WorkItems\";\r\n MailSectionType[MailSectionType[\"ReleaseInfo\"] = 5] = \"ReleaseInfo\";\r\n})(MailSectionType = exports.MailSectionType || (exports.MailSectionType = {}));\r\n/**\r\n * Describes manual intervention status\r\n */\r\nvar ManualInterventionStatus;\r\n(function (ManualInterventionStatus) {\r\n /**\r\n * The manual intervention does not have the status set.\r\n */\r\n ManualInterventionStatus[ManualInterventionStatus[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * The manual intervention is pending.\r\n */\r\n ManualInterventionStatus[ManualInterventionStatus[\"Pending\"] = 1] = \"Pending\";\r\n /**\r\n * The manual intervention is rejected.\r\n */\r\n ManualInterventionStatus[ManualInterventionStatus[\"Rejected\"] = 2] = \"Rejected\";\r\n /**\r\n * The manual intervention is approved.\r\n */\r\n ManualInterventionStatus[ManualInterventionStatus[\"Approved\"] = 4] = \"Approved\";\r\n /**\r\n * The manual intervention is canceled.\r\n */\r\n ManualInterventionStatus[ManualInterventionStatus[\"Canceled\"] = 8] = \"Canceled\";\r\n})(ManualInterventionStatus = exports.ManualInterventionStatus || (exports.ManualInterventionStatus = {}));\r\nvar ParallelExecutionTypes;\r\n(function (ParallelExecutionTypes) {\r\n ParallelExecutionTypes[ParallelExecutionTypes[\"None\"] = 0] = \"None\";\r\n ParallelExecutionTypes[ParallelExecutionTypes[\"MultiConfiguration\"] = 1] = \"MultiConfiguration\";\r\n ParallelExecutionTypes[ParallelExecutionTypes[\"MultiMachine\"] = 2] = \"MultiMachine\";\r\n})(ParallelExecutionTypes = exports.ParallelExecutionTypes || (exports.ParallelExecutionTypes = {}));\r\nvar PipelineProcessTypes;\r\n(function (PipelineProcessTypes) {\r\n PipelineProcessTypes[PipelineProcessTypes[\"Designer\"] = 1] = \"Designer\";\r\n PipelineProcessTypes[PipelineProcessTypes[\"Yaml\"] = 2] = \"Yaml\";\r\n})(PipelineProcessTypes = exports.PipelineProcessTypes || (exports.PipelineProcessTypes = {}));\r\nvar PropertySelectorType;\r\n(function (PropertySelectorType) {\r\n /**\r\n * Include in property selector.\r\n */\r\n PropertySelectorType[PropertySelectorType[\"Inclusion\"] = 0] = \"Inclusion\";\r\n /**\r\n * Exclude in property selector.\r\n */\r\n PropertySelectorType[PropertySelectorType[\"Exclusion\"] = 1] = \"Exclusion\";\r\n})(PropertySelectorType = exports.PropertySelectorType || (exports.PropertySelectorType = {}));\r\nvar PullRequestSystemType;\r\n(function (PullRequestSystemType) {\r\n PullRequestSystemType[PullRequestSystemType[\"None\"] = 0] = \"None\";\r\n PullRequestSystemType[PullRequestSystemType[\"TfsGit\"] = 1] = \"TfsGit\";\r\n PullRequestSystemType[PullRequestSystemType[\"GitHub\"] = 2] = \"GitHub\";\r\n})(PullRequestSystemType = exports.PullRequestSystemType || (exports.PullRequestSystemType = {}));\r\nvar ReleaseDefinitionExpands;\r\n(function (ReleaseDefinitionExpands) {\r\n /**\r\n * Returns top level properties of object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include environments in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"Environments\"] = 2] = \"Environments\";\r\n /**\r\n * Include artifacts in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"Artifacts\"] = 4] = \"Artifacts\";\r\n /**\r\n * Include triggers in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"Triggers\"] = 8] = \"Triggers\";\r\n /**\r\n * Include variables in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"Variables\"] = 16] = \"Variables\";\r\n /**\r\n * Include tags in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"Tags\"] = 32] = \"Tags\";\r\n /**\r\n * Include last release in return object.\r\n */\r\n ReleaseDefinitionExpands[ReleaseDefinitionExpands[\"LastRelease\"] = 64] = \"LastRelease\";\r\n})(ReleaseDefinitionExpands = exports.ReleaseDefinitionExpands || (exports.ReleaseDefinitionExpands = {}));\r\nvar ReleaseDefinitionQueryOrder;\r\n(function (ReleaseDefinitionQueryOrder) {\r\n /**\r\n * Return results based on release definition Id ascending order.\r\n */\r\n ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder[\"IdAscending\"] = 0] = \"IdAscending\";\r\n /**\r\n * Return results based on release definition Id descending order.\r\n */\r\n ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder[\"IdDescending\"] = 1] = \"IdDescending\";\r\n /**\r\n * Return results based on release definition name ascending order.\r\n */\r\n ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder[\"NameAscending\"] = 2] = \"NameAscending\";\r\n /**\r\n * Return results based on release definition name descending order.\r\n */\r\n ReleaseDefinitionQueryOrder[ReleaseDefinitionQueryOrder[\"NameDescending\"] = 3] = \"NameDescending\";\r\n})(ReleaseDefinitionQueryOrder = exports.ReleaseDefinitionQueryOrder || (exports.ReleaseDefinitionQueryOrder = {}));\r\nvar ReleaseDefinitionSource;\r\n(function (ReleaseDefinitionSource) {\r\n /**\r\n * Indicates ReleaseDefinition source not defined.\r\n */\r\n ReleaseDefinitionSource[ReleaseDefinitionSource[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Indicates ReleaseDefinition created using REST API.\r\n */\r\n ReleaseDefinitionSource[ReleaseDefinitionSource[\"RestApi\"] = 1] = \"RestApi\";\r\n /**\r\n * Indicates ReleaseDefinition created using UI.\r\n */\r\n ReleaseDefinitionSource[ReleaseDefinitionSource[\"UserInterface\"] = 2] = \"UserInterface\";\r\n /**\r\n * Indicates ReleaseDefinition created from Ibiza.\r\n */\r\n ReleaseDefinitionSource[ReleaseDefinitionSource[\"Ibiza\"] = 4] = \"Ibiza\";\r\n /**\r\n * Indicates ReleaseDefinition created from PortalExtension API.\r\n */\r\n ReleaseDefinitionSource[ReleaseDefinitionSource[\"PortalExtensionApi\"] = 8] = \"PortalExtensionApi\";\r\n})(ReleaseDefinitionSource = exports.ReleaseDefinitionSource || (exports.ReleaseDefinitionSource = {}));\r\nvar ReleaseEnvironmentExpands;\r\n(function (ReleaseEnvironmentExpands) {\r\n /**\r\n * Return top level properties of object.\r\n */\r\n ReleaseEnvironmentExpands[ReleaseEnvironmentExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Expand environment with tasks.\r\n */\r\n ReleaseEnvironmentExpands[ReleaseEnvironmentExpands[\"Tasks\"] = 1] = \"Tasks\";\r\n})(ReleaseEnvironmentExpands = exports.ReleaseEnvironmentExpands || (exports.ReleaseEnvironmentExpands = {}));\r\nvar ReleaseExpands;\r\n(function (ReleaseExpands) {\r\n ReleaseExpands[ReleaseExpands[\"None\"] = 0] = \"None\";\r\n ReleaseExpands[ReleaseExpands[\"Environments\"] = 2] = \"Environments\";\r\n ReleaseExpands[ReleaseExpands[\"Artifacts\"] = 4] = \"Artifacts\";\r\n ReleaseExpands[ReleaseExpands[\"Approvals\"] = 8] = \"Approvals\";\r\n ReleaseExpands[ReleaseExpands[\"ManualInterventions\"] = 16] = \"ManualInterventions\";\r\n ReleaseExpands[ReleaseExpands[\"Variables\"] = 32] = \"Variables\";\r\n ReleaseExpands[ReleaseExpands[\"Tags\"] = 64] = \"Tags\";\r\n})(ReleaseExpands = exports.ReleaseExpands || (exports.ReleaseExpands = {}));\r\nvar ReleaseQueryOrder;\r\n(function (ReleaseQueryOrder) {\r\n /**\r\n * Return results in descending order.\r\n */\r\n ReleaseQueryOrder[ReleaseQueryOrder[\"Descending\"] = 0] = \"Descending\";\r\n /**\r\n * Return results in ascending order.\r\n */\r\n ReleaseQueryOrder[ReleaseQueryOrder[\"Ascending\"] = 1] = \"Ascending\";\r\n})(ReleaseQueryOrder = exports.ReleaseQueryOrder || (exports.ReleaseQueryOrder = {}));\r\nvar ReleaseReason;\r\n(function (ReleaseReason) {\r\n /**\r\n * Indicates the release triggered reason not set.\r\n */\r\n ReleaseReason[ReleaseReason[\"None\"] = 0] = \"None\";\r\n /**\r\n * Indicates the release triggered manually.\r\n */\r\n ReleaseReason[ReleaseReason[\"Manual\"] = 1] = \"Manual\";\r\n /**\r\n * Indicates the release triggered by continuous integration.\r\n */\r\n ReleaseReason[ReleaseReason[\"ContinuousIntegration\"] = 2] = \"ContinuousIntegration\";\r\n /**\r\n * Indicates the release triggered by schedule.\r\n */\r\n ReleaseReason[ReleaseReason[\"Schedule\"] = 3] = \"Schedule\";\r\n /**\r\n * Indicates the release triggered by PullRequest.\r\n */\r\n ReleaseReason[ReleaseReason[\"PullRequest\"] = 4] = \"PullRequest\";\r\n})(ReleaseReason = exports.ReleaseReason || (exports.ReleaseReason = {}));\r\nvar ReleaseStatus;\r\n(function (ReleaseStatus) {\r\n /**\r\n * Release status not set.\r\n */\r\n ReleaseStatus[ReleaseStatus[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Release is in draft state.\r\n */\r\n ReleaseStatus[ReleaseStatus[\"Draft\"] = 1] = \"Draft\";\r\n /**\r\n * Release status is in active.\r\n */\r\n ReleaseStatus[ReleaseStatus[\"Active\"] = 2] = \"Active\";\r\n /**\r\n * Release status is in abandoned.\r\n */\r\n ReleaseStatus[ReleaseStatus[\"Abandoned\"] = 4] = \"Abandoned\";\r\n})(ReleaseStatus = exports.ReleaseStatus || (exports.ReleaseStatus = {}));\r\nvar ReleaseTriggerType;\r\n(function (ReleaseTriggerType) {\r\n /**\r\n * Release trigger type not set.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Artifact based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"ArtifactSource\"] = 1] = \"ArtifactSource\";\r\n /**\r\n * Schedule based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"Schedule\"] = 2] = \"Schedule\";\r\n /**\r\n * Source repository based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"SourceRepo\"] = 3] = \"SourceRepo\";\r\n /**\r\n * Container image based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"ContainerImage\"] = 4] = \"ContainerImage\";\r\n /**\r\n * Package based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"Package\"] = 5] = \"Package\";\r\n /**\r\n * Pull request based release trigger.\r\n */\r\n ReleaseTriggerType[ReleaseTriggerType[\"PullRequest\"] = 6] = \"PullRequest\";\r\n})(ReleaseTriggerType = exports.ReleaseTriggerType || (exports.ReleaseTriggerType = {}));\r\nvar ScheduleDays;\r\n(function (ScheduleDays) {\r\n /**\r\n * Scheduled day not set.\r\n */\r\n ScheduleDays[ScheduleDays[\"None\"] = 0] = \"None\";\r\n /**\r\n * Scheduled on Monday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Monday\"] = 1] = \"Monday\";\r\n /**\r\n * Scheduled on Tuesday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Tuesday\"] = 2] = \"Tuesday\";\r\n /**\r\n * Scheduled on Wednesday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Wednesday\"] = 4] = \"Wednesday\";\r\n /**\r\n * Scheduled on Thursday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Thursday\"] = 8] = \"Thursday\";\r\n /**\r\n * Scheduled on Friday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Friday\"] = 16] = \"Friday\";\r\n /**\r\n * Scheduled on Saturday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Saturday\"] = 32] = \"Saturday\";\r\n /**\r\n * Scheduled on Sunday.\r\n */\r\n ScheduleDays[ScheduleDays[\"Sunday\"] = 64] = \"Sunday\";\r\n /**\r\n * Scheduled on all the days in week.\r\n */\r\n ScheduleDays[ScheduleDays[\"All\"] = 127] = \"All\";\r\n})(ScheduleDays = exports.ScheduleDays || (exports.ScheduleDays = {}));\r\nvar SenderType;\r\n(function (SenderType) {\r\n SenderType[SenderType[\"ServiceAccount\"] = 1] = \"ServiceAccount\";\r\n SenderType[SenderType[\"RequestingUser\"] = 2] = \"RequestingUser\";\r\n})(SenderType = exports.SenderType || (exports.SenderType = {}));\r\nvar SingleReleaseExpands;\r\n(function (SingleReleaseExpands) {\r\n /**\r\n * Return top level properties of object.\r\n */\r\n SingleReleaseExpands[SingleReleaseExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Expand release with tasks.\r\n */\r\n SingleReleaseExpands[SingleReleaseExpands[\"Tasks\"] = 1] = \"Tasks\";\r\n})(SingleReleaseExpands = exports.SingleReleaseExpands || (exports.SingleReleaseExpands = {}));\r\nvar TaskStatus;\r\n(function (TaskStatus) {\r\n /**\r\n * The task does not have the status set.\r\n */\r\n TaskStatus[TaskStatus[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * The task is in pending status.\r\n */\r\n TaskStatus[TaskStatus[\"Pending\"] = 1] = \"Pending\";\r\n /**\r\n * The task is currently in progress.\r\n */\r\n TaskStatus[TaskStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The task completed successfully.\r\n */\r\n TaskStatus[TaskStatus[\"Success\"] = 3] = \"Success\";\r\n /**\r\n * The task execution failed.\r\n */\r\n TaskStatus[TaskStatus[\"Failure\"] = 4] = \"Failure\";\r\n /**\r\n * The task execution canceled.\r\n */\r\n TaskStatus[TaskStatus[\"Canceled\"] = 5] = \"Canceled\";\r\n /**\r\n * The task execution skipped.\r\n */\r\n TaskStatus[TaskStatus[\"Skipped\"] = 6] = \"Skipped\";\r\n /**\r\n * The task completed successfully.\r\n */\r\n TaskStatus[TaskStatus[\"Succeeded\"] = 7] = \"Succeeded\";\r\n /**\r\n * The task execution failed.\r\n */\r\n TaskStatus[TaskStatus[\"Failed\"] = 8] = \"Failed\";\r\n /**\r\n * The task execution partially succeeded.\r\n */\r\n TaskStatus[TaskStatus[\"PartiallySucceeded\"] = 9] = \"PartiallySucceeded\";\r\n})(TaskStatus = exports.TaskStatus || (exports.TaskStatus = {}));\r\nvar VariableGroupActionFilter;\r\n(function (VariableGroupActionFilter) {\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"None\"] = 0] = \"None\";\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(VariableGroupActionFilter = exports.VariableGroupActionFilter || (exports.VariableGroupActionFilter = {}));\r\nvar YamlFileSourceTypes;\r\n(function (YamlFileSourceTypes) {\r\n YamlFileSourceTypes[YamlFileSourceTypes[\"None\"] = 0] = \"None\";\r\n YamlFileSourceTypes[YamlFileSourceTypes[\"TFSGit\"] = 1] = \"TFSGit\";\r\n})(YamlFileSourceTypes = exports.YamlFileSourceTypes || (exports.YamlFileSourceTypes = {}));\r\nexports.TypeInfo = {\r\n AgentArtifactDefinition: {},\r\n AgentArtifactType: {\r\n enumValues: {\r\n \"xamlBuild\": 0,\r\n \"build\": 1,\r\n \"jenkins\": 2,\r\n \"fileShare\": 3,\r\n \"nuget\": 4,\r\n \"tfsOnPrem\": 5,\r\n \"gitHub\": 6,\r\n \"tfGit\": 7,\r\n \"externalTfsBuild\": 8,\r\n \"custom\": 9,\r\n \"tfvc\": 10\r\n }\r\n },\r\n AgentBasedDeployPhase: {},\r\n AgentDeploymentInput: {},\r\n ApprovalExecutionOrder: {\r\n enumValues: {\r\n \"beforeGates\": 1,\r\n \"afterSuccessfulGates\": 2,\r\n \"afterGatesAlways\": 4\r\n }\r\n },\r\n ApprovalFilters: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manualApprovals\": 1,\r\n \"automatedApprovals\": 2,\r\n \"approvalSnapshots\": 4,\r\n \"all\": 7\r\n }\r\n },\r\n ApprovalOptions: {},\r\n ApprovalStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"pending\": 1,\r\n \"approved\": 2,\r\n \"rejected\": 4,\r\n \"reassigned\": 6,\r\n \"canceled\": 7,\r\n \"skipped\": 8\r\n }\r\n },\r\n ApprovalType: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"preDeploy\": 1,\r\n \"postDeploy\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n ArtifactContributionDefinition: {},\r\n ArtifactMetadata: {},\r\n ArtifactSourceTrigger: {},\r\n ArtifactTypeDefinition: {},\r\n ArtifactVersion: {},\r\n ArtifactVersionQueryResult: {},\r\n AuditAction: {\r\n enumValues: {\r\n \"add\": 1,\r\n \"update\": 2,\r\n \"delete\": 3,\r\n \"undelete\": 4\r\n }\r\n },\r\n AuthorizationHeaderFor: {\r\n enumValues: {\r\n \"revalidateApproverIdentity\": 0,\r\n \"onBehalfOf\": 1\r\n }\r\n },\r\n AutoTriggerIssue: {},\r\n AzureKeyVaultVariableGroupProviderData: {},\r\n AzureKeyVaultVariableValue: {},\r\n BuildVersion: {},\r\n Change: {},\r\n CodeRepositoryReference: {},\r\n Condition: {},\r\n ConditionType: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"event\": 1,\r\n \"environmentState\": 2,\r\n \"artifact\": 4\r\n }\r\n },\r\n ContainerImageTrigger: {},\r\n ContinuousDeploymentTriggerIssue: {},\r\n Deployment: {},\r\n DeploymentApprovalCompletedEvent: {},\r\n DeploymentApprovalPendingEvent: {},\r\n DeploymentAttempt: {},\r\n DeploymentAuthorizationInfo: {},\r\n DeploymentAuthorizationOwner: {\r\n enumValues: {\r\n \"automatic\": 0,\r\n \"deploymentSubmitter\": 1,\r\n \"firstPreDeploymentApprover\": 2\r\n }\r\n },\r\n DeploymentCompletedEvent: {},\r\n DeploymentExpands: {\r\n enumValues: {\r\n \"all\": 0,\r\n \"deploymentOnly\": 1,\r\n \"approvals\": 2,\r\n \"artifacts\": 4\r\n }\r\n },\r\n DeploymentJob: {},\r\n DeploymentManualInterventionPendingEvent: {},\r\n DeploymentOperationStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"queued\": 1,\r\n \"scheduled\": 2,\r\n \"pending\": 4,\r\n \"approved\": 8,\r\n \"rejected\": 16,\r\n \"deferred\": 32,\r\n \"queuedForAgent\": 64,\r\n \"phaseInProgress\": 128,\r\n \"phaseSucceeded\": 256,\r\n \"phasePartiallySucceeded\": 512,\r\n \"phaseFailed\": 1024,\r\n \"canceled\": 2048,\r\n \"phaseCanceled\": 4096,\r\n \"manualInterventionPending\": 8192,\r\n \"queuedForPipeline\": 16384,\r\n \"cancelling\": 32768,\r\n \"evaluatingGates\": 65536,\r\n \"gateFailed\": 131072,\r\n \"all\": 258047\r\n }\r\n },\r\n DeploymentQueryParameters: {},\r\n DeploymentReason: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manual\": 1,\r\n \"automated\": 2,\r\n \"scheduled\": 4,\r\n \"redeployTrigger\": 8\r\n }\r\n },\r\n DeploymentsQueryType: {\r\n enumValues: {\r\n \"regular\": 1,\r\n \"failingSince\": 2\r\n }\r\n },\r\n DeploymentStartedEvent: {},\r\n DeploymentStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"notDeployed\": 1,\r\n \"inProgress\": 2,\r\n \"succeeded\": 4,\r\n \"partiallySucceeded\": 8,\r\n \"failed\": 16,\r\n \"all\": 31\r\n }\r\n },\r\n DeployPhase: {},\r\n DeployPhaseStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"notStarted\": 1,\r\n \"inProgress\": 2,\r\n \"partiallySucceeded\": 4,\r\n \"succeeded\": 8,\r\n \"failed\": 16,\r\n \"canceled\": 32,\r\n \"skipped\": 64,\r\n \"cancelling\": 128\r\n }\r\n },\r\n DeployPhaseTypes: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"agentBasedDeployment\": 1,\r\n \"runOnServer\": 2,\r\n \"machineGroupBasedDeployment\": 4,\r\n \"deploymentGates\": 8\r\n }\r\n },\r\n EnvironmentStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"notStarted\": 1,\r\n \"inProgress\": 2,\r\n \"succeeded\": 4,\r\n \"canceled\": 8,\r\n \"rejected\": 16,\r\n \"queued\": 32,\r\n \"scheduled\": 64,\r\n \"partiallySucceeded\": 128\r\n }\r\n },\r\n EnvironmentTrigger: {},\r\n EnvironmentTriggerType: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"deploymentGroupRedeploy\": 1,\r\n \"rollbackRedeploy\": 2\r\n }\r\n },\r\n ExecutionInput: {},\r\n Folder: {},\r\n FolderPathQueryOrder: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"ascending\": 1,\r\n \"descending\": 2\r\n }\r\n },\r\n GatesDeployPhase: {},\r\n GateStatus: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"pending\": 1,\r\n \"inProgress\": 2,\r\n \"succeeded\": 4,\r\n \"failed\": 8,\r\n \"canceled\": 16\r\n }\r\n },\r\n IgnoredGate: {},\r\n IssueSource: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"user\": 1,\r\n \"system\": 2\r\n }\r\n },\r\n MachineGroupBasedDeployPhase: {},\r\n MailMessage: {},\r\n MailSectionType: {\r\n enumValues: {\r\n \"details\": 0,\r\n \"environments\": 1,\r\n \"issues\": 2,\r\n \"testResults\": 3,\r\n \"workItems\": 4,\r\n \"releaseInfo\": 5\r\n }\r\n },\r\n ManualIntervention: {},\r\n ManualInterventionStatus: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"pending\": 1,\r\n \"rejected\": 2,\r\n \"approved\": 4,\r\n \"canceled\": 8\r\n }\r\n },\r\n ManualInterventionUpdateMetadata: {},\r\n MultiConfigInput: {},\r\n MultiMachineInput: {},\r\n PackageTrigger: {},\r\n ParallelExecutionInputBase: {},\r\n ParallelExecutionTypes: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"multiConfiguration\": 1,\r\n \"multiMachine\": 2\r\n }\r\n },\r\n PipelineProcess: {},\r\n PipelineProcessTypes: {\r\n enumValues: {\r\n \"designer\": 1,\r\n \"yaml\": 2\r\n }\r\n },\r\n PropertySelector: {},\r\n PropertySelectorType: {\r\n enumValues: {\r\n \"inclusion\": 0,\r\n \"exclusion\": 1\r\n }\r\n },\r\n PullRequestConfiguration: {},\r\n PullRequestSystemType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"tfsGit\": 1,\r\n \"gitHub\": 2\r\n }\r\n },\r\n PullRequestTrigger: {},\r\n Release: {},\r\n ReleaseAbandonedEvent: {},\r\n ReleaseApproval: {},\r\n ReleaseApprovalHistory: {},\r\n ReleaseApprovalPendingEvent: {},\r\n ReleaseCondition: {},\r\n ReleaseCreatedEvent: {},\r\n ReleaseDefinition: {},\r\n ReleaseDefinitionApprovals: {},\r\n ReleaseDefinitionEnvironment: {},\r\n ReleaseDefinitionEnvironmentTemplate: {},\r\n ReleaseDefinitionExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"environments\": 2,\r\n \"artifacts\": 4,\r\n \"triggers\": 8,\r\n \"variables\": 16,\r\n \"tags\": 32,\r\n \"lastRelease\": 64\r\n }\r\n },\r\n ReleaseDefinitionQueryOrder: {\r\n enumValues: {\r\n \"idAscending\": 0,\r\n \"idDescending\": 1,\r\n \"nameAscending\": 2,\r\n \"nameDescending\": 3\r\n }\r\n },\r\n ReleaseDefinitionRevision: {},\r\n ReleaseDefinitionSource: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"restApi\": 1,\r\n \"userInterface\": 2,\r\n \"ibiza\": 4,\r\n \"portalExtensionApi\": 8\r\n }\r\n },\r\n ReleaseDefinitionSummary: {},\r\n ReleaseDeployPhase: {},\r\n ReleaseEnvironment: {},\r\n ReleaseEnvironmentCompletedEvent: {},\r\n ReleaseEnvironmentExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"tasks\": 1\r\n }\r\n },\r\n ReleaseEnvironmentStatusUpdatedEvent: {},\r\n ReleaseEnvironmentUpdateMetadata: {},\r\n ReleaseExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"environments\": 2,\r\n \"artifacts\": 4,\r\n \"approvals\": 8,\r\n \"manualInterventions\": 16,\r\n \"variables\": 32,\r\n \"tags\": 64\r\n }\r\n },\r\n ReleaseGates: {},\r\n ReleaseGatesPhase: {},\r\n ReleaseNotCreatedEvent: {},\r\n ReleaseQueryOrder: {\r\n enumValues: {\r\n \"descending\": 0,\r\n \"ascending\": 1\r\n }\r\n },\r\n ReleaseReason: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manual\": 1,\r\n \"continuousIntegration\": 2,\r\n \"schedule\": 3,\r\n \"pullRequest\": 4\r\n }\r\n },\r\n ReleaseReference: {},\r\n ReleaseRevision: {},\r\n ReleaseSchedule: {},\r\n ReleaseStartMetadata: {},\r\n ReleaseStatus: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"draft\": 1,\r\n \"active\": 2,\r\n \"abandoned\": 4\r\n }\r\n },\r\n ReleaseTask: {},\r\n ReleaseTaskAttachment: {},\r\n ReleaseTasksUpdatedEvent: {},\r\n ReleaseTriggerBase: {},\r\n ReleaseTriggerType: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"artifactSource\": 1,\r\n \"schedule\": 2,\r\n \"sourceRepo\": 3,\r\n \"containerImage\": 4,\r\n \"package\": 5,\r\n \"pullRequest\": 6\r\n }\r\n },\r\n ReleaseUpdatedEvent: {},\r\n ReleaseUpdateMetadata: {},\r\n RunOnServerDeployPhase: {},\r\n ScheduleDays: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"monday\": 1,\r\n \"tuesday\": 2,\r\n \"wednesday\": 4,\r\n \"thursday\": 8,\r\n \"friday\": 16,\r\n \"saturday\": 32,\r\n \"sunday\": 64,\r\n \"all\": 127\r\n }\r\n },\r\n ScheduledReleaseTrigger: {},\r\n SenderType: {\r\n enumValues: {\r\n \"serviceAccount\": 1,\r\n \"requestingUser\": 2\r\n }\r\n },\r\n ServerDeploymentInput: {},\r\n SingleReleaseExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"tasks\": 1\r\n }\r\n },\r\n SourcePullRequestVersion: {},\r\n SourceRepoTrigger: {},\r\n SummaryMailSection: {},\r\n TaskStatus: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"pending\": 1,\r\n \"inProgress\": 2,\r\n \"success\": 3,\r\n \"failure\": 4,\r\n \"canceled\": 5,\r\n \"skipped\": 6,\r\n \"succeeded\": 7,\r\n \"failed\": 8,\r\n \"partiallySucceeded\": 9\r\n }\r\n },\r\n VariableGroup: {},\r\n VariableGroupActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n YamlFileSource: {},\r\n YamlFileSourceTypes: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"tfsGit\": 1\r\n }\r\n },\r\n YamlPipelineProcess: {},\r\n};\r\nexports.TypeInfo.AgentArtifactDefinition.fields = {\r\n artifactType: {\r\n enumType: exports.TypeInfo.AgentArtifactType\r\n }\r\n};\r\nexports.TypeInfo.AgentBasedDeployPhase.fields = {\r\n deploymentInput: {\r\n typeInfo: exports.TypeInfo.AgentDeploymentInput\r\n },\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n }\r\n};\r\nexports.TypeInfo.AgentDeploymentInput.fields = {\r\n parallelExecution: {\r\n typeInfo: exports.TypeInfo.ExecutionInput\r\n }\r\n};\r\nexports.TypeInfo.ApprovalOptions.fields = {\r\n executionOrder: {\r\n enumType: exports.TypeInfo.ApprovalExecutionOrder\r\n }\r\n};\r\nexports.TypeInfo.ArtifactContributionDefinition.fields = {\r\n inputDescriptors: {\r\n isArray: true,\r\n typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor\r\n }\r\n};\r\nexports.TypeInfo.ArtifactMetadata.fields = {\r\n instanceReference: {\r\n typeInfo: exports.TypeInfo.BuildVersion\r\n }\r\n};\r\nexports.TypeInfo.ArtifactSourceTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ArtifactTypeDefinition.fields = {\r\n inputDescriptors: {\r\n isArray: true,\r\n typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor\r\n }\r\n};\r\nexports.TypeInfo.ArtifactVersion.fields = {\r\n defaultVersion: {\r\n typeInfo: exports.TypeInfo.BuildVersion\r\n },\r\n versions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BuildVersion\r\n }\r\n};\r\nexports.TypeInfo.ArtifactVersionQueryResult.fields = {\r\n artifactVersions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ArtifactVersion\r\n }\r\n};\r\nexports.TypeInfo.AutoTriggerIssue.fields = {\r\n issueSource: {\r\n enumType: exports.TypeInfo.IssueSource\r\n },\r\n releaseTriggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.AzureKeyVaultVariableGroupProviderData.fields = {\r\n lastRefreshedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AzureKeyVaultVariableValue.fields = {\r\n expires: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildVersion.fields = {\r\n sourcePullRequestVersion: {\r\n typeInfo: exports.TypeInfo.SourcePullRequestVersion\r\n }\r\n};\r\nexports.TypeInfo.Change.fields = {\r\n timestamp: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CodeRepositoryReference.fields = {\r\n systemType: {\r\n enumType: exports.TypeInfo.PullRequestSystemType\r\n }\r\n};\r\nexports.TypeInfo.Condition.fields = {\r\n conditionType: {\r\n enumType: exports.TypeInfo.ConditionType\r\n }\r\n};\r\nexports.TypeInfo.ContainerImageTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ContinuousDeploymentTriggerIssue.fields = {\r\n issueSource: {\r\n enumType: exports.TypeInfo.IssueSource\r\n },\r\n releaseTriggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.Deployment.fields = {\r\n completedOn: {\r\n isDate: true,\r\n },\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Condition\r\n },\r\n deploymentStatus: {\r\n enumType: exports.TypeInfo.DeploymentStatus\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n operationStatus: {\r\n enumType: exports.TypeInfo.DeploymentOperationStatus\r\n },\r\n postDeployApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n preDeployApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n queuedOn: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.DeploymentReason\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n },\r\n scheduledDeploymentTime: {\r\n isDate: true,\r\n },\r\n startedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.DeploymentApprovalCompletedEvent.fields = {\r\n approval: {\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.DeploymentApprovalPendingEvent.fields = {\r\n approval: {\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n approvalOptions: {\r\n typeInfo: exports.TypeInfo.ApprovalOptions\r\n },\r\n completedApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n deployment: {\r\n typeInfo: exports.TypeInfo.Deployment\r\n },\r\n pendingApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.DeploymentAttempt.fields = {\r\n job: {\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n operationStatus: {\r\n enumType: exports.TypeInfo.DeploymentOperationStatus\r\n },\r\n postDeploymentGates: {\r\n typeInfo: exports.TypeInfo.ReleaseGates\r\n },\r\n preDeploymentGates: {\r\n typeInfo: exports.TypeInfo.ReleaseGates\r\n },\r\n queuedOn: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.DeploymentReason\r\n },\r\n releaseDeployPhases: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseDeployPhase\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.DeploymentStatus\r\n },\r\n tasks: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n }\r\n};\r\nexports.TypeInfo.DeploymentAuthorizationInfo.fields = {\r\n authorizationHeaderFor: {\r\n enumType: exports.TypeInfo.AuthorizationHeaderFor\r\n }\r\n};\r\nexports.TypeInfo.DeploymentCompletedEvent.fields = {\r\n deployment: {\r\n typeInfo: exports.TypeInfo.Deployment\r\n },\r\n environment: {\r\n typeInfo: exports.TypeInfo.ReleaseEnvironment\r\n }\r\n};\r\nexports.TypeInfo.DeploymentJob.fields = {\r\n job: {\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n },\r\n tasks: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n }\r\n};\r\nexports.TypeInfo.DeploymentManualInterventionPendingEvent.fields = {\r\n deployment: {\r\n typeInfo: exports.TypeInfo.Deployment\r\n },\r\n manualIntervention: {\r\n typeInfo: exports.TypeInfo.ManualIntervention\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.DeploymentQueryParameters.fields = {\r\n deploymentStatus: {\r\n enumType: exports.TypeInfo.DeploymentStatus\r\n },\r\n expands: {\r\n enumType: exports.TypeInfo.DeploymentExpands\r\n },\r\n maxModifiedTime: {\r\n isDate: true,\r\n },\r\n minModifiedTime: {\r\n isDate: true,\r\n },\r\n operationStatus: {\r\n enumType: exports.TypeInfo.DeploymentOperationStatus\r\n },\r\n queryOrder: {\r\n enumType: exports.TypeInfo.ReleaseQueryOrder\r\n },\r\n queryType: {\r\n enumType: exports.TypeInfo.DeploymentsQueryType\r\n }\r\n};\r\nexports.TypeInfo.DeploymentStartedEvent.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.ReleaseEnvironment\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.DeployPhase.fields = {\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.EnvironmentTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ExecutionInput.fields = {\r\n parallelExecutionType: {\r\n enumType: exports.TypeInfo.ParallelExecutionTypes\r\n }\r\n};\r\nexports.TypeInfo.Folder.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastChangedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.GatesDeployPhase.fields = {\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n }\r\n};\r\nexports.TypeInfo.IgnoredGate.fields = {\r\n lastModifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.MachineGroupBasedDeployPhase.fields = {\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n }\r\n};\r\nexports.TypeInfo.MailMessage.fields = {\r\n replyBy: {\r\n isDate: true,\r\n },\r\n sections: {\r\n isArray: true,\r\n enumType: exports.TypeInfo.MailSectionType\r\n },\r\n senderType: {\r\n enumType: exports.TypeInfo.SenderType\r\n }\r\n};\r\nexports.TypeInfo.ManualIntervention.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ManualInterventionStatus\r\n }\r\n};\r\nexports.TypeInfo.ManualInterventionUpdateMetadata.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.ManualInterventionStatus\r\n }\r\n};\r\nexports.TypeInfo.MultiConfigInput.fields = {\r\n parallelExecutionType: {\r\n enumType: exports.TypeInfo.ParallelExecutionTypes\r\n }\r\n};\r\nexports.TypeInfo.MultiMachineInput.fields = {\r\n parallelExecutionType: {\r\n enumType: exports.TypeInfo.ParallelExecutionTypes\r\n }\r\n};\r\nexports.TypeInfo.PackageTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ParallelExecutionInputBase.fields = {\r\n parallelExecutionType: {\r\n enumType: exports.TypeInfo.ParallelExecutionTypes\r\n }\r\n};\r\nexports.TypeInfo.PipelineProcess.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.PipelineProcessTypes\r\n }\r\n};\r\nexports.TypeInfo.PropertySelector.fields = {\r\n selectorType: {\r\n enumType: exports.TypeInfo.PropertySelectorType\r\n }\r\n};\r\nexports.TypeInfo.PullRequestConfiguration.fields = {\r\n codeRepositoryReference: {\r\n typeInfo: exports.TypeInfo.CodeRepositoryReference\r\n }\r\n};\r\nexports.TypeInfo.PullRequestTrigger.fields = {\r\n pullRequestConfiguration: {\r\n typeInfo: exports.TypeInfo.PullRequestConfiguration\r\n },\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.Release.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n environments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseEnvironment\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.ReleaseReason\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ReleaseStatus\r\n },\r\n variableGroups: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.VariableGroup\r\n }\r\n};\r\nexports.TypeInfo.ReleaseAbandonedEvent.fields = {\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.ReleaseApproval.fields = {\r\n approvalType: {\r\n enumType: exports.TypeInfo.ApprovalType\r\n },\r\n createdOn: {\r\n isDate: true,\r\n },\r\n history: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApprovalHistory\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ApprovalStatus\r\n }\r\n};\r\nexports.TypeInfo.ReleaseApprovalHistory.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseApprovalPendingEvent.fields = {\r\n approval: {\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n approvalOptions: {\r\n typeInfo: exports.TypeInfo.ApprovalOptions\r\n },\r\n completedApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n deployment: {\r\n typeInfo: exports.TypeInfo.Deployment\r\n },\r\n environments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseEnvironment\r\n },\r\n pendingApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n }\r\n};\r\nexports.TypeInfo.ReleaseCondition.fields = {\r\n conditionType: {\r\n enumType: exports.TypeInfo.ConditionType\r\n }\r\n};\r\nexports.TypeInfo.ReleaseCreatedEvent.fields = {\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinition.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n environments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionEnvironment\r\n },\r\n lastRelease: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n pipelineProcess: {\r\n typeInfo: exports.TypeInfo.PipelineProcess\r\n },\r\n source: {\r\n enumType: exports.TypeInfo.ReleaseDefinitionSource\r\n },\r\n triggers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseTriggerBase\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinitionApprovals.fields = {\r\n approvalOptions: {\r\n typeInfo: exports.TypeInfo.ApprovalOptions\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinitionEnvironment.fields = {\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Condition\r\n },\r\n deployPhases: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeployPhase\r\n },\r\n environmentTriggers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.EnvironmentTrigger\r\n },\r\n postDeployApprovals: {\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals\r\n },\r\n preDeployApprovals: {\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals\r\n },\r\n schedules: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseSchedule\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinitionEnvironmentTemplate.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionEnvironment\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinitionRevision.fields = {\r\n changedDate: {\r\n isDate: true,\r\n },\r\n changeType: {\r\n enumType: exports.TypeInfo.AuditAction\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDefinitionSummary.fields = {\r\n releases: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.ReleaseDeployPhase.fields = {\r\n deploymentJobs: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentJob\r\n },\r\n manualInterventions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ManualIntervention\r\n },\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n },\r\n startedOn: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.DeployPhaseStatus\r\n }\r\n};\r\nexports.TypeInfo.ReleaseEnvironment.fields = {\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseCondition\r\n },\r\n createdOn: {\r\n isDate: true,\r\n },\r\n deployPhasesSnapshot: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeployPhase\r\n },\r\n deploySteps: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentAttempt\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n nextScheduledUtcTime: {\r\n isDate: true,\r\n },\r\n postApprovalsSnapshot: {\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals\r\n },\r\n postDeployApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n preApprovalsSnapshot: {\r\n typeInfo: exports.TypeInfo.ReleaseDefinitionApprovals\r\n },\r\n preDeployApprovals: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseApproval\r\n },\r\n scheduledDeploymentTime: {\r\n isDate: true,\r\n },\r\n schedules: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseSchedule\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.EnvironmentStatus\r\n },\r\n variableGroups: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.VariableGroup\r\n }\r\n};\r\nexports.TypeInfo.ReleaseEnvironmentCompletedEvent.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.ReleaseEnvironment\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.DeploymentReason\r\n }\r\n};\r\nexports.TypeInfo.ReleaseEnvironmentStatusUpdatedEvent.fields = {\r\n environmentStatus: {\r\n enumType: exports.TypeInfo.EnvironmentStatus\r\n },\r\n latestDeploymentOperationStatus: {\r\n enumType: exports.TypeInfo.DeploymentOperationStatus\r\n },\r\n latestDeploymentStatus: {\r\n enumType: exports.TypeInfo.DeploymentStatus\r\n }\r\n};\r\nexports.TypeInfo.ReleaseEnvironmentUpdateMetadata.fields = {\r\n scheduledDeploymentTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.EnvironmentStatus\r\n }\r\n};\r\nexports.TypeInfo.ReleaseGates.fields = {\r\n deploymentJobs: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentJob\r\n },\r\n ignoredGates: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.IgnoredGate\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n stabilizationCompletedOn: {\r\n isDate: true,\r\n },\r\n startedOn: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.GateStatus\r\n },\r\n succeedingSince: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseGatesPhase.fields = {\r\n deploymentJobs: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentJob\r\n },\r\n ignoredGates: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.IgnoredGate\r\n },\r\n manualInterventions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ManualIntervention\r\n },\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n },\r\n stabilizationCompletedOn: {\r\n isDate: true,\r\n },\r\n startedOn: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.DeployPhaseStatus\r\n },\r\n succeedingSince: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseNotCreatedEvent.fields = {\r\n releaseReason: {\r\n enumType: exports.TypeInfo.ReleaseReason\r\n }\r\n};\r\nexports.TypeInfo.ReleaseReference.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.ReleaseReason\r\n }\r\n};\r\nexports.TypeInfo.ReleaseRevision.fields = {\r\n changedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseSchedule.fields = {\r\n daysToRelease: {\r\n enumType: exports.TypeInfo.ScheduleDays\r\n }\r\n};\r\nexports.TypeInfo.ReleaseStartMetadata.fields = {\r\n artifacts: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ArtifactMetadata\r\n },\r\n reason: {\r\n enumType: exports.TypeInfo.ReleaseReason\r\n }\r\n};\r\nexports.TypeInfo.ReleaseTask.fields = {\r\n dateEnded: {\r\n isDate: true,\r\n },\r\n dateStarted: {\r\n isDate: true,\r\n },\r\n finishTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.TaskStatus\r\n }\r\n};\r\nexports.TypeInfo.ReleaseTaskAttachment.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseTasksUpdatedEvent.fields = {\r\n job: {\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n },\r\n tasks: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ReleaseTask\r\n }\r\n};\r\nexports.TypeInfo.ReleaseTriggerBase.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ReleaseUpdatedEvent.fields = {\r\n release: {\r\n typeInfo: exports.TypeInfo.Release\r\n }\r\n};\r\nexports.TypeInfo.ReleaseUpdateMetadata.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.ReleaseStatus\r\n }\r\n};\r\nexports.TypeInfo.RunOnServerDeployPhase.fields = {\r\n deploymentInput: {\r\n typeInfo: exports.TypeInfo.ServerDeploymentInput\r\n },\r\n phaseType: {\r\n enumType: exports.TypeInfo.DeployPhaseTypes\r\n }\r\n};\r\nexports.TypeInfo.ScheduledReleaseTrigger.fields = {\r\n schedule: {\r\n typeInfo: exports.TypeInfo.ReleaseSchedule\r\n },\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.ServerDeploymentInput.fields = {\r\n parallelExecution: {\r\n typeInfo: exports.TypeInfo.ExecutionInput\r\n }\r\n};\r\nexports.TypeInfo.SourcePullRequestVersion.fields = {\r\n pullRequestMergedAt: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SourceRepoTrigger.fields = {\r\n triggerType: {\r\n enumType: exports.TypeInfo.ReleaseTriggerType\r\n }\r\n};\r\nexports.TypeInfo.SummaryMailSection.fields = {\r\n sectionType: {\r\n enumType: exports.TypeInfo.MailSectionType\r\n }\r\n};\r\nexports.TypeInfo.VariableGroup.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.YamlFileSource.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.YamlFileSourceTypes\r\n }\r\n};\r\nexports.TypeInfo.YamlPipelineProcess.fields = {\r\n fileSource: {\r\n typeInfo: exports.TypeInfo.YamlFileSource\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.PipelineProcessTypes\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar RoleAccess;\r\n(function (RoleAccess) {\r\n /**\r\n * Access has been explicitly set.\r\n */\r\n RoleAccess[RoleAccess[\"Assigned\"] = 1] = \"Assigned\";\r\n /**\r\n * Access has been inherited from a higher scope.\r\n */\r\n RoleAccess[RoleAccess[\"Inherited\"] = 2] = \"Inherited\";\r\n})(RoleAccess = exports.RoleAccess || (exports.RoleAccess = {}));\r\nexports.TypeInfo = {\r\n RoleAccess: {\r\n enumValues: {\r\n \"assigned\": 1,\r\n \"inherited\": 2\r\n }\r\n },\r\n RoleAssignment: {},\r\n};\r\nexports.TypeInfo.RoleAssignment.fields = {\r\n access: {\r\n enumType: exports.TypeInfo.RoleAccess\r\n },\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst FormInputInterfaces = require(\"../interfaces/common/FormInputInterfaces\");\r\nvar AadLoginPromptOption;\r\n(function (AadLoginPromptOption) {\r\n /**\r\n * Do not provide a prompt option\r\n */\r\n AadLoginPromptOption[AadLoginPromptOption[\"NoOption\"] = 0] = \"NoOption\";\r\n /**\r\n * Force the user to login again.\r\n */\r\n AadLoginPromptOption[AadLoginPromptOption[\"Login\"] = 1] = \"Login\";\r\n /**\r\n * Force the user to select which account they are logging in with instead of automatically picking the user up from the session state. NOTE: This does not work for switching between the variants of a dual-homed user.\r\n */\r\n AadLoginPromptOption[AadLoginPromptOption[\"SelectAccount\"] = 2] = \"SelectAccount\";\r\n /**\r\n * Force the user to login again. Ignore current authentication state and force the user to authenticate again. This option should be used instead of Login. \r\n */\r\n AadLoginPromptOption[AadLoginPromptOption[\"FreshLogin\"] = 3] = \"FreshLogin\";\r\n /**\r\n * Force the user to login again with mfa. Ignore current authentication state and force the user to authenticate again. This option should be used instead of Login, if MFA is required. \r\n */\r\n AadLoginPromptOption[AadLoginPromptOption[\"FreshLoginWithMfa\"] = 4] = \"FreshLoginWithMfa\";\r\n})(AadLoginPromptOption = exports.AadLoginPromptOption || (exports.AadLoginPromptOption = {}));\r\nvar AuditAction;\r\n(function (AuditAction) {\r\n AuditAction[AuditAction[\"Add\"] = 1] = \"Add\";\r\n AuditAction[AuditAction[\"Update\"] = 2] = \"Update\";\r\n AuditAction[AuditAction[\"Delete\"] = 3] = \"Delete\";\r\n AuditAction[AuditAction[\"Undelete\"] = 4] = \"Undelete\";\r\n})(AuditAction = exports.AuditAction || (exports.AuditAction = {}));\r\nvar DemandSourceType;\r\n(function (DemandSourceType) {\r\n DemandSourceType[DemandSourceType[\"Task\"] = 0] = \"Task\";\r\n DemandSourceType[DemandSourceType[\"Feature\"] = 1] = \"Feature\";\r\n})(DemandSourceType = exports.DemandSourceType || (exports.DemandSourceType = {}));\r\n/**\r\n * This is useful in getting a list of deployment groups, filtered for which caller has permissions to take a particular action.\r\n */\r\nvar DeploymentGroupActionFilter;\r\n(function (DeploymentGroupActionFilter) {\r\n /**\r\n * All deployment groups.\r\n */\r\n DeploymentGroupActionFilter[DeploymentGroupActionFilter[\"None\"] = 0] = \"None\";\r\n /**\r\n * Only deployment groups for which caller has **manage** permission.\r\n */\r\n DeploymentGroupActionFilter[DeploymentGroupActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n /**\r\n * Only deployment groups for which caller has **use** permission.\r\n */\r\n DeploymentGroupActionFilter[DeploymentGroupActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(DeploymentGroupActionFilter = exports.DeploymentGroupActionFilter || (exports.DeploymentGroupActionFilter = {}));\r\n/**\r\n * Properties to be included or expanded in deployment group objects. This is useful when getting a single or list of deployment grouops.\r\n */\r\nvar DeploymentGroupExpands;\r\n(function (DeploymentGroupExpands) {\r\n /**\r\n * No additional properties.\r\n */\r\n DeploymentGroupExpands[DeploymentGroupExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Deprecated: Include all the deployment targets.\r\n */\r\n DeploymentGroupExpands[DeploymentGroupExpands[\"Machines\"] = 2] = \"Machines\";\r\n /**\r\n * Include unique list of tags across all deployment targets.\r\n */\r\n DeploymentGroupExpands[DeploymentGroupExpands[\"Tags\"] = 4] = \"Tags\";\r\n})(DeploymentGroupExpands = exports.DeploymentGroupExpands || (exports.DeploymentGroupExpands = {}));\r\nvar DeploymentMachineExpands;\r\n(function (DeploymentMachineExpands) {\r\n DeploymentMachineExpands[DeploymentMachineExpands[\"None\"] = 0] = \"None\";\r\n DeploymentMachineExpands[DeploymentMachineExpands[\"Capabilities\"] = 2] = \"Capabilities\";\r\n DeploymentMachineExpands[DeploymentMachineExpands[\"AssignedRequest\"] = 4] = \"AssignedRequest\";\r\n})(DeploymentMachineExpands = exports.DeploymentMachineExpands || (exports.DeploymentMachineExpands = {}));\r\n/**\r\n * Properties to be included or expanded in deployment pool summary objects. This is useful when getting a single or list of deployment pool summaries.\r\n */\r\nvar DeploymentPoolSummaryExpands;\r\n(function (DeploymentPoolSummaryExpands) {\r\n /**\r\n * No additional properties\r\n */\r\n DeploymentPoolSummaryExpands[DeploymentPoolSummaryExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include deployment groups referring to the deployment pool.\r\n */\r\n DeploymentPoolSummaryExpands[DeploymentPoolSummaryExpands[\"DeploymentGroups\"] = 2] = \"DeploymentGroups\";\r\n /**\r\n * Include Resource referring to the deployment pool.\r\n */\r\n DeploymentPoolSummaryExpands[DeploymentPoolSummaryExpands[\"Resource\"] = 4] = \"Resource\";\r\n})(DeploymentPoolSummaryExpands = exports.DeploymentPoolSummaryExpands || (exports.DeploymentPoolSummaryExpands = {}));\r\n/**\r\n * Properties to be included or expanded in deployment target objects. This is useful when getting a single or list of deployment targets.\r\n */\r\nvar DeploymentTargetExpands;\r\n(function (DeploymentTargetExpands) {\r\n /**\r\n * No additional properties.\r\n */\r\n DeploymentTargetExpands[DeploymentTargetExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include capabilities of the deployment agent.\r\n */\r\n DeploymentTargetExpands[DeploymentTargetExpands[\"Capabilities\"] = 2] = \"Capabilities\";\r\n /**\r\n * Include the job request assigned to the deployment agent.\r\n */\r\n DeploymentTargetExpands[DeploymentTargetExpands[\"AssignedRequest\"] = 4] = \"AssignedRequest\";\r\n /**\r\n * Include the last completed job request of the deployment agent.\r\n */\r\n DeploymentTargetExpands[DeploymentTargetExpands[\"LastCompletedRequest\"] = 8] = \"LastCompletedRequest\";\r\n})(DeploymentTargetExpands = exports.DeploymentTargetExpands || (exports.DeploymentTargetExpands = {}));\r\nvar ElasticAgentState;\r\n(function (ElasticAgentState) {\r\n ElasticAgentState[ElasticAgentState[\"None\"] = 0] = \"None\";\r\n ElasticAgentState[ElasticAgentState[\"Enabled\"] = 1] = \"Enabled\";\r\n ElasticAgentState[ElasticAgentState[\"Online\"] = 2] = \"Online\";\r\n ElasticAgentState[ElasticAgentState[\"Assigned\"] = 4] = \"Assigned\";\r\n})(ElasticAgentState = exports.ElasticAgentState || (exports.ElasticAgentState = {}));\r\nvar ElasticComputeState;\r\n(function (ElasticComputeState) {\r\n ElasticComputeState[ElasticComputeState[\"None\"] = 0] = \"None\";\r\n ElasticComputeState[ElasticComputeState[\"Healthy\"] = 1] = \"Healthy\";\r\n ElasticComputeState[ElasticComputeState[\"Creating\"] = 2] = \"Creating\";\r\n ElasticComputeState[ElasticComputeState[\"Deleting\"] = 3] = \"Deleting\";\r\n ElasticComputeState[ElasticComputeState[\"Failed\"] = 4] = \"Failed\";\r\n ElasticComputeState[ElasticComputeState[\"Stopped\"] = 5] = \"Stopped\";\r\n})(ElasticComputeState = exports.ElasticComputeState || (exports.ElasticComputeState = {}));\r\nvar ElasticNodeState;\r\n(function (ElasticNodeState) {\r\n ElasticNodeState[ElasticNodeState[\"None\"] = 0] = \"None\";\r\n ElasticNodeState[ElasticNodeState[\"New\"] = 1] = \"New\";\r\n ElasticNodeState[ElasticNodeState[\"CreatingCompute\"] = 2] = \"CreatingCompute\";\r\n ElasticNodeState[ElasticNodeState[\"StartingAgent\"] = 3] = \"StartingAgent\";\r\n ElasticNodeState[ElasticNodeState[\"Idle\"] = 4] = \"Idle\";\r\n ElasticNodeState[ElasticNodeState[\"Assigned\"] = 5] = \"Assigned\";\r\n ElasticNodeState[ElasticNodeState[\"Offline\"] = 6] = \"Offline\";\r\n ElasticNodeState[ElasticNodeState[\"PendingReimage\"] = 7] = \"PendingReimage\";\r\n ElasticNodeState[ElasticNodeState[\"PendingDelete\"] = 8] = \"PendingDelete\";\r\n ElasticNodeState[ElasticNodeState[\"Saved\"] = 9] = \"Saved\";\r\n ElasticNodeState[ElasticNodeState[\"DeletingCompute\"] = 10] = \"DeletingCompute\";\r\n ElasticNodeState[ElasticNodeState[\"Deleted\"] = 11] = \"Deleted\";\r\n ElasticNodeState[ElasticNodeState[\"Lost\"] = 12] = \"Lost\";\r\n})(ElasticNodeState = exports.ElasticNodeState || (exports.ElasticNodeState = {}));\r\nvar ElasticPoolState;\r\n(function (ElasticPoolState) {\r\n /**\r\n * Online and healthy\r\n */\r\n ElasticPoolState[ElasticPoolState[\"Online\"] = 0] = \"Online\";\r\n ElasticPoolState[ElasticPoolState[\"Offline\"] = 1] = \"Offline\";\r\n ElasticPoolState[ElasticPoolState[\"Unhealthy\"] = 2] = \"Unhealthy\";\r\n ElasticPoolState[ElasticPoolState[\"New\"] = 3] = \"New\";\r\n})(ElasticPoolState = exports.ElasticPoolState || (exports.ElasticPoolState = {}));\r\n/**\r\n * This is useful in getting a list of Environments, filtered for which caller has permissions to take a particular action.\r\n */\r\nvar EnvironmentActionFilter;\r\n(function (EnvironmentActionFilter) {\r\n /**\r\n * All environments for which user has **view** permission.\r\n */\r\n EnvironmentActionFilter[EnvironmentActionFilter[\"None\"] = 0] = \"None\";\r\n /**\r\n * Only environments for which caller has **manage** permission.\r\n */\r\n EnvironmentActionFilter[EnvironmentActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n /**\r\n * Only environments for which caller has **use** permission.\r\n */\r\n EnvironmentActionFilter[EnvironmentActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(EnvironmentActionFilter = exports.EnvironmentActionFilter || (exports.EnvironmentActionFilter = {}));\r\n/**\r\n * Properties to be included or expanded in environment objects. This is useful when getting a single environment.\r\n */\r\nvar EnvironmentExpands;\r\n(function (EnvironmentExpands) {\r\n /**\r\n * No additional properties\r\n */\r\n EnvironmentExpands[EnvironmentExpands[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include resource references referring to the environment.\r\n */\r\n EnvironmentExpands[EnvironmentExpands[\"ResourceReferences\"] = 1] = \"ResourceReferences\";\r\n})(EnvironmentExpands = exports.EnvironmentExpands || (exports.EnvironmentExpands = {}));\r\n/**\r\n * EnvironmentResourceType.\r\n */\r\nvar EnvironmentResourceType;\r\n(function (EnvironmentResourceType) {\r\n EnvironmentResourceType[EnvironmentResourceType[\"Undefined\"] = 0] = \"Undefined\";\r\n /**\r\n * Unknown resource type\r\n */\r\n EnvironmentResourceType[EnvironmentResourceType[\"Generic\"] = 1] = \"Generic\";\r\n /**\r\n * Virtual machine resource type\r\n */\r\n EnvironmentResourceType[EnvironmentResourceType[\"VirtualMachine\"] = 2] = \"VirtualMachine\";\r\n /**\r\n * Kubernetes resource type\r\n */\r\n EnvironmentResourceType[EnvironmentResourceType[\"Kubernetes\"] = 4] = \"Kubernetes\";\r\n})(EnvironmentResourceType = exports.EnvironmentResourceType || (exports.EnvironmentResourceType = {}));\r\nvar IssueType;\r\n(function (IssueType) {\r\n IssueType[IssueType[\"Error\"] = 1] = \"Error\";\r\n IssueType[IssueType[\"Warning\"] = 2] = \"Warning\";\r\n})(IssueType = exports.IssueType || (exports.IssueType = {}));\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\r\n LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\r\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\r\n})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));\r\nvar MachineGroupActionFilter;\r\n(function (MachineGroupActionFilter) {\r\n MachineGroupActionFilter[MachineGroupActionFilter[\"None\"] = 0] = \"None\";\r\n MachineGroupActionFilter[MachineGroupActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n MachineGroupActionFilter[MachineGroupActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(MachineGroupActionFilter = exports.MachineGroupActionFilter || (exports.MachineGroupActionFilter = {}));\r\nvar MaskType;\r\n(function (MaskType) {\r\n MaskType[MaskType[\"Variable\"] = 1] = \"Variable\";\r\n MaskType[MaskType[\"Regex\"] = 2] = \"Regex\";\r\n})(MaskType = exports.MaskType || (exports.MaskType = {}));\r\nvar OperatingSystemType;\r\n(function (OperatingSystemType) {\r\n OperatingSystemType[OperatingSystemType[\"Windows\"] = 0] = \"Windows\";\r\n OperatingSystemType[OperatingSystemType[\"Linux\"] = 1] = \"Linux\";\r\n})(OperatingSystemType = exports.OperatingSystemType || (exports.OperatingSystemType = {}));\r\nvar OperationType;\r\n(function (OperationType) {\r\n OperationType[OperationType[\"ConfigurationJob\"] = 0] = \"ConfigurationJob\";\r\n OperationType[OperationType[\"SizingJob\"] = 1] = \"SizingJob\";\r\n OperationType[OperationType[\"IncreaseCapacity\"] = 2] = \"IncreaseCapacity\";\r\n OperationType[OperationType[\"Reimage\"] = 3] = \"Reimage\";\r\n OperationType[OperationType[\"DeleteVMs\"] = 4] = \"DeleteVMs\";\r\n})(OperationType = exports.OperationType || (exports.OperationType = {}));\r\nvar PlanGroupStatus;\r\n(function (PlanGroupStatus) {\r\n PlanGroupStatus[PlanGroupStatus[\"Running\"] = 1] = \"Running\";\r\n PlanGroupStatus[PlanGroupStatus[\"Queued\"] = 2] = \"Queued\";\r\n PlanGroupStatus[PlanGroupStatus[\"All\"] = 3] = \"All\";\r\n})(PlanGroupStatus = exports.PlanGroupStatus || (exports.PlanGroupStatus = {}));\r\nvar PlanGroupStatusFilter;\r\n(function (PlanGroupStatusFilter) {\r\n PlanGroupStatusFilter[PlanGroupStatusFilter[\"Running\"] = 1] = \"Running\";\r\n PlanGroupStatusFilter[PlanGroupStatusFilter[\"Queued\"] = 2] = \"Queued\";\r\n PlanGroupStatusFilter[PlanGroupStatusFilter[\"All\"] = 3] = \"All\";\r\n})(PlanGroupStatusFilter = exports.PlanGroupStatusFilter || (exports.PlanGroupStatusFilter = {}));\r\nvar ResourceLockStatus;\r\n(function (ResourceLockStatus) {\r\n ResourceLockStatus[ResourceLockStatus[\"Queued\"] = 0] = \"Queued\";\r\n ResourceLockStatus[ResourceLockStatus[\"InUse\"] = 1] = \"InUse\";\r\n ResourceLockStatus[ResourceLockStatus[\"Finished\"] = 2] = \"Finished\";\r\n ResourceLockStatus[ResourceLockStatus[\"TimedOut\"] = 3] = \"TimedOut\";\r\n ResourceLockStatus[ResourceLockStatus[\"Canceled\"] = 4] = \"Canceled\";\r\n ResourceLockStatus[ResourceLockStatus[\"Abandoned\"] = 5] = \"Abandoned\";\r\n})(ResourceLockStatus = exports.ResourceLockStatus || (exports.ResourceLockStatus = {}));\r\nvar SecureFileActionFilter;\r\n(function (SecureFileActionFilter) {\r\n SecureFileActionFilter[SecureFileActionFilter[\"None\"] = 0] = \"None\";\r\n SecureFileActionFilter[SecureFileActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n SecureFileActionFilter[SecureFileActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(SecureFileActionFilter = exports.SecureFileActionFilter || (exports.SecureFileActionFilter = {}));\r\n/**\r\n * This is useful in getting a list of deployment targets, filtered by the result of their last job.\r\n */\r\nvar TaskAgentJobResultFilter;\r\n(function (TaskAgentJobResultFilter) {\r\n /**\r\n * Only those deployment targets on which last job failed (**Abandoned**, **Canceled**, **Failed**, **Skipped**).\r\n */\r\n TaskAgentJobResultFilter[TaskAgentJobResultFilter[\"Failed\"] = 1] = \"Failed\";\r\n /**\r\n * Only those deployment targets on which last job Passed (**Succeeded**, **Succeeded with issues**).\r\n */\r\n TaskAgentJobResultFilter[TaskAgentJobResultFilter[\"Passed\"] = 2] = \"Passed\";\r\n /**\r\n * Only those deployment targets that never executed a job.\r\n */\r\n TaskAgentJobResultFilter[TaskAgentJobResultFilter[\"NeverDeployed\"] = 4] = \"NeverDeployed\";\r\n /**\r\n * All deployment targets.\r\n */\r\n TaskAgentJobResultFilter[TaskAgentJobResultFilter[\"All\"] = 7] = \"All\";\r\n})(TaskAgentJobResultFilter = exports.TaskAgentJobResultFilter || (exports.TaskAgentJobResultFilter = {}));\r\nvar TaskAgentJobStepType;\r\n(function (TaskAgentJobStepType) {\r\n TaskAgentJobStepType[TaskAgentJobStepType[\"Task\"] = 1] = \"Task\";\r\n TaskAgentJobStepType[TaskAgentJobStepType[\"Action\"] = 2] = \"Action\";\r\n})(TaskAgentJobStepType = exports.TaskAgentJobStepType || (exports.TaskAgentJobStepType = {}));\r\n/**\r\n * Filters pools based on whether the calling user has permission to use or manage the pool.\r\n */\r\nvar TaskAgentPoolActionFilter;\r\n(function (TaskAgentPoolActionFilter) {\r\n TaskAgentPoolActionFilter[TaskAgentPoolActionFilter[\"None\"] = 0] = \"None\";\r\n TaskAgentPoolActionFilter[TaskAgentPoolActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n TaskAgentPoolActionFilter[TaskAgentPoolActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(TaskAgentPoolActionFilter = exports.TaskAgentPoolActionFilter || (exports.TaskAgentPoolActionFilter = {}));\r\nvar TaskAgentPoolMaintenanceJobResult;\r\n(function (TaskAgentPoolMaintenanceJobResult) {\r\n TaskAgentPoolMaintenanceJobResult[TaskAgentPoolMaintenanceJobResult[\"Succeeded\"] = 1] = \"Succeeded\";\r\n TaskAgentPoolMaintenanceJobResult[TaskAgentPoolMaintenanceJobResult[\"Failed\"] = 2] = \"Failed\";\r\n TaskAgentPoolMaintenanceJobResult[TaskAgentPoolMaintenanceJobResult[\"Canceled\"] = 4] = \"Canceled\";\r\n})(TaskAgentPoolMaintenanceJobResult = exports.TaskAgentPoolMaintenanceJobResult || (exports.TaskAgentPoolMaintenanceJobResult = {}));\r\nvar TaskAgentPoolMaintenanceJobStatus;\r\n(function (TaskAgentPoolMaintenanceJobStatus) {\r\n TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus[\"Completed\"] = 2] = \"Completed\";\r\n TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus[\"Cancelling\"] = 4] = \"Cancelling\";\r\n TaskAgentPoolMaintenanceJobStatus[TaskAgentPoolMaintenanceJobStatus[\"Queued\"] = 8] = \"Queued\";\r\n})(TaskAgentPoolMaintenanceJobStatus = exports.TaskAgentPoolMaintenanceJobStatus || (exports.TaskAgentPoolMaintenanceJobStatus = {}));\r\nvar TaskAgentPoolMaintenanceScheduleDays;\r\n(function (TaskAgentPoolMaintenanceScheduleDays) {\r\n /**\r\n * Do not run.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"None\"] = 0] = \"None\";\r\n /**\r\n * Run on Monday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Monday\"] = 1] = \"Monday\";\r\n /**\r\n * Run on Tuesday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Tuesday\"] = 2] = \"Tuesday\";\r\n /**\r\n * Run on Wednesday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Wednesday\"] = 4] = \"Wednesday\";\r\n /**\r\n * Run on Thursday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Thursday\"] = 8] = \"Thursday\";\r\n /**\r\n * Run on Friday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Friday\"] = 16] = \"Friday\";\r\n /**\r\n * Run on Saturday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Saturday\"] = 32] = \"Saturday\";\r\n /**\r\n * Run on Sunday.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"Sunday\"] = 64] = \"Sunday\";\r\n /**\r\n * Run on all days of the week.\r\n */\r\n TaskAgentPoolMaintenanceScheduleDays[TaskAgentPoolMaintenanceScheduleDays[\"All\"] = 127] = \"All\";\r\n})(TaskAgentPoolMaintenanceScheduleDays = exports.TaskAgentPoolMaintenanceScheduleDays || (exports.TaskAgentPoolMaintenanceScheduleDays = {}));\r\n/**\r\n * Additional settings and descriptors for a TaskAgentPool\r\n */\r\nvar TaskAgentPoolOptions;\r\n(function (TaskAgentPoolOptions) {\r\n TaskAgentPoolOptions[TaskAgentPoolOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * TaskAgentPool backed by the Elastic pool service\r\n */\r\n TaskAgentPoolOptions[TaskAgentPoolOptions[\"ElasticPool\"] = 1] = \"ElasticPool\";\r\n /**\r\n * Set to true if agents are re-imaged after each TaskAgentJobRequest\r\n */\r\n TaskAgentPoolOptions[TaskAgentPoolOptions[\"SingleUseAgents\"] = 2] = \"SingleUseAgents\";\r\n /**\r\n * Set to true if agents are held for investigation after a TaskAgentJobRequest failure\r\n */\r\n TaskAgentPoolOptions[TaskAgentPoolOptions[\"PreserveAgentOnJobFailure\"] = 4] = \"PreserveAgentOnJobFailure\";\r\n})(TaskAgentPoolOptions = exports.TaskAgentPoolOptions || (exports.TaskAgentPoolOptions = {}));\r\n/**\r\n * The type of agent pool.\r\n */\r\nvar TaskAgentPoolType;\r\n(function (TaskAgentPoolType) {\r\n /**\r\n * A typical pool of task agents\r\n */\r\n TaskAgentPoolType[TaskAgentPoolType[\"Automation\"] = 1] = \"Automation\";\r\n /**\r\n * A deployment pool\r\n */\r\n TaskAgentPoolType[TaskAgentPoolType[\"Deployment\"] = 2] = \"Deployment\";\r\n})(TaskAgentPoolType = exports.TaskAgentPoolType || (exports.TaskAgentPoolType = {}));\r\n/**\r\n * Filters queues based on whether the calling user has permission to use or manage the queue.\r\n */\r\nvar TaskAgentQueueActionFilter;\r\n(function (TaskAgentQueueActionFilter) {\r\n TaskAgentQueueActionFilter[TaskAgentQueueActionFilter[\"None\"] = 0] = \"None\";\r\n TaskAgentQueueActionFilter[TaskAgentQueueActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n TaskAgentQueueActionFilter[TaskAgentQueueActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(TaskAgentQueueActionFilter = exports.TaskAgentQueueActionFilter || (exports.TaskAgentQueueActionFilter = {}));\r\nvar TaskAgentRequestUpdateOptions;\r\n(function (TaskAgentRequestUpdateOptions) {\r\n TaskAgentRequestUpdateOptions[TaskAgentRequestUpdateOptions[\"None\"] = 0] = \"None\";\r\n TaskAgentRequestUpdateOptions[TaskAgentRequestUpdateOptions[\"BumpRequestToTop\"] = 1] = \"BumpRequestToTop\";\r\n})(TaskAgentRequestUpdateOptions = exports.TaskAgentRequestUpdateOptions || (exports.TaskAgentRequestUpdateOptions = {}));\r\nvar TaskAgentStatus;\r\n(function (TaskAgentStatus) {\r\n TaskAgentStatus[TaskAgentStatus[\"Offline\"] = 1] = \"Offline\";\r\n TaskAgentStatus[TaskAgentStatus[\"Online\"] = 2] = \"Online\";\r\n})(TaskAgentStatus = exports.TaskAgentStatus || (exports.TaskAgentStatus = {}));\r\n/**\r\n * This is useful in getting a list of deployment targets, filtered by the deployment agent status.\r\n */\r\nvar TaskAgentStatusFilter;\r\n(function (TaskAgentStatusFilter) {\r\n /**\r\n * Only deployment targets that are offline.\r\n */\r\n TaskAgentStatusFilter[TaskAgentStatusFilter[\"Offline\"] = 1] = \"Offline\";\r\n /**\r\n * Only deployment targets that are online.\r\n */\r\n TaskAgentStatusFilter[TaskAgentStatusFilter[\"Online\"] = 2] = \"Online\";\r\n /**\r\n * All deployment targets.\r\n */\r\n TaskAgentStatusFilter[TaskAgentStatusFilter[\"All\"] = 3] = \"All\";\r\n})(TaskAgentStatusFilter = exports.TaskAgentStatusFilter || (exports.TaskAgentStatusFilter = {}));\r\nvar TaskAgentUpdateReasonType;\r\n(function (TaskAgentUpdateReasonType) {\r\n TaskAgentUpdateReasonType[TaskAgentUpdateReasonType[\"Manual\"] = 1] = \"Manual\";\r\n TaskAgentUpdateReasonType[TaskAgentUpdateReasonType[\"MinAgentVersionRequired\"] = 2] = \"MinAgentVersionRequired\";\r\n TaskAgentUpdateReasonType[TaskAgentUpdateReasonType[\"Downgrade\"] = 3] = \"Downgrade\";\r\n})(TaskAgentUpdateReasonType = exports.TaskAgentUpdateReasonType || (exports.TaskAgentUpdateReasonType = {}));\r\nvar TaskCommandMode;\r\n(function (TaskCommandMode) {\r\n TaskCommandMode[TaskCommandMode[\"Any\"] = 0] = \"Any\";\r\n TaskCommandMode[TaskCommandMode[\"Restricted\"] = 1] = \"Restricted\";\r\n})(TaskCommandMode = exports.TaskCommandMode || (exports.TaskCommandMode = {}));\r\nvar TaskDefinitionStatus;\r\n(function (TaskDefinitionStatus) {\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"Preinstalled\"] = 1] = \"Preinstalled\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"ReceivedInstallOrUpdate\"] = 2] = \"ReceivedInstallOrUpdate\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"Installed\"] = 3] = \"Installed\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"ReceivedUninstall\"] = 4] = \"ReceivedUninstall\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"Uninstalled\"] = 5] = \"Uninstalled\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"RequestedUpdate\"] = 6] = \"RequestedUpdate\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"Updated\"] = 7] = \"Updated\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"AlreadyUpToDate\"] = 8] = \"AlreadyUpToDate\";\r\n TaskDefinitionStatus[TaskDefinitionStatus[\"InlineUpdateReceived\"] = 9] = \"InlineUpdateReceived\";\r\n})(TaskDefinitionStatus = exports.TaskDefinitionStatus || (exports.TaskDefinitionStatus = {}));\r\nvar TaskGroupExpands;\r\n(function (TaskGroupExpands) {\r\n TaskGroupExpands[TaskGroupExpands[\"None\"] = 0] = \"None\";\r\n TaskGroupExpands[TaskGroupExpands[\"Tasks\"] = 2] = \"Tasks\";\r\n})(TaskGroupExpands = exports.TaskGroupExpands || (exports.TaskGroupExpands = {}));\r\n/**\r\n * Specifies the desired ordering of taskGroups.\r\n */\r\nvar TaskGroupQueryOrder;\r\n(function (TaskGroupQueryOrder) {\r\n /**\r\n * Order by createdon ascending.\r\n */\r\n TaskGroupQueryOrder[TaskGroupQueryOrder[\"CreatedOnAscending\"] = 0] = \"CreatedOnAscending\";\r\n /**\r\n * Order by createdon descending.\r\n */\r\n TaskGroupQueryOrder[TaskGroupQueryOrder[\"CreatedOnDescending\"] = 1] = \"CreatedOnDescending\";\r\n})(TaskGroupQueryOrder = exports.TaskGroupQueryOrder || (exports.TaskGroupQueryOrder = {}));\r\nvar TaskOrchestrationItemType;\r\n(function (TaskOrchestrationItemType) {\r\n TaskOrchestrationItemType[TaskOrchestrationItemType[\"Container\"] = 0] = \"Container\";\r\n TaskOrchestrationItemType[TaskOrchestrationItemType[\"Job\"] = 1] = \"Job\";\r\n})(TaskOrchestrationItemType = exports.TaskOrchestrationItemType || (exports.TaskOrchestrationItemType = {}));\r\nvar TaskOrchestrationPlanState;\r\n(function (TaskOrchestrationPlanState) {\r\n TaskOrchestrationPlanState[TaskOrchestrationPlanState[\"InProgress\"] = 1] = \"InProgress\";\r\n TaskOrchestrationPlanState[TaskOrchestrationPlanState[\"Queued\"] = 2] = \"Queued\";\r\n TaskOrchestrationPlanState[TaskOrchestrationPlanState[\"Completed\"] = 4] = \"Completed\";\r\n TaskOrchestrationPlanState[TaskOrchestrationPlanState[\"Throttled\"] = 8] = \"Throttled\";\r\n})(TaskOrchestrationPlanState = exports.TaskOrchestrationPlanState || (exports.TaskOrchestrationPlanState = {}));\r\nvar TaskResult;\r\n(function (TaskResult) {\r\n TaskResult[TaskResult[\"Succeeded\"] = 0] = \"Succeeded\";\r\n TaskResult[TaskResult[\"SucceededWithIssues\"] = 1] = \"SucceededWithIssues\";\r\n TaskResult[TaskResult[\"Failed\"] = 2] = \"Failed\";\r\n TaskResult[TaskResult[\"Canceled\"] = 3] = \"Canceled\";\r\n TaskResult[TaskResult[\"Skipped\"] = 4] = \"Skipped\";\r\n TaskResult[TaskResult[\"Abandoned\"] = 5] = \"Abandoned\";\r\n})(TaskResult = exports.TaskResult || (exports.TaskResult = {}));\r\nvar TimelineRecordState;\r\n(function (TimelineRecordState) {\r\n TimelineRecordState[TimelineRecordState[\"Pending\"] = 0] = \"Pending\";\r\n TimelineRecordState[TimelineRecordState[\"InProgress\"] = 1] = \"InProgress\";\r\n TimelineRecordState[TimelineRecordState[\"Completed\"] = 2] = \"Completed\";\r\n})(TimelineRecordState = exports.TimelineRecordState || (exports.TimelineRecordState = {}));\r\nvar VariableGroupActionFilter;\r\n(function (VariableGroupActionFilter) {\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"None\"] = 0] = \"None\";\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"Manage\"] = 2] = \"Manage\";\r\n VariableGroupActionFilter[VariableGroupActionFilter[\"Use\"] = 16] = \"Use\";\r\n})(VariableGroupActionFilter = exports.VariableGroupActionFilter || (exports.VariableGroupActionFilter = {}));\r\n/**\r\n * Specifies the desired ordering of variableGroups.\r\n */\r\nvar VariableGroupQueryOrder;\r\n(function (VariableGroupQueryOrder) {\r\n /**\r\n * Order by id ascending.\r\n */\r\n VariableGroupQueryOrder[VariableGroupQueryOrder[\"IdAscending\"] = 0] = \"IdAscending\";\r\n /**\r\n * Order by id descending.\r\n */\r\n VariableGroupQueryOrder[VariableGroupQueryOrder[\"IdDescending\"] = 1] = \"IdDescending\";\r\n})(VariableGroupQueryOrder = exports.VariableGroupQueryOrder || (exports.VariableGroupQueryOrder = {}));\r\nexports.TypeInfo = {\r\n AadLoginPromptOption: {\r\n enumValues: {\r\n \"noOption\": 0,\r\n \"login\": 1,\r\n \"selectAccount\": 2,\r\n \"freshLogin\": 3,\r\n \"freshLoginWithMfa\": 4\r\n }\r\n },\r\n AgentChangeEvent: {},\r\n AgentJobRequestMessage: {},\r\n AgentPoolEvent: {},\r\n AgentQueueEvent: {},\r\n AgentQueuesEvent: {},\r\n AuditAction: {\r\n enumValues: {\r\n \"add\": 1,\r\n \"update\": 2,\r\n \"delete\": 3,\r\n \"undelete\": 4\r\n }\r\n },\r\n AzureKeyVaultVariableGroupProviderData: {},\r\n AzureKeyVaultVariableValue: {},\r\n DemandMinimumVersion: {},\r\n DemandSource: {},\r\n DemandSourceType: {\r\n enumValues: {\r\n \"task\": 0,\r\n \"feature\": 1\r\n }\r\n },\r\n DeploymentGroup: {},\r\n DeploymentGroupActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n DeploymentGroupExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"machines\": 2,\r\n \"tags\": 4\r\n }\r\n },\r\n DeploymentGroupMetrics: {},\r\n DeploymentGroupReference: {},\r\n DeploymentMachine: {},\r\n DeploymentMachineChangedData: {},\r\n DeploymentMachineExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"capabilities\": 2,\r\n \"assignedRequest\": 4\r\n }\r\n },\r\n DeploymentMachineGroup: {},\r\n DeploymentMachineGroupReference: {},\r\n DeploymentMachinesChangeEvent: {},\r\n DeploymentPoolSummary: {},\r\n DeploymentPoolSummaryExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"deploymentGroups\": 2,\r\n \"resource\": 4\r\n }\r\n },\r\n DeploymentTargetExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"capabilities\": 2,\r\n \"assignedRequest\": 4,\r\n \"lastCompletedRequest\": 8\r\n }\r\n },\r\n ElasticAgentState: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"enabled\": 1,\r\n \"online\": 2,\r\n \"assigned\": 4\r\n }\r\n },\r\n ElasticComputeState: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"healthy\": 1,\r\n \"creating\": 2,\r\n \"deleting\": 3,\r\n \"failed\": 4,\r\n \"stopped\": 5\r\n }\r\n },\r\n ElasticNode: {},\r\n ElasticNodeSettings: {},\r\n ElasticNodeState: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"new\": 1,\r\n \"creatingCompute\": 2,\r\n \"startingAgent\": 3,\r\n \"idle\": 4,\r\n \"assigned\": 5,\r\n \"offline\": 6,\r\n \"pendingReimage\": 7,\r\n \"pendingDelete\": 8,\r\n \"saved\": 9,\r\n \"deletingCompute\": 10,\r\n \"deleted\": 11,\r\n \"lost\": 12\r\n }\r\n },\r\n ElasticPool: {},\r\n ElasticPoolCreationResult: {},\r\n ElasticPoolLog: {},\r\n ElasticPoolSettings: {},\r\n ElasticPoolState: {\r\n enumValues: {\r\n \"online\": 0,\r\n \"offline\": 1,\r\n \"unhealthy\": 2,\r\n \"new\": 3\r\n }\r\n },\r\n EnvironmentActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n EnvironmentDeploymentExecutionRecord: {},\r\n EnvironmentExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"resourceReferences\": 1\r\n }\r\n },\r\n EnvironmentInstance: {},\r\n EnvironmentResource: {},\r\n EnvironmentResourceDeploymentExecutionRecord: {},\r\n EnvironmentResourceReference: {},\r\n EnvironmentResourceType: {\r\n enumValues: {\r\n \"undefined\": 0,\r\n \"generic\": 1,\r\n \"virtualMachine\": 2,\r\n \"kubernetes\": 4\r\n }\r\n },\r\n Issue: {},\r\n IssueType: {\r\n enumValues: {\r\n \"error\": 1,\r\n \"warning\": 2\r\n }\r\n },\r\n JobAssignedEvent: {},\r\n JobCompletedEvent: {},\r\n JobEnvironment: {},\r\n JobRequestMessage: {},\r\n KubernetesResource: {},\r\n LogLevel: {\r\n enumValues: {\r\n \"error\": 0,\r\n \"warning\": 1,\r\n \"info\": 2\r\n }\r\n },\r\n MachineGroupActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n MaskHint: {},\r\n MaskType: {\r\n enumValues: {\r\n \"variable\": 1,\r\n \"regex\": 2\r\n }\r\n },\r\n OperatingSystemType: {\r\n enumValues: {\r\n \"windows\": 0,\r\n \"linux\": 1\r\n }\r\n },\r\n OperationType: {\r\n enumValues: {\r\n \"configurationJob\": 0,\r\n \"sizingJob\": 1,\r\n \"increaseCapacity\": 2,\r\n \"reimage\": 3,\r\n \"deleteVMs\": 4\r\n }\r\n },\r\n PackageMetadata: {},\r\n PlanEnvironment: {},\r\n PlanGroupStatus: {\r\n enumValues: {\r\n \"running\": 1,\r\n \"queued\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n PlanGroupStatusFilter: {\r\n enumValues: {\r\n \"running\": 1,\r\n \"queued\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n ResourceLockRequest: {},\r\n ResourceLockStatus: {\r\n enumValues: {\r\n \"queued\": 0,\r\n \"inUse\": 1,\r\n \"finished\": 2,\r\n \"timedOut\": 3,\r\n \"canceled\": 4,\r\n \"abandoned\": 5\r\n }\r\n },\r\n ResourceUsage: {},\r\n SecureFile: {},\r\n SecureFileActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n SecureFileEvent: {},\r\n ServerTaskRequestMessage: {},\r\n ServiceEndpointAuthenticationScheme: {},\r\n ServiceEndpointExecutionData: {},\r\n ServiceEndpointExecutionRecord: {},\r\n ServiceEndpointExecutionRecordsInput: {},\r\n ServiceEndpointRequestResult: {},\r\n ServiceEndpointType: {},\r\n TaskAgent: {},\r\n TaskAgentCloudRequest: {},\r\n TaskAgentCloudType: {},\r\n TaskAgentDowngrade: {},\r\n TaskAgentJob: {},\r\n TaskAgentJobRequest: {},\r\n TaskAgentJobResultFilter: {\r\n enumValues: {\r\n \"failed\": 1,\r\n \"passed\": 2,\r\n \"neverDeployed\": 4,\r\n \"all\": 7\r\n }\r\n },\r\n TaskAgentJobStep: {},\r\n TaskAgentJobStepType: {\r\n enumValues: {\r\n \"task\": 1,\r\n \"action\": 2\r\n }\r\n },\r\n TaskAgentManualUpdate: {},\r\n TaskAgentMinAgentVersionRequiredUpdate: {},\r\n TaskAgentPool: {},\r\n TaskAgentPoolActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n TaskAgentPoolMaintenanceDefinition: {},\r\n TaskAgentPoolMaintenanceJob: {},\r\n TaskAgentPoolMaintenanceJobResult: {\r\n enumValues: {\r\n \"succeeded\": 1,\r\n \"failed\": 2,\r\n \"canceled\": 4\r\n }\r\n },\r\n TaskAgentPoolMaintenanceJobStatus: {\r\n enumValues: {\r\n \"inProgress\": 1,\r\n \"completed\": 2,\r\n \"cancelling\": 4,\r\n \"queued\": 8\r\n }\r\n },\r\n TaskAgentPoolMaintenanceJobTargetAgent: {},\r\n TaskAgentPoolMaintenanceSchedule: {},\r\n TaskAgentPoolMaintenanceScheduleDays: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"monday\": 1,\r\n \"tuesday\": 2,\r\n \"wednesday\": 4,\r\n \"thursday\": 8,\r\n \"friday\": 16,\r\n \"saturday\": 32,\r\n \"sunday\": 64,\r\n \"all\": 127\r\n }\r\n },\r\n TaskAgentPoolOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"elasticPool\": 1,\r\n \"singleUseAgents\": 2,\r\n \"preserveAgentOnJobFailure\": 4\r\n }\r\n },\r\n TaskAgentPoolReference: {},\r\n TaskAgentPoolStatus: {},\r\n TaskAgentPoolSummary: {},\r\n TaskAgentPoolType: {\r\n enumValues: {\r\n \"automation\": 1,\r\n \"deployment\": 2\r\n }\r\n },\r\n TaskAgentQueue: {},\r\n TaskAgentQueueActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n TaskAgentReference: {},\r\n TaskAgentRequestUpdateOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"bumpRequestToTop\": 1\r\n }\r\n },\r\n TaskAgentSession: {},\r\n TaskAgentStatus: {\r\n enumValues: {\r\n \"offline\": 1,\r\n \"online\": 2\r\n }\r\n },\r\n TaskAgentStatusFilter: {\r\n enumValues: {\r\n \"offline\": 1,\r\n \"online\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n TaskAgentUpdate: {},\r\n TaskAgentUpdateReason: {},\r\n TaskAgentUpdateReasonType: {\r\n enumValues: {\r\n \"manual\": 1,\r\n \"minAgentVersionRequired\": 2,\r\n \"downgrade\": 3\r\n }\r\n },\r\n TaskAttachment: {},\r\n TaskCommandMode: {\r\n enumValues: {\r\n \"any\": 0,\r\n \"restricted\": 1\r\n }\r\n },\r\n TaskCommandRestrictions: {},\r\n TaskCompletedEvent: {},\r\n TaskDefinition: {},\r\n TaskDefinitionStatus: {\r\n enumValues: {\r\n \"preinstalled\": 1,\r\n \"receivedInstallOrUpdate\": 2,\r\n \"installed\": 3,\r\n \"receivedUninstall\": 4,\r\n \"uninstalled\": 5,\r\n \"requestedUpdate\": 6,\r\n \"updated\": 7,\r\n \"alreadyUpToDate\": 8,\r\n \"inlineUpdateReceived\": 9\r\n }\r\n },\r\n TaskGroup: {},\r\n TaskGroupExpands: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"tasks\": 2\r\n }\r\n },\r\n TaskGroupQueryOrder: {\r\n enumValues: {\r\n \"createdOnAscending\": 0,\r\n \"createdOnDescending\": 1\r\n }\r\n },\r\n TaskGroupRevision: {},\r\n TaskLog: {},\r\n TaskOrchestrationContainer: {},\r\n TaskOrchestrationItem: {},\r\n TaskOrchestrationItemType: {\r\n enumValues: {\r\n \"container\": 0,\r\n \"job\": 1\r\n }\r\n },\r\n TaskOrchestrationJob: {},\r\n TaskOrchestrationPlan: {},\r\n TaskOrchestrationPlanGroup: {},\r\n TaskOrchestrationPlanGroupsQueueMetrics: {},\r\n TaskOrchestrationPlanState: {\r\n enumValues: {\r\n \"inProgress\": 1,\r\n \"queued\": 2,\r\n \"completed\": 4,\r\n \"throttled\": 8\r\n }\r\n },\r\n TaskOrchestrationQueuedPlan: {},\r\n TaskOrchestrationQueuedPlanGroup: {},\r\n TaskRestrictions: {},\r\n TaskResult: {\r\n enumValues: {\r\n \"succeeded\": 0,\r\n \"succeededWithIssues\": 1,\r\n \"failed\": 2,\r\n \"canceled\": 3,\r\n \"skipped\": 4,\r\n \"abandoned\": 5\r\n }\r\n },\r\n Timeline: {},\r\n TimelineRecord: {},\r\n TimelineRecordState: {\r\n enumValues: {\r\n \"pending\": 0,\r\n \"inProgress\": 1,\r\n \"completed\": 2\r\n }\r\n },\r\n VariableGroup: {},\r\n VariableGroupActionFilter: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"manage\": 2,\r\n \"use\": 16\r\n }\r\n },\r\n VariableGroupQueryOrder: {\r\n enumValues: {\r\n \"idAscending\": 0,\r\n \"idDescending\": 1\r\n }\r\n },\r\n VirtualMachine: {},\r\n VirtualMachineGroup: {},\r\n VirtualMachineResource: {},\r\n VirtualMachineResourceCreateParameters: {},\r\n};\r\nexports.TypeInfo.AgentChangeEvent.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgent\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n timeStamp: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AgentJobRequestMessage.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.JobEnvironment\r\n },\r\n lockedUntil: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AgentPoolEvent.fields = {\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPool\r\n }\r\n};\r\nexports.TypeInfo.AgentQueueEvent.fields = {\r\n queue: {\r\n typeInfo: exports.TypeInfo.TaskAgentQueue\r\n }\r\n};\r\nexports.TypeInfo.AgentQueuesEvent.fields = {\r\n queues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentQueue\r\n }\r\n};\r\nexports.TypeInfo.AzureKeyVaultVariableGroupProviderData.fields = {\r\n lastRefreshedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AzureKeyVaultVariableValue.fields = {\r\n expires: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.DemandMinimumVersion.fields = {\r\n source: {\r\n typeInfo: exports.TypeInfo.DemandSource\r\n }\r\n};\r\nexports.TypeInfo.DemandSource.fields = {\r\n sourceType: {\r\n enumType: exports.TypeInfo.DemandSourceType\r\n }\r\n};\r\nexports.TypeInfo.DeploymentGroup.fields = {\r\n machines: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentMachine\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n }\r\n};\r\nexports.TypeInfo.DeploymentGroupMetrics.fields = {\r\n deploymentGroup: {\r\n typeInfo: exports.TypeInfo.DeploymentGroupReference\r\n }\r\n};\r\nexports.TypeInfo.DeploymentGroupReference.fields = {\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n }\r\n};\r\nexports.TypeInfo.DeploymentMachine.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgent\r\n }\r\n};\r\nexports.TypeInfo.DeploymentMachineChangedData.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgent\r\n }\r\n};\r\nexports.TypeInfo.DeploymentMachineGroup.fields = {\r\n machines: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentMachine\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n }\r\n};\r\nexports.TypeInfo.DeploymentMachineGroupReference.fields = {\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n }\r\n};\r\nexports.TypeInfo.DeploymentMachinesChangeEvent.fields = {\r\n machineGroupReference: {\r\n typeInfo: exports.TypeInfo.DeploymentGroupReference\r\n },\r\n machines: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentMachineChangedData\r\n }\r\n};\r\nexports.TypeInfo.DeploymentPoolSummary.fields = {\r\n deploymentGroups: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentGroupReference\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n resource: {\r\n typeInfo: exports.TypeInfo.EnvironmentResourceReference\r\n }\r\n};\r\nexports.TypeInfo.ElasticNode.fields = {\r\n agentState: {\r\n enumType: exports.TypeInfo.ElasticAgentState\r\n },\r\n computeState: {\r\n enumType: exports.TypeInfo.ElasticComputeState\r\n },\r\n desiredState: {\r\n enumType: exports.TypeInfo.ElasticNodeState\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.ElasticNodeState\r\n },\r\n stateChangedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ElasticNodeSettings.fields = {\r\n state: {\r\n enumType: exports.TypeInfo.ElasticNodeState\r\n }\r\n};\r\nexports.TypeInfo.ElasticPool.fields = {\r\n offlineSince: {\r\n isDate: true,\r\n },\r\n osType: {\r\n enumType: exports.TypeInfo.OperatingSystemType\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.ElasticPoolState\r\n }\r\n};\r\nexports.TypeInfo.ElasticPoolCreationResult.fields = {\r\n agentPool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPool\r\n },\r\n agentQueue: {\r\n typeInfo: exports.TypeInfo.TaskAgentQueue\r\n },\r\n elasticPool: {\r\n typeInfo: exports.TypeInfo.ElasticPool\r\n }\r\n};\r\nexports.TypeInfo.ElasticPoolLog.fields = {\r\n level: {\r\n enumType: exports.TypeInfo.LogLevel\r\n },\r\n operation: {\r\n enumType: exports.TypeInfo.OperationType\r\n },\r\n timestamp: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ElasticPoolSettings.fields = {\r\n osType: {\r\n enumType: exports.TypeInfo.OperatingSystemType\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentDeploymentExecutionRecord.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentInstance.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n resources: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.EnvironmentResourceReference\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentResource.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.EnvironmentResourceType\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentResourceDeploymentExecutionRecord.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.EnvironmentResourceReference.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.EnvironmentResourceType\r\n }\r\n};\r\nexports.TypeInfo.Issue.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.IssueType\r\n }\r\n};\r\nexports.TypeInfo.JobAssignedEvent.fields = {\r\n request: {\r\n typeInfo: exports.TypeInfo.TaskAgentJobRequest\r\n }\r\n};\r\nexports.TypeInfo.JobCompletedEvent.fields = {\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n }\r\n};\r\nexports.TypeInfo.JobEnvironment.fields = {\r\n mask: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.MaskHint\r\n },\r\n secureFiles: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.SecureFile\r\n }\r\n};\r\nexports.TypeInfo.JobRequestMessage.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.JobEnvironment\r\n }\r\n};\r\nexports.TypeInfo.KubernetesResource.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.EnvironmentResourceType\r\n }\r\n};\r\nexports.TypeInfo.MaskHint.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.MaskType\r\n }\r\n};\r\nexports.TypeInfo.PackageMetadata.fields = {\r\n createdOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.PlanEnvironment.fields = {\r\n mask: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.MaskHint\r\n }\r\n};\r\nexports.TypeInfo.ResourceLockRequest.fields = {\r\n assignTime: {\r\n isDate: true,\r\n },\r\n finishTime: {\r\n isDate: true,\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.ResourceLockStatus\r\n }\r\n};\r\nexports.TypeInfo.ResourceUsage.fields = {\r\n runningRequests: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentJobRequest\r\n }\r\n};\r\nexports.TypeInfo.SecureFile.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.SecureFileEvent.fields = {\r\n secureFiles: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.SecureFile\r\n }\r\n};\r\nexports.TypeInfo.ServerTaskRequestMessage.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.JobEnvironment\r\n },\r\n taskDefinition: {\r\n typeInfo: exports.TypeInfo.TaskDefinition\r\n }\r\n};\r\nexports.TypeInfo.ServiceEndpointAuthenticationScheme.fields = {\r\n inputDescriptors: {\r\n isArray: true,\r\n typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor\r\n }\r\n};\r\nexports.TypeInfo.ServiceEndpointExecutionData.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ServiceEndpointExecutionRecord.fields = {\r\n data: {\r\n typeInfo: exports.TypeInfo.ServiceEndpointExecutionData\r\n }\r\n};\r\nexports.TypeInfo.ServiceEndpointExecutionRecordsInput.fields = {\r\n data: {\r\n typeInfo: exports.TypeInfo.ServiceEndpointExecutionData\r\n }\r\n};\r\nexports.TypeInfo.ServiceEndpointRequestResult.fields = {};\r\nexports.TypeInfo.ServiceEndpointType.fields = {\r\n authenticationSchemes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ServiceEndpointAuthenticationScheme\r\n },\r\n inputDescriptors: {\r\n isArray: true,\r\n typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor\r\n }\r\n};\r\nexports.TypeInfo.TaskAgent.fields = {\r\n assignedAgentCloudRequest: {\r\n typeInfo: exports.TypeInfo.TaskAgentCloudRequest\r\n },\r\n assignedRequest: {\r\n typeInfo: exports.TypeInfo.TaskAgentJobRequest\r\n },\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastCompletedRequest: {\r\n typeInfo: exports.TypeInfo.TaskAgentJobRequest\r\n },\r\n pendingUpdate: {\r\n typeInfo: exports.TypeInfo.TaskAgentUpdate\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.TaskAgentStatus\r\n },\r\n statusChangedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentCloudRequest.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgentReference\r\n },\r\n agentConnectedTime: {\r\n isDate: true,\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n provisionedTime: {\r\n isDate: true,\r\n },\r\n provisionRequestTime: {\r\n isDate: true,\r\n },\r\n releaseRequestTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentCloudType.fields = {\r\n inputDescriptors: {\r\n isArray: true,\r\n typeInfo: FormInputInterfaces.TypeInfo.InputDescriptor\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentDowngrade.fields = {\r\n code: {\r\n enumType: exports.TypeInfo.TaskAgentUpdateReasonType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentJob.fields = {\r\n steps: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentJobStep\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentJobRequest.fields = {\r\n assignTime: {\r\n isDate: true,\r\n },\r\n finishTime: {\r\n isDate: true,\r\n },\r\n lockedUntil: {\r\n isDate: true,\r\n },\r\n matchedAgents: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentReference\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n receiveTime: {\r\n isDate: true,\r\n },\r\n reservedAgent: {\r\n typeInfo: exports.TypeInfo.TaskAgentReference\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentJobStep.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.TaskAgentJobStepType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentManualUpdate.fields = {\r\n code: {\r\n enumType: exports.TypeInfo.TaskAgentUpdateReasonType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentMinAgentVersionRequiredUpdate.fields = {\r\n code: {\r\n enumType: exports.TypeInfo.TaskAgentUpdateReasonType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPool.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n options: {\r\n enumType: exports.TypeInfo.TaskAgentPoolOptions\r\n },\r\n poolType: {\r\n enumType: exports.TypeInfo.TaskAgentPoolType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolMaintenanceDefinition.fields = {\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n scheduleSetting: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolMaintenanceSchedule\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolMaintenanceJob.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n queueTime: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobStatus\r\n },\r\n targetAgents: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentPoolMaintenanceJobTargetAgent\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolMaintenanceJobTargetAgent.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgentReference\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobResult\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.TaskAgentPoolMaintenanceJobStatus\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolMaintenanceSchedule.fields = {\r\n daysToBuild: {\r\n enumType: exports.TypeInfo.TaskAgentPoolMaintenanceScheduleDays\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolReference.fields = {\r\n options: {\r\n enumType: exports.TypeInfo.TaskAgentPoolOptions\r\n },\r\n poolType: {\r\n enumType: exports.TypeInfo.TaskAgentPoolType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolStatus.fields = {\r\n options: {\r\n enumType: exports.TypeInfo.TaskAgentPoolOptions\r\n },\r\n poolType: {\r\n enumType: exports.TypeInfo.TaskAgentPoolType\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentPoolSummary.fields = {\r\n deploymentGroups: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DeploymentGroupReference\r\n },\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n },\r\n queues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentQueue\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentQueue.fields = {\r\n pool: {\r\n typeInfo: exports.TypeInfo.TaskAgentPoolReference\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentReference.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.TaskAgentStatus\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentSession.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgentReference\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentUpdate.fields = {\r\n reason: {\r\n typeInfo: exports.TypeInfo.TaskAgentUpdateReason\r\n },\r\n requestTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskAgentUpdateReason.fields = {\r\n code: {\r\n enumType: exports.TypeInfo.TaskAgentUpdateReasonType\r\n }\r\n};\r\nexports.TypeInfo.TaskAttachment.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastChangedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskCommandRestrictions.fields = {\r\n mode: {\r\n enumType: exports.TypeInfo.TaskCommandMode\r\n }\r\n};\r\nexports.TypeInfo.TaskCompletedEvent.fields = {\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n }\r\n};\r\nexports.TypeInfo.TaskDefinition.fields = {\r\n restrictions: {\r\n typeInfo: exports.TypeInfo.TaskRestrictions\r\n }\r\n};\r\nexports.TypeInfo.TaskGroup.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n },\r\n restrictions: {\r\n typeInfo: exports.TypeInfo.TaskRestrictions\r\n }\r\n};\r\nexports.TypeInfo.TaskGroupRevision.fields = {\r\n changedDate: {\r\n isDate: true,\r\n },\r\n changeType: {\r\n enumType: exports.TypeInfo.AuditAction\r\n }\r\n};\r\nexports.TypeInfo.TaskLog.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastChangedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationContainer.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskOrchestrationItem\r\n },\r\n itemType: {\r\n enumType: exports.TypeInfo.TaskOrchestrationItemType\r\n },\r\n rollback: {\r\n typeInfo: exports.TypeInfo.TaskOrchestrationContainer\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationItem.fields = {\r\n itemType: {\r\n enumType: exports.TypeInfo.TaskOrchestrationItemType\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationJob.fields = {\r\n itemType: {\r\n enumType: exports.TypeInfo.TaskOrchestrationItemType\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationPlan.fields = {\r\n environment: {\r\n typeInfo: exports.TypeInfo.PlanEnvironment\r\n },\r\n finishTime: {\r\n isDate: true,\r\n },\r\n implementation: {\r\n typeInfo: exports.TypeInfo.TaskOrchestrationContainer\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TaskOrchestrationPlanState\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationPlanGroup.fields = {\r\n runningRequests: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskAgentJobRequest\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationPlanGroupsQueueMetrics.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.PlanGroupStatus\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationQueuedPlan.fields = {\r\n assignTime: {\r\n isDate: true,\r\n },\r\n queueTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TaskOrchestrationQueuedPlanGroup.fields = {\r\n plans: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TaskOrchestrationQueuedPlan\r\n }\r\n};\r\nexports.TypeInfo.TaskRestrictions.fields = {\r\n commands: {\r\n typeInfo: exports.TypeInfo.TaskCommandRestrictions\r\n }\r\n};\r\nexports.TypeInfo.Timeline.fields = {\r\n lastChangedOn: {\r\n isDate: true,\r\n },\r\n records: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineRecord\r\n }\r\n};\r\nexports.TypeInfo.TimelineRecord.fields = {\r\n finishTime: {\r\n isDate: true,\r\n },\r\n issues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Issue\r\n },\r\n lastModified: {\r\n isDate: true,\r\n },\r\n result: {\r\n enumType: exports.TypeInfo.TaskResult\r\n },\r\n startTime: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TimelineRecordState\r\n }\r\n};\r\nexports.TypeInfo.VariableGroup.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.VirtualMachine.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgent\r\n }\r\n};\r\nexports.TypeInfo.VirtualMachineGroup.fields = {\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.EnvironmentResourceType\r\n }\r\n};\r\nexports.TypeInfo.VirtualMachineResource.fields = {\r\n agent: {\r\n typeInfo: exports.TypeInfo.TaskAgent\r\n },\r\n createdOn: {\r\n isDate: true,\r\n },\r\n lastModifiedOn: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.EnvironmentResourceType\r\n }\r\n};\r\nexports.TypeInfo.VirtualMachineResourceCreateParameters.fields = {\r\n virtualMachineResource: {\r\n typeInfo: exports.TypeInfo.VirtualMachineResource\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst SystemData = require(\"../interfaces/common/SystemDataInterfaces\");\r\nconst TfsCoreInterfaces = require(\"../interfaces/CoreInterfaces\");\r\n/**\r\n * The types of test attachments.\r\n */\r\nvar AttachmentType;\r\n(function (AttachmentType) {\r\n /**\r\n * Attachment type GeneralAttachment , use this as default type unless you have other type.\r\n */\r\n AttachmentType[AttachmentType[\"GeneralAttachment\"] = 0] = \"GeneralAttachment\";\r\n AttachmentType[AttachmentType[\"AfnStrip\"] = 1] = \"AfnStrip\";\r\n AttachmentType[AttachmentType[\"BugFilingData\"] = 2] = \"BugFilingData\";\r\n /**\r\n * Attachment type CodeCoverage.\r\n */\r\n AttachmentType[AttachmentType[\"CodeCoverage\"] = 3] = \"CodeCoverage\";\r\n AttachmentType[AttachmentType[\"IntermediateCollectorData\"] = 4] = \"IntermediateCollectorData\";\r\n AttachmentType[AttachmentType[\"RunConfig\"] = 5] = \"RunConfig\";\r\n AttachmentType[AttachmentType[\"TestImpactDetails\"] = 6] = \"TestImpactDetails\";\r\n AttachmentType[AttachmentType[\"TmiTestRunDeploymentFiles\"] = 7] = \"TmiTestRunDeploymentFiles\";\r\n AttachmentType[AttachmentType[\"TmiTestRunReverseDeploymentFiles\"] = 8] = \"TmiTestRunReverseDeploymentFiles\";\r\n AttachmentType[AttachmentType[\"TmiTestResultDetail\"] = 9] = \"TmiTestResultDetail\";\r\n AttachmentType[AttachmentType[\"TmiTestRunSummary\"] = 10] = \"TmiTestRunSummary\";\r\n /**\r\n * Attachment type ConsoleLog.\r\n */\r\n AttachmentType[AttachmentType[\"ConsoleLog\"] = 11] = \"ConsoleLog\";\r\n})(AttachmentType = exports.AttachmentType || (exports.AttachmentType = {}));\r\n/**\r\n * Enum of type Clone Operation Type.\r\n */\r\nvar CloneOperationState;\r\n(function (CloneOperationState) {\r\n /**\r\n * value for Failed State\r\n */\r\n CloneOperationState[CloneOperationState[\"Failed\"] = 2] = \"Failed\";\r\n /**\r\n * value for Inprogress state\r\n */\r\n CloneOperationState[CloneOperationState[\"InProgress\"] = 1] = \"InProgress\";\r\n /**\r\n * Value for Queued State\r\n */\r\n CloneOperationState[CloneOperationState[\"Queued\"] = 0] = \"Queued\";\r\n /**\r\n * value for Success state\r\n */\r\n CloneOperationState[CloneOperationState[\"Succeeded\"] = 3] = \"Succeeded\";\r\n})(CloneOperationState = exports.CloneOperationState || (exports.CloneOperationState = {}));\r\n/**\r\n * Used to choose which coverage data is returned by a QueryXXXCoverage() call.\r\n */\r\nvar CoverageQueryFlags;\r\n(function (CoverageQueryFlags) {\r\n /**\r\n * If set, the Coverage.Modules property will be populated.\r\n */\r\n CoverageQueryFlags[CoverageQueryFlags[\"Modules\"] = 1] = \"Modules\";\r\n /**\r\n * If set, the ModuleCoverage.Functions properties will be populated.\r\n */\r\n CoverageQueryFlags[CoverageQueryFlags[\"Functions\"] = 2] = \"Functions\";\r\n /**\r\n * If set, the ModuleCoverage.CoverageData field will be populated.\r\n */\r\n CoverageQueryFlags[CoverageQueryFlags[\"BlockData\"] = 4] = \"BlockData\";\r\n})(CoverageQueryFlags = exports.CoverageQueryFlags || (exports.CoverageQueryFlags = {}));\r\nvar CoverageStatus;\r\n(function (CoverageStatus) {\r\n CoverageStatus[CoverageStatus[\"Covered\"] = 0] = \"Covered\";\r\n CoverageStatus[CoverageStatus[\"NotCovered\"] = 1] = \"NotCovered\";\r\n CoverageStatus[CoverageStatus[\"PartiallyCovered\"] = 2] = \"PartiallyCovered\";\r\n})(CoverageStatus = exports.CoverageStatus || (exports.CoverageStatus = {}));\r\n/**\r\n * Represents status of code coverage summary for a build\r\n */\r\nvar CoverageSummaryStatus;\r\n(function (CoverageSummaryStatus) {\r\n /**\r\n * No coverage status\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"None\"] = 0] = \"None\";\r\n /**\r\n * The summary evaluation is in progress\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n /**\r\n * The summary evaluation for the previous request is completed. Summary can change in future\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"Completed\"] = 2] = \"Completed\";\r\n /**\r\n * The summary evaluation is finalized and won't change\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"Finalized\"] = 3] = \"Finalized\";\r\n /**\r\n * The summary evaluation is pending\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"Pending\"] = 4] = \"Pending\";\r\n /**\r\n * Summary evaluation may be ongoing but another merge has been requested.\r\n */\r\n CoverageSummaryStatus[CoverageSummaryStatus[\"UpdateRequestQueued\"] = 5] = \"UpdateRequestQueued\";\r\n})(CoverageSummaryStatus = exports.CoverageSummaryStatus || (exports.CoverageSummaryStatus = {}));\r\nvar CustomTestFieldScope;\r\n(function (CustomTestFieldScope) {\r\n CustomTestFieldScope[CustomTestFieldScope[\"None\"] = 0] = \"None\";\r\n CustomTestFieldScope[CustomTestFieldScope[\"TestRun\"] = 1] = \"TestRun\";\r\n CustomTestFieldScope[CustomTestFieldScope[\"TestResult\"] = 2] = \"TestResult\";\r\n CustomTestFieldScope[CustomTestFieldScope[\"System\"] = 4] = \"System\";\r\n CustomTestFieldScope[CustomTestFieldScope[\"All\"] = 7] = \"All\";\r\n})(CustomTestFieldScope = exports.CustomTestFieldScope || (exports.CustomTestFieldScope = {}));\r\nvar CustomTestFieldType;\r\n(function (CustomTestFieldType) {\r\n CustomTestFieldType[CustomTestFieldType[\"Bit\"] = 2] = \"Bit\";\r\n CustomTestFieldType[CustomTestFieldType[\"DateTime\"] = 4] = \"DateTime\";\r\n CustomTestFieldType[CustomTestFieldType[\"Int\"] = 8] = \"Int\";\r\n CustomTestFieldType[CustomTestFieldType[\"Float\"] = 6] = \"Float\";\r\n CustomTestFieldType[CustomTestFieldType[\"String\"] = 12] = \"String\";\r\n CustomTestFieldType[CustomTestFieldType[\"Guid\"] = 14] = \"Guid\";\r\n})(CustomTestFieldType = exports.CustomTestFieldType || (exports.CustomTestFieldType = {}));\r\nvar FlakyDetectionType;\r\n(function (FlakyDetectionType) {\r\n /**\r\n * Custom defines manual detection type.\r\n */\r\n FlakyDetectionType[FlakyDetectionType[\"Custom\"] = 1] = \"Custom\";\r\n /**\r\n * Defines System detection type.\r\n */\r\n FlakyDetectionType[FlakyDetectionType[\"System\"] = 2] = \"System\";\r\n})(FlakyDetectionType = exports.FlakyDetectionType || (exports.FlakyDetectionType = {}));\r\n/**\r\n * Test summary metrics.\r\n */\r\nvar Metrics;\r\n(function (Metrics) {\r\n /**\r\n * To get results of all matrix.\r\n */\r\n Metrics[Metrics[\"All\"] = 1] = \"All\";\r\n /**\r\n * Get results summary by results outcome\r\n */\r\n Metrics[Metrics[\"ResultSummary\"] = 2] = \"ResultSummary\";\r\n /**\r\n * Get results analysis which include failure analysis, increase/decrease in results count analysis.\r\n */\r\n Metrics[Metrics[\"ResultsAnalysis\"] = 3] = \"ResultsAnalysis\";\r\n /**\r\n * Get runs summary\r\n */\r\n Metrics[Metrics[\"RunSummary\"] = 4] = \"RunSummary\";\r\n})(Metrics = exports.Metrics || (exports.Metrics = {}));\r\nvar OperationType;\r\n(function (OperationType) {\r\n OperationType[OperationType[\"Add\"] = 1] = \"Add\";\r\n OperationType[OperationType[\"Delete\"] = 2] = \"Delete\";\r\n})(OperationType = exports.OperationType || (exports.OperationType = {}));\r\n/**\r\n * Additional details with test result\r\n */\r\nvar ResultDetails;\r\n(function (ResultDetails) {\r\n /**\r\n * Core fields of test result. Core fields includes State, Outcome, Priority, AutomatedTestName, AutomatedTestStorage, Comments, ErrorMessage etc.\r\n */\r\n ResultDetails[ResultDetails[\"None\"] = 0] = \"None\";\r\n /**\r\n * Test iteration details in a test result.\r\n */\r\n ResultDetails[ResultDetails[\"Iterations\"] = 1] = \"Iterations\";\r\n /**\r\n * Workitems associated with a test result.\r\n */\r\n ResultDetails[ResultDetails[\"WorkItems\"] = 2] = \"WorkItems\";\r\n /**\r\n * Subresults in a test result.\r\n */\r\n ResultDetails[ResultDetails[\"SubResults\"] = 4] = \"SubResults\";\r\n /**\r\n * Point and plan detail in a test result.\r\n */\r\n ResultDetails[ResultDetails[\"Point\"] = 8] = \"Point\";\r\n})(ResultDetails = exports.ResultDetails || (exports.ResultDetails = {}));\r\n/**\r\n * Hierarchy type of the result/subresults.\r\n */\r\nvar ResultGroupType;\r\n(function (ResultGroupType) {\r\n /**\r\n * Leaf node of test result.\r\n */\r\n ResultGroupType[ResultGroupType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Hierarchy type of test result.\r\n */\r\n ResultGroupType[ResultGroupType[\"Rerun\"] = 1] = \"Rerun\";\r\n /**\r\n * Hierarchy type of test result.\r\n */\r\n ResultGroupType[ResultGroupType[\"DataDriven\"] = 2] = \"DataDriven\";\r\n /**\r\n * Hierarchy type of test result.\r\n */\r\n ResultGroupType[ResultGroupType[\"OrderedTest\"] = 3] = \"OrderedTest\";\r\n /**\r\n * Unknown hierarchy type.\r\n */\r\n ResultGroupType[ResultGroupType[\"Generic\"] = 4] = \"Generic\";\r\n})(ResultGroupType = exports.ResultGroupType || (exports.ResultGroupType = {}));\r\nvar ResultMetadata;\r\n(function (ResultMetadata) {\r\n /**\r\n * Rerun metadata\r\n */\r\n ResultMetadata[ResultMetadata[\"Rerun\"] = 1] = \"Rerun\";\r\n /**\r\n * Flaky metadata\r\n */\r\n ResultMetadata[ResultMetadata[\"Flaky\"] = 2] = \"Flaky\";\r\n})(ResultMetadata = exports.ResultMetadata || (exports.ResultMetadata = {}));\r\n/**\r\n * Additional details with test result metadata\r\n */\r\nvar ResultMetaDataDetails;\r\n(function (ResultMetaDataDetails) {\r\n /**\r\n * Core fields of test result metadata.\r\n */\r\n ResultMetaDataDetails[ResultMetaDataDetails[\"None\"] = 0] = \"None\";\r\n /**\r\n * Test FlakyIdentifiers details in test result metadata.\r\n */\r\n ResultMetaDataDetails[ResultMetaDataDetails[\"FlakyIdentifiers\"] = 1] = \"FlakyIdentifiers\";\r\n})(ResultMetaDataDetails = exports.ResultMetaDataDetails || (exports.ResultMetaDataDetails = {}));\r\n/**\r\n * The top level entity that is being cloned as part of a Clone operation\r\n */\r\nvar ResultObjectType;\r\n(function (ResultObjectType) {\r\n /**\r\n * Suite Clone\r\n */\r\n ResultObjectType[ResultObjectType[\"TestSuite\"] = 0] = \"TestSuite\";\r\n /**\r\n * Plan Clone\r\n */\r\n ResultObjectType[ResultObjectType[\"TestPlan\"] = 1] = \"TestPlan\";\r\n})(ResultObjectType = exports.ResultObjectType || (exports.ResultObjectType = {}));\r\nvar RunType;\r\n(function (RunType) {\r\n /**\r\n * Only used during an update to preserve the existing value.\r\n */\r\n RunType[RunType[\"Unspecified\"] = 0] = \"Unspecified\";\r\n /**\r\n * Normal test run.\r\n */\r\n RunType[RunType[\"Normal\"] = 1] = \"Normal\";\r\n /**\r\n * Test run created for the blocked result when a test point is blocked.\r\n */\r\n RunType[RunType[\"Blocking\"] = 2] = \"Blocking\";\r\n /**\r\n * Test run created from Web.\r\n */\r\n RunType[RunType[\"Web\"] = 4] = \"Web\";\r\n /**\r\n * Run initiated from web through MTR\r\n */\r\n RunType[RunType[\"MtrRunInitiatedFromWeb\"] = 8] = \"MtrRunInitiatedFromWeb\";\r\n /**\r\n * These test run would require DTL environment. These could be either of automated or manual test run.\r\n */\r\n RunType[RunType[\"RunWithDtlEnv\"] = 16] = \"RunWithDtlEnv\";\r\n /**\r\n * These test run may or may not have published test results but it will have summary like total test, passed test, failed test etc. These are automated tests.\r\n */\r\n RunType[RunType[\"NoConfigRun\"] = 32] = \"NoConfigRun\";\r\n})(RunType = exports.RunType || (exports.RunType = {}));\r\nvar Service;\r\n(function (Service) {\r\n Service[Service[\"Any\"] = 0] = \"Any\";\r\n Service[Service[\"Tcm\"] = 1] = \"Tcm\";\r\n Service[Service[\"Tfs\"] = 2] = \"Tfs\";\r\n})(Service = exports.Service || (exports.Service = {}));\r\n/**\r\n * Option to get details in response\r\n */\r\nvar SuiteExpand;\r\n(function (SuiteExpand) {\r\n /**\r\n * Include children in response.\r\n */\r\n SuiteExpand[SuiteExpand[\"Children\"] = 1] = \"Children\";\r\n /**\r\n * Include default testers in response.\r\n */\r\n SuiteExpand[SuiteExpand[\"DefaultTesters\"] = 2] = \"DefaultTesters\";\r\n})(SuiteExpand = exports.SuiteExpand || (exports.SuiteExpand = {}));\r\nvar TCMServiceDataMigrationStatus;\r\n(function (TCMServiceDataMigrationStatus) {\r\n /**\r\n * Migration Not Started\r\n */\r\n TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus[\"NotStarted\"] = 0] = \"NotStarted\";\r\n /**\r\n * Migration InProgress\r\n */\r\n TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n /**\r\n * Migration Completed\r\n */\r\n TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus[\"Completed\"] = 2] = \"Completed\";\r\n /**\r\n * Migration Failed\r\n */\r\n TCMServiceDataMigrationStatus[TCMServiceDataMigrationStatus[\"Failed\"] = 3] = \"Failed\";\r\n})(TCMServiceDataMigrationStatus = exports.TCMServiceDataMigrationStatus || (exports.TCMServiceDataMigrationStatus = {}));\r\n/**\r\n * Represents the state of an ITestConfiguration object.\r\n */\r\nvar TestConfigurationState;\r\n(function (TestConfigurationState) {\r\n /**\r\n * The configuration can be used for new test runs.\r\n */\r\n TestConfigurationState[TestConfigurationState[\"Active\"] = 1] = \"Active\";\r\n /**\r\n * The configuration has been retired and should not be used for new test runs.\r\n */\r\n TestConfigurationState[TestConfigurationState[\"Inactive\"] = 2] = \"Inactive\";\r\n})(TestConfigurationState = exports.TestConfigurationState || (exports.TestConfigurationState = {}));\r\n/**\r\n * Test Log Context\r\n */\r\nvar TestLogScope;\r\n(function (TestLogScope) {\r\n /**\r\n * Log file is associated with Run, result, subresult\r\n */\r\n TestLogScope[TestLogScope[\"Run\"] = 0] = \"Run\";\r\n /**\r\n * Log File associated with Build\r\n */\r\n TestLogScope[TestLogScope[\"Build\"] = 1] = \"Build\";\r\n /**\r\n * Log File associated with Release\r\n */\r\n TestLogScope[TestLogScope[\"Release\"] = 2] = \"Release\";\r\n})(TestLogScope = exports.TestLogScope || (exports.TestLogScope = {}));\r\n/**\r\n * Test Log Status codes.\r\n */\r\nvar TestLogStatusCode;\r\n(function (TestLogStatusCode) {\r\n /**\r\n * Operation is successful\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"Success\"] = 0] = \"Success\";\r\n /**\r\n * Operation failed\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"Failed\"] = 1] = \"Failed\";\r\n /**\r\n * Operation failed due to file already exist\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"FileAlreadyExists\"] = 2] = \"FileAlreadyExists\";\r\n /**\r\n * Invalid input provided by user\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"InvalidInput\"] = 3] = \"InvalidInput\";\r\n /**\r\n * Invalid file name provided by user\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"InvalidFileName\"] = 4] = \"InvalidFileName\";\r\n /**\r\n * Error occurred while operating on container\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"InvalidContainer\"] = 5] = \"InvalidContainer\";\r\n /**\r\n * Blob Transfer Error\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"TransferFailed\"] = 6] = \"TransferFailed\";\r\n /**\r\n * TestLogStore feature is not enabled\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"FeatureDisabled\"] = 7] = \"FeatureDisabled\";\r\n /**\r\n * Build for which operation is requested does not exist\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"BuildDoesNotExist\"] = 8] = \"BuildDoesNotExist\";\r\n /**\r\n * Run for which operation is requested does not exist\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"RunDoesNotExist\"] = 9] = \"RunDoesNotExist\";\r\n /**\r\n * Container cannot be created\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"ContainerNotCreated\"] = 10] = \"ContainerNotCreated\";\r\n /**\r\n * Api is not supported\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"APINotSupported\"] = 11] = \"APINotSupported\";\r\n /**\r\n * File size is greater than the limitation\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"FileSizeExceeds\"] = 12] = \"FileSizeExceeds\";\r\n /**\r\n * Container is not found for which operation is requested\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"ContainerNotFound\"] = 13] = \"ContainerNotFound\";\r\n /**\r\n * File cannot be found\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"FileNotFound\"] = 14] = \"FileNotFound\";\r\n /**\r\n * Directory cannot be found\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"DirectoryNotFound\"] = 15] = \"DirectoryNotFound\";\r\n /**\r\n * Storage capacity exceeded\r\n */\r\n TestLogStatusCode[TestLogStatusCode[\"StorageCapacityExceeded\"] = 16] = \"StorageCapacityExceeded\";\r\n})(TestLogStatusCode = exports.TestLogStatusCode || (exports.TestLogStatusCode = {}));\r\n/**\r\n * Specifies set of possible log store endpoint type.\r\n */\r\nvar TestLogStoreEndpointType;\r\n(function (TestLogStoreEndpointType) {\r\n /**\r\n * Endpoint type is scoped to root\r\n */\r\n TestLogStoreEndpointType[TestLogStoreEndpointType[\"Root\"] = 1] = \"Root\";\r\n /**\r\n * Endpoint type is scoped to file\r\n */\r\n TestLogStoreEndpointType[TestLogStoreEndpointType[\"File\"] = 2] = \"File\";\r\n})(TestLogStoreEndpointType = exports.TestLogStoreEndpointType || (exports.TestLogStoreEndpointType = {}));\r\n/**\r\n * Specifies set of possible operation type on log store.\r\n */\r\nvar TestLogStoreOperationType;\r\n(function (TestLogStoreOperationType) {\r\n /**\r\n * Operation is scoped to read data only.\r\n */\r\n TestLogStoreOperationType[TestLogStoreOperationType[\"Read\"] = 1] = \"Read\";\r\n /**\r\n * Operation is scoped to create data only.\r\n */\r\n TestLogStoreOperationType[TestLogStoreOperationType[\"Create\"] = 2] = \"Create\";\r\n /**\r\n * Operation is scoped to read and create data.\r\n */\r\n TestLogStoreOperationType[TestLogStoreOperationType[\"ReadAndCreate\"] = 3] = \"ReadAndCreate\";\r\n})(TestLogStoreOperationType = exports.TestLogStoreOperationType || (exports.TestLogStoreOperationType = {}));\r\n/**\r\n * Test Log Types\r\n */\r\nvar TestLogType;\r\n(function (TestLogType) {\r\n /**\r\n * Any gereric attachment.\r\n */\r\n TestLogType[TestLogType[\"GeneralAttachment\"] = 1] = \"GeneralAttachment\";\r\n /**\r\n * Code Coverage files\r\n */\r\n TestLogType[TestLogType[\"CodeCoverage\"] = 2] = \"CodeCoverage\";\r\n /**\r\n * Test Impact details.\r\n */\r\n TestLogType[TestLogType[\"TestImpact\"] = 3] = \"TestImpact\";\r\n /**\r\n * Temporary files\r\n */\r\n TestLogType[TestLogType[\"Intermediate\"] = 4] = \"Intermediate\";\r\n /**\r\n * Subresult Attachment\r\n */\r\n TestLogType[TestLogType[\"System\"] = 5] = \"System\";\r\n})(TestLogType = exports.TestLogType || (exports.TestLogType = {}));\r\n/**\r\n * Valid TestOutcome values.\r\n */\r\nvar TestOutcome;\r\n(function (TestOutcome) {\r\n /**\r\n * Only used during an update to preserve the existing value.\r\n */\r\n TestOutcome[TestOutcome[\"Unspecified\"] = 0] = \"Unspecified\";\r\n /**\r\n * Test has not been completed, or the test type does not report pass/failure.\r\n */\r\n TestOutcome[TestOutcome[\"None\"] = 1] = \"None\";\r\n /**\r\n * Test was executed w/o any issues.\r\n */\r\n TestOutcome[TestOutcome[\"Passed\"] = 2] = \"Passed\";\r\n /**\r\n * Test was executed, but there were issues. Issues may involve exceptions or failed assertions.\r\n */\r\n TestOutcome[TestOutcome[\"Failed\"] = 3] = \"Failed\";\r\n /**\r\n * Test has completed, but we can't say if it passed or failed. May be used for aborted tests...\r\n */\r\n TestOutcome[TestOutcome[\"Inconclusive\"] = 4] = \"Inconclusive\";\r\n /**\r\n * The test timed out\r\n */\r\n TestOutcome[TestOutcome[\"Timeout\"] = 5] = \"Timeout\";\r\n /**\r\n * Test was aborted. This was not caused by a user gesture, but rather by a framework decision.\r\n */\r\n TestOutcome[TestOutcome[\"Aborted\"] = 6] = \"Aborted\";\r\n /**\r\n * Test had it chance for been executed but was not, as ITestElement.IsRunnable == false.\r\n */\r\n TestOutcome[TestOutcome[\"Blocked\"] = 7] = \"Blocked\";\r\n /**\r\n * Test was not executed. This was caused by a user gesture - e.g. user hit stop button.\r\n */\r\n TestOutcome[TestOutcome[\"NotExecuted\"] = 8] = \"NotExecuted\";\r\n /**\r\n * To be used by Run level results. This is not a failure.\r\n */\r\n TestOutcome[TestOutcome[\"Warning\"] = 9] = \"Warning\";\r\n /**\r\n * There was a system error while we were trying to execute a test.\r\n */\r\n TestOutcome[TestOutcome[\"Error\"] = 10] = \"Error\";\r\n /**\r\n * Test is Not Applicable for execution.\r\n */\r\n TestOutcome[TestOutcome[\"NotApplicable\"] = 11] = \"NotApplicable\";\r\n /**\r\n * Test is paused.\r\n */\r\n TestOutcome[TestOutcome[\"Paused\"] = 12] = \"Paused\";\r\n /**\r\n * Test is currently executing. Added this for TCM charts\r\n */\r\n TestOutcome[TestOutcome[\"InProgress\"] = 13] = \"InProgress\";\r\n /**\r\n * Test is not impacted. Added fot TIA.\r\n */\r\n TestOutcome[TestOutcome[\"NotImpacted\"] = 14] = \"NotImpacted\";\r\n TestOutcome[TestOutcome[\"MaxValue\"] = 14] = \"MaxValue\";\r\n})(TestOutcome = exports.TestOutcome || (exports.TestOutcome = {}));\r\nvar TestPointState;\r\n(function (TestPointState) {\r\n /**\r\n * Default\r\n */\r\n TestPointState[TestPointState[\"None\"] = 0] = \"None\";\r\n /**\r\n * The test point needs to be executed in order for the test pass to be considered complete. Either the test has not been run before or the previous run failed.\r\n */\r\n TestPointState[TestPointState[\"Ready\"] = 1] = \"Ready\";\r\n /**\r\n * The test has passed successfully and does not need to be re-run for the test pass to be considered complete.\r\n */\r\n TestPointState[TestPointState[\"Completed\"] = 2] = \"Completed\";\r\n /**\r\n * The test point needs to be executed but is not able to.\r\n */\r\n TestPointState[TestPointState[\"NotReady\"] = 3] = \"NotReady\";\r\n /**\r\n * The test is being executed.\r\n */\r\n TestPointState[TestPointState[\"InProgress\"] = 4] = \"InProgress\";\r\n TestPointState[TestPointState[\"MaxValue\"] = 4] = \"MaxValue\";\r\n})(TestPointState = exports.TestPointState || (exports.TestPointState = {}));\r\n/**\r\n * Group by for results\r\n */\r\nvar TestResultGroupBy;\r\n(function (TestResultGroupBy) {\r\n /**\r\n * Group the results by branches\r\n */\r\n TestResultGroupBy[TestResultGroupBy[\"Branch\"] = 1] = \"Branch\";\r\n /**\r\n * Group the results by environment\r\n */\r\n TestResultGroupBy[TestResultGroupBy[\"Environment\"] = 2] = \"Environment\";\r\n})(TestResultGroupBy = exports.TestResultGroupBy || (exports.TestResultGroupBy = {}));\r\nvar TestResultsContextType;\r\n(function (TestResultsContextType) {\r\n TestResultsContextType[TestResultsContextType[\"Build\"] = 1] = \"Build\";\r\n TestResultsContextType[TestResultsContextType[\"Release\"] = 2] = \"Release\";\r\n TestResultsContextType[TestResultsContextType[\"Pipeline\"] = 3] = \"Pipeline\";\r\n})(TestResultsContextType = exports.TestResultsContextType || (exports.TestResultsContextType = {}));\r\nvar TestResultsSettingsType;\r\n(function (TestResultsSettingsType) {\r\n /**\r\n * Returns All Test Settings.\r\n */\r\n TestResultsSettingsType[TestResultsSettingsType[\"All\"] = 1] = \"All\";\r\n /**\r\n * Returns Flaky Test Settings.\r\n */\r\n TestResultsSettingsType[TestResultsSettingsType[\"Flaky\"] = 2] = \"Flaky\";\r\n /**\r\n * Returns whether to log new tests or not\r\n */\r\n TestResultsSettingsType[TestResultsSettingsType[\"NewTestLogging\"] = 3] = \"NewTestLogging\";\r\n})(TestResultsSettingsType = exports.TestResultsSettingsType || (exports.TestResultsSettingsType = {}));\r\n/**\r\n * The types of outcomes for test run.\r\n */\r\nvar TestRunOutcome;\r\n(function (TestRunOutcome) {\r\n /**\r\n * Run with zero failed tests and has at least one impacted test\r\n */\r\n TestRunOutcome[TestRunOutcome[\"Passed\"] = 0] = \"Passed\";\r\n /**\r\n * Run with at-least one failed test.\r\n */\r\n TestRunOutcome[TestRunOutcome[\"Failed\"] = 1] = \"Failed\";\r\n /**\r\n * Run with no impacted tests.\r\n */\r\n TestRunOutcome[TestRunOutcome[\"NotImpacted\"] = 2] = \"NotImpacted\";\r\n /**\r\n * Runs with All tests in other category.\r\n */\r\n TestRunOutcome[TestRunOutcome[\"Others\"] = 3] = \"Others\";\r\n})(TestRunOutcome = exports.TestRunOutcome || (exports.TestRunOutcome = {}));\r\n/**\r\n * The types of publish context for run.\r\n */\r\nvar TestRunPublishContext;\r\n(function (TestRunPublishContext) {\r\n /**\r\n * Run is published for Build Context.\r\n */\r\n TestRunPublishContext[TestRunPublishContext[\"Build\"] = 1] = \"Build\";\r\n /**\r\n * Run is published for Release Context.\r\n */\r\n TestRunPublishContext[TestRunPublishContext[\"Release\"] = 2] = \"Release\";\r\n /**\r\n * Run is published for any Context.\r\n */\r\n TestRunPublishContext[TestRunPublishContext[\"All\"] = 3] = \"All\";\r\n})(TestRunPublishContext = exports.TestRunPublishContext || (exports.TestRunPublishContext = {}));\r\n/**\r\n * The types of states for test run.\r\n */\r\nvar TestRunState;\r\n(function (TestRunState) {\r\n /**\r\n * Only used during an update to preserve the existing value.\r\n */\r\n TestRunState[TestRunState[\"Unspecified\"] = 0] = \"Unspecified\";\r\n /**\r\n * The run is still being created. No tests have started yet.\r\n */\r\n TestRunState[TestRunState[\"NotStarted\"] = 1] = \"NotStarted\";\r\n /**\r\n * Tests are running.\r\n */\r\n TestRunState[TestRunState[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * All tests have completed or been skipped.\r\n */\r\n TestRunState[TestRunState[\"Completed\"] = 3] = \"Completed\";\r\n /**\r\n * Run is stopped and remaining tests have been aborted\r\n */\r\n TestRunState[TestRunState[\"Aborted\"] = 4] = \"Aborted\";\r\n /**\r\n * Run is currently initializing This is a legacy state and should not be used any more\r\n */\r\n TestRunState[TestRunState[\"Waiting\"] = 5] = \"Waiting\";\r\n /**\r\n * Run requires investigation because of a test point failure This is a legacy state and should not be used any more\r\n */\r\n TestRunState[TestRunState[\"NeedsInvestigation\"] = 6] = \"NeedsInvestigation\";\r\n})(TestRunState = exports.TestRunState || (exports.TestRunState = {}));\r\n/**\r\n * The types of sub states for test run. It gives the user more info about the test run beyond the high level test run state\r\n */\r\nvar TestRunSubstate;\r\n(function (TestRunSubstate) {\r\n /**\r\n * Run with noState.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"None\"] = 0] = \"None\";\r\n /**\r\n * Run state while Creating Environment.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"CreatingEnvironment\"] = 1] = \"CreatingEnvironment\";\r\n /**\r\n * Run state while Running Tests.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"RunningTests\"] = 2] = \"RunningTests\";\r\n /**\r\n * Run state while Creating Environment.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"CanceledByUser\"] = 3] = \"CanceledByUser\";\r\n /**\r\n * Run state when it is Aborted By the System.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"AbortedBySystem\"] = 4] = \"AbortedBySystem\";\r\n /**\r\n * Run state when run has timedOut.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"TimedOut\"] = 5] = \"TimedOut\";\r\n /**\r\n * Run state while Pending Analysis.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"PendingAnalysis\"] = 6] = \"PendingAnalysis\";\r\n /**\r\n * Run state after being Analysed.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"Analyzed\"] = 7] = \"Analyzed\";\r\n /**\r\n * Run state when cancellation is in Progress.\r\n */\r\n TestRunSubstate[TestRunSubstate[\"CancellationInProgress\"] = 8] = \"CancellationInProgress\";\r\n})(TestRunSubstate = exports.TestRunSubstate || (exports.TestRunSubstate = {}));\r\n/**\r\n * Represents the source from which the test session was created\r\n */\r\nvar TestSessionSource;\r\n(function (TestSessionSource) {\r\n /**\r\n * Source of test session uncertain as it is stale\r\n */\r\n TestSessionSource[TestSessionSource[\"Unknown\"] = 0] = \"Unknown\";\r\n /**\r\n * The session was created from Microsoft Test Manager exploratory desktop tool.\r\n */\r\n TestSessionSource[TestSessionSource[\"XTDesktop\"] = 1] = \"XTDesktop\";\r\n /**\r\n * The session was created from feedback client.\r\n */\r\n TestSessionSource[TestSessionSource[\"FeedbackDesktop\"] = 2] = \"FeedbackDesktop\";\r\n /**\r\n * The session was created from browser extension.\r\n */\r\n TestSessionSource[TestSessionSource[\"XTWeb\"] = 3] = \"XTWeb\";\r\n /**\r\n * The session was created from browser extension.\r\n */\r\n TestSessionSource[TestSessionSource[\"FeedbackWeb\"] = 4] = \"FeedbackWeb\";\r\n /**\r\n * The session was created from web access using Microsoft Test Manager exploratory desktop tool.\r\n */\r\n TestSessionSource[TestSessionSource[\"XTDesktop2\"] = 5] = \"XTDesktop2\";\r\n /**\r\n * To show sessions from all supported sources.\r\n */\r\n TestSessionSource[TestSessionSource[\"SessionInsightsForAll\"] = 6] = \"SessionInsightsForAll\";\r\n})(TestSessionSource = exports.TestSessionSource || (exports.TestSessionSource = {}));\r\n/**\r\n * Represents the state of the test session.\r\n */\r\nvar TestSessionState;\r\n(function (TestSessionState) {\r\n /**\r\n * Only used during an update to preserve the existing value.\r\n */\r\n TestSessionState[TestSessionState[\"Unspecified\"] = 0] = \"Unspecified\";\r\n /**\r\n * The session is still being created.\r\n */\r\n TestSessionState[TestSessionState[\"NotStarted\"] = 1] = \"NotStarted\";\r\n /**\r\n * The session is running.\r\n */\r\n TestSessionState[TestSessionState[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The session has paused.\r\n */\r\n TestSessionState[TestSessionState[\"Paused\"] = 3] = \"Paused\";\r\n /**\r\n * The session has completed.\r\n */\r\n TestSessionState[TestSessionState[\"Completed\"] = 4] = \"Completed\";\r\n /**\r\n * This is required for Feedback session which are declined\r\n */\r\n TestSessionState[TestSessionState[\"Declined\"] = 5] = \"Declined\";\r\n})(TestSessionState = exports.TestSessionState || (exports.TestSessionState = {}));\r\nexports.TypeInfo = {\r\n AfnStrip: {},\r\n AggregatedDataForResultTrend: {},\r\n AggregatedResultDetailsByOutcome: {},\r\n AggregatedResultsAnalysis: {},\r\n AggregatedResultsByOutcome: {},\r\n AggregatedRunsByOutcome: {},\r\n AggregatedRunsByState: {},\r\n AttachmentType: {\r\n enumValues: {\r\n \"generalAttachment\": 0,\r\n \"afnStrip\": 1,\r\n \"bugFilingData\": 2,\r\n \"codeCoverage\": 3,\r\n \"intermediateCollectorData\": 4,\r\n \"runConfig\": 5,\r\n \"testImpactDetails\": 6,\r\n \"tmiTestRunDeploymentFiles\": 7,\r\n \"tmiTestRunReverseDeploymentFiles\": 8,\r\n \"tmiTestResultDetail\": 9,\r\n \"tmiTestRunSummary\": 10,\r\n \"consoleLog\": 11\r\n }\r\n },\r\n BatchResponse: {},\r\n BuildConfiguration: {},\r\n BuildCoverage: {},\r\n BuildReference2: {},\r\n BulkResultUpdateRequest: {},\r\n CloneOperationInformation: {},\r\n CloneOperationState: {\r\n enumValues: {\r\n \"failed\": 2,\r\n \"inProgress\": 1,\r\n \"queued\": 0,\r\n \"succeeded\": 3\r\n }\r\n },\r\n CodeCoverageSummary: {},\r\n Coverage2: {},\r\n CoverageQueryFlags: {\r\n enumValues: {\r\n \"modules\": 1,\r\n \"functions\": 2,\r\n \"blockData\": 4\r\n }\r\n },\r\n CoverageStatus: {\r\n enumValues: {\r\n \"covered\": 0,\r\n \"notCovered\": 1,\r\n \"partiallyCovered\": 2\r\n }\r\n },\r\n CoverageSummaryStatus: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"inProgress\": 1,\r\n \"completed\": 2,\r\n \"finalized\": 3,\r\n \"pending\": 4,\r\n \"updateRequestQueued\": 5\r\n }\r\n },\r\n CreateTestMessageLogEntryRequest: {},\r\n CreateTestResultsRequest: {},\r\n CreateTestRunRequest: {},\r\n CustomTestFieldDefinition: {},\r\n CustomTestFieldScope: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"testRun\": 1,\r\n \"testResult\": 2,\r\n \"system\": 4,\r\n \"all\": 7\r\n }\r\n },\r\n CustomTestFieldType: {\r\n enumValues: {\r\n \"bit\": 2,\r\n \"dateTime\": 4,\r\n \"int\": 8,\r\n \"float\": 6,\r\n \"string\": 12,\r\n \"guid\": 14\r\n }\r\n },\r\n DatedTestFieldData: {},\r\n FailingSince: {},\r\n FetchTestResultsResponse: {},\r\n FlakyDetection: {},\r\n FlakyDetectionType: {\r\n enumValues: {\r\n \"custom\": 1,\r\n \"system\": 2\r\n }\r\n },\r\n FlakySettings: {},\r\n LastResultDetails: {},\r\n LegacyBuildConfiguration: {},\r\n LegacyReleaseReference: {},\r\n LegacyTestCaseResult: {},\r\n LegacyTestRun: {},\r\n LegacyTestSettings: {},\r\n Metrics: {\r\n enumValues: {\r\n \"all\": 1,\r\n \"resultSummary\": 2,\r\n \"resultsAnalysis\": 3,\r\n \"runSummary\": 4\r\n }\r\n },\r\n OperationType: {\r\n enumValues: {\r\n \"add\": 1,\r\n \"delete\": 2\r\n }\r\n },\r\n PipelineTestMetrics: {},\r\n PointLastResult: {},\r\n PointsResults2: {},\r\n QueryTestActionResultResponse: {},\r\n ReleaseReference: {},\r\n ReleaseReference2: {},\r\n RequirementsToTestsMapping2: {},\r\n Response: {},\r\n ResultDetails: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"iterations\": 1,\r\n \"workItems\": 2,\r\n \"subResults\": 4,\r\n \"point\": 8\r\n }\r\n },\r\n ResultGroupType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"rerun\": 1,\r\n \"dataDriven\": 2,\r\n \"orderedTest\": 3,\r\n \"generic\": 4\r\n }\r\n },\r\n ResultMetadata: {\r\n enumValues: {\r\n \"rerun\": 1,\r\n \"flaky\": 2\r\n }\r\n },\r\n ResultMetaDataDetails: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"flakyIdentifiers\": 1\r\n }\r\n },\r\n ResultObjectType: {\r\n enumValues: {\r\n \"testSuite\": 0,\r\n \"testPlan\": 1\r\n }\r\n },\r\n ResultRetentionSettings: {},\r\n ResultsByQueryResponse: {},\r\n ResultsFilter: {},\r\n ResultsSummaryByOutcome: {},\r\n ResultSummary: {},\r\n ResultUpdateRequest: {},\r\n ResultUpdateRequestModel: {},\r\n ResultUpdateResponse: {},\r\n RunCreateModel: {},\r\n RunStatistic: {},\r\n RunSummary: {},\r\n RunSummaryModel: {},\r\n RunType: {\r\n enumValues: {\r\n \"unspecified\": 0,\r\n \"normal\": 1,\r\n \"blocking\": 2,\r\n \"web\": 4,\r\n \"mtrRunInitiatedFromWeb\": 8,\r\n \"runWithDtlEnv\": 16,\r\n \"noConfigRun\": 32\r\n }\r\n },\r\n RunUpdateModel: {},\r\n Service: {\r\n enumValues: {\r\n \"any\": 0,\r\n \"tcm\": 1,\r\n \"tfs\": 2\r\n }\r\n },\r\n SuiteExpand: {\r\n enumValues: {\r\n \"children\": 1,\r\n \"defaultTesters\": 2\r\n }\r\n },\r\n TCMServiceDataMigrationStatus: {\r\n enumValues: {\r\n \"notStarted\": 0,\r\n \"inProgress\": 1,\r\n \"completed\": 2,\r\n \"failed\": 3\r\n }\r\n },\r\n TestActionResult: {},\r\n TestActionResult2: {},\r\n TestActionResultModel: {},\r\n TestAttachment: {},\r\n TestAuthoringDetails: {},\r\n TestCaseReference2: {},\r\n TestCaseResult: {},\r\n TestConfiguration: {},\r\n TestConfigurationState: {\r\n enumValues: {\r\n \"active\": 1,\r\n \"inactive\": 2\r\n }\r\n },\r\n TestExecutionReportData: {},\r\n TestExtensionField: {},\r\n TestExtensionFieldDetails: {},\r\n TestFailuresAnalysis: {},\r\n TestHistoryQuery: {},\r\n TestIterationDetailsModel: {},\r\n TestLog: {},\r\n TestLogReference: {},\r\n TestLogScope: {\r\n enumValues: {\r\n \"run\": 0,\r\n \"build\": 1,\r\n \"release\": 2\r\n }\r\n },\r\n TestLogStatus: {},\r\n TestLogStatusCode: {\r\n enumValues: {\r\n \"success\": 0,\r\n \"failed\": 1,\r\n \"fileAlreadyExists\": 2,\r\n \"invalidInput\": 3,\r\n \"invalidFileName\": 4,\r\n \"invalidContainer\": 5,\r\n \"transferFailed\": 6,\r\n \"featureDisabled\": 7,\r\n \"buildDoesNotExist\": 8,\r\n \"runDoesNotExist\": 9,\r\n \"containerNotCreated\": 10,\r\n \"apiNotSupported\": 11,\r\n \"fileSizeExceeds\": 12,\r\n \"containerNotFound\": 13,\r\n \"fileNotFound\": 14,\r\n \"directoryNotFound\": 15,\r\n \"storageCapacityExceeded\": 16\r\n }\r\n },\r\n TestLogStoreEndpointDetails: {},\r\n TestLogStoreEndpointType: {\r\n enumValues: {\r\n \"root\": 1,\r\n \"file\": 2\r\n }\r\n },\r\n TestLogStoreOperationType: {\r\n enumValues: {\r\n \"read\": 1,\r\n \"create\": 2,\r\n \"readAndCreate\": 3\r\n }\r\n },\r\n TestLogType: {\r\n enumValues: {\r\n \"generalAttachment\": 1,\r\n \"codeCoverage\": 2,\r\n \"testImpact\": 3,\r\n \"intermediate\": 4,\r\n \"system\": 5\r\n }\r\n },\r\n TestMessageLogDetails: {},\r\n TestMessageLogEntry: {},\r\n TestMessageLogEntry2: {},\r\n TestOutcome: {\r\n enumValues: {\r\n \"unspecified\": 0,\r\n \"none\": 1,\r\n \"passed\": 2,\r\n \"failed\": 3,\r\n \"inconclusive\": 4,\r\n \"timeout\": 5,\r\n \"aborted\": 6,\r\n \"blocked\": 7,\r\n \"notExecuted\": 8,\r\n \"warning\": 9,\r\n \"error\": 10,\r\n \"notApplicable\": 11,\r\n \"paused\": 12,\r\n \"inProgress\": 13,\r\n \"notImpacted\": 14,\r\n \"maxValue\": 14\r\n }\r\n },\r\n TestParameter2: {},\r\n TestPlan: {},\r\n TestPlanCloneRequest: {},\r\n TestPlanHubData: {},\r\n TestPlansWithSelection: {},\r\n TestPoint: {},\r\n TestPointReference: {},\r\n TestPointsEvent: {},\r\n TestPointsQuery: {},\r\n TestPointState: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"ready\": 1,\r\n \"completed\": 2,\r\n \"notReady\": 3,\r\n \"inProgress\": 4,\r\n \"maxValue\": 4\r\n }\r\n },\r\n TestPointsUpdatedEvent: {},\r\n TestResult2: {},\r\n TestResultAcrossProjectResponse: {},\r\n TestResultAttachment: {},\r\n TestResultGroupBy: {\r\n enumValues: {\r\n \"branch\": 1,\r\n \"environment\": 2\r\n }\r\n },\r\n TestResultHistory: {},\r\n TestResultHistoryDetailsForGroup: {},\r\n TestResultHistoryForGroup: {},\r\n TestResultModelBase: {},\r\n TestResultReset2: {},\r\n TestResultsContext: {},\r\n TestResultsContextType: {\r\n enumValues: {\r\n \"build\": 1,\r\n \"release\": 2,\r\n \"pipeline\": 3\r\n }\r\n },\r\n TestResultsDetails: {},\r\n TestResultsDetailsForGroup: {},\r\n TestResultsEx2: {},\r\n TestResultsQuery: {},\r\n TestResultsSettings: {},\r\n TestResultsSettingsType: {\r\n enumValues: {\r\n \"all\": 1,\r\n \"flaky\": 2,\r\n \"newTestLogging\": 3\r\n }\r\n },\r\n TestResultSummary: {},\r\n TestResultsUpdateSettings: {},\r\n TestResultsWithWatermark: {},\r\n TestResultTrendFilter: {},\r\n TestRun: {},\r\n TestRun2: {},\r\n TestRunCanceledEvent: {},\r\n TestRunCreatedEvent: {},\r\n TestRunEvent: {},\r\n TestRunEx2: {},\r\n TestRunOutcome: {\r\n enumValues: {\r\n \"passed\": 0,\r\n \"failed\": 1,\r\n \"notImpacted\": 2,\r\n \"others\": 3\r\n }\r\n },\r\n TestRunPublishContext: {\r\n enumValues: {\r\n \"build\": 1,\r\n \"release\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n TestRunStartedEvent: {},\r\n TestRunState: {\r\n enumValues: {\r\n \"unspecified\": 0,\r\n \"notStarted\": 1,\r\n \"inProgress\": 2,\r\n \"completed\": 3,\r\n \"aborted\": 4,\r\n \"waiting\": 5,\r\n \"needsInvestigation\": 6\r\n }\r\n },\r\n TestRunStatistic: {},\r\n TestRunSubstate: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"creatingEnvironment\": 1,\r\n \"runningTests\": 2,\r\n \"canceledByUser\": 3,\r\n \"abortedBySystem\": 4,\r\n \"timedOut\": 5,\r\n \"pendingAnalysis\": 6,\r\n \"analyzed\": 7,\r\n \"cancellationInProgress\": 8\r\n }\r\n },\r\n TestRunSummary2: {},\r\n TestRunWithDtlEnvEvent: {},\r\n TestSession: {},\r\n TestSessionExploredWorkItemReference: {},\r\n TestSessionSource: {\r\n enumValues: {\r\n \"unknown\": 0,\r\n \"xtDesktop\": 1,\r\n \"feedbackDesktop\": 2,\r\n \"xtWeb\": 3,\r\n \"feedbackWeb\": 4,\r\n \"xtDesktop2\": 5,\r\n \"sessionInsightsForAll\": 6\r\n }\r\n },\r\n TestSessionState: {\r\n enumValues: {\r\n \"unspecified\": 0,\r\n \"notStarted\": 1,\r\n \"inProgress\": 2,\r\n \"paused\": 3,\r\n \"completed\": 4,\r\n \"declined\": 5\r\n }\r\n },\r\n TestSettings2: {},\r\n TestSubResult: {},\r\n TestSuite: {},\r\n TestSummaryForWorkItem: {},\r\n UpdatedProperties: {},\r\n UpdateTestRunRequest: {},\r\n UpdateTestRunResponse: {},\r\n WorkItemToTestLinks: {},\r\n};\r\nexports.TypeInfo.AfnStrip.fields = {\r\n creationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AggregatedDataForResultTrend.fields = {\r\n resultsByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome\r\n },\r\n runSummaryByState: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunState,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedRunsByState\r\n },\r\n testResultsContext: {\r\n typeInfo: exports.TypeInfo.TestResultsContext\r\n }\r\n};\r\nexports.TypeInfo.AggregatedResultDetailsByOutcome.fields = {\r\n outcome: {\r\n enumType: exports.TypeInfo.TestOutcome\r\n }\r\n};\r\nexports.TypeInfo.AggregatedResultsAnalysis.fields = {\r\n notReportedResultsByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome\r\n },\r\n previousContext: {\r\n typeInfo: exports.TypeInfo.TestResultsContext\r\n },\r\n resultsByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome\r\n },\r\n runSummaryByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedRunsByOutcome\r\n },\r\n runSummaryByState: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunState,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedRunsByState\r\n }\r\n};\r\nexports.TypeInfo.AggregatedResultsByOutcome.fields = {\r\n outcome: {\r\n enumType: exports.TypeInfo.TestOutcome\r\n }\r\n};\r\nexports.TypeInfo.AggregatedRunsByOutcome.fields = {\r\n outcome: {\r\n enumType: exports.TypeInfo.TestRunOutcome\r\n }\r\n};\r\nexports.TypeInfo.AggregatedRunsByState.fields = {\r\n resultsByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TestRunState\r\n }\r\n};\r\nexports.TypeInfo.BatchResponse.fields = {\r\n responses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Response\r\n },\r\n};\r\nexports.TypeInfo.BuildConfiguration.fields = {\r\n creationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BuildCoverage.fields = {\r\n configuration: {\r\n typeInfo: exports.TypeInfo.BuildConfiguration\r\n }\r\n};\r\nexports.TypeInfo.BuildReference2.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.BulkResultUpdateRequest.fields = {\r\n requests: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.ResultUpdateRequest\r\n }\r\n};\r\nexports.TypeInfo.CloneOperationInformation.fields = {\r\n completionDate: {\r\n isDate: true,\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n resultObjectType: {\r\n enumType: exports.TypeInfo.ResultObjectType\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.CloneOperationState\r\n }\r\n};\r\nexports.TypeInfo.CodeCoverageSummary.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.CoverageSummaryStatus\r\n }\r\n};\r\nexports.TypeInfo.Coverage2.fields = {\r\n dateCreated: {\r\n isDate: true,\r\n },\r\n dateModified: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.CreateTestMessageLogEntryRequest.fields = {\r\n testMessageLogEntry: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestMessageLogEntry\r\n }\r\n};\r\nexports.TypeInfo.CreateTestResultsRequest.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.CreateTestRunRequest.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n },\r\n testRun: {\r\n typeInfo: exports.TypeInfo.LegacyTestRun\r\n },\r\n testSettings: {\r\n typeInfo: exports.TypeInfo.LegacyTestSettings\r\n }\r\n};\r\nexports.TypeInfo.CustomTestFieldDefinition.fields = {\r\n fieldType: {\r\n enumType: exports.TypeInfo.CustomTestFieldType\r\n },\r\n scope: {\r\n enumType: exports.TypeInfo.CustomTestFieldScope\r\n }\r\n};\r\nexports.TypeInfo.DatedTestFieldData.fields = {\r\n date: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.FailingSince.fields = {\r\n date: {\r\n isDate: true,\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n }\r\n};\r\nexports.TypeInfo.FetchTestResultsResponse.fields = {\r\n actionResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResult\r\n },\r\n attachments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultAttachment\r\n },\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.FlakyDetection.fields = {\r\n flakyDetectionType: {\r\n enumType: exports.TypeInfo.FlakyDetectionType\r\n }\r\n};\r\nexports.TypeInfo.FlakySettings.fields = {\r\n flakyDetection: {\r\n typeInfo: exports.TypeInfo.FlakyDetection\r\n }\r\n};\r\nexports.TypeInfo.LastResultDetails.fields = {\r\n dateCompleted: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.LegacyBuildConfiguration.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.LegacyReleaseReference.fields = {\r\n environmentCreationDate: {\r\n isDate: true,\r\n },\r\n releaseCreationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.LegacyTestCaseResult.fields = {\r\n buildReference: {\r\n typeInfo: exports.TypeInfo.LegacyBuildConfiguration\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n customFields: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestExtensionField\r\n },\r\n dateCompleted: {\r\n isDate: true,\r\n },\r\n dateStarted: {\r\n isDate: true,\r\n },\r\n failingSince: {\r\n typeInfo: exports.TypeInfo.FailingSince\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n releaseReference: {\r\n typeInfo: exports.TypeInfo.LegacyReleaseReference\r\n },\r\n resultGroupType: {\r\n enumType: exports.TypeInfo.ResultGroupType\r\n },\r\n stackTrace: {\r\n typeInfo: exports.TypeInfo.TestExtensionField\r\n }\r\n};\r\nexports.TypeInfo.LegacyTestRun.fields = {\r\n buildReference: {\r\n typeInfo: exports.TypeInfo.LegacyBuildConfiguration\r\n },\r\n completeDate: {\r\n isDate: true,\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n customFields: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestExtensionField\r\n },\r\n dueDate: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n releaseReference: {\r\n typeInfo: exports.TypeInfo.LegacyReleaseReference\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n testMessageLogEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestMessageLogDetails\r\n }\r\n};\r\nexports.TypeInfo.LegacyTestSettings.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.PipelineTestMetrics.fields = {\r\n resultSummary: {\r\n typeInfo: exports.TypeInfo.ResultSummary\r\n },\r\n runSummary: {\r\n typeInfo: exports.TypeInfo.RunSummary\r\n },\r\n summaryAtChild: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PipelineTestMetrics\r\n }\r\n};\r\nexports.TypeInfo.PointLastResult.fields = {\r\n lastUpdatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.PointsResults2.fields = {\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.QueryTestActionResultResponse.fields = {\r\n testActionResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResult\r\n },\r\n testAttachments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultAttachment\r\n }\r\n};\r\nexports.TypeInfo.ReleaseReference.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n environmentCreationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ReleaseReference2.fields = {\r\n environmentCreationDate: {\r\n isDate: true,\r\n },\r\n releaseCreationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.RequirementsToTestsMapping2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n deletionDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Response.fields = {};\r\nexports.TypeInfo.ResultRetentionSettings.fields = {\r\n lastUpdatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ResultsByQueryResponse.fields = {\r\n testResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.ResultsFilter.fields = {\r\n executedIn: {\r\n enumType: exports.TypeInfo.Service\r\n },\r\n maxCompleteDate: {\r\n isDate: true,\r\n },\r\n testResultsContext: {\r\n typeInfo: exports.TypeInfo.TestResultsContext\r\n }\r\n};\r\nexports.TypeInfo.ResultsSummaryByOutcome.fields = {\r\n aggregatedResultDetailsByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultDetailsByOutcome\r\n }\r\n};\r\nexports.TypeInfo.ResultSummary.fields = {\r\n resultSummaryByRunState: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunState,\r\n dictionaryValueTypeInfo: exports.TypeInfo.ResultsSummaryByOutcome\r\n }\r\n};\r\nexports.TypeInfo.ResultUpdateRequest.fields = {\r\n actionResultDeletes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResult\r\n },\r\n actionResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResult\r\n },\r\n attachments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultAttachment\r\n },\r\n testCaseResult: {\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.ResultUpdateRequestModel.fields = {\r\n actionResultDeletes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResultModel\r\n },\r\n actionResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResultModel\r\n }\r\n};\r\nexports.TypeInfo.ResultUpdateResponse.fields = {\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.RunCreateModel.fields = {\r\n buildReference: {\r\n typeInfo: exports.TypeInfo.BuildConfiguration\r\n },\r\n releaseReference: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n },\r\n runSummary: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RunSummaryModel\r\n }\r\n};\r\nexports.TypeInfo.RunStatistic.fields = {\r\n resultMetadata: {\r\n enumType: exports.TypeInfo.ResultMetadata\r\n }\r\n};\r\nexports.TypeInfo.RunSummary.fields = {\r\n runSummaryByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunOutcome,\r\n },\r\n runSummaryByState: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestRunState,\r\n }\r\n};\r\nexports.TypeInfo.RunSummaryModel.fields = {\r\n testOutcome: {\r\n enumType: exports.TypeInfo.TestOutcome\r\n }\r\n};\r\nexports.TypeInfo.RunUpdateModel.fields = {\r\n logEntries: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestMessageLogDetails\r\n },\r\n runSummary: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RunSummaryModel\r\n },\r\n substate: {\r\n enumType: exports.TypeInfo.TestRunSubstate\r\n }\r\n};\r\nexports.TypeInfo.TestActionResult.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n dateCompleted: {\r\n isDate: true,\r\n },\r\n dateStarted: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestActionResult2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n dateCompleted: {\r\n isDate: true,\r\n },\r\n dateStarted: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestActionResultModel.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n startedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestAttachment.fields = {\r\n attachmentType: {\r\n enumType: exports.TypeInfo.AttachmentType\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestAuthoringDetails.fields = {\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TestPointState\r\n }\r\n};\r\nexports.TypeInfo.TestCaseReference2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n lastRefTestRunDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestCaseResult.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n failingSince: {\r\n typeInfo: exports.TypeInfo.FailingSince\r\n },\r\n iterationDetails: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestIterationDetailsModel\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n releaseReference: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n },\r\n resultGroupType: {\r\n enumType: exports.TypeInfo.ResultGroupType\r\n },\r\n startedDate: {\r\n isDate: true,\r\n },\r\n subResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestSubResult\r\n }\r\n};\r\nexports.TypeInfo.TestConfiguration.fields = {\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TestConfigurationState\r\n }\r\n};\r\nexports.TypeInfo.TestExecutionReportData.fields = {\r\n reportData: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DatedTestFieldData\r\n }\r\n};\r\nexports.TypeInfo.TestExtensionField.fields = {\r\n field: {\r\n typeInfo: exports.TypeInfo.TestExtensionFieldDetails\r\n }\r\n};\r\nexports.TypeInfo.TestExtensionFieldDetails.fields = {\r\n type: {\r\n enumType: SystemData.TypeInfo.SqlDbType\r\n }\r\n};\r\nexports.TypeInfo.TestFailuresAnalysis.fields = {\r\n previousContext: {\r\n typeInfo: exports.TypeInfo.TestResultsContext\r\n }\r\n};\r\nexports.TypeInfo.TestHistoryQuery.fields = {\r\n groupBy: {\r\n enumType: exports.TypeInfo.TestResultGroupBy\r\n },\r\n maxCompleteDate: {\r\n isDate: true,\r\n },\r\n resultsForGroup: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultHistoryForGroup\r\n }\r\n};\r\nexports.TypeInfo.TestIterationDetailsModel.fields = {\r\n actionResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestActionResultModel\r\n },\r\n completedDate: {\r\n isDate: true,\r\n },\r\n startedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestLog.fields = {\r\n logReference: {\r\n typeInfo: exports.TypeInfo.TestLogReference\r\n },\r\n modifiedOn: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestLogReference.fields = {\r\n scope: {\r\n enumType: exports.TypeInfo.TestLogScope\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.TestLogType\r\n }\r\n};\r\nexports.TypeInfo.TestLogStatus.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.TestLogStatusCode\r\n }\r\n};\r\nexports.TypeInfo.TestLogStoreEndpointDetails.fields = {\r\n endpointType: {\r\n enumType: exports.TypeInfo.TestLogStoreEndpointType\r\n },\r\n status: {\r\n enumType: exports.TypeInfo.TestLogStatusCode\r\n }\r\n};\r\nexports.TypeInfo.TestMessageLogDetails.fields = {\r\n dateCreated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestMessageLogEntry.fields = {\r\n dateCreated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestMessageLogEntry2.fields = {\r\n dateCreated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestParameter2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n dateModified: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestPlan.fields = {\r\n endDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n updatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestPlanCloneRequest.fields = {\r\n destinationTestPlan: {\r\n typeInfo: exports.TypeInfo.TestPlan\r\n }\r\n};\r\nexports.TypeInfo.TestPlanHubData.fields = {\r\n testPlan: {\r\n typeInfo: exports.TypeInfo.TestPlan\r\n },\r\n testPoints: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestPoint\r\n },\r\n testSuites: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestSuite\r\n }\r\n};\r\nexports.TypeInfo.TestPlansWithSelection.fields = {\r\n plans: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestPlan\r\n }\r\n};\r\nexports.TypeInfo.TestPoint.fields = {\r\n lastResetToActive: {\r\n isDate: true,\r\n },\r\n lastResultDetails: {\r\n typeInfo: exports.TypeInfo.LastResultDetails\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestPointReference.fields = {\r\n state: {\r\n enumType: exports.TypeInfo.TestPointState\r\n }\r\n};\r\nexports.TypeInfo.TestPointsEvent.fields = {\r\n testPoints: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestPointReference\r\n }\r\n};\r\nexports.TypeInfo.TestPointsQuery.fields = {\r\n points: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestPoint\r\n }\r\n};\r\nexports.TypeInfo.TestPointsUpdatedEvent.fields = {\r\n testPoints: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestPointReference\r\n }\r\n};\r\nexports.TypeInfo.TestResult2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n dateCompleted: {\r\n isDate: true,\r\n },\r\n dateStarted: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestResultAcrossProjectResponse.fields = {\r\n testResult: {\r\n typeInfo: exports.TypeInfo.LegacyTestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.TestResultAttachment.fields = {\r\n attachmentType: {\r\n enumType: exports.TypeInfo.AttachmentType\r\n },\r\n creationDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestResultHistory.fields = {\r\n resultsForGroup: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultHistoryDetailsForGroup\r\n }\r\n};\r\nexports.TypeInfo.TestResultHistoryDetailsForGroup.fields = {\r\n latestResult: {\r\n typeInfo: exports.TypeInfo.TestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.TestResultHistoryForGroup.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestCaseResult\r\n }\r\n};\r\nexports.TypeInfo.TestResultModelBase.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n startedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestResultReset2.fields = {\r\n dateModified: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestResultsContext.fields = {\r\n contextType: {\r\n enumType: exports.TypeInfo.TestResultsContextType\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n }\r\n};\r\nexports.TypeInfo.TestResultsDetails.fields = {\r\n resultsForGroup: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultsDetailsForGroup\r\n }\r\n};\r\nexports.TypeInfo.TestResultsDetailsForGroup.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestCaseResult\r\n },\r\n resultsCountByOutcome: {\r\n isDictionary: true,\r\n dictionaryKeyEnumType: exports.TypeInfo.TestOutcome,\r\n dictionaryValueTypeInfo: exports.TypeInfo.AggregatedResultsByOutcome\r\n }\r\n};\r\nexports.TypeInfo.TestResultsEx2.fields = {\r\n creationDate: {\r\n isDate: true,\r\n },\r\n dateTimeValue: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestResultsQuery.fields = {\r\n results: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestCaseResult\r\n },\r\n resultsFilter: {\r\n typeInfo: exports.TypeInfo.ResultsFilter\r\n }\r\n};\r\nexports.TypeInfo.TestResultsSettings.fields = {\r\n flakySettings: {\r\n typeInfo: exports.TypeInfo.FlakySettings\r\n }\r\n};\r\nexports.TypeInfo.TestResultSummary.fields = {\r\n aggregatedResultsAnalysis: {\r\n typeInfo: exports.TypeInfo.AggregatedResultsAnalysis\r\n },\r\n teamProject: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n },\r\n testFailures: {\r\n typeInfo: exports.TypeInfo.TestFailuresAnalysis\r\n },\r\n testResultsContext: {\r\n typeInfo: exports.TypeInfo.TestResultsContext\r\n }\r\n};\r\nexports.TypeInfo.TestResultsUpdateSettings.fields = {\r\n flakySettings: {\r\n typeInfo: exports.TypeInfo.FlakySettings\r\n }\r\n};\r\nexports.TypeInfo.TestResultsWithWatermark.fields = {\r\n changedDate: {\r\n isDate: true,\r\n },\r\n pointsResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.PointsResults2\r\n }\r\n};\r\nexports.TypeInfo.TestResultTrendFilter.fields = {\r\n maxCompleteDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestRun.fields = {\r\n buildConfiguration: {\r\n typeInfo: exports.TypeInfo.BuildConfiguration\r\n },\r\n completedDate: {\r\n isDate: true,\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n dueDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n release: {\r\n typeInfo: exports.TypeInfo.ReleaseReference\r\n },\r\n runStatistics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RunStatistic\r\n },\r\n startedDate: {\r\n isDate: true,\r\n },\r\n substate: {\r\n enumType: exports.TypeInfo.TestRunSubstate\r\n }\r\n};\r\nexports.TypeInfo.TestRun2.fields = {\r\n completeDate: {\r\n isDate: true,\r\n },\r\n creationDate: {\r\n isDate: true,\r\n },\r\n deletedOn: {\r\n isDate: true,\r\n },\r\n dueDate: {\r\n isDate: true,\r\n },\r\n lastUpdated: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestRunCanceledEvent.fields = {\r\n testRun: {\r\n typeInfo: exports.TypeInfo.TestRun\r\n }\r\n};\r\nexports.TypeInfo.TestRunCreatedEvent.fields = {\r\n testRun: {\r\n typeInfo: exports.TypeInfo.TestRun\r\n }\r\n};\r\nexports.TypeInfo.TestRunEvent.fields = {\r\n testRun: {\r\n typeInfo: exports.TypeInfo.TestRun\r\n }\r\n};\r\nexports.TypeInfo.TestRunEx2.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n dateTimeValue: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestRunStartedEvent.fields = {\r\n testRun: {\r\n typeInfo: exports.TypeInfo.TestRun\r\n }\r\n};\r\nexports.TypeInfo.TestRunStatistic.fields = {\r\n runStatistics: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RunStatistic\r\n }\r\n};\r\nexports.TypeInfo.TestRunSummary2.fields = {\r\n testRunCompletedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestRunWithDtlEnvEvent.fields = {\r\n testRun: {\r\n typeInfo: exports.TypeInfo.TestRun\r\n }\r\n};\r\nexports.TypeInfo.TestSession.fields = {\r\n endDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n source: {\r\n enumType: exports.TypeInfo.TestSessionSource\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n state: {\r\n enumType: exports.TypeInfo.TestSessionState\r\n }\r\n};\r\nexports.TypeInfo.TestSessionExploredWorkItemReference.fields = {\r\n endTime: {\r\n isDate: true,\r\n },\r\n startTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestSettings2.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestSubResult.fields = {\r\n completedDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n },\r\n resultGroupType: {\r\n enumType: exports.TypeInfo.ResultGroupType\r\n },\r\n startedDate: {\r\n isDate: true,\r\n },\r\n subResults: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestSubResult\r\n }\r\n};\r\nexports.TypeInfo.TestSuite.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestSuite\r\n },\r\n lastPopulatedDate: {\r\n isDate: true,\r\n },\r\n lastUpdatedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TestSummaryForWorkItem.fields = {\r\n summary: {\r\n typeInfo: exports.TypeInfo.AggregatedDataForResultTrend\r\n }\r\n};\r\nexports.TypeInfo.UpdatedProperties.fields = {\r\n lastUpdated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.UpdateTestRunRequest.fields = {\r\n attachmentsToAdd: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TestResultAttachment\r\n },\r\n testRun: {\r\n typeInfo: exports.TypeInfo.LegacyTestRun\r\n }\r\n};\r\nexports.TypeInfo.UpdateTestRunResponse.fields = {\r\n updatedProperties: {\r\n typeInfo: exports.TypeInfo.UpdatedProperties\r\n }\r\n};\r\nexports.TypeInfo.WorkItemToTestLinks.fields = {\r\n executedIn: {\r\n enumType: exports.TypeInfo.Service\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst TfsCoreInterfaces = require(\"../interfaces/CoreInterfaces\");\r\nvar ItemContentType;\r\n(function (ItemContentType) {\r\n ItemContentType[ItemContentType[\"RawText\"] = 0] = \"RawText\";\r\n ItemContentType[ItemContentType[\"Base64Encoded\"] = 1] = \"Base64Encoded\";\r\n})(ItemContentType = exports.ItemContentType || (exports.ItemContentType = {}));\r\n/**\r\n * Options for Version handling.\r\n */\r\nvar TfvcVersionOption;\r\n(function (TfvcVersionOption) {\r\n /**\r\n * None.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"None\"] = 0] = \"None\";\r\n /**\r\n * Return the previous version.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"Previous\"] = 1] = \"Previous\";\r\n /**\r\n * Only usuable with versiontype MergeSource and integer versions, uses RenameSource identifier instead of Merge identifier.\r\n */\r\n TfvcVersionOption[TfvcVersionOption[\"UseRename\"] = 2] = \"UseRename\";\r\n})(TfvcVersionOption = exports.TfvcVersionOption || (exports.TfvcVersionOption = {}));\r\n/**\r\n * Type of Version object\r\n */\r\nvar TfvcVersionType;\r\n(function (TfvcVersionType) {\r\n /**\r\n * Version is treated as a ChangesetId.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Version is treated as a ChangesetId.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Changeset\"] = 1] = \"Changeset\";\r\n /**\r\n * Version is treated as a Shelveset name and owner.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Shelveset\"] = 2] = \"Shelveset\";\r\n /**\r\n * Version is treated as a Change.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Change\"] = 3] = \"Change\";\r\n /**\r\n * Version is treated as a Date.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Date\"] = 4] = \"Date\";\r\n /**\r\n * If Version is defined the Latest of that Version will be used, if no version is defined the latest ChangesetId will be used.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Latest\"] = 5] = \"Latest\";\r\n /**\r\n * Version will be treated as a Tip, if no version is defined latest will be used.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"Tip\"] = 6] = \"Tip\";\r\n /**\r\n * Version will be treated as a MergeSource.\r\n */\r\n TfvcVersionType[TfvcVersionType[\"MergeSource\"] = 7] = \"MergeSource\";\r\n})(TfvcVersionType = exports.TfvcVersionType || (exports.TfvcVersionType = {}));\r\nvar VersionControlChangeType;\r\n(function (VersionControlChangeType) {\r\n VersionControlChangeType[VersionControlChangeType[\"None\"] = 0] = \"None\";\r\n VersionControlChangeType[VersionControlChangeType[\"Add\"] = 1] = \"Add\";\r\n VersionControlChangeType[VersionControlChangeType[\"Edit\"] = 2] = \"Edit\";\r\n VersionControlChangeType[VersionControlChangeType[\"Encoding\"] = 4] = \"Encoding\";\r\n VersionControlChangeType[VersionControlChangeType[\"Rename\"] = 8] = \"Rename\";\r\n VersionControlChangeType[VersionControlChangeType[\"Delete\"] = 16] = \"Delete\";\r\n VersionControlChangeType[VersionControlChangeType[\"Undelete\"] = 32] = \"Undelete\";\r\n VersionControlChangeType[VersionControlChangeType[\"Branch\"] = 64] = \"Branch\";\r\n VersionControlChangeType[VersionControlChangeType[\"Merge\"] = 128] = \"Merge\";\r\n VersionControlChangeType[VersionControlChangeType[\"Lock\"] = 256] = \"Lock\";\r\n VersionControlChangeType[VersionControlChangeType[\"Rollback\"] = 512] = \"Rollback\";\r\n VersionControlChangeType[VersionControlChangeType[\"SourceRename\"] = 1024] = \"SourceRename\";\r\n VersionControlChangeType[VersionControlChangeType[\"TargetRename\"] = 2048] = \"TargetRename\";\r\n VersionControlChangeType[VersionControlChangeType[\"Property\"] = 4096] = \"Property\";\r\n VersionControlChangeType[VersionControlChangeType[\"All\"] = 8191] = \"All\";\r\n})(VersionControlChangeType = exports.VersionControlChangeType || (exports.VersionControlChangeType = {}));\r\nvar VersionControlRecursionType;\r\n(function (VersionControlRecursionType) {\r\n /**\r\n * Only return the specified item.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Return the specified item and its direct children.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"OneLevel\"] = 1] = \"OneLevel\";\r\n /**\r\n * Return the specified item and its direct children, as well as recursive chains of nested child folders that only contain a single folder.\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"OneLevelPlusNestedEmptyFolders\"] = 4] = \"OneLevelPlusNestedEmptyFolders\";\r\n /**\r\n * Return specified item and all descendants\r\n */\r\n VersionControlRecursionType[VersionControlRecursionType[\"Full\"] = 120] = \"Full\";\r\n})(VersionControlRecursionType = exports.VersionControlRecursionType || (exports.VersionControlRecursionType = {}));\r\nexports.TypeInfo = {\r\n Change: {},\r\n GitRepository: {},\r\n GitRepositoryRef: {},\r\n ItemContent: {},\r\n ItemContentType: {\r\n enumValues: {\r\n \"rawText\": 0,\r\n \"base64Encoded\": 1\r\n }\r\n },\r\n TfvcBranch: {},\r\n TfvcBranchRef: {},\r\n TfvcChange: {},\r\n TfvcChangeset: {},\r\n TfvcChangesetRef: {},\r\n TfvcItem: {},\r\n TfvcItemDescriptor: {},\r\n TfvcItemRequestData: {},\r\n TfvcLabel: {},\r\n TfvcLabelRef: {},\r\n TfvcShelveset: {},\r\n TfvcShelvesetRef: {},\r\n TfvcVersionDescriptor: {},\r\n TfvcVersionOption: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"previous\": 1,\r\n \"useRename\": 2\r\n }\r\n },\r\n TfvcVersionType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"changeset\": 1,\r\n \"shelveset\": 2,\r\n \"change\": 3,\r\n \"date\": 4,\r\n \"latest\": 5,\r\n \"tip\": 6,\r\n \"mergeSource\": 7\r\n }\r\n },\r\n VersionControlChangeType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"add\": 1,\r\n \"edit\": 2,\r\n \"encoding\": 4,\r\n \"rename\": 8,\r\n \"delete\": 16,\r\n \"undelete\": 32,\r\n \"branch\": 64,\r\n \"merge\": 128,\r\n \"lock\": 256,\r\n \"rollback\": 512,\r\n \"sourceRename\": 1024,\r\n \"targetRename\": 2048,\r\n \"property\": 4096,\r\n \"all\": 8191\r\n }\r\n },\r\n VersionControlProjectInfo: {},\r\n VersionControlRecursionType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"oneLevel\": 1,\r\n \"oneLevelPlusNestedEmptyFolders\": 4,\r\n \"full\": 120\r\n }\r\n },\r\n};\r\nexports.TypeInfo.Change.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.GitRepository.fields = {\r\n parentRepository: {\r\n typeInfo: exports.TypeInfo.GitRepositoryRef\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.GitRepositoryRef.fields = {\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\nexports.TypeInfo.ItemContent.fields = {\r\n contentType: {\r\n enumType: exports.TypeInfo.ItemContentType\r\n }\r\n};\r\nexports.TypeInfo.TfvcBranch.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcBranch\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcBranchRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcChange.fields = {\r\n changeType: {\r\n enumType: exports.TypeInfo.VersionControlChangeType\r\n },\r\n newContent: {\r\n typeInfo: exports.TypeInfo.ItemContent\r\n }\r\n};\r\nexports.TypeInfo.TfvcChangeset.fields = {\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcChange\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcChangesetRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcItem.fields = {\r\n changeDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcItemDescriptor.fields = {\r\n recursionLevel: {\r\n enumType: exports.TypeInfo.VersionControlRecursionType\r\n },\r\n versionOption: {\r\n enumType: exports.TypeInfo.TfvcVersionOption\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.TfvcVersionType\r\n }\r\n};\r\nexports.TypeInfo.TfvcItemRequestData.fields = {\r\n itemDescriptors: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcItemDescriptor\r\n }\r\n};\r\nexports.TypeInfo.TfvcLabel.fields = {\r\n items: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcItem\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcLabelRef.fields = {\r\n modifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcShelveset.fields = {\r\n changes: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TfvcChange\r\n },\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcShelvesetRef.fields = {\r\n createdDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TfvcVersionDescriptor.fields = {\r\n versionOption: {\r\n enumType: exports.TypeInfo.TfvcVersionOption\r\n },\r\n versionType: {\r\n enumType: exports.TypeInfo.TfvcVersionType\r\n }\r\n};\r\nexports.TypeInfo.VersionControlProjectInfo.fields = {\r\n defaultSourceControlType: {\r\n enumType: TfsCoreInterfaces.TypeInfo.SourceControlTypes\r\n },\r\n project: {\r\n typeInfo: TfsCoreInterfaces.TypeInfo.TeamProjectReference\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst GitInterfaces = require(\"../interfaces/GitInterfaces\");\r\n/**\r\n * Wiki types.\r\n */\r\nvar WikiType;\r\n(function (WikiType) {\r\n /**\r\n * Indicates that the wiki is provisioned for the team project\r\n */\r\n WikiType[WikiType[\"ProjectWiki\"] = 0] = \"ProjectWiki\";\r\n /**\r\n * Indicates that the wiki is published from a git repository\r\n */\r\n WikiType[WikiType[\"CodeWiki\"] = 1] = \"CodeWiki\";\r\n})(WikiType = exports.WikiType || (exports.WikiType = {}));\r\nexports.TypeInfo = {\r\n Wiki: {},\r\n WikiCreateBaseParameters: {},\r\n WikiCreateParametersV2: {},\r\n WikiPageDetail: {},\r\n WikiPageStat: {},\r\n WikiPageViewStats: {},\r\n WikiType: {\r\n enumValues: {\r\n \"projectWiki\": 0,\r\n \"codeWiki\": 1\r\n }\r\n },\r\n WikiUpdateParameters: {},\r\n WikiV2: {},\r\n};\r\nexports.TypeInfo.Wiki.fields = {\r\n repository: {\r\n typeInfo: GitInterfaces.TypeInfo.GitRepository\r\n }\r\n};\r\nexports.TypeInfo.WikiCreateBaseParameters.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.WikiType\r\n }\r\n};\r\nexports.TypeInfo.WikiCreateParametersV2.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.WikiType\r\n },\r\n version: {\r\n typeInfo: GitInterfaces.TypeInfo.GitVersionDescriptor\r\n }\r\n};\r\nexports.TypeInfo.WikiPageDetail.fields = {\r\n viewStats: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WikiPageStat\r\n }\r\n};\r\nexports.TypeInfo.WikiPageStat.fields = {\r\n day: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.WikiPageViewStats.fields = {\r\n lastViewedTime: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.WikiUpdateParameters.fields = {\r\n versions: {\r\n isArray: true,\r\n typeInfo: GitInterfaces.TypeInfo.GitVersionDescriptor\r\n }\r\n};\r\nexports.TypeInfo.WikiV2.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.WikiType\r\n },\r\n versions: {\r\n isArray: true,\r\n typeInfo: GitInterfaces.TypeInfo.GitVersionDescriptor\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst SystemInterfaces = require(\"../interfaces/common/System\");\r\n/**\r\n * Definition of the type of backlog level\r\n */\r\nvar BacklogType;\r\n(function (BacklogType) {\r\n /**\r\n * Portfolio backlog level\r\n */\r\n BacklogType[BacklogType[\"Portfolio\"] = 0] = \"Portfolio\";\r\n /**\r\n * Requirement backlog level\r\n */\r\n BacklogType[BacklogType[\"Requirement\"] = 1] = \"Requirement\";\r\n /**\r\n * Task backlog level\r\n */\r\n BacklogType[BacklogType[\"Task\"] = 2] = \"Task\";\r\n})(BacklogType = exports.BacklogType || (exports.BacklogType = {}));\r\n/**\r\n * Determines what columns to include on the board badge\r\n */\r\nvar BoardBadgeColumnOptions;\r\n(function (BoardBadgeColumnOptions) {\r\n /**\r\n * Only include In Progress columns\r\n */\r\n BoardBadgeColumnOptions[BoardBadgeColumnOptions[\"InProgressColumns\"] = 0] = \"InProgressColumns\";\r\n /**\r\n * Include all columns\r\n */\r\n BoardBadgeColumnOptions[BoardBadgeColumnOptions[\"AllColumns\"] = 1] = \"AllColumns\";\r\n /**\r\n * Include a custom set of columns\r\n */\r\n BoardBadgeColumnOptions[BoardBadgeColumnOptions[\"CustomColumns\"] = 2] = \"CustomColumns\";\r\n})(BoardBadgeColumnOptions = exports.BoardBadgeColumnOptions || (exports.BoardBadgeColumnOptions = {}));\r\nvar BoardColumnType;\r\n(function (BoardColumnType) {\r\n BoardColumnType[BoardColumnType[\"Incoming\"] = 0] = \"Incoming\";\r\n BoardColumnType[BoardColumnType[\"InProgress\"] = 1] = \"InProgress\";\r\n BoardColumnType[BoardColumnType[\"Outgoing\"] = 2] = \"Outgoing\";\r\n})(BoardColumnType = exports.BoardColumnType || (exports.BoardColumnType = {}));\r\n/**\r\n * The behavior of the work item types that are in the work item category specified in the BugWorkItems section in the Process Configuration\r\n */\r\nvar BugsBehavior;\r\n(function (BugsBehavior) {\r\n BugsBehavior[BugsBehavior[\"Off\"] = 0] = \"Off\";\r\n BugsBehavior[BugsBehavior[\"AsRequirements\"] = 1] = \"AsRequirements\";\r\n BugsBehavior[BugsBehavior[\"AsTasks\"] = 2] = \"AsTasks\";\r\n})(BugsBehavior = exports.BugsBehavior || (exports.BugsBehavior = {}));\r\nvar FieldType;\r\n(function (FieldType) {\r\n FieldType[FieldType[\"String\"] = 0] = \"String\";\r\n FieldType[FieldType[\"PlainText\"] = 1] = \"PlainText\";\r\n FieldType[FieldType[\"Integer\"] = 2] = \"Integer\";\r\n FieldType[FieldType[\"DateTime\"] = 3] = \"DateTime\";\r\n FieldType[FieldType[\"TreePath\"] = 4] = \"TreePath\";\r\n FieldType[FieldType[\"Boolean\"] = 5] = \"Boolean\";\r\n FieldType[FieldType[\"Double\"] = 6] = \"Double\";\r\n})(FieldType = exports.FieldType || (exports.FieldType = {}));\r\n/**\r\n * Enum for the various modes of identity picker\r\n */\r\nvar IdentityDisplayFormat;\r\n(function (IdentityDisplayFormat) {\r\n /**\r\n * Display avatar only\r\n */\r\n IdentityDisplayFormat[IdentityDisplayFormat[\"AvatarOnly\"] = 0] = \"AvatarOnly\";\r\n /**\r\n * Display Full name only\r\n */\r\n IdentityDisplayFormat[IdentityDisplayFormat[\"FullName\"] = 1] = \"FullName\";\r\n /**\r\n * Display Avatar and Full name\r\n */\r\n IdentityDisplayFormat[IdentityDisplayFormat[\"AvatarAndFullName\"] = 2] = \"AvatarAndFullName\";\r\n})(IdentityDisplayFormat = exports.IdentityDisplayFormat || (exports.IdentityDisplayFormat = {}));\r\n/**\r\n * Enum for the various types of plans\r\n */\r\nvar PlanType;\r\n(function (PlanType) {\r\n PlanType[PlanType[\"DeliveryTimelineView\"] = 0] = \"DeliveryTimelineView\";\r\n})(PlanType = exports.PlanType || (exports.PlanType = {}));\r\n/**\r\n * Flag for permissions a user can have for this plan.\r\n */\r\nvar PlanUserPermissions;\r\n(function (PlanUserPermissions) {\r\n /**\r\n * None\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Permission to view this plan.\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"View\"] = 1] = \"View\";\r\n /**\r\n * Permission to update this plan.\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"Edit\"] = 2] = \"Edit\";\r\n /**\r\n * Permission to delete this plan.\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"Delete\"] = 4] = \"Delete\";\r\n /**\r\n * Permission to manage this plan.\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"Manage\"] = 8] = \"Manage\";\r\n /**\r\n * Full control permission for this plan.\r\n */\r\n PlanUserPermissions[PlanUserPermissions[\"AllPermissions\"] = 15] = \"AllPermissions\";\r\n})(PlanUserPermissions = exports.PlanUserPermissions || (exports.PlanUserPermissions = {}));\r\nvar TimeFrame;\r\n(function (TimeFrame) {\r\n TimeFrame[TimeFrame[\"Past\"] = 0] = \"Past\";\r\n TimeFrame[TimeFrame[\"Current\"] = 1] = \"Current\";\r\n TimeFrame[TimeFrame[\"Future\"] = 2] = \"Future\";\r\n})(TimeFrame = exports.TimeFrame || (exports.TimeFrame = {}));\r\nvar TimelineCriteriaStatusCode;\r\n(function (TimelineCriteriaStatusCode) {\r\n /**\r\n * No error - filter is good.\r\n */\r\n TimelineCriteriaStatusCode[TimelineCriteriaStatusCode[\"OK\"] = 0] = \"OK\";\r\n /**\r\n * One of the filter clause is invalid.\r\n */\r\n TimelineCriteriaStatusCode[TimelineCriteriaStatusCode[\"InvalidFilterClause\"] = 1] = \"InvalidFilterClause\";\r\n /**\r\n * Unknown error.\r\n */\r\n TimelineCriteriaStatusCode[TimelineCriteriaStatusCode[\"Unknown\"] = 2] = \"Unknown\";\r\n})(TimelineCriteriaStatusCode = exports.TimelineCriteriaStatusCode || (exports.TimelineCriteriaStatusCode = {}));\r\nvar TimelineIterationStatusCode;\r\n(function (TimelineIterationStatusCode) {\r\n /**\r\n * No error - iteration data is good.\r\n */\r\n TimelineIterationStatusCode[TimelineIterationStatusCode[\"OK\"] = 0] = \"OK\";\r\n /**\r\n * This iteration overlaps with another iteration, no data is returned for this iteration.\r\n */\r\n TimelineIterationStatusCode[TimelineIterationStatusCode[\"IsOverlapping\"] = 1] = \"IsOverlapping\";\r\n})(TimelineIterationStatusCode = exports.TimelineIterationStatusCode || (exports.TimelineIterationStatusCode = {}));\r\nvar TimelineTeamStatusCode;\r\n(function (TimelineTeamStatusCode) {\r\n /**\r\n * No error - all data for team is good.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"OK\"] = 0] = \"OK\";\r\n /**\r\n * Team does not exist or access is denied.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"DoesntExistOrAccessDenied\"] = 1] = \"DoesntExistOrAccessDenied\";\r\n /**\r\n * Maximum number of teams was exceeded. No team data will be returned for this team.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"MaxTeamsExceeded\"] = 2] = \"MaxTeamsExceeded\";\r\n /**\r\n * Maximum number of team fields (ie Area paths) have been exceeded. No team data will be returned for this team.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"MaxTeamFieldsExceeded\"] = 3] = \"MaxTeamFieldsExceeded\";\r\n /**\r\n * Backlog does not exist or is missing crucial information.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"BacklogInError\"] = 4] = \"BacklogInError\";\r\n /**\r\n * Team field value is not set for this team. No team data will be returned for this team\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"MissingTeamFieldValue\"] = 5] = \"MissingTeamFieldValue\";\r\n /**\r\n * Team does not have a single iteration with date range.\r\n */\r\n TimelineTeamStatusCode[TimelineTeamStatusCode[\"NoIterationsExist\"] = 6] = \"NoIterationsExist\";\r\n})(TimelineTeamStatusCode = exports.TimelineTeamStatusCode || (exports.TimelineTeamStatusCode = {}));\r\nexports.TypeInfo = {\r\n BacklogConfiguration: {},\r\n BacklogLevelConfiguration: {},\r\n BacklogType: {\r\n enumValues: {\r\n \"portfolio\": 0,\r\n \"requirement\": 1,\r\n \"task\": 2\r\n }\r\n },\r\n Board: {},\r\n BoardBadgeColumnOptions: {\r\n enumValues: {\r\n \"inProgressColumns\": 0,\r\n \"allColumns\": 1,\r\n \"customColumns\": 2\r\n }\r\n },\r\n BoardColumn: {},\r\n BoardColumnType: {\r\n enumValues: {\r\n \"incoming\": 0,\r\n \"inProgress\": 1,\r\n \"outgoing\": 2\r\n }\r\n },\r\n BugsBehavior: {\r\n enumValues: {\r\n \"off\": 0,\r\n \"asRequirements\": 1,\r\n \"asTasks\": 2\r\n }\r\n },\r\n CapacityContractBase: {},\r\n CapacityPatch: {},\r\n CardFieldSettings: {},\r\n CardSettings: {},\r\n CreatePlan: {},\r\n DateRange: {},\r\n DeliveryViewData: {},\r\n DeliveryViewPropertyCollection: {},\r\n FieldInfo: {},\r\n FieldType: {\r\n enumValues: {\r\n \"string\": 0,\r\n \"plainText\": 1,\r\n \"integer\": 2,\r\n \"dateTime\": 3,\r\n \"treePath\": 4,\r\n \"boolean\": 5,\r\n \"double\": 6\r\n }\r\n },\r\n IdentityDisplayFormat: {\r\n enumValues: {\r\n \"avatarOnly\": 0,\r\n \"fullName\": 1,\r\n \"avatarAndFullName\": 2\r\n }\r\n },\r\n Marker: {},\r\n Plan: {},\r\n PlanMetadata: {},\r\n PlanType: {\r\n enumValues: {\r\n \"deliveryTimelineView\": 0\r\n }\r\n },\r\n PlanUserPermissions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"view\": 1,\r\n \"edit\": 2,\r\n \"delete\": 4,\r\n \"manage\": 8,\r\n \"allPermissions\": 15\r\n }\r\n },\r\n TeamCapacity: {},\r\n TeamIterationAttributes: {},\r\n TeamMemberCapacity: {},\r\n TeamMemberCapacityIdentityRef: {},\r\n TeamSetting: {},\r\n TeamSettingsDaysOff: {},\r\n TeamSettingsDaysOffPatch: {},\r\n TeamSettingsIteration: {},\r\n TeamSettingsPatch: {},\r\n TimeFrame: {\r\n enumValues: {\r\n \"past\": 0,\r\n \"current\": 1,\r\n \"future\": 2\r\n }\r\n },\r\n TimelineCriteriaStatus: {},\r\n TimelineCriteriaStatusCode: {\r\n enumValues: {\r\n \"ok\": 0,\r\n \"invalidFilterClause\": 1,\r\n \"unknown\": 2\r\n }\r\n },\r\n TimelineIterationStatus: {},\r\n TimelineIterationStatusCode: {\r\n enumValues: {\r\n \"ok\": 0,\r\n \"isOverlapping\": 1\r\n }\r\n },\r\n TimelineTeamData: {},\r\n TimelineTeamIteration: {},\r\n TimelineTeamStatus: {},\r\n TimelineTeamStatusCode: {\r\n enumValues: {\r\n \"ok\": 0,\r\n \"doesntExistOrAccessDenied\": 1,\r\n \"maxTeamsExceeded\": 2,\r\n \"maxTeamFieldsExceeded\": 3,\r\n \"backlogInError\": 4,\r\n \"missingTeamFieldValue\": 5,\r\n \"noIterationsExist\": 6\r\n }\r\n },\r\n UpdatePlan: {},\r\n};\r\nexports.TypeInfo.BacklogConfiguration.fields = {\r\n bugsBehavior: {\r\n enumType: exports.TypeInfo.BugsBehavior\r\n },\r\n portfolioBacklogs: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BacklogLevelConfiguration\r\n },\r\n requirementBacklog: {\r\n typeInfo: exports.TypeInfo.BacklogLevelConfiguration\r\n },\r\n taskBacklog: {\r\n typeInfo: exports.TypeInfo.BacklogLevelConfiguration\r\n }\r\n};\r\nexports.TypeInfo.BacklogLevelConfiguration.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.BacklogType\r\n }\r\n};\r\nexports.TypeInfo.Board.fields = {\r\n columns: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.BoardColumn\r\n }\r\n};\r\nexports.TypeInfo.BoardColumn.fields = {\r\n columnType: {\r\n enumType: exports.TypeInfo.BoardColumnType\r\n }\r\n};\r\nexports.TypeInfo.CapacityContractBase.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.CapacityPatch.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.CardFieldSettings.fields = {\r\n additionalFields: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.FieldInfo\r\n },\r\n assignedToDisplayFormat: {\r\n enumType: exports.TypeInfo.IdentityDisplayFormat\r\n },\r\n coreFields: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.FieldInfo\r\n }\r\n};\r\nexports.TypeInfo.CardSettings.fields = {\r\n fields: {\r\n typeInfo: exports.TypeInfo.CardFieldSettings\r\n }\r\n};\r\nexports.TypeInfo.CreatePlan.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.PlanType\r\n }\r\n};\r\nexports.TypeInfo.DateRange.fields = {\r\n end: {\r\n isDate: true,\r\n },\r\n start: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.DeliveryViewData.fields = {\r\n criteriaStatus: {\r\n typeInfo: exports.TypeInfo.TimelineCriteriaStatus\r\n },\r\n endDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n teams: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineTeamData\r\n }\r\n};\r\nexports.TypeInfo.DeliveryViewPropertyCollection.fields = {\r\n cardSettings: {\r\n typeInfo: exports.TypeInfo.CardSettings\r\n },\r\n markers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Marker\r\n }\r\n};\r\nexports.TypeInfo.FieldInfo.fields = {\r\n fieldType: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.Marker.fields = {\r\n date: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Plan.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.PlanType\r\n },\r\n userPermissions: {\r\n enumType: exports.TypeInfo.PlanUserPermissions\r\n }\r\n};\r\nexports.TypeInfo.PlanMetadata.fields = {\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n userPermissions: {\r\n enumType: exports.TypeInfo.PlanUserPermissions\r\n }\r\n};\r\nexports.TypeInfo.TeamCapacity.fields = {\r\n teamMembers: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TeamMemberCapacityIdentityRef\r\n }\r\n};\r\nexports.TypeInfo.TeamIterationAttributes.fields = {\r\n finishDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n timeFrame: {\r\n enumType: exports.TypeInfo.TimeFrame\r\n }\r\n};\r\nexports.TypeInfo.TeamMemberCapacity.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.TeamMemberCapacityIdentityRef.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.TeamSetting.fields = {\r\n backlogIteration: {\r\n typeInfo: exports.TypeInfo.TeamSettingsIteration\r\n },\r\n bugsBehavior: {\r\n enumType: exports.TypeInfo.BugsBehavior\r\n },\r\n defaultIteration: {\r\n typeInfo: exports.TypeInfo.TeamSettingsIteration\r\n },\r\n workingDays: {\r\n isArray: true,\r\n enumType: SystemInterfaces.TypeInfo.DayOfWeek\r\n }\r\n};\r\nexports.TypeInfo.TeamSettingsDaysOff.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.TeamSettingsDaysOffPatch.fields = {\r\n daysOff: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.DateRange\r\n }\r\n};\r\nexports.TypeInfo.TeamSettingsIteration.fields = {\r\n attributes: {\r\n typeInfo: exports.TypeInfo.TeamIterationAttributes\r\n }\r\n};\r\nexports.TypeInfo.TeamSettingsPatch.fields = {\r\n bugsBehavior: {\r\n enumType: exports.TypeInfo.BugsBehavior\r\n },\r\n workingDays: {\r\n isArray: true,\r\n enumType: SystemInterfaces.TypeInfo.DayOfWeek\r\n }\r\n};\r\nexports.TypeInfo.TimelineCriteriaStatus.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.TimelineCriteriaStatusCode\r\n }\r\n};\r\nexports.TypeInfo.TimelineIterationStatus.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.TimelineIterationStatusCode\r\n }\r\n};\r\nexports.TypeInfo.TimelineTeamData.fields = {\r\n iterations: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.TimelineTeamIteration\r\n },\r\n status: {\r\n typeInfo: exports.TypeInfo.TimelineTeamStatus\r\n }\r\n};\r\nexports.TypeInfo.TimelineTeamIteration.fields = {\r\n finishDate: {\r\n isDate: true,\r\n },\r\n startDate: {\r\n isDate: true,\r\n },\r\n status: {\r\n typeInfo: exports.TypeInfo.TimelineIterationStatus\r\n }\r\n};\r\nexports.TypeInfo.TimelineTeamStatus.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.TimelineTeamStatusCode\r\n }\r\n};\r\nexports.TypeInfo.UpdatePlan.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.PlanType\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Flag to control error policy in a batch classification nodes get request.\r\n */\r\nvar ClassificationNodesErrorPolicy;\r\n(function (ClassificationNodesErrorPolicy) {\r\n ClassificationNodesErrorPolicy[ClassificationNodesErrorPolicy[\"Fail\"] = 1] = \"Fail\";\r\n ClassificationNodesErrorPolicy[ClassificationNodesErrorPolicy[\"Omit\"] = 2] = \"Omit\";\r\n})(ClassificationNodesErrorPolicy = exports.ClassificationNodesErrorPolicy || (exports.ClassificationNodesErrorPolicy = {}));\r\n/**\r\n * Specifies the additional data retrieval options for work item comments.\r\n */\r\nvar CommentExpandOptions;\r\n(function (CommentExpandOptions) {\r\n CommentExpandOptions[CommentExpandOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Include comment reactions.\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"Reactions\"] = 1] = \"Reactions\";\r\n /**\r\n * Include the rendered text (html) in addition to MD text.\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"RenderedText\"] = 8] = \"RenderedText\";\r\n /**\r\n * If specified, then ONLY rendered text (html) will be returned, w/o markdown. Supposed to be used internally from data provides for optimization purposes.\r\n */\r\n CommentExpandOptions[CommentExpandOptions[\"RenderedTextOnly\"] = 16] = \"RenderedTextOnly\";\r\n CommentExpandOptions[CommentExpandOptions[\"All\"] = -17] = \"All\";\r\n})(CommentExpandOptions = exports.CommentExpandOptions || (exports.CommentExpandOptions = {}));\r\n/**\r\n * Represents different reaction types for a work item comment.\r\n */\r\nvar CommentReactionType;\r\n(function (CommentReactionType) {\r\n CommentReactionType[CommentReactionType[\"Like\"] = 0] = \"Like\";\r\n CommentReactionType[CommentReactionType[\"Dislike\"] = 1] = \"Dislike\";\r\n CommentReactionType[CommentReactionType[\"Heart\"] = 2] = \"Heart\";\r\n CommentReactionType[CommentReactionType[\"Hooray\"] = 3] = \"Hooray\";\r\n CommentReactionType[CommentReactionType[\"Smile\"] = 4] = \"Smile\";\r\n CommentReactionType[CommentReactionType[\"Confused\"] = 5] = \"Confused\";\r\n})(CommentReactionType = exports.CommentReactionType || (exports.CommentReactionType = {}));\r\nvar CommentSortOrder;\r\n(function (CommentSortOrder) {\r\n /**\r\n * The results will be sorted in Ascending order.\r\n */\r\n CommentSortOrder[CommentSortOrder[\"Asc\"] = 1] = \"Asc\";\r\n /**\r\n * The results will be sorted in Descending order.\r\n */\r\n CommentSortOrder[CommentSortOrder[\"Desc\"] = 2] = \"Desc\";\r\n})(CommentSortOrder = exports.CommentSortOrder || (exports.CommentSortOrder = {}));\r\n/**\r\n * Enum for field types.\r\n */\r\nvar FieldType;\r\n(function (FieldType) {\r\n /**\r\n * String field type.\r\n */\r\n FieldType[FieldType[\"String\"] = 0] = \"String\";\r\n /**\r\n * Integer field type.\r\n */\r\n FieldType[FieldType[\"Integer\"] = 1] = \"Integer\";\r\n /**\r\n * Datetime field type.\r\n */\r\n FieldType[FieldType[\"DateTime\"] = 2] = \"DateTime\";\r\n /**\r\n * Plain text field type.\r\n */\r\n FieldType[FieldType[\"PlainText\"] = 3] = \"PlainText\";\r\n /**\r\n * HTML (Multiline) field type.\r\n */\r\n FieldType[FieldType[\"Html\"] = 4] = \"Html\";\r\n /**\r\n * Treepath field type.\r\n */\r\n FieldType[FieldType[\"TreePath\"] = 5] = \"TreePath\";\r\n /**\r\n * History field type.\r\n */\r\n FieldType[FieldType[\"History\"] = 6] = \"History\";\r\n /**\r\n * Double field type.\r\n */\r\n FieldType[FieldType[\"Double\"] = 7] = \"Double\";\r\n /**\r\n * Guid field type.\r\n */\r\n FieldType[FieldType[\"Guid\"] = 8] = \"Guid\";\r\n /**\r\n * Boolean field type.\r\n */\r\n FieldType[FieldType[\"Boolean\"] = 9] = \"Boolean\";\r\n /**\r\n * Identity field type.\r\n */\r\n FieldType[FieldType[\"Identity\"] = 10] = \"Identity\";\r\n /**\r\n * String picklist field type. When creating a string picklist field from REST API, use \"String\" FieldType.\r\n */\r\n FieldType[FieldType[\"PicklistString\"] = 11] = \"PicklistString\";\r\n /**\r\n * Integer picklist field type. When creating a integer picklist field from REST API, use \"Integer\" FieldType.\r\n */\r\n FieldType[FieldType[\"PicklistInteger\"] = 12] = \"PicklistInteger\";\r\n /**\r\n * Double picklist field type. When creating a double picklist field from REST API, use \"Double\" FieldType.\r\n */\r\n FieldType[FieldType[\"PicklistDouble\"] = 13] = \"PicklistDouble\";\r\n})(FieldType = exports.FieldType || (exports.FieldType = {}));\r\n/**\r\n * Enum for field usages.\r\n */\r\nvar FieldUsage;\r\n(function (FieldUsage) {\r\n /**\r\n * Empty usage.\r\n */\r\n FieldUsage[FieldUsage[\"None\"] = 0] = \"None\";\r\n /**\r\n * Work item field usage.\r\n */\r\n FieldUsage[FieldUsage[\"WorkItem\"] = 1] = \"WorkItem\";\r\n /**\r\n * Work item link field usage.\r\n */\r\n FieldUsage[FieldUsage[\"WorkItemLink\"] = 2] = \"WorkItemLink\";\r\n /**\r\n * Treenode field usage.\r\n */\r\n FieldUsage[FieldUsage[\"Tree\"] = 3] = \"Tree\";\r\n /**\r\n * Work Item Type Extension usage.\r\n */\r\n FieldUsage[FieldUsage[\"WorkItemTypeExtension\"] = 4] = \"WorkItemTypeExtension\";\r\n})(FieldUsage = exports.FieldUsage || (exports.FieldUsage = {}));\r\n/**\r\n * Flag to expand types of fields.\r\n */\r\nvar GetFieldsExpand;\r\n(function (GetFieldsExpand) {\r\n /**\r\n * Default behavior.\r\n */\r\n GetFieldsExpand[GetFieldsExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * Adds extension fields to the response.\r\n */\r\n GetFieldsExpand[GetFieldsExpand[\"ExtensionFields\"] = 1] = \"ExtensionFields\";\r\n /**\r\n * Includes fields that have been deleted.\r\n */\r\n GetFieldsExpand[GetFieldsExpand[\"IncludeDeleted\"] = 2] = \"IncludeDeleted\";\r\n})(GetFieldsExpand = exports.GetFieldsExpand || (exports.GetFieldsExpand = {}));\r\n/**\r\n * The link query mode which determines the behavior of the query.\r\n */\r\nvar LinkQueryMode;\r\n(function (LinkQueryMode) {\r\n /**\r\n * Returns flat list of work items.\r\n */\r\n LinkQueryMode[LinkQueryMode[\"WorkItems\"] = 0] = \"WorkItems\";\r\n /**\r\n * Returns work items where the source, target, and link criteria are all satisfied.\r\n */\r\n LinkQueryMode[LinkQueryMode[\"LinksOneHopMustContain\"] = 1] = \"LinksOneHopMustContain\";\r\n /**\r\n * Returns work items that satisfy the source and link criteria, even if no linked work item satisfies the target criteria.\r\n */\r\n LinkQueryMode[LinkQueryMode[\"LinksOneHopMayContain\"] = 2] = \"LinksOneHopMayContain\";\r\n /**\r\n * Returns work items that satisfy the source, only if no linked work item satisfies the link and target criteria.\r\n */\r\n LinkQueryMode[LinkQueryMode[\"LinksOneHopDoesNotContain\"] = 3] = \"LinksOneHopDoesNotContain\";\r\n LinkQueryMode[LinkQueryMode[\"LinksRecursiveMustContain\"] = 4] = \"LinksRecursiveMustContain\";\r\n /**\r\n * Returns work items a hierarchy of work items that by default satisfy the source\r\n */\r\n LinkQueryMode[LinkQueryMode[\"LinksRecursiveMayContain\"] = 5] = \"LinksRecursiveMayContain\";\r\n LinkQueryMode[LinkQueryMode[\"LinksRecursiveDoesNotContain\"] = 6] = \"LinksRecursiveDoesNotContain\";\r\n})(LinkQueryMode = exports.LinkQueryMode || (exports.LinkQueryMode = {}));\r\nvar LogicalOperation;\r\n(function (LogicalOperation) {\r\n LogicalOperation[LogicalOperation[\"NONE\"] = 0] = \"NONE\";\r\n LogicalOperation[LogicalOperation[\"AND\"] = 1] = \"AND\";\r\n LogicalOperation[LogicalOperation[\"OR\"] = 2] = \"OR\";\r\n})(LogicalOperation = exports.LogicalOperation || (exports.LogicalOperation = {}));\r\n/**\r\n * Enumerates the possible provisioning actions that can be triggered on process template update.\r\n */\r\nvar ProvisioningActionType;\r\n(function (ProvisioningActionType) {\r\n ProvisioningActionType[ProvisioningActionType[\"Import\"] = 0] = \"Import\";\r\n ProvisioningActionType[ProvisioningActionType[\"Validate\"] = 1] = \"Validate\";\r\n})(ProvisioningActionType = exports.ProvisioningActionType || (exports.ProvisioningActionType = {}));\r\n/**\r\n * Enum to control error policy in a query batch request.\r\n */\r\nvar QueryErrorPolicy;\r\n(function (QueryErrorPolicy) {\r\n QueryErrorPolicy[QueryErrorPolicy[\"Fail\"] = 1] = \"Fail\";\r\n QueryErrorPolicy[QueryErrorPolicy[\"Omit\"] = 2] = \"Omit\";\r\n})(QueryErrorPolicy = exports.QueryErrorPolicy || (exports.QueryErrorPolicy = {}));\r\n/**\r\n * Determines which set of additional query properties to display\r\n */\r\nvar QueryExpand;\r\n(function (QueryExpand) {\r\n /**\r\n * Expands Columns, Links and ChangeInfo\r\n */\r\n QueryExpand[QueryExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * Expands Columns, Links, ChangeInfo and WIQL text\r\n */\r\n QueryExpand[QueryExpand[\"Wiql\"] = 1] = \"Wiql\";\r\n /**\r\n * Expands Columns, Links, ChangeInfo, WIQL text and clauses\r\n */\r\n QueryExpand[QueryExpand[\"Clauses\"] = 2] = \"Clauses\";\r\n /**\r\n * Expands all properties\r\n */\r\n QueryExpand[QueryExpand[\"All\"] = 3] = \"All\";\r\n /**\r\n * Displays minimal properties and the WIQL text\r\n */\r\n QueryExpand[QueryExpand[\"Minimal\"] = 4] = \"Minimal\";\r\n})(QueryExpand = exports.QueryExpand || (exports.QueryExpand = {}));\r\nvar QueryOption;\r\n(function (QueryOption) {\r\n QueryOption[QueryOption[\"Doing\"] = 1] = \"Doing\";\r\n QueryOption[QueryOption[\"Done\"] = 2] = \"Done\";\r\n QueryOption[QueryOption[\"Followed\"] = 3] = \"Followed\";\r\n})(QueryOption = exports.QueryOption || (exports.QueryOption = {}));\r\n/**\r\n * Determines whether a tree query matches parents or children first.\r\n */\r\nvar QueryRecursionOption;\r\n(function (QueryRecursionOption) {\r\n /**\r\n * Returns work items that satisfy the source, even if no linked work item satisfies the target and link criteria.\r\n */\r\n QueryRecursionOption[QueryRecursionOption[\"ParentFirst\"] = 0] = \"ParentFirst\";\r\n /**\r\n * Returns work items that satisfy the target criteria, even if no work item satisfies the source and link criteria.\r\n */\r\n QueryRecursionOption[QueryRecursionOption[\"ChildFirst\"] = 1] = \"ChildFirst\";\r\n})(QueryRecursionOption = exports.QueryRecursionOption || (exports.QueryRecursionOption = {}));\r\n/**\r\n * The query result type\r\n */\r\nvar QueryResultType;\r\n(function (QueryResultType) {\r\n /**\r\n * A list of work items (for flat queries).\r\n */\r\n QueryResultType[QueryResultType[\"WorkItem\"] = 1] = \"WorkItem\";\r\n /**\r\n * A list of work item links (for OneHop and Tree queries).\r\n */\r\n QueryResultType[QueryResultType[\"WorkItemLink\"] = 2] = \"WorkItemLink\";\r\n})(QueryResultType = exports.QueryResultType || (exports.QueryResultType = {}));\r\n/**\r\n * The type of query.\r\n */\r\nvar QueryType;\r\n(function (QueryType) {\r\n /**\r\n * Gets a flat list of work items.\r\n */\r\n QueryType[QueryType[\"Flat\"] = 1] = \"Flat\";\r\n /**\r\n * Gets a tree of work items showing their link hierarchy.\r\n */\r\n QueryType[QueryType[\"Tree\"] = 2] = \"Tree\";\r\n /**\r\n * Gets a list of work items and their direct links.\r\n */\r\n QueryType[QueryType[\"OneHop\"] = 3] = \"OneHop\";\r\n})(QueryType = exports.QueryType || (exports.QueryType = {}));\r\n/**\r\n * The reporting revision expand level.\r\n */\r\nvar ReportingRevisionsExpand;\r\n(function (ReportingRevisionsExpand) {\r\n /**\r\n * Default behavior.\r\n */\r\n ReportingRevisionsExpand[ReportingRevisionsExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * Add fields to the response.\r\n */\r\n ReportingRevisionsExpand[ReportingRevisionsExpand[\"Fields\"] = 1] = \"Fields\";\r\n})(ReportingRevisionsExpand = exports.ReportingRevisionsExpand || (exports.ReportingRevisionsExpand = {}));\r\n/**\r\n * Enumerates types of supported xml templates used for customization.\r\n */\r\nvar TemplateType;\r\n(function (TemplateType) {\r\n TemplateType[TemplateType[\"WorkItemType\"] = 0] = \"WorkItemType\";\r\n TemplateType[TemplateType[\"GlobalWorkflow\"] = 1] = \"GlobalWorkflow\";\r\n})(TemplateType = exports.TemplateType || (exports.TemplateType = {}));\r\n/**\r\n * Types of tree node structures.\r\n */\r\nvar TreeNodeStructureType;\r\n(function (TreeNodeStructureType) {\r\n /**\r\n * Area type.\r\n */\r\n TreeNodeStructureType[TreeNodeStructureType[\"Area\"] = 0] = \"Area\";\r\n /**\r\n * Iteration type.\r\n */\r\n TreeNodeStructureType[TreeNodeStructureType[\"Iteration\"] = 1] = \"Iteration\";\r\n})(TreeNodeStructureType = exports.TreeNodeStructureType || (exports.TreeNodeStructureType = {}));\r\n/**\r\n * Types of tree structures groups.\r\n */\r\nvar TreeStructureGroup;\r\n(function (TreeStructureGroup) {\r\n TreeStructureGroup[TreeStructureGroup[\"Areas\"] = 0] = \"Areas\";\r\n TreeStructureGroup[TreeStructureGroup[\"Iterations\"] = 1] = \"Iterations\";\r\n})(TreeStructureGroup = exports.TreeStructureGroup || (exports.TreeStructureGroup = {}));\r\n/**\r\n * Enum to control error policy in a bulk get work items request.\r\n */\r\nvar WorkItemErrorPolicy;\r\n(function (WorkItemErrorPolicy) {\r\n /**\r\n * Fail work error policy.\r\n */\r\n WorkItemErrorPolicy[WorkItemErrorPolicy[\"Fail\"] = 1] = \"Fail\";\r\n /**\r\n * Omit work error policy.\r\n */\r\n WorkItemErrorPolicy[WorkItemErrorPolicy[\"Omit\"] = 2] = \"Omit\";\r\n})(WorkItemErrorPolicy = exports.WorkItemErrorPolicy || (exports.WorkItemErrorPolicy = {}));\r\n/**\r\n * Flag to control payload properties from get work item command.\r\n */\r\nvar WorkItemExpand;\r\n(function (WorkItemExpand) {\r\n /**\r\n * Default behavior.\r\n */\r\n WorkItemExpand[WorkItemExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * Relations work item expand.\r\n */\r\n WorkItemExpand[WorkItemExpand[\"Relations\"] = 1] = \"Relations\";\r\n /**\r\n * Fields work item expand.\r\n */\r\n WorkItemExpand[WorkItemExpand[\"Fields\"] = 2] = \"Fields\";\r\n /**\r\n * Links work item expand.\r\n */\r\n WorkItemExpand[WorkItemExpand[\"Links\"] = 3] = \"Links\";\r\n /**\r\n * Expands all.\r\n */\r\n WorkItemExpand[WorkItemExpand[\"All\"] = 4] = \"All\";\r\n})(WorkItemExpand = exports.WorkItemExpand || (exports.WorkItemExpand = {}));\r\n/**\r\n * Type of the activity\r\n */\r\nvar WorkItemRecentActivityType;\r\n(function (WorkItemRecentActivityType) {\r\n WorkItemRecentActivityType[WorkItemRecentActivityType[\"Visited\"] = 0] = \"Visited\";\r\n WorkItemRecentActivityType[WorkItemRecentActivityType[\"Edited\"] = 1] = \"Edited\";\r\n WorkItemRecentActivityType[WorkItemRecentActivityType[\"Deleted\"] = 2] = \"Deleted\";\r\n WorkItemRecentActivityType[WorkItemRecentActivityType[\"Restored\"] = 3] = \"Restored\";\r\n})(WorkItemRecentActivityType = exports.WorkItemRecentActivityType || (exports.WorkItemRecentActivityType = {}));\r\n/**\r\n * Expand options for the work item field(s) request.\r\n */\r\nvar WorkItemTypeFieldsExpandLevel;\r\n(function (WorkItemTypeFieldsExpandLevel) {\r\n /**\r\n * Includes only basic properties of the field.\r\n */\r\n WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel[\"None\"] = 0] = \"None\";\r\n /**\r\n * Includes allowed values for the field.\r\n */\r\n WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel[\"AllowedValues\"] = 1] = \"AllowedValues\";\r\n /**\r\n * Includes dependent fields of the field.\r\n */\r\n WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel[\"DependentFields\"] = 2] = \"DependentFields\";\r\n /**\r\n * Includes allowed values and dependent fields of the field.\r\n */\r\n WorkItemTypeFieldsExpandLevel[WorkItemTypeFieldsExpandLevel[\"All\"] = 3] = \"All\";\r\n})(WorkItemTypeFieldsExpandLevel = exports.WorkItemTypeFieldsExpandLevel || (exports.WorkItemTypeFieldsExpandLevel = {}));\r\nexports.TypeInfo = {\r\n AccountMyWorkResult: {},\r\n AccountRecentActivityWorkItemModel: {},\r\n AccountRecentActivityWorkItemModel2: {},\r\n AccountRecentActivityWorkItemModelBase: {},\r\n AccountRecentMentionWorkItemModel: {},\r\n AccountWorkWorkItemModel: {},\r\n ClassificationNodesErrorPolicy: {\r\n enumValues: {\r\n \"fail\": 1,\r\n \"omit\": 2\r\n }\r\n },\r\n Comment: {},\r\n CommentExpandOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"reactions\": 1,\r\n \"renderedText\": 8,\r\n \"renderedTextOnly\": 16,\r\n \"all\": -17\r\n }\r\n },\r\n CommentList: {},\r\n CommentReaction: {},\r\n CommentReactionType: {\r\n enumValues: {\r\n \"like\": 0,\r\n \"dislike\": 1,\r\n \"heart\": 2,\r\n \"hooray\": 3,\r\n \"smile\": 4,\r\n \"confused\": 5\r\n }\r\n },\r\n CommentSortOrder: {\r\n enumValues: {\r\n \"asc\": 1,\r\n \"desc\": 2\r\n }\r\n },\r\n CommentVersion: {},\r\n ExternalDeployment: {},\r\n FieldType: {\r\n enumValues: {\r\n \"string\": 0,\r\n \"integer\": 1,\r\n \"dateTime\": 2,\r\n \"plainText\": 3,\r\n \"html\": 4,\r\n \"treePath\": 5,\r\n \"history\": 6,\r\n \"double\": 7,\r\n \"guid\": 8,\r\n \"boolean\": 9,\r\n \"identity\": 10,\r\n \"picklistString\": 11,\r\n \"picklistInteger\": 12,\r\n \"picklistDouble\": 13\r\n }\r\n },\r\n FieldUsage: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"workItem\": 1,\r\n \"workItemLink\": 2,\r\n \"tree\": 3,\r\n \"workItemTypeExtension\": 4\r\n }\r\n },\r\n GetFieldsExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"extensionFields\": 1,\r\n \"includeDeleted\": 2\r\n }\r\n },\r\n LinkQueryMode: {\r\n enumValues: {\r\n \"workItems\": 0,\r\n \"linksOneHopMustContain\": 1,\r\n \"linksOneHopMayContain\": 2,\r\n \"linksOneHopDoesNotContain\": 3,\r\n \"linksRecursiveMustContain\": 4,\r\n \"linksRecursiveMayContain\": 5,\r\n \"linksRecursiveDoesNotContain\": 6\r\n }\r\n },\r\n LogicalOperation: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"and\": 1,\r\n \"or\": 2\r\n }\r\n },\r\n ProvisioningActionType: {\r\n enumValues: {\r\n \"import\": 0,\r\n \"validate\": 1\r\n }\r\n },\r\n QueryBatchGetRequest: {},\r\n QueryErrorPolicy: {\r\n enumValues: {\r\n \"fail\": 1,\r\n \"omit\": 2\r\n }\r\n },\r\n QueryExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"wiql\": 1,\r\n \"clauses\": 2,\r\n \"all\": 3,\r\n \"minimal\": 4\r\n }\r\n },\r\n QueryHierarchyItem: {},\r\n QueryHierarchyItemsResult: {},\r\n QueryOption: {\r\n enumValues: {\r\n \"doing\": 1,\r\n \"done\": 2,\r\n \"followed\": 3\r\n }\r\n },\r\n QueryRecursionOption: {\r\n enumValues: {\r\n \"parentFirst\": 0,\r\n \"childFirst\": 1\r\n }\r\n },\r\n QueryResultType: {\r\n enumValues: {\r\n \"workItem\": 1,\r\n \"workItemLink\": 2\r\n }\r\n },\r\n QueryType: {\r\n enumValues: {\r\n \"flat\": 1,\r\n \"tree\": 2,\r\n \"oneHop\": 3\r\n }\r\n },\r\n ReportingRevisionsExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"fields\": 1\r\n }\r\n },\r\n TemplateType: {\r\n enumValues: {\r\n \"workItemType\": 0,\r\n \"globalWorkflow\": 1\r\n }\r\n },\r\n TreeNodeStructureType: {\r\n enumValues: {\r\n \"area\": 0,\r\n \"iteration\": 1\r\n }\r\n },\r\n TreeStructureGroup: {\r\n enumValues: {\r\n \"areas\": 0,\r\n \"iterations\": 1\r\n }\r\n },\r\n WorkItemBatchGetRequest: {},\r\n WorkItemClassificationNode: {},\r\n WorkItemComment: {},\r\n WorkItemComments: {},\r\n WorkItemErrorPolicy: {\r\n enumValues: {\r\n \"fail\": 1,\r\n \"omit\": 2\r\n }\r\n },\r\n WorkItemExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"relations\": 1,\r\n \"fields\": 2,\r\n \"links\": 3,\r\n \"all\": 4\r\n }\r\n },\r\n WorkItemField: {},\r\n WorkItemHistory: {},\r\n WorkItemQueryClause: {},\r\n WorkItemQueryResult: {},\r\n WorkItemRecentActivityType: {\r\n enumValues: {\r\n \"visited\": 0,\r\n \"edited\": 1,\r\n \"deleted\": 2,\r\n \"restored\": 3\r\n }\r\n },\r\n WorkItemTypeFieldsExpandLevel: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"allowedValues\": 1,\r\n \"dependentFields\": 2,\r\n \"all\": 3\r\n }\r\n },\r\n WorkItemTypeTemplateUpdateModel: {},\r\n WorkItemUpdate: {},\r\n};\r\nexports.TypeInfo.AccountMyWorkResult.fields = {\r\n workItemDetails: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.AccountWorkWorkItemModel\r\n }\r\n};\r\nexports.TypeInfo.AccountRecentActivityWorkItemModel.fields = {\r\n activityDate: {\r\n isDate: true,\r\n },\r\n activityType: {\r\n enumType: exports.TypeInfo.WorkItemRecentActivityType\r\n },\r\n changedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AccountRecentActivityWorkItemModel2.fields = {\r\n activityDate: {\r\n isDate: true,\r\n },\r\n activityType: {\r\n enumType: exports.TypeInfo.WorkItemRecentActivityType\r\n },\r\n changedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AccountRecentActivityWorkItemModelBase.fields = {\r\n activityDate: {\r\n isDate: true,\r\n },\r\n activityType: {\r\n enumType: exports.TypeInfo.WorkItemRecentActivityType\r\n },\r\n changedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AccountRecentMentionWorkItemModel.fields = {\r\n mentionedDateField: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.AccountWorkWorkItemModel.fields = {\r\n changedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.Comment.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n createdOnBehalfDate: {\r\n isDate: true,\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n },\r\n reactions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.CommentReaction\r\n }\r\n};\r\nexports.TypeInfo.CommentList.fields = {\r\n comments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Comment\r\n }\r\n};\r\nexports.TypeInfo.CommentReaction.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.CommentReactionType\r\n }\r\n};\r\nexports.TypeInfo.CommentVersion.fields = {\r\n createdDate: {\r\n isDate: true,\r\n },\r\n createdOnBehalfDate: {\r\n isDate: true,\r\n },\r\n modifiedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.ExternalDeployment.fields = {\r\n statusDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.QueryBatchGetRequest.fields = {\r\n $expand: {\r\n enumType: exports.TypeInfo.QueryExpand\r\n },\r\n errorPolicy: {\r\n enumType: exports.TypeInfo.QueryErrorPolicy\r\n }\r\n};\r\nexports.TypeInfo.QueryHierarchyItem.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.QueryHierarchyItem\r\n },\r\n clauses: {\r\n typeInfo: exports.TypeInfo.WorkItemQueryClause\r\n },\r\n createdDate: {\r\n isDate: true,\r\n },\r\n filterOptions: {\r\n enumType: exports.TypeInfo.LinkQueryMode\r\n },\r\n lastExecutedDate: {\r\n isDate: true,\r\n },\r\n lastModifiedDate: {\r\n isDate: true,\r\n },\r\n linkClauses: {\r\n typeInfo: exports.TypeInfo.WorkItemQueryClause\r\n },\r\n queryRecursionOption: {\r\n enumType: exports.TypeInfo.QueryRecursionOption\r\n },\r\n queryType: {\r\n enumType: exports.TypeInfo.QueryType\r\n },\r\n sourceClauses: {\r\n typeInfo: exports.TypeInfo.WorkItemQueryClause\r\n },\r\n targetClauses: {\r\n typeInfo: exports.TypeInfo.WorkItemQueryClause\r\n }\r\n};\r\nexports.TypeInfo.QueryHierarchyItemsResult.fields = {\r\n value: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.QueryHierarchyItem\r\n }\r\n};\r\nexports.TypeInfo.WorkItemBatchGetRequest.fields = {\r\n $expand: {\r\n enumType: exports.TypeInfo.WorkItemExpand\r\n },\r\n asOf: {\r\n isDate: true,\r\n },\r\n errorPolicy: {\r\n enumType: exports.TypeInfo.WorkItemErrorPolicy\r\n }\r\n};\r\nexports.TypeInfo.WorkItemClassificationNode.fields = {\r\n children: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkItemClassificationNode\r\n },\r\n structureType: {\r\n enumType: exports.TypeInfo.TreeNodeStructureType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemComment.fields = {\r\n revisedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.WorkItemComments.fields = {\r\n comments: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkItemComment\r\n }\r\n};\r\nexports.TypeInfo.WorkItemField.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n },\r\n usage: {\r\n enumType: exports.TypeInfo.FieldUsage\r\n }\r\n};\r\nexports.TypeInfo.WorkItemHistory.fields = {\r\n revisedDate: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.WorkItemQueryClause.fields = {\r\n clauses: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkItemQueryClause\r\n },\r\n logicalOperator: {\r\n enumType: exports.TypeInfo.LogicalOperation\r\n }\r\n};\r\nexports.TypeInfo.WorkItemQueryResult.fields = {\r\n asOf: {\r\n isDate: true,\r\n },\r\n queryResultType: {\r\n enumType: exports.TypeInfo.QueryResultType\r\n },\r\n queryType: {\r\n enumType: exports.TypeInfo.QueryType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemTypeTemplateUpdateModel.fields = {\r\n actionType: {\r\n enumType: exports.TypeInfo.ProvisioningActionType\r\n },\r\n templateType: {\r\n enumType: exports.TypeInfo.TemplateType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemUpdate.fields = {\r\n revisedDate: {\r\n isDate: true,\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Enum for the type of a field.\r\n */\r\nvar FieldType;\r\n(function (FieldType) {\r\n /**\r\n * String field type.\r\n */\r\n FieldType[FieldType[\"String\"] = 1] = \"String\";\r\n /**\r\n * Integer field type.\r\n */\r\n FieldType[FieldType[\"Integer\"] = 2] = \"Integer\";\r\n /**\r\n * Datetime field type.\r\n */\r\n FieldType[FieldType[\"DateTime\"] = 3] = \"DateTime\";\r\n /**\r\n * Plain Text field type.\r\n */\r\n FieldType[FieldType[\"PlainText\"] = 5] = \"PlainText\";\r\n /**\r\n * HTML (Multiline) field type.\r\n */\r\n FieldType[FieldType[\"Html\"] = 7] = \"Html\";\r\n /**\r\n * Treepath field type.\r\n */\r\n FieldType[FieldType[\"TreePath\"] = 8] = \"TreePath\";\r\n /**\r\n * History field type.\r\n */\r\n FieldType[FieldType[\"History\"] = 9] = \"History\";\r\n /**\r\n * Double field type.\r\n */\r\n FieldType[FieldType[\"Double\"] = 10] = \"Double\";\r\n /**\r\n * Guid field type.\r\n */\r\n FieldType[FieldType[\"Guid\"] = 11] = \"Guid\";\r\n /**\r\n * Boolean field type.\r\n */\r\n FieldType[FieldType[\"Boolean\"] = 12] = \"Boolean\";\r\n /**\r\n * Identity field type.\r\n */\r\n FieldType[FieldType[\"Identity\"] = 13] = \"Identity\";\r\n /**\r\n * Integer picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistInteger\"] = 14] = \"PicklistInteger\";\r\n /**\r\n * String picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistString\"] = 15] = \"PicklistString\";\r\n /**\r\n * Double picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistDouble\"] = 16] = \"PicklistDouble\";\r\n})(FieldType = exports.FieldType || (exports.FieldType = {}));\r\nvar GetWorkItemTypeExpand;\r\n(function (GetWorkItemTypeExpand) {\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"None\"] = 0] = \"None\";\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"States\"] = 1] = \"States\";\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"Behaviors\"] = 2] = \"Behaviors\";\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"Layout\"] = 4] = \"Layout\";\r\n})(GetWorkItemTypeExpand = exports.GetWorkItemTypeExpand || (exports.GetWorkItemTypeExpand = {}));\r\n/**\r\n * Type of page\r\n */\r\nvar PageType;\r\n(function (PageType) {\r\n PageType[PageType[\"Custom\"] = 1] = \"Custom\";\r\n PageType[PageType[\"History\"] = 2] = \"History\";\r\n PageType[PageType[\"Links\"] = 3] = \"Links\";\r\n PageType[PageType[\"Attachments\"] = 4] = \"Attachments\";\r\n})(PageType = exports.PageType || (exports.PageType = {}));\r\n/**\r\n * Work item type classes'\r\n */\r\nvar WorkItemTypeClass;\r\n(function (WorkItemTypeClass) {\r\n WorkItemTypeClass[WorkItemTypeClass[\"System\"] = 0] = \"System\";\r\n WorkItemTypeClass[WorkItemTypeClass[\"Derived\"] = 1] = \"Derived\";\r\n WorkItemTypeClass[WorkItemTypeClass[\"Custom\"] = 2] = \"Custom\";\r\n})(WorkItemTypeClass = exports.WorkItemTypeClass || (exports.WorkItemTypeClass = {}));\r\nexports.TypeInfo = {\r\n FieldModel: {},\r\n FieldType: {\r\n enumValues: {\r\n \"string\": 1,\r\n \"integer\": 2,\r\n \"dateTime\": 3,\r\n \"plainText\": 5,\r\n \"html\": 7,\r\n \"treePath\": 8,\r\n \"history\": 9,\r\n \"double\": 10,\r\n \"guid\": 11,\r\n \"boolean\": 12,\r\n \"identity\": 13,\r\n \"picklistInteger\": 14,\r\n \"picklistString\": 15,\r\n \"picklistDouble\": 16\r\n }\r\n },\r\n FormLayout: {},\r\n GetWorkItemTypeExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"states\": 1,\r\n \"behaviors\": 2,\r\n \"layout\": 4\r\n }\r\n },\r\n Page: {},\r\n PageType: {\r\n enumValues: {\r\n \"custom\": 1,\r\n \"history\": 2,\r\n \"links\": 3,\r\n \"attachments\": 4\r\n }\r\n },\r\n WorkItemTypeClass: {\r\n enumValues: {\r\n \"system\": 0,\r\n \"derived\": 1,\r\n \"custom\": 2\r\n }\r\n },\r\n WorkItemTypeFieldModel: {},\r\n WorkItemTypeFieldModel2: {},\r\n WorkItemTypeModel: {},\r\n};\r\nexports.TypeInfo.FieldModel.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.FormLayout.fields = {\r\n pages: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Page\r\n }\r\n};\r\nexports.TypeInfo.Page.fields = {\r\n pageType: {\r\n enumType: exports.TypeInfo.PageType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemTypeFieldModel.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemTypeFieldModel2.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemTypeModel.fields = {\r\n class: {\r\n enumType: exports.TypeInfo.WorkItemTypeClass\r\n },\r\n layout: {\r\n typeInfo: exports.TypeInfo.FormLayout\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Indicates the customization-type. Customization-type is System if is system generated or by default. Customization-type is Inherited if the existing workitemtype of inherited process is customized. Customization-type is Custom if the newly created workitemtype is customized.\r\n */\r\nvar CustomizationType;\r\n(function (CustomizationType) {\r\n /**\r\n * Customization-type is System if is system generated workitemtype.\r\n */\r\n CustomizationType[CustomizationType[\"System\"] = 1] = \"System\";\r\n /**\r\n * Customization-type is Inherited if the existing workitemtype of inherited process is customized.\r\n */\r\n CustomizationType[CustomizationType[\"Inherited\"] = 2] = \"Inherited\";\r\n /**\r\n * Customization-type is Custom if the newly created workitemtype is customized.\r\n */\r\n CustomizationType[CustomizationType[\"Custom\"] = 3] = \"Custom\";\r\n})(CustomizationType = exports.CustomizationType || (exports.CustomizationType = {}));\r\n/**\r\n * Enum for the type of a field.\r\n */\r\nvar FieldType;\r\n(function (FieldType) {\r\n /**\r\n * String field type.\r\n */\r\n FieldType[FieldType[\"String\"] = 1] = \"String\";\r\n /**\r\n * Integer field type.\r\n */\r\n FieldType[FieldType[\"Integer\"] = 2] = \"Integer\";\r\n /**\r\n * DateTime field type.\r\n */\r\n FieldType[FieldType[\"DateTime\"] = 3] = \"DateTime\";\r\n /**\r\n * Plain text field type.\r\n */\r\n FieldType[FieldType[\"PlainText\"] = 5] = \"PlainText\";\r\n /**\r\n * HTML (Multiline) field type.\r\n */\r\n FieldType[FieldType[\"Html\"] = 7] = \"Html\";\r\n /**\r\n * Treepath field type.\r\n */\r\n FieldType[FieldType[\"TreePath\"] = 8] = \"TreePath\";\r\n /**\r\n * History field type.\r\n */\r\n FieldType[FieldType[\"History\"] = 9] = \"History\";\r\n /**\r\n * Double field type.\r\n */\r\n FieldType[FieldType[\"Double\"] = 10] = \"Double\";\r\n /**\r\n * Guid field type.\r\n */\r\n FieldType[FieldType[\"Guid\"] = 11] = \"Guid\";\r\n /**\r\n * Boolean field type.\r\n */\r\n FieldType[FieldType[\"Boolean\"] = 12] = \"Boolean\";\r\n /**\r\n * Identity field type.\r\n */\r\n FieldType[FieldType[\"Identity\"] = 13] = \"Identity\";\r\n /**\r\n * Integer picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistInteger\"] = 14] = \"PicklistInteger\";\r\n /**\r\n * String picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistString\"] = 15] = \"PicklistString\";\r\n /**\r\n * Double picklist field type.\r\n */\r\n FieldType[FieldType[\"PicklistDouble\"] = 16] = \"PicklistDouble\";\r\n})(FieldType = exports.FieldType || (exports.FieldType = {}));\r\n/**\r\n * Expand options to fetch fields for behaviors API.\r\n */\r\nvar GetBehaviorsExpand;\r\n(function (GetBehaviorsExpand) {\r\n /**\r\n * Default none option.\r\n */\r\n GetBehaviorsExpand[GetBehaviorsExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * This option returns fields associated with a behavior.\r\n */\r\n GetBehaviorsExpand[GetBehaviorsExpand[\"Fields\"] = 1] = \"Fields\";\r\n /**\r\n * This option returns fields associated with this behavior and all behaviors from which it inherits.\r\n */\r\n GetBehaviorsExpand[GetBehaviorsExpand[\"CombinedFields\"] = 2] = \"CombinedFields\";\r\n})(GetBehaviorsExpand = exports.GetBehaviorsExpand || (exports.GetBehaviorsExpand = {}));\r\n/**\r\n * The expand level of returned processes.\r\n */\r\nvar GetProcessExpandLevel;\r\n(function (GetProcessExpandLevel) {\r\n /**\r\n * No expand level.\r\n */\r\n GetProcessExpandLevel[GetProcessExpandLevel[\"None\"] = 0] = \"None\";\r\n /**\r\n * Projects expand level.\r\n */\r\n GetProcessExpandLevel[GetProcessExpandLevel[\"Projects\"] = 1] = \"Projects\";\r\n})(GetProcessExpandLevel = exports.GetProcessExpandLevel || (exports.GetProcessExpandLevel = {}));\r\n/**\r\n * Flag to define what properties to return in get work item type response.\r\n */\r\nvar GetWorkItemTypeExpand;\r\n(function (GetWorkItemTypeExpand) {\r\n /**\r\n * Returns no properties in get work item type response.\r\n */\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"None\"] = 0] = \"None\";\r\n /**\r\n * Returns states property in get work item type response.\r\n */\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"States\"] = 1] = \"States\";\r\n /**\r\n * Returns behaviors property in get work item type response.\r\n */\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"Behaviors\"] = 2] = \"Behaviors\";\r\n /**\r\n * Returns layout property in get work item type response.\r\n */\r\n GetWorkItemTypeExpand[GetWorkItemTypeExpand[\"Layout\"] = 4] = \"Layout\";\r\n})(GetWorkItemTypeExpand = exports.GetWorkItemTypeExpand || (exports.GetWorkItemTypeExpand = {}));\r\n/**\r\n * Enum for the types of pages in the work item form layout\r\n */\r\nvar PageType;\r\n(function (PageType) {\r\n /**\r\n * Custom page type.\r\n */\r\n PageType[PageType[\"Custom\"] = 1] = \"Custom\";\r\n /**\r\n * History page type.\r\n */\r\n PageType[PageType[\"History\"] = 2] = \"History\";\r\n /**\r\n * Link page type.\r\n */\r\n PageType[PageType[\"Links\"] = 3] = \"Links\";\r\n /**\r\n * Attachment page type.\r\n */\r\n PageType[PageType[\"Attachments\"] = 4] = \"Attachments\";\r\n})(PageType = exports.PageType || (exports.PageType = {}));\r\nvar ProcessClass;\r\n(function (ProcessClass) {\r\n ProcessClass[ProcessClass[\"System\"] = 0] = \"System\";\r\n ProcessClass[ProcessClass[\"Derived\"] = 1] = \"Derived\";\r\n ProcessClass[ProcessClass[\"Custom\"] = 2] = \"Custom\";\r\n})(ProcessClass = exports.ProcessClass || (exports.ProcessClass = {}));\r\n/**\r\n * Expand options for the work item field(s) request.\r\n */\r\nvar ProcessWorkItemTypeFieldsExpandLevel;\r\n(function (ProcessWorkItemTypeFieldsExpandLevel) {\r\n /**\r\n * Includes only basic properties of the field.\r\n */\r\n ProcessWorkItemTypeFieldsExpandLevel[ProcessWorkItemTypeFieldsExpandLevel[\"None\"] = 0] = \"None\";\r\n /**\r\n * Includes allowed values for the field.\r\n */\r\n ProcessWorkItemTypeFieldsExpandLevel[ProcessWorkItemTypeFieldsExpandLevel[\"AllowedValues\"] = 1] = \"AllowedValues\";\r\n /**\r\n * Includes allowed values and dependent fields of the field.\r\n */\r\n ProcessWorkItemTypeFieldsExpandLevel[ProcessWorkItemTypeFieldsExpandLevel[\"All\"] = 2] = \"All\";\r\n})(ProcessWorkItemTypeFieldsExpandLevel = exports.ProcessWorkItemTypeFieldsExpandLevel || (exports.ProcessWorkItemTypeFieldsExpandLevel = {}));\r\n/**\r\n * Type of action to take when the rule is triggered.\r\n */\r\nvar RuleActionType;\r\n(function (RuleActionType) {\r\n /**\r\n * Make the target field required. Example : {\"actionType\":\"$makeRequired\",\"targetField\":\"Microsoft.VSTS.Common.Activity\",\"value\":\"\"}\r\n */\r\n RuleActionType[RuleActionType[\"MakeRequired\"] = 1] = \"MakeRequired\";\r\n /**\r\n * Make the target field read-only. Example : {\"actionType\":\"$makeReadOnly\",\"targetField\":\"Microsoft.VSTS.Common.Activity\",\"value\":\"\"}\r\n */\r\n RuleActionType[RuleActionType[\"MakeReadOnly\"] = 2] = \"MakeReadOnly\";\r\n /**\r\n * Set a default value on the target field. This is used if the user creates a integer/string field and sets a default value of this field.\r\n */\r\n RuleActionType[RuleActionType[\"SetDefaultValue\"] = 3] = \"SetDefaultValue\";\r\n /**\r\n * Set the default value on the target field from server clock. This is used if user creates the field like Date/Time and uses default value.\r\n */\r\n RuleActionType[RuleActionType[\"SetDefaultFromClock\"] = 4] = \"SetDefaultFromClock\";\r\n /**\r\n * Set the default current user value on the target field. This is used if the user creates the field of type identity and uses default value.\r\n */\r\n RuleActionType[RuleActionType[\"SetDefaultFromCurrentUser\"] = 5] = \"SetDefaultFromCurrentUser\";\r\n /**\r\n * Set the default value on from existing field to the target field. This used wants to set a existing field value to the current field.\r\n */\r\n RuleActionType[RuleActionType[\"SetDefaultFromField\"] = 6] = \"SetDefaultFromField\";\r\n /**\r\n * Set the value of target field to given value. Example : {actionType: \"$copyValue\", targetField: \"ScrumInherited.mypicklist\", value: \"samplevalue\"}\r\n */\r\n RuleActionType[RuleActionType[\"CopyValue\"] = 7] = \"CopyValue\";\r\n /**\r\n * Set the value from clock.\r\n */\r\n RuleActionType[RuleActionType[\"CopyFromClock\"] = 8] = \"CopyFromClock\";\r\n /**\r\n * Set the current user to the target field. Example : {\"actionType\":\"$copyFromCurrentUser\",\"targetField\":\"System.AssignedTo\",\"value\":\"\"}.\r\n */\r\n RuleActionType[RuleActionType[\"CopyFromCurrentUser\"] = 9] = \"CopyFromCurrentUser\";\r\n /**\r\n * Copy the value from a specified field and set to target field. Example : {actionType: \"$copyFromField\", targetField: \"System.AssignedTo\", value:\"System.ChangedBy\"}. Here, value is copied from \"System.ChangedBy\" and set to \"System.AssingedTo\" field.\r\n */\r\n RuleActionType[RuleActionType[\"CopyFromField\"] = 10] = \"CopyFromField\";\r\n /**\r\n * Set the value of the target field to empty.\r\n */\r\n RuleActionType[RuleActionType[\"SetValueToEmpty\"] = 11] = \"SetValueToEmpty\";\r\n /**\r\n * Use the current time to set the value of the target field. Example : {actionType: \"$copyFromServerClock\", targetField: \"System.CreatedDate\", value: \"\"}\r\n */\r\n RuleActionType[RuleActionType[\"CopyFromServerClock\"] = 12] = \"CopyFromServerClock\";\r\n /**\r\n * Use the current user to set the value of the target field.\r\n */\r\n RuleActionType[RuleActionType[\"CopyFromServerCurrentUser\"] = 13] = \"CopyFromServerCurrentUser\";\r\n /**\r\n * Hides target field from the form. This is a server side only action.\r\n */\r\n RuleActionType[RuleActionType[\"HideTargetField\"] = 14] = \"HideTargetField\";\r\n /**\r\n * Disallows a field from being set to a specific value.\r\n */\r\n RuleActionType[RuleActionType[\"DisallowValue\"] = 15] = \"DisallowValue\";\r\n})(RuleActionType = exports.RuleActionType || (exports.RuleActionType = {}));\r\n/**\r\n * Type of rule condition.\r\n */\r\nvar RuleConditionType;\r\n(function (RuleConditionType) {\r\n /**\r\n * $When. This condition limits the execution of its children to cases when another field has a particular value, i.e. when the Is value of the referenced field is equal to the given literal value.\r\n */\r\n RuleConditionType[RuleConditionType[\"When\"] = 1] = \"When\";\r\n /**\r\n * $WhenNot.This condition limits the execution of its children to cases when another field does not have a particular value, i.e.when the Is value of the referenced field is not equal to the given literal value.\r\n */\r\n RuleConditionType[RuleConditionType[\"WhenNot\"] = 2] = \"WhenNot\";\r\n /**\r\n * $WhenChanged.This condition limits the execution of its children to cases when another field has changed, i.e.when the Is value of the referenced field is not equal to the Was value of that field.\r\n */\r\n RuleConditionType[RuleConditionType[\"WhenChanged\"] = 3] = \"WhenChanged\";\r\n /**\r\n * $WhenNotChanged.This condition limits the execution of its children to cases when another field has not changed, i.e.when the Is value of the referenced field is equal to the Was value of that field.\r\n */\r\n RuleConditionType[RuleConditionType[\"WhenNotChanged\"] = 4] = \"WhenNotChanged\";\r\n RuleConditionType[RuleConditionType[\"WhenWas\"] = 5] = \"WhenWas\";\r\n RuleConditionType[RuleConditionType[\"WhenStateChangedTo\"] = 6] = \"WhenStateChangedTo\";\r\n RuleConditionType[RuleConditionType[\"WhenStateChangedFromAndTo\"] = 7] = \"WhenStateChangedFromAndTo\";\r\n RuleConditionType[RuleConditionType[\"WhenWorkItemIsCreated\"] = 8] = \"WhenWorkItemIsCreated\";\r\n RuleConditionType[RuleConditionType[\"WhenValueIsDefined\"] = 9] = \"WhenValueIsDefined\";\r\n RuleConditionType[RuleConditionType[\"WhenValueIsNotDefined\"] = 10] = \"WhenValueIsNotDefined\";\r\n RuleConditionType[RuleConditionType[\"WhenCurrentUserIsMemberOfGroup\"] = 11] = \"WhenCurrentUserIsMemberOfGroup\";\r\n RuleConditionType[RuleConditionType[\"WhenCurrentUserIsNotMemberOfGroup\"] = 12] = \"WhenCurrentUserIsNotMemberOfGroup\";\r\n})(RuleConditionType = exports.RuleConditionType || (exports.RuleConditionType = {}));\r\nvar WorkItemTypeClass;\r\n(function (WorkItemTypeClass) {\r\n WorkItemTypeClass[WorkItemTypeClass[\"System\"] = 0] = \"System\";\r\n WorkItemTypeClass[WorkItemTypeClass[\"Derived\"] = 1] = \"Derived\";\r\n WorkItemTypeClass[WorkItemTypeClass[\"Custom\"] = 2] = \"Custom\";\r\n})(WorkItemTypeClass = exports.WorkItemTypeClass || (exports.WorkItemTypeClass = {}));\r\nexports.TypeInfo = {\r\n CreateProcessRuleRequest: {},\r\n CustomizationType: {\r\n enumValues: {\r\n \"system\": 1,\r\n \"inherited\": 2,\r\n \"custom\": 3\r\n }\r\n },\r\n FieldModel: {},\r\n FieldType: {\r\n enumValues: {\r\n \"string\": 1,\r\n \"integer\": 2,\r\n \"dateTime\": 3,\r\n \"plainText\": 5,\r\n \"html\": 7,\r\n \"treePath\": 8,\r\n \"history\": 9,\r\n \"double\": 10,\r\n \"guid\": 11,\r\n \"boolean\": 12,\r\n \"identity\": 13,\r\n \"picklistInteger\": 14,\r\n \"picklistString\": 15,\r\n \"picklistDouble\": 16\r\n }\r\n },\r\n FormLayout: {},\r\n GetBehaviorsExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"fields\": 1,\r\n \"combinedFields\": 2\r\n }\r\n },\r\n GetProcessExpandLevel: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"projects\": 1\r\n }\r\n },\r\n GetWorkItemTypeExpand: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"states\": 1,\r\n \"behaviors\": 2,\r\n \"layout\": 4\r\n }\r\n },\r\n Page: {},\r\n PageType: {\r\n enumValues: {\r\n \"custom\": 1,\r\n \"history\": 2,\r\n \"links\": 3,\r\n \"attachments\": 4\r\n }\r\n },\r\n ProcessBehavior: {},\r\n ProcessClass: {\r\n enumValues: {\r\n \"system\": 0,\r\n \"derived\": 1,\r\n \"custom\": 2\r\n }\r\n },\r\n ProcessInfo: {},\r\n ProcessModel: {},\r\n ProcessProperties: {},\r\n ProcessRule: {},\r\n ProcessWorkItemType: {},\r\n ProcessWorkItemTypeField: {},\r\n ProcessWorkItemTypeFieldsExpandLevel: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"allowedValues\": 1,\r\n \"all\": 2\r\n }\r\n },\r\n RuleAction: {},\r\n RuleActionType: {\r\n enumValues: {\r\n \"makeRequired\": 1,\r\n \"makeReadOnly\": 2,\r\n \"setDefaultValue\": 3,\r\n \"setDefaultFromClock\": 4,\r\n \"setDefaultFromCurrentUser\": 5,\r\n \"setDefaultFromField\": 6,\r\n \"copyValue\": 7,\r\n \"copyFromClock\": 8,\r\n \"copyFromCurrentUser\": 9,\r\n \"copyFromField\": 10,\r\n \"setValueToEmpty\": 11,\r\n \"copyFromServerClock\": 12,\r\n \"copyFromServerCurrentUser\": 13,\r\n \"hideTargetField\": 14,\r\n \"disallowValue\": 15\r\n }\r\n },\r\n RuleCondition: {},\r\n RuleConditionType: {\r\n enumValues: {\r\n \"when\": 1,\r\n \"whenNot\": 2,\r\n \"whenChanged\": 3,\r\n \"whenNotChanged\": 4,\r\n \"whenWas\": 5,\r\n \"whenStateChangedTo\": 6,\r\n \"whenStateChangedFromAndTo\": 7,\r\n \"whenWorkItemIsCreated\": 8,\r\n \"whenValueIsDefined\": 9,\r\n \"whenValueIsNotDefined\": 10,\r\n \"whenCurrentUserIsMemberOfGroup\": 11,\r\n \"whenCurrentUserIsNotMemberOfGroup\": 12\r\n }\r\n },\r\n UpdateProcessRuleRequest: {},\r\n WorkItemStateResultModel: {},\r\n WorkItemTypeClass: {\r\n enumValues: {\r\n \"system\": 0,\r\n \"derived\": 1,\r\n \"custom\": 2\r\n }\r\n },\r\n WorkItemTypeModel: {},\r\n};\r\nexports.TypeInfo.CreateProcessRuleRequest.fields = {\r\n actions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleAction\r\n },\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleCondition\r\n }\r\n};\r\nexports.TypeInfo.FieldModel.fields = {\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.FormLayout.fields = {\r\n pages: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.Page\r\n }\r\n};\r\nexports.TypeInfo.Page.fields = {\r\n pageType: {\r\n enumType: exports.TypeInfo.PageType\r\n }\r\n};\r\nexports.TypeInfo.ProcessBehavior.fields = {\r\n customization: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n }\r\n};\r\nexports.TypeInfo.ProcessInfo.fields = {\r\n customizationType: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n }\r\n};\r\nexports.TypeInfo.ProcessModel.fields = {\r\n properties: {\r\n typeInfo: exports.TypeInfo.ProcessProperties\r\n }\r\n};\r\nexports.TypeInfo.ProcessProperties.fields = {\r\n class: {\r\n enumType: exports.TypeInfo.ProcessClass\r\n }\r\n};\r\nexports.TypeInfo.ProcessRule.fields = {\r\n actions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleAction\r\n },\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleCondition\r\n },\r\n customizationType: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n }\r\n};\r\nexports.TypeInfo.ProcessWorkItemType.fields = {\r\n customization: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n },\r\n layout: {\r\n typeInfo: exports.TypeInfo.FormLayout\r\n },\r\n states: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkItemStateResultModel\r\n }\r\n};\r\nexports.TypeInfo.ProcessWorkItemTypeField.fields = {\r\n customization: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n },\r\n type: {\r\n enumType: exports.TypeInfo.FieldType\r\n }\r\n};\r\nexports.TypeInfo.RuleAction.fields = {\r\n actionType: {\r\n enumType: exports.TypeInfo.RuleActionType\r\n }\r\n};\r\nexports.TypeInfo.RuleCondition.fields = {\r\n conditionType: {\r\n enumType: exports.TypeInfo.RuleConditionType\r\n }\r\n};\r\nexports.TypeInfo.UpdateProcessRuleRequest.fields = {\r\n actions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleAction\r\n },\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.RuleCondition\r\n }\r\n};\r\nexports.TypeInfo.WorkItemStateResultModel.fields = {\r\n customizationType: {\r\n enumType: exports.TypeInfo.CustomizationType\r\n }\r\n};\r\nexports.TypeInfo.WorkItemTypeModel.fields = {\r\n class: {\r\n enumType: exports.TypeInfo.WorkItemTypeClass\r\n },\r\n layout: {\r\n typeInfo: exports.TypeInfo.FormLayout\r\n },\r\n states: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.WorkItemStateResultModel\r\n }\r\n};\r\n","/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*\r\n* See following wiki page for instructions on how to regenerate:\r\n* https://vsowiki.com/index.php?title=Rest_Client_Generation\r\n*/\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar InputDataType;\r\n(function (InputDataType) {\r\n /**\r\n * No data type is specified.\r\n */\r\n InputDataType[InputDataType[\"None\"] = 0] = \"None\";\r\n /**\r\n * Represents a textual value.\r\n */\r\n InputDataType[InputDataType[\"String\"] = 10] = \"String\";\r\n /**\r\n * Represents a numberic value.\r\n */\r\n InputDataType[InputDataType[\"Number\"] = 20] = \"Number\";\r\n /**\r\n * Represents a value of true or false.\r\n */\r\n InputDataType[InputDataType[\"Boolean\"] = 30] = \"Boolean\";\r\n /**\r\n * Represents a Guid.\r\n */\r\n InputDataType[InputDataType[\"Guid\"] = 40] = \"Guid\";\r\n /**\r\n * Represents a URI.\r\n */\r\n InputDataType[InputDataType[\"Uri\"] = 50] = \"Uri\";\r\n})(InputDataType = exports.InputDataType || (exports.InputDataType = {}));\r\nvar InputFilterOperator;\r\n(function (InputFilterOperator) {\r\n InputFilterOperator[InputFilterOperator[\"Equals\"] = 0] = \"Equals\";\r\n InputFilterOperator[InputFilterOperator[\"NotEquals\"] = 1] = \"NotEquals\";\r\n})(InputFilterOperator = exports.InputFilterOperator || (exports.InputFilterOperator = {}));\r\nvar InputMode;\r\n(function (InputMode) {\r\n /**\r\n * This input should not be shown in the UI\r\n */\r\n InputMode[InputMode[\"None\"] = 0] = \"None\";\r\n /**\r\n * An input text box should be shown\r\n */\r\n InputMode[InputMode[\"TextBox\"] = 10] = \"TextBox\";\r\n /**\r\n * An password input box should be shown\r\n */\r\n InputMode[InputMode[\"PasswordBox\"] = 20] = \"PasswordBox\";\r\n /**\r\n * A select/combo control should be shown\r\n */\r\n InputMode[InputMode[\"Combo\"] = 30] = \"Combo\";\r\n /**\r\n * Radio buttons should be shown\r\n */\r\n InputMode[InputMode[\"RadioButtons\"] = 40] = \"RadioButtons\";\r\n /**\r\n * Checkbox should be shown(for true/false values)\r\n */\r\n InputMode[InputMode[\"CheckBox\"] = 50] = \"CheckBox\";\r\n /**\r\n * A multi-line text area should be shown\r\n */\r\n InputMode[InputMode[\"TextArea\"] = 60] = \"TextArea\";\r\n})(InputMode = exports.InputMode || (exports.InputMode = {}));\r\nexports.TypeInfo = {\r\n InputDataType: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"string\": 10,\r\n \"number\": 20,\r\n \"boolean\": 30,\r\n \"guid\": 40,\r\n \"uri\": 50,\r\n }\r\n },\r\n InputDescriptor: {\r\n fields: null\r\n },\r\n InputFilter: {\r\n fields: null\r\n },\r\n InputFilterCondition: {\r\n fields: null\r\n },\r\n InputFilterOperator: {\r\n enumValues: {\r\n \"equals\": 0,\r\n \"notEquals\": 1,\r\n }\r\n },\r\n InputMode: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"textBox\": 10,\r\n \"passwordBox\": 20,\r\n \"combo\": 30,\r\n \"radioButtons\": 40,\r\n \"checkBox\": 50,\r\n \"textArea\": 60,\r\n }\r\n },\r\n InputValidation: {\r\n fields: null\r\n },\r\n InputValue: {\r\n fields: null\r\n },\r\n InputValues: {\r\n fields: null\r\n },\r\n InputValuesError: {\r\n fields: null\r\n },\r\n InputValuesQuery: {\r\n fields: null\r\n },\r\n};\r\nexports.TypeInfo.InputDescriptor.fields = {\r\n inputMode: {\r\n enumType: exports.TypeInfo.InputMode\r\n },\r\n validation: {\r\n typeInfo: exports.TypeInfo.InputValidation\r\n },\r\n values: {\r\n typeInfo: exports.TypeInfo.InputValues\r\n },\r\n};\r\nexports.TypeInfo.InputFilter.fields = {\r\n conditions: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.InputFilterCondition\r\n },\r\n};\r\nexports.TypeInfo.InputFilterCondition.fields = {\r\n operator: {\r\n enumType: exports.TypeInfo.InputFilterOperator\r\n },\r\n};\r\nexports.TypeInfo.InputValidation.fields = {\r\n dataType: {\r\n enumType: exports.TypeInfo.InputDataType\r\n },\r\n};\r\nexports.TypeInfo.InputValue.fields = {};\r\nexports.TypeInfo.InputValues.fields = {\r\n error: {\r\n typeInfo: exports.TypeInfo.InputValuesError\r\n },\r\n possibleValues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.InputValue\r\n },\r\n};\r\nexports.TypeInfo.InputValuesError.fields = {};\r\nexports.TypeInfo.InputValuesQuery.fields = {\r\n inputValues: {\r\n isArray: true,\r\n typeInfo: exports.TypeInfo.InputValues\r\n },\r\n};\r\n","/*\r\n* ---------------------------------------------------------\r\n* Copyright(C) Microsoft Corporation. All rights reserved.\r\n* ---------------------------------------------------------\r\n*\r\n* ---------------------------------------------------------\r\n* Generated file, DO NOT EDIT\r\n* ---------------------------------------------------------\r\n*/\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar OperationStatus;\r\n(function (OperationStatus) {\r\n /**\r\n * The operation object does not have the status set.\r\n */\r\n OperationStatus[OperationStatus[\"NotSet\"] = 0] = \"NotSet\";\r\n /**\r\n * The operation has been queued.\r\n */\r\n OperationStatus[OperationStatus[\"Queued\"] = 1] = \"Queued\";\r\n /**\r\n * The operation is in progress.\r\n */\r\n OperationStatus[OperationStatus[\"InProgress\"] = 2] = \"InProgress\";\r\n /**\r\n * The operation was cancelled by the user.\r\n */\r\n OperationStatus[OperationStatus[\"Cancelled\"] = 3] = \"Cancelled\";\r\n /**\r\n * The operation completed successfully.\r\n */\r\n OperationStatus[OperationStatus[\"Succeeded\"] = 4] = \"Succeeded\";\r\n /**\r\n * The operation completed with a failure.\r\n */\r\n OperationStatus[OperationStatus[\"Failed\"] = 5] = \"Failed\";\r\n})(OperationStatus = exports.OperationStatus || (exports.OperationStatus = {}));\r\nexports.TypeInfo = {\r\n OperationReference: {\r\n fields: null\r\n },\r\n OperationStatus: {\r\n enumValues: {\r\n \"notSet\": 0,\r\n \"queued\": 1,\r\n \"inProgress\": 2,\r\n \"cancelled\": 3,\r\n \"succeeded\": 4,\r\n \"failed\": 5,\r\n }\r\n },\r\n};\r\nexports.TypeInfo.OperationReference.fields = {\r\n status: {\r\n enumType: exports.TypeInfo.OperationStatus\r\n },\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DayOfWeek;\r\n(function (DayOfWeek) {\r\n /**\r\n * Indicates Sunday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Sunday\"] = 0] = \"Sunday\";\r\n /**\r\n * Indicates Monday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Monday\"] = 1] = \"Monday\";\r\n /**\r\n * Indicates Tuesday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Tuesday\"] = 2] = \"Tuesday\";\r\n /**\r\n * Indicates Wednesday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Wednesday\"] = 3] = \"Wednesday\";\r\n /**\r\n * Indicates Thursday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Thursday\"] = 4] = \"Thursday\";\r\n /**\r\n * Indicates Friday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Friday\"] = 5] = \"Friday\";\r\n /**\r\n * Indicates Saturday.\r\n */\r\n DayOfWeek[DayOfWeek[\"Saturday\"] = 6] = \"Saturday\";\r\n})(DayOfWeek = exports.DayOfWeek || (exports.DayOfWeek = {}));\r\nexports.TypeInfo = {\r\n DayOfWeek: {\r\n enumValues: {\r\n \"sunday\": 0,\r\n \"monday\": 1,\r\n \"tuesday\": 2,\r\n \"wednesday\": 3,\r\n \"thursday\": 4,\r\n \"friday\": 5,\r\n \"saturday\": 6\r\n }\r\n }\r\n};\r\n","\"use strict\";\r\n//----------------------------------------------------------\r\n// Copyright (C) Microsoft Corporation. All rights reserved.\r\n//----------------------------------------------------------\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Specifies SQL Server-specific data type of a field, property, for use in a System.Data.SqlClient.SqlParameter.\r\n */\r\nvar SqlDbType;\r\n(function (SqlDbType) {\r\n /**\r\n * A 64-bit signed integer.\r\n */\r\n SqlDbType[SqlDbType[\"BigInt\"] = 0] = \"BigInt\";\r\n /**\r\n * Array of type Byte. A fixed-length stream of binary data ranging between 1 and 8,000 bytes.\r\n */\r\n SqlDbType[SqlDbType[\"Binary\"] = 1] = \"Binary\";\r\n /**\r\n * Boolean. An unsigned numeric value that can be 0, 1, or null.\r\n */\r\n SqlDbType[SqlDbType[\"Bit\"] = 2] = \"Bit\";\r\n /**\r\n * String. A fixed-length stream of non-Unicode characters ranging between 1 and 8,000 characters.\r\n */\r\n SqlDbType[SqlDbType[\"Char\"] = 3] = \"Char\";\r\n /**\r\n * DateTime. Date and time data ranging in value from January 1, 1753 to December 31, 9999 to an accuracy of 3.33 milliseconds.\r\n */\r\n SqlDbType[SqlDbType[\"DateTime\"] = 4] = \"DateTime\";\r\n /**\r\n * Decimal. A fixed precision and scale numeric value between -10 38 -1 and 10 38 -1.\r\n */\r\n SqlDbType[SqlDbType[\"Decimal\"] = 5] = \"Decimal\";\r\n /**\r\n * Double. A floating point number within the range of -1.79E +308 through 1.79E +308.\r\n */\r\n SqlDbType[SqlDbType[\"Float\"] = 6] = \"Float\";\r\n /**\r\n * Array of type Byte. A variable-length stream of binary data ranging from 0 to 2 31 -1 (or 2,147,483,647) bytes.\r\n */\r\n SqlDbType[SqlDbType[\"Image\"] = 7] = \"Image\";\r\n /**\r\n * Int32. A 32-bit signed integer.\r\n */\r\n SqlDbType[SqlDbType[\"Int\"] = 8] = \"Int\";\r\n /**\r\n * Decimal. A currency value ranging from -2 63 (or -9,223,372,036,854,775,808) to 2 63 -1 (or +9,223,372,036,854,775,807) with an accuracy to a ten-thousandth of a currency unit.\r\n */\r\n SqlDbType[SqlDbType[\"Money\"] = 9] = \"Money\";\r\n /**\r\n * String. A fixed-length stream of Unicode characters ranging between 1 and 4,000 characters.\r\n */\r\n SqlDbType[SqlDbType[\"NChar\"] = 10] = \"NChar\";\r\n /**\r\n * String. A variable-length stream of Unicode data with a maximum length of 2 30 - 1 (or 1,073,741,823) characters.\r\n */\r\n SqlDbType[SqlDbType[\"NText\"] = 11] = \"NText\";\r\n /**\r\n * String. A variable-length stream of Unicode characters ranging between 1 and 4,000 characters. Implicit conversion fails if the string is greater than 4,000 characters. Explicitly set the object when working with strings longer than 4,000 characters. Use System.Data.SqlDbType.NVarChar when the database column is nvarchar(max).\r\n */\r\n SqlDbType[SqlDbType[\"NVarChar\"] = 12] = \"NVarChar\";\r\n /**\r\n * Single. A floating point number within the range of -3.40E +38 through 3.40E +38.\r\n */\r\n SqlDbType[SqlDbType[\"Real\"] = 13] = \"Real\";\r\n /**\r\n * Guid. A globally unique identifier (or GUID).\r\n */\r\n SqlDbType[SqlDbType[\"UniqueIdentifier\"] = 14] = \"UniqueIdentifier\";\r\n /**\r\n * DateTime. Date and time data ranging in value from January 1, 1900 to June 6, 2079 to an accuracy of one minute.\r\n */\r\n SqlDbType[SqlDbType[\"SmallDateTime\"] = 15] = \"SmallDateTime\";\r\n /**\r\n * Int16. A 16-bit signed integer.\r\n */\r\n SqlDbType[SqlDbType[\"SmallInt\"] = 16] = \"SmallInt\";\r\n /**\r\n * Decimal. A currency value ranging from -214,748.3648 to +214,748.3647 with an accuracy to a ten-thousandth of a currency unit.\r\n */\r\n SqlDbType[SqlDbType[\"SmallMoney\"] = 17] = \"SmallMoney\";\r\n /**\r\n * String. A variable-length stream of non-Unicode data with a maximum length of 2 31 -1 (or 2,147,483,647) characters.\r\n */\r\n SqlDbType[SqlDbType[\"Text\"] = 18] = \"Text\";\r\n /**\r\n * Array of type System.Byte. Automatically generated binary numbers, which are guaranteed to be unique within a database. timestamp is used typically as a mechanism for version-stamping table rows. The storage size is 8 bytes.\r\n */\r\n SqlDbType[SqlDbType[\"Timestamp\"] = 19] = \"Timestamp\";\r\n /**\r\n * Byte. An 8-bit unsigned integer.\r\n */\r\n SqlDbType[SqlDbType[\"TinyInt\"] = 20] = \"TinyInt\";\r\n /**\r\n * Array of type Byte. A variable-length stream of binary data ranging between 1 and 8,000 bytes. Implicit conversion fails if the byte array is greater than 8,000 bytes. Explicitly set the object when working with byte arrays larger than 8,000 bytes.\r\n */\r\n SqlDbType[SqlDbType[\"VarBinary\"] = 21] = \"VarBinary\";\r\n /**\r\n * String. A variable-length stream of non-Unicode characters ranging between 1 and 8,000 characters. Use System.Data.SqlDbType.VarChar when the database column is varchar(max).\r\n */\r\n SqlDbType[SqlDbType[\"VarChar\"] = 22] = \"VarChar\";\r\n /**\r\n * Object. A special data type that can contain numeric, string, binary, or date data as well as the SQL Server values Empty and Null, which is assumed if no other type is declared.\r\n */\r\n SqlDbType[SqlDbType[\"Variant\"] = 23] = \"Variant\";\r\n /**\r\n * An XML value. Obtain the XML as a string using the System.Data.SqlClient.SqlDataReader.GetValue(System.Int32) method or System.Data.SqlTypes.SqlXml.Value property, or as an System.Xml.XmlReader by calling the System.Data.SqlTypes.SqlXml.CreateReader method.\r\n */\r\n SqlDbType[SqlDbType[\"Xml\"] = 25] = \"Xml\";\r\n /**\r\n * A SQL Server user-defined type (UDT).\r\n */\r\n SqlDbType[SqlDbType[\"Udt\"] = 29] = \"Udt\";\r\n /**\r\n * A special data type for specifying structured data contained in table-valued parameters.\r\n */\r\n SqlDbType[SqlDbType[\"Structured\"] = 30] = \"Structured\";\r\n /**\r\n * Date data ranging in value from January 1,1 AD through December 31, 9999 AD.\r\n */\r\n SqlDbType[SqlDbType[\"Date\"] = 31] = \"Date\";\r\n /**\r\n * Time data based on a 24-hour clock. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds. Corresponds to a SQL Server time value.\r\n */\r\n SqlDbType[SqlDbType[\"Time\"] = 32] = \"Time\";\r\n /**\r\n * Date and time data. Date value range is from January 1,1 AD through December 31, 9999 AD. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds.\r\n */\r\n SqlDbType[SqlDbType[\"DateTime2\"] = 33] = \"DateTime2\";\r\n /**\r\n * Date and time data with time zone awareness. Date value range is from January 1,1 AD through December 31, 9999 AD. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds. Time zone value range is -14:00 through +14:00.\r\n */\r\n SqlDbType[SqlDbType[\"DateTimeOffset\"] = 34] = \"DateTimeOffset\";\r\n})(SqlDbType = exports.SqlDbType || (exports.SqlDbType = {}));\r\nexports.TypeInfo = {\r\n SqlDbType: {\r\n enumValues: {\r\n \"BigInt\": 0,\r\n \"Binary\": 1,\r\n \"Bit\": 2,\r\n \"Char\": 3,\r\n \"DateTime\": 4,\r\n \"Decimal\": 5,\r\n \"Float\": 6,\r\n \"Image\": 7,\r\n \"Int\": 8,\r\n \"Money\": 9,\r\n \"NChar\": 10,\r\n \"NText\": 11,\r\n \"NVarChar\": 12,\r\n \"Real\": 13,\r\n \"UniqueIdentifier\": 14,\r\n \"SmallDateTime\": 15,\r\n \"SmallInt\": 16,\r\n \"SmallMoney\": 17,\r\n \"Text\": 18,\r\n \"Timestamp\": 19,\r\n \"TinyInt\": 20,\r\n \"VarBinary\": 21,\r\n \"VarChar\": 22,\r\n \"Variant\": 23,\r\n \"Xml\": 25,\r\n \"Udt\": 29,\r\n \"Structured\": 30,\r\n \"Date\": 31,\r\n \"Time\": 32,\r\n \"DateTime2\": 33,\r\n \"DateTimeOffset\": 34\r\n }\r\n }\r\n};\r\n","/*\r\n * ---------------------------------------------------------\r\n * Copyright(C) Microsoft Corporation. All rights reserved.\r\n * ---------------------------------------------------------\r\n *\r\n * ---------------------------------------------------------\r\n * Generated file, DO NOT EDIT\r\n * ---------------------------------------------------------\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n * Enumeration of the options that can be passed in on Connect.\r\n */\r\nvar ConnectOptions;\r\n(function (ConnectOptions) {\r\n /**\r\n * Retrieve no optional data.\r\n */\r\n ConnectOptions[ConnectOptions[\"None\"] = 0] = \"None\";\r\n /**\r\n * Includes information about AccessMappings and ServiceDefinitions.\r\n */\r\n ConnectOptions[ConnectOptions[\"IncludeServices\"] = 1] = \"IncludeServices\";\r\n /**\r\n * Includes the last user access for this host.\r\n */\r\n ConnectOptions[ConnectOptions[\"IncludeLastUserAccess\"] = 2] = \"IncludeLastUserAccess\";\r\n /**\r\n * This is only valid on the deployment host and when true. Will only return inherited definitions.\r\n */\r\n ConnectOptions[ConnectOptions[\"IncludeInheritedDefinitionsOnly\"] = 4] = \"IncludeInheritedDefinitionsOnly\";\r\n /**\r\n * When true will only return non inherited definitions. Only valid at non-deployment host.\r\n */\r\n ConnectOptions[ConnectOptions[\"IncludeNonInheritedDefinitionsOnly\"] = 8] = \"IncludeNonInheritedDefinitionsOnly\";\r\n})(ConnectOptions = exports.ConnectOptions || (exports.ConnectOptions = {}));\r\nvar DeploymentFlags;\r\n(function (DeploymentFlags) {\r\n DeploymentFlags[DeploymentFlags[\"None\"] = 0] = \"None\";\r\n DeploymentFlags[DeploymentFlags[\"Hosted\"] = 1] = \"Hosted\";\r\n DeploymentFlags[DeploymentFlags[\"OnPremises\"] = 2] = \"OnPremises\";\r\n})(DeploymentFlags = exports.DeploymentFlags || (exports.DeploymentFlags = {}));\r\nvar JWTAlgorithm;\r\n(function (JWTAlgorithm) {\r\n JWTAlgorithm[JWTAlgorithm[\"None\"] = 0] = \"None\";\r\n JWTAlgorithm[JWTAlgorithm[\"HS256\"] = 1] = \"HS256\";\r\n JWTAlgorithm[JWTAlgorithm[\"RS256\"] = 2] = \"RS256\";\r\n})(JWTAlgorithm = exports.JWTAlgorithm || (exports.JWTAlgorithm = {}));\r\nvar Operation;\r\n(function (Operation) {\r\n Operation[Operation[\"Add\"] = 0] = \"Add\";\r\n Operation[Operation[\"Remove\"] = 1] = \"Remove\";\r\n Operation[Operation[\"Replace\"] = 2] = \"Replace\";\r\n Operation[Operation[\"Move\"] = 3] = \"Move\";\r\n Operation[Operation[\"Copy\"] = 4] = \"Copy\";\r\n Operation[Operation[\"Test\"] = 5] = \"Test\";\r\n})(Operation = exports.Operation || (exports.Operation = {}));\r\nexports.TypeInfo = {\r\n ConnectOptions: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"includeServices\": 1,\r\n \"includeLastUserAccess\": 2,\r\n \"includeInheritedDefinitionsOnly\": 4,\r\n \"includeNonInheritedDefinitionsOnly\": 8\r\n }\r\n },\r\n DeploymentFlags: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"hosted\": 1,\r\n \"onPremises\": 2\r\n }\r\n },\r\n JsonPatchOperation: {},\r\n JWTAlgorithm: {\r\n enumValues: {\r\n \"none\": 0,\r\n \"hS256\": 1,\r\n \"rS256\": 2\r\n }\r\n },\r\n Operation: {\r\n enumValues: {\r\n \"add\": 0,\r\n \"remove\": 1,\r\n \"replace\": 2,\r\n \"move\": 3,\r\n \"copy\": 4,\r\n \"test\": 5\r\n }\r\n },\r\n SignedUrl: {},\r\n TraceFilter: {},\r\n VssNotificationEvent: {},\r\n};\r\nexports.TypeInfo.JsonPatchOperation.fields = {\r\n op: {\r\n enumType: exports.TypeInfo.Operation\r\n }\r\n};\r\nexports.TypeInfo.SignedUrl.fields = {\r\n signatureExpires: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.TraceFilter.fields = {\r\n timeCreated: {\r\n isDate: true,\r\n }\r\n};\r\nexports.TypeInfo.VssNotificationEvent.fields = {\r\n sourceEventCreatedTime: {\r\n isDate: true,\r\n }\r\n};\r\n","var register = require('./lib/register')\nvar addHook = require('./lib/add')\nvar removeHook = require('./lib/remove')\n\n// bind with array of arguments: https://stackoverflow.com/a/21792913\nvar bind = Function.bind\nvar bindable = bind.bind(bind)\n\nfunction bindApi (hook, state, name) {\n var removeHookRef = bindable(removeHook, null).apply(null, name ? [state, name] : [state])\n hook.api = { remove: removeHookRef }\n hook.remove = removeHookRef\n\n ;['before', 'error', 'after', 'wrap'].forEach(function (kind) {\n var args = name ? [state, kind, name] : [state, kind]\n hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args)\n })\n}\n\nfunction HookSingular () {\n var singularHookName = 'h'\n var singularHookState = {\n registry: {}\n }\n var singularHook = register.bind(null, singularHookState, singularHookName)\n bindApi(singularHook, singularHookState, singularHookName)\n return singularHook\n}\n\nfunction HookCollection () {\n var state = {\n registry: {}\n }\n\n var hook = register.bind(null, state)\n bindApi(hook, state)\n\n return hook\n}\n\nvar collectionHookDeprecationMessageDisplayed = false\nfunction Hook () {\n if (!collectionHookDeprecationMessageDisplayed) {\n console.warn('[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4')\n collectionHookDeprecationMessageDisplayed = true\n }\n return HookCollection()\n}\n\nHook.Singular = HookSingular.bind()\nHook.Collection = HookCollection.bind()\n\nmodule.exports = Hook\n// expose constructors as a named property for TypeScript\nmodule.exports.Hook = Hook\nmodule.exports.Singular = Hook.Singular\nmodule.exports.Collection = Hook.Collection\n","module.exports = addHook;\n\nfunction addHook(state, kind, name, hook) {\n var orig = hook;\n if (!state.registry[name]) {\n state.registry[name] = [];\n }\n\n if (kind === \"before\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(orig.bind(null, options))\n .then(method.bind(null, options));\n };\n }\n\n if (kind === \"after\") {\n hook = function (method, options) {\n var result;\n return Promise.resolve()\n .then(method.bind(null, options))\n .then(function (result_) {\n result = result_;\n return orig(result, options);\n })\n .then(function () {\n return result;\n });\n };\n }\n\n if (kind === \"error\") {\n hook = function (method, options) {\n return Promise.resolve()\n .then(method.bind(null, options))\n .catch(function (error) {\n return orig(error, options);\n });\n };\n }\n\n state.registry[name].push({\n hook: hook,\n orig: orig,\n });\n}\n","module.exports = register;\n\nfunction register(state, name, method, options) {\n if (typeof method !== \"function\") {\n throw new Error(\"method for before hook must be a function\");\n }\n\n if (!options) {\n options = {};\n }\n\n if (Array.isArray(name)) {\n return name.reverse().reduce(function (callback, name) {\n return register.bind(null, state, name, callback, options);\n }, method)();\n }\n\n return Promise.resolve().then(function () {\n if (!state.registry[name]) {\n return method(options);\n }\n\n return state.registry[name].reduce(function (method, registered) {\n return registered.hook.bind(null, method, options);\n }, method)();\n });\n}\n","module.exports = removeHook;\n\nfunction removeHook(state, name, method) {\n if (!state.registry[name]) {\n return;\n }\n\n var index = state.registry[name]\n .map(function (registered) {\n return registered.orig;\n })\n .indexOf(method);\n\n if (index === -1) {\n return;\n }\n\n state.registry[name].splice(index, 1);\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nclass Deprecation extends Error {\n constructor(message) {\n super(message); // Maintains proper stack trace (only available on V8)\n\n /* istanbul ignore next */\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n this.name = 'Deprecation';\n }\n\n}\n\nexports.Deprecation = Deprecation;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar origSymbol = global.Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Stream = _interopDefault(require('stream'));\nvar http = _interopDefault(require('http'));\nvar Url = _interopDefault(require('url'));\nvar https = _interopDefault(require('https'));\nvar zlib = _interopDefault(require('zlib'));\n\n// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js\n\n// fix for \"Readable\" isn't a named export issue\nconst Readable = Stream.Readable;\n\nconst BUFFER = Symbol('buffer');\nconst TYPE = Symbol('type');\n\nclass Blob {\n\tconstructor() {\n\t\tthis[TYPE] = '';\n\n\t\tconst blobParts = arguments[0];\n\t\tconst options = arguments[1];\n\n\t\tconst buffers = [];\n\t\tlet size = 0;\n\n\t\tif (blobParts) {\n\t\t\tconst a = blobParts;\n\t\t\tconst length = Number(a.length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tconst element = a[i];\n\t\t\t\tlet buffer;\n\t\t\t\tif (element instanceof Buffer) {\n\t\t\t\t\tbuffer = element;\n\t\t\t\t} else if (ArrayBuffer.isView(element)) {\n\t\t\t\t\tbuffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);\n\t\t\t\t} else if (element instanceof ArrayBuffer) {\n\t\t\t\t\tbuffer = Buffer.from(element);\n\t\t\t\t} else if (element instanceof Blob) {\n\t\t\t\t\tbuffer = element[BUFFER];\n\t\t\t\t} else {\n\t\t\t\t\tbuffer = Buffer.from(typeof element === 'string' ? element : String(element));\n\t\t\t\t}\n\t\t\t\tsize += buffer.length;\n\t\t\t\tbuffers.push(buffer);\n\t\t\t}\n\t\t}\n\n\t\tthis[BUFFER] = Buffer.concat(buffers);\n\n\t\tlet type = options && options.type !== undefined && String(options.type).toLowerCase();\n\t\tif (type && !/[^\\u0020-\\u007E]/.test(type)) {\n\t\t\tthis[TYPE] = type;\n\t\t}\n\t}\n\tget size() {\n\t\treturn this[BUFFER].length;\n\t}\n\tget type() {\n\t\treturn this[TYPE];\n\t}\n\ttext() {\n\t\treturn Promise.resolve(this[BUFFER].toString());\n\t}\n\tarrayBuffer() {\n\t\tconst buf = this[BUFFER];\n\t\tconst ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\treturn Promise.resolve(ab);\n\t}\n\tstream() {\n\t\tconst readable = new Readable();\n\t\treadable._read = function () {};\n\t\treadable.push(this[BUFFER]);\n\t\treadable.push(null);\n\t\treturn readable;\n\t}\n\ttoString() {\n\t\treturn '[object Blob]';\n\t}\n\tslice() {\n\t\tconst size = this.size;\n\n\t\tconst start = arguments[0];\n\t\tconst end = arguments[1];\n\t\tlet relativeStart, relativeEnd;\n\t\tif (start === undefined) {\n\t\t\trelativeStart = 0;\n\t\t} else if (start < 0) {\n\t\t\trelativeStart = Math.max(size + start, 0);\n\t\t} else {\n\t\t\trelativeStart = Math.min(start, size);\n\t\t}\n\t\tif (end === undefined) {\n\t\t\trelativeEnd = size;\n\t\t} else if (end < 0) {\n\t\t\trelativeEnd = Math.max(size + end, 0);\n\t\t} else {\n\t\t\trelativeEnd = Math.min(end, size);\n\t\t}\n\t\tconst span = Math.max(relativeEnd - relativeStart, 0);\n\n\t\tconst buffer = this[BUFFER];\n\t\tconst slicedBuffer = buffer.slice(relativeStart, relativeStart + span);\n\t\tconst blob = new Blob([], { type: arguments[2] });\n\t\tblob[BUFFER] = slicedBuffer;\n\t\treturn blob;\n\t}\n}\n\nObject.defineProperties(Blob.prototype, {\n\tsize: { enumerable: true },\n\ttype: { enumerable: true },\n\tslice: { enumerable: true }\n});\n\nObject.defineProperty(Blob.prototype, Symbol.toStringTag, {\n\tvalue: 'Blob',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * fetch-error.js\n *\n * FetchError interface for operational errors\n */\n\n/**\n * Create FetchError instance\n *\n * @param String message Error message for human\n * @param String type Error type for machine\n * @param String systemError For Node.js system error\n * @return FetchError\n */\nfunction FetchError(message, type, systemError) {\n Error.call(this, message);\n\n this.message = message;\n this.type = type;\n\n // when err.type is `system`, err.code contains system error code\n if (systemError) {\n this.code = this.errno = systemError.code;\n }\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nFetchError.prototype = Object.create(Error.prototype);\nFetchError.prototype.constructor = FetchError;\nFetchError.prototype.name = 'FetchError';\n\nlet convert;\ntry {\n\tconvert = require('encoding').convert;\n} catch (e) {}\n\nconst INTERNALS = Symbol('Body internals');\n\n// fix an issue where \"PassThrough\" isn't a named export for node <10\nconst PassThrough = Stream.PassThrough;\n\n/**\n * Body mixin\n *\n * Ref: https://fetch.spec.whatwg.org/#body\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nfunction Body(body) {\n\tvar _this = this;\n\n\tvar _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$size = _ref.size;\n\n\tlet size = _ref$size === undefined ? 0 : _ref$size;\n\tvar _ref$timeout = _ref.timeout;\n\tlet timeout = _ref$timeout === undefined ? 0 : _ref$timeout;\n\n\tif (body == null) {\n\t\t// body is undefined or null\n\t\tbody = null;\n\t} else if (isURLSearchParams(body)) {\n\t\t// body is a URLSearchParams\n\t\tbody = Buffer.from(body.toString());\n\t} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {\n\t\t// body is ArrayBuffer\n\t\tbody = Buffer.from(body);\n\t} else if (ArrayBuffer.isView(body)) {\n\t\t// body is ArrayBufferView\n\t\tbody = Buffer.from(body.buffer, body.byteOffset, body.byteLength);\n\t} else if (body instanceof Stream) ; else {\n\t\t// none of the above\n\t\t// coerce to string then buffer\n\t\tbody = Buffer.from(String(body));\n\t}\n\tthis[INTERNALS] = {\n\t\tbody,\n\t\tdisturbed: false,\n\t\terror: null\n\t};\n\tthis.size = size;\n\tthis.timeout = timeout;\n\n\tif (body instanceof Stream) {\n\t\tbody.on('error', function (err) {\n\t\t\tconst error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);\n\t\t\t_this[INTERNALS].error = error;\n\t\t});\n\t}\n}\n\nBody.prototype = {\n\tget body() {\n\t\treturn this[INTERNALS].body;\n\t},\n\n\tget bodyUsed() {\n\t\treturn this[INTERNALS].disturbed;\n\t},\n\n\t/**\n * Decode response as ArrayBuffer\n *\n * @return Promise\n */\n\tarrayBuffer() {\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n\t\t});\n\t},\n\n\t/**\n * Return raw response as Blob\n *\n * @return Promise\n */\n\tblob() {\n\t\tlet ct = this.headers && this.headers.get('content-type') || '';\n\t\treturn consumeBody.call(this).then(function (buf) {\n\t\t\treturn Object.assign(\n\t\t\t// Prevent copying\n\t\t\tnew Blob([], {\n\t\t\t\ttype: ct.toLowerCase()\n\t\t\t}), {\n\t\t\t\t[BUFFER]: buf\n\t\t\t});\n\t\t});\n\t},\n\n\t/**\n * Decode response as json\n *\n * @return Promise\n */\n\tjson() {\n\t\tvar _this2 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(buffer.toString());\n\t\t\t} catch (err) {\n\t\t\t\treturn Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n * Decode response as text\n *\n * @return Promise\n */\n\ttext() {\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn buffer.toString();\n\t\t});\n\t},\n\n\t/**\n * Decode response as buffer (non-spec api)\n *\n * @return Promise\n */\n\tbuffer() {\n\t\treturn consumeBody.call(this);\n\t},\n\n\t/**\n * Decode response as text, while automatically detecting the encoding and\n * trying to decode to UTF-8 (non-spec api)\n *\n * @return Promise\n */\n\ttextConverted() {\n\t\tvar _this3 = this;\n\n\t\treturn consumeBody.call(this).then(function (buffer) {\n\t\t\treturn convertBody(buffer, _this3.headers);\n\t\t});\n\t}\n};\n\n// In browsers, all properties are enumerable.\nObject.defineProperties(Body.prototype, {\n\tbody: { enumerable: true },\n\tbodyUsed: { enumerable: true },\n\tarrayBuffer: { enumerable: true },\n\tblob: { enumerable: true },\n\tjson: { enumerable: true },\n\ttext: { enumerable: true }\n});\n\nBody.mixIn = function (proto) {\n\tfor (const name of Object.getOwnPropertyNames(Body.prototype)) {\n\t\t// istanbul ignore else: future proof\n\t\tif (!(name in proto)) {\n\t\t\tconst desc = Object.getOwnPropertyDescriptor(Body.prototype, name);\n\t\t\tObject.defineProperty(proto, name, desc);\n\t\t}\n\t}\n};\n\n/**\n * Consume and convert an entire Body to a Buffer.\n *\n * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body\n *\n * @return Promise\n */\nfunction consumeBody() {\n\tvar _this4 = this;\n\n\tif (this[INTERNALS].disturbed) {\n\t\treturn Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));\n\t}\n\n\tthis[INTERNALS].disturbed = true;\n\n\tif (this[INTERNALS].error) {\n\t\treturn Body.Promise.reject(this[INTERNALS].error);\n\t}\n\n\tlet body = this.body;\n\n\t// body is null\n\tif (body === null) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is blob\n\tif (isBlob(body)) {\n\t\tbody = body.stream();\n\t}\n\n\t// body is buffer\n\tif (Buffer.isBuffer(body)) {\n\t\treturn Body.Promise.resolve(body);\n\t}\n\n\t// istanbul ignore if: should never happen\n\tif (!(body instanceof Stream)) {\n\t\treturn Body.Promise.resolve(Buffer.alloc(0));\n\t}\n\n\t// body is stream\n\t// get ready to actually consume the body\n\tlet accum = [];\n\tlet accumBytes = 0;\n\tlet abort = false;\n\n\treturn new Body.Promise(function (resolve, reject) {\n\t\tlet resTimeout;\n\n\t\t// allow timeout on slow response body\n\t\tif (_this4.timeout) {\n\t\t\tresTimeout = setTimeout(function () {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));\n\t\t\t}, _this4.timeout);\n\t\t}\n\n\t\t// handle stream errors\n\t\tbody.on('error', function (err) {\n\t\t\tif (err.name === 'AbortError') {\n\t\t\t\t// if the request was aborted, reject with this Error\n\t\t\t\tabort = true;\n\t\t\t\treject(err);\n\t\t\t} else {\n\t\t\t\t// other errors, such as incorrect content-encoding\n\t\t\t\treject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\n\t\tbody.on('data', function (chunk) {\n\t\t\tif (abort || chunk === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (_this4.size && accumBytes + chunk.length > _this4.size) {\n\t\t\t\tabort = true;\n\t\t\t\treject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\taccumBytes += chunk.length;\n\t\t\taccum.push(chunk);\n\t\t});\n\n\t\tbody.on('end', function () {\n\t\t\tif (abort) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout(resTimeout);\n\n\t\t\ttry {\n\t\t\t\tresolve(Buffer.concat(accum, accumBytes));\n\t\t\t} catch (err) {\n\t\t\t\t// handle streams that have accumulated too much data (issue #414)\n\t\t\t\treject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect buffer encoding and convert to target encoding\n * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding\n *\n * @param Buffer buffer Incoming buffer\n * @param String encoding Target encoding\n * @return String\n */\nfunction convertBody(buffer, headers) {\n\tif (typeof convert !== 'function') {\n\t\tthrow new Error('The package `encoding` must be installed to use the textConverted() function');\n\t}\n\n\tconst ct = headers.get('content-type');\n\tlet charset = 'utf-8';\n\tlet res, str;\n\n\t// header\n\tif (ct) {\n\t\tres = /charset=([^;]*)/i.exec(ct);\n\t}\n\n\t// no charset in content type, peek at response body for at most 1024 bytes\n\tstr = buffer.slice(0, 1024).toString();\n\n\t// html5\n\tif (!res && str) {\n\t\tres = / 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n\n\t\tthis[MAP] = Object.create(null);\n\n\t\tif (init instanceof Headers) {\n\t\t\tconst rawHeaders = init.raw();\n\t\t\tconst headerNames = Object.keys(rawHeaders);\n\n\t\t\tfor (const headerName of headerNames) {\n\t\t\t\tfor (const value of rawHeaders[headerName]) {\n\t\t\t\t\tthis.append(headerName, value);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// We don't worry about converting prop to ByteString here as append()\n\t\t// will handle it.\n\t\tif (init == null) ; else if (typeof init === 'object') {\n\t\t\tconst method = init[Symbol.iterator];\n\t\t\tif (method != null) {\n\t\t\t\tif (typeof method !== 'function') {\n\t\t\t\t\tthrow new TypeError('Header pairs must be iterable');\n\t\t\t\t}\n\n\t\t\t\t// sequence>\n\t\t\t\t// Note: per spec we have to first exhaust the lists then process them\n\t\t\t\tconst pairs = [];\n\t\t\t\tfor (const pair of init) {\n\t\t\t\t\tif (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be iterable');\n\t\t\t\t\t}\n\t\t\t\t\tpairs.push(Array.from(pair));\n\t\t\t\t}\n\n\t\t\t\tfor (const pair of pairs) {\n\t\t\t\t\tif (pair.length !== 2) {\n\t\t\t\t\t\tthrow new TypeError('Each header pair must be a name/value tuple');\n\t\t\t\t\t}\n\t\t\t\t\tthis.append(pair[0], pair[1]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// record\n\t\t\t\tfor (const key of Object.keys(init)) {\n\t\t\t\t\tconst value = init[key];\n\t\t\t\t\tthis.append(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError('Provided initializer must be an object');\n\t\t}\n\t}\n\n\t/**\n * Return combined header value given name\n *\n * @param String name Header name\n * @return Mixed\n */\n\tget(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key === undefined) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this[MAP][key].join(', ');\n\t}\n\n\t/**\n * Iterate over all headers\n *\n * @param Function callback Executed for each item with parameters (value, name, thisArg)\n * @param Boolean thisArg `this` context for callback function\n * @return Void\n */\n\tforEach(callback) {\n\t\tlet thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n\t\tlet pairs = getHeaders(this);\n\t\tlet i = 0;\n\t\twhile (i < pairs.length) {\n\t\t\tvar _pairs$i = pairs[i];\n\t\t\tconst name = _pairs$i[0],\n\t\t\t value = _pairs$i[1];\n\n\t\t\tcallback.call(thisArg, value, name, this);\n\t\t\tpairs = getHeaders(this);\n\t\t\ti++;\n\t\t}\n\t}\n\n\t/**\n * Overwrite header values given name\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tset(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tthis[MAP][key !== undefined ? key : name] = [value];\n\t}\n\n\t/**\n * Append a value onto existing header\n *\n * @param String name Header name\n * @param String value Header value\n * @return Void\n */\n\tappend(name, value) {\n\t\tname = `${name}`;\n\t\tvalue = `${value}`;\n\t\tvalidateName(name);\n\t\tvalidateValue(value);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tthis[MAP][key].push(value);\n\t\t} else {\n\t\t\tthis[MAP][name] = [value];\n\t\t}\n\t}\n\n\t/**\n * Check for header name existence\n *\n * @param String name Header name\n * @return Boolean\n */\n\thas(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\treturn find(this[MAP], name) !== undefined;\n\t}\n\n\t/**\n * Delete all header values given name\n *\n * @param String name Header name\n * @return Void\n */\n\tdelete(name) {\n\t\tname = `${name}`;\n\t\tvalidateName(name);\n\t\tconst key = find(this[MAP], name);\n\t\tif (key !== undefined) {\n\t\t\tdelete this[MAP][key];\n\t\t}\n\t}\n\n\t/**\n * Return raw headers (non-spec api)\n *\n * @return Object\n */\n\traw() {\n\t\treturn this[MAP];\n\t}\n\n\t/**\n * Get an iterator on keys.\n *\n * @return Iterator\n */\n\tkeys() {\n\t\treturn createHeadersIterator(this, 'key');\n\t}\n\n\t/**\n * Get an iterator on values.\n *\n * @return Iterator\n */\n\tvalues() {\n\t\treturn createHeadersIterator(this, 'value');\n\t}\n\n\t/**\n * Get an iterator on entries.\n *\n * This is the default iterator of the Headers object.\n *\n * @return Iterator\n */\n\t[Symbol.iterator]() {\n\t\treturn createHeadersIterator(this, 'key+value');\n\t}\n}\nHeaders.prototype.entries = Headers.prototype[Symbol.iterator];\n\nObject.defineProperty(Headers.prototype, Symbol.toStringTag, {\n\tvalue: 'Headers',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Headers.prototype, {\n\tget: { enumerable: true },\n\tforEach: { enumerable: true },\n\tset: { enumerable: true },\n\tappend: { enumerable: true },\n\thas: { enumerable: true },\n\tdelete: { enumerable: true },\n\tkeys: { enumerable: true },\n\tvalues: { enumerable: true },\n\tentries: { enumerable: true }\n});\n\nfunction getHeaders(headers) {\n\tlet kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';\n\n\tconst keys = Object.keys(headers[MAP]).sort();\n\treturn keys.map(kind === 'key' ? function (k) {\n\t\treturn k.toLowerCase();\n\t} : kind === 'value' ? function (k) {\n\t\treturn headers[MAP][k].join(', ');\n\t} : function (k) {\n\t\treturn [k.toLowerCase(), headers[MAP][k].join(', ')];\n\t});\n}\n\nconst INTERNAL = Symbol('internal');\n\nfunction createHeadersIterator(target, kind) {\n\tconst iterator = Object.create(HeadersIteratorPrototype);\n\titerator[INTERNAL] = {\n\t\ttarget,\n\t\tkind,\n\t\tindex: 0\n\t};\n\treturn iterator;\n}\n\nconst HeadersIteratorPrototype = Object.setPrototypeOf({\n\tnext() {\n\t\t// istanbul ignore if\n\t\tif (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {\n\t\t\tthrow new TypeError('Value of `this` is not a HeadersIterator');\n\t\t}\n\n\t\tvar _INTERNAL = this[INTERNAL];\n\t\tconst target = _INTERNAL.target,\n\t\t kind = _INTERNAL.kind,\n\t\t index = _INTERNAL.index;\n\n\t\tconst values = getHeaders(target, kind);\n\t\tconst len = values.length;\n\t\tif (index >= len) {\n\t\t\treturn {\n\t\t\t\tvalue: undefined,\n\t\t\t\tdone: true\n\t\t\t};\n\t\t}\n\n\t\tthis[INTERNAL].index = index + 1;\n\n\t\treturn {\n\t\t\tvalue: values[index],\n\t\t\tdone: false\n\t\t};\n\t}\n}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));\n\nObject.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {\n\tvalue: 'HeadersIterator',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\n/**\n * Export the Headers object in a form that Node.js can consume.\n *\n * @param Headers headers\n * @return Object\n */\nfunction exportNodeCompatibleHeaders(headers) {\n\tconst obj = Object.assign({ __proto__: null }, headers[MAP]);\n\n\t// http.request() only supports string as Host header. This hack makes\n\t// specifying custom Host header possible.\n\tconst hostHeaderKey = find(headers[MAP], 'Host');\n\tif (hostHeaderKey !== undefined) {\n\t\tobj[hostHeaderKey] = obj[hostHeaderKey][0];\n\t}\n\n\treturn obj;\n}\n\n/**\n * Create a Headers object from an object of headers, ignoring those that do\n * not conform to HTTP grammar productions.\n *\n * @param Object obj Object of headers\n * @return Headers\n */\nfunction createHeadersLenient(obj) {\n\tconst headers = new Headers();\n\tfor (const name of Object.keys(obj)) {\n\t\tif (invalidTokenRegex.test(name)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (Array.isArray(obj[name])) {\n\t\t\tfor (const val of obj[name]) {\n\t\t\t\tif (invalidHeaderCharRegex.test(val)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (headers[MAP][name] === undefined) {\n\t\t\t\t\theaders[MAP][name] = [val];\n\t\t\t\t} else {\n\t\t\t\t\theaders[MAP][name].push(val);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!invalidHeaderCharRegex.test(obj[name])) {\n\t\t\theaders[MAP][name] = [obj[name]];\n\t\t}\n\t}\n\treturn headers;\n}\n\nconst INTERNALS$1 = Symbol('Response internals');\n\n// fix an issue where \"STATUS_CODES\" aren't a named export for node <10\nconst STATUS_CODES = http.STATUS_CODES;\n\n/**\n * Response class\n *\n * @param Stream body Readable stream\n * @param Object opts Response options\n * @return Void\n */\nclass Response {\n\tconstructor() {\n\t\tlet body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\t\tlet opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tBody.call(this, body, opts);\n\n\t\tconst status = opts.status || 200;\n\t\tconst headers = new Headers(opts.headers);\n\n\t\tif (body != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(body);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tthis[INTERNALS$1] = {\n\t\t\turl: opts.url,\n\t\t\tstatus,\n\t\t\tstatusText: opts.statusText || STATUS_CODES[status],\n\t\t\theaders,\n\t\t\tcounter: opts.counter\n\t\t};\n\t}\n\n\tget url() {\n\t\treturn this[INTERNALS$1].url || '';\n\t}\n\n\tget status() {\n\t\treturn this[INTERNALS$1].status;\n\t}\n\n\t/**\n * Convenience property representing if the request ended normally\n */\n\tget ok() {\n\t\treturn this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;\n\t}\n\n\tget redirected() {\n\t\treturn this[INTERNALS$1].counter > 0;\n\t}\n\n\tget statusText() {\n\t\treturn this[INTERNALS$1].statusText;\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$1].headers;\n\t}\n\n\t/**\n * Clone this response\n *\n * @return Response\n */\n\tclone() {\n\t\treturn new Response(clone(this), {\n\t\t\turl: this.url,\n\t\t\tstatus: this.status,\n\t\t\tstatusText: this.statusText,\n\t\t\theaders: this.headers,\n\t\t\tok: this.ok,\n\t\t\tredirected: this.redirected\n\t\t});\n\t}\n}\n\nBody.mixIn(Response.prototype);\n\nObject.defineProperties(Response.prototype, {\n\turl: { enumerable: true },\n\tstatus: { enumerable: true },\n\tok: { enumerable: true },\n\tredirected: { enumerable: true },\n\tstatusText: { enumerable: true },\n\theaders: { enumerable: true },\n\tclone: { enumerable: true }\n});\n\nObject.defineProperty(Response.prototype, Symbol.toStringTag, {\n\tvalue: 'Response',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nconst INTERNALS$2 = Symbol('Request internals');\n\n// fix an issue where \"format\", \"parse\" aren't a named export for node <10\nconst parse_url = Url.parse;\nconst format_url = Url.format;\n\nconst streamDestructionSupported = 'destroy' in Stream.Readable.prototype;\n\n/**\n * Check if a value is an instance of Request.\n *\n * @param Mixed input\n * @return Boolean\n */\nfunction isRequest(input) {\n\treturn typeof input === 'object' && typeof input[INTERNALS$2] === 'object';\n}\n\nfunction isAbortSignal(signal) {\n\tconst proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);\n\treturn !!(proto && proto.constructor.name === 'AbortSignal');\n}\n\n/**\n * Request class\n *\n * @param Mixed input Url or Request instance\n * @param Object init Custom options\n * @return Void\n */\nclass Request {\n\tconstructor(input) {\n\t\tlet init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tlet parsedURL;\n\n\t\t// normalize input\n\t\tif (!isRequest(input)) {\n\t\t\tif (input && input.href) {\n\t\t\t\t// in order to support Node.js' Url objects; though WHATWG's URL objects\n\t\t\t\t// will fall into this branch also (since their `toString()` will return\n\t\t\t\t// `href` property anyway)\n\t\t\t\tparsedURL = parse_url(input.href);\n\t\t\t} else {\n\t\t\t\t// coerce input to a string before attempting to parse\n\t\t\t\tparsedURL = parse_url(`${input}`);\n\t\t\t}\n\t\t\tinput = {};\n\t\t} else {\n\t\t\tparsedURL = parse_url(input.url);\n\t\t}\n\n\t\tlet method = init.method || input.method || 'GET';\n\t\tmethod = method.toUpperCase();\n\n\t\tif ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {\n\t\t\tthrow new TypeError('Request with GET/HEAD method cannot have body');\n\t\t}\n\n\t\tlet inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;\n\n\t\tBody.call(this, inputBody, {\n\t\t\ttimeout: init.timeout || input.timeout || 0,\n\t\t\tsize: init.size || input.size || 0\n\t\t});\n\n\t\tconst headers = new Headers(init.headers || input.headers || {});\n\n\t\tif (inputBody != null && !headers.has('Content-Type')) {\n\t\t\tconst contentType = extractContentType(inputBody);\n\t\t\tif (contentType) {\n\t\t\t\theaders.append('Content-Type', contentType);\n\t\t\t}\n\t\t}\n\n\t\tlet signal = isRequest(input) ? input.signal : null;\n\t\tif ('signal' in init) signal = init.signal;\n\n\t\tif (signal != null && !isAbortSignal(signal)) {\n\t\t\tthrow new TypeError('Expected signal to be an instanceof AbortSignal');\n\t\t}\n\n\t\tthis[INTERNALS$2] = {\n\t\t\tmethod,\n\t\t\tredirect: init.redirect || input.redirect || 'follow',\n\t\t\theaders,\n\t\t\tparsedURL,\n\t\t\tsignal\n\t\t};\n\n\t\t// node-fetch-only options\n\t\tthis.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;\n\t\tthis.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;\n\t\tthis.counter = init.counter || input.counter || 0;\n\t\tthis.agent = init.agent || input.agent;\n\t}\n\n\tget method() {\n\t\treturn this[INTERNALS$2].method;\n\t}\n\n\tget url() {\n\t\treturn format_url(this[INTERNALS$2].parsedURL);\n\t}\n\n\tget headers() {\n\t\treturn this[INTERNALS$2].headers;\n\t}\n\n\tget redirect() {\n\t\treturn this[INTERNALS$2].redirect;\n\t}\n\n\tget signal() {\n\t\treturn this[INTERNALS$2].signal;\n\t}\n\n\t/**\n * Clone this request\n *\n * @return Request\n */\n\tclone() {\n\t\treturn new Request(this);\n\t}\n}\n\nBody.mixIn(Request.prototype);\n\nObject.defineProperty(Request.prototype, Symbol.toStringTag, {\n\tvalue: 'Request',\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: true\n});\n\nObject.defineProperties(Request.prototype, {\n\tmethod: { enumerable: true },\n\turl: { enumerable: true },\n\theaders: { enumerable: true },\n\tredirect: { enumerable: true },\n\tclone: { enumerable: true },\n\tsignal: { enumerable: true }\n});\n\n/**\n * Convert a Request to Node.js http request options.\n *\n * @param Request A Request instance\n * @return Object The options object to be passed to http.request\n */\nfunction getNodeRequestOptions(request) {\n\tconst parsedURL = request[INTERNALS$2].parsedURL;\n\tconst headers = new Headers(request[INTERNALS$2].headers);\n\n\t// fetch step 1.3\n\tif (!headers.has('Accept')) {\n\t\theaders.set('Accept', '*/*');\n\t}\n\n\t// Basic fetch\n\tif (!parsedURL.protocol || !parsedURL.hostname) {\n\t\tthrow new TypeError('Only absolute URLs are supported');\n\t}\n\n\tif (!/^https?:$/.test(parsedURL.protocol)) {\n\t\tthrow new TypeError('Only HTTP(S) protocols are supported');\n\t}\n\n\tif (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {\n\t\tthrow new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');\n\t}\n\n\t// HTTP-network-or-cache fetch steps 2.4-2.7\n\tlet contentLengthValue = null;\n\tif (request.body == null && /^(POST|PUT)$/i.test(request.method)) {\n\t\tcontentLengthValue = '0';\n\t}\n\tif (request.body != null) {\n\t\tconst totalBytes = getTotalBytes(request);\n\t\tif (typeof totalBytes === 'number') {\n\t\t\tcontentLengthValue = String(totalBytes);\n\t\t}\n\t}\n\tif (contentLengthValue) {\n\t\theaders.set('Content-Length', contentLengthValue);\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.11\n\tif (!headers.has('User-Agent')) {\n\t\theaders.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');\n\t}\n\n\t// HTTP-network-or-cache fetch step 2.15\n\tif (request.compress && !headers.has('Accept-Encoding')) {\n\t\theaders.set('Accept-Encoding', 'gzip,deflate');\n\t}\n\n\tlet agent = request.agent;\n\tif (typeof agent === 'function') {\n\t\tagent = agent(parsedURL);\n\t}\n\n\tif (!headers.has('Connection') && !agent) {\n\t\theaders.set('Connection', 'close');\n\t}\n\n\t// HTTP-network fetch step 4.2\n\t// chunked encoding is handled by Node.js\n\n\treturn Object.assign({}, parsedURL, {\n\t\tmethod: request.method,\n\t\theaders: exportNodeCompatibleHeaders(headers),\n\t\tagent\n\t});\n}\n\n/**\n * abort-error.js\n *\n * AbortError interface for cancelled requests\n */\n\n/**\n * Create AbortError instance\n *\n * @param String message Error message for human\n * @return AbortError\n */\nfunction AbortError(message) {\n Error.call(this, message);\n\n this.type = 'aborted';\n this.message = message;\n\n // hide custom error implementation details from end-users\n Error.captureStackTrace(this, this.constructor);\n}\n\nAbortError.prototype = Object.create(Error.prototype);\nAbortError.prototype.constructor = AbortError;\nAbortError.prototype.name = 'AbortError';\n\n// fix an issue where \"PassThrough\", \"resolve\" aren't a named export for node <10\nconst PassThrough$1 = Stream.PassThrough;\nconst resolve_url = Url.resolve;\n\n/**\n * Fetch function\n *\n * @param Mixed url Absolute url or Request instance\n * @param Object opts Fetch options\n * @return Promise\n */\nfunction fetch(url, opts) {\n\n\t// allow custom promise\n\tif (!fetch.Promise) {\n\t\tthrow new Error('native promise missing, set fetch.Promise to your favorite alternative');\n\t}\n\n\tBody.Promise = fetch.Promise;\n\n\t// wrap http.request into fetch\n\treturn new fetch.Promise(function (resolve, reject) {\n\t\t// build request object\n\t\tconst request = new Request(url, opts);\n\t\tconst options = getNodeRequestOptions(request);\n\n\t\tconst send = (options.protocol === 'https:' ? https : http).request;\n\t\tconst signal = request.signal;\n\n\t\tlet response = null;\n\n\t\tconst abort = function abort() {\n\t\t\tlet error = new AbortError('The user aborted a request.');\n\t\t\treject(error);\n\t\t\tif (request.body && request.body instanceof Stream.Readable) {\n\t\t\t\trequest.body.destroy(error);\n\t\t\t}\n\t\t\tif (!response || !response.body) return;\n\t\t\tresponse.body.emit('error', error);\n\t\t};\n\n\t\tif (signal && signal.aborted) {\n\t\t\tabort();\n\t\t\treturn;\n\t\t}\n\n\t\tconst abortAndFinalize = function abortAndFinalize() {\n\t\t\tabort();\n\t\t\tfinalize();\n\t\t};\n\n\t\t// send request\n\t\tconst req = send(options);\n\t\tlet reqTimeout;\n\n\t\tif (signal) {\n\t\t\tsignal.addEventListener('abort', abortAndFinalize);\n\t\t}\n\n\t\tfunction finalize() {\n\t\t\treq.abort();\n\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\tclearTimeout(reqTimeout);\n\t\t}\n\n\t\tif (request.timeout) {\n\t\t\treq.once('socket', function (socket) {\n\t\t\t\treqTimeout = setTimeout(function () {\n\t\t\t\t\treject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));\n\t\t\t\t\tfinalize();\n\t\t\t\t}, request.timeout);\n\t\t\t});\n\t\t}\n\n\t\treq.on('error', function (err) {\n\t\t\treject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));\n\t\t\tfinalize();\n\t\t});\n\n\t\treq.on('response', function (res) {\n\t\t\tclearTimeout(reqTimeout);\n\n\t\t\tconst headers = createHeadersLenient(res.headers);\n\n\t\t\t// HTTP fetch step 5\n\t\t\tif (fetch.isRedirect(res.statusCode)) {\n\t\t\t\t// HTTP fetch step 5.2\n\t\t\t\tconst location = headers.get('Location');\n\n\t\t\t\t// HTTP fetch step 5.3\n\t\t\t\tconst locationURL = location === null ? null : resolve_url(request.url, location);\n\n\t\t\t\t// HTTP fetch step 5.5\n\t\t\t\tswitch (request.redirect) {\n\t\t\t\t\tcase 'error':\n\t\t\t\t\t\treject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t\tcase 'manual':\n\t\t\t\t\t\t// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.\n\t\t\t\t\t\tif (locationURL !== null) {\n\t\t\t\t\t\t\t// handle corrupted header\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\theaders.set('Location', locationURL);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request\n\t\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'follow':\n\t\t\t\t\t\t// HTTP-redirect fetch step 2\n\t\t\t\t\t\tif (locationURL === null) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 5\n\t\t\t\t\t\tif (request.counter >= request.follow) {\n\t\t\t\t\t\t\treject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 6 (counter increment)\n\t\t\t\t\t\t// Create a new Request object.\n\t\t\t\t\t\tconst requestOpts = {\n\t\t\t\t\t\t\theaders: new Headers(request.headers),\n\t\t\t\t\t\t\tfollow: request.follow,\n\t\t\t\t\t\t\tcounter: request.counter + 1,\n\t\t\t\t\t\t\tagent: request.agent,\n\t\t\t\t\t\t\tcompress: request.compress,\n\t\t\t\t\t\t\tmethod: request.method,\n\t\t\t\t\t\t\tbody: request.body,\n\t\t\t\t\t\t\tsignal: request.signal,\n\t\t\t\t\t\t\ttimeout: request.timeout,\n\t\t\t\t\t\t\tsize: request.size\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 9\n\t\t\t\t\t\tif (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {\n\t\t\t\t\t\t\treject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));\n\t\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 11\n\t\t\t\t\t\tif (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {\n\t\t\t\t\t\t\trequestOpts.method = 'GET';\n\t\t\t\t\t\t\trequestOpts.body = undefined;\n\t\t\t\t\t\t\trequestOpts.headers.delete('content-length');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// HTTP-redirect fetch step 15\n\t\t\t\t\t\tresolve(fetch(new Request(locationURL, requestOpts)));\n\t\t\t\t\t\tfinalize();\n\t\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// prepare response\n\t\t\tres.once('end', function () {\n\t\t\t\tif (signal) signal.removeEventListener('abort', abortAndFinalize);\n\t\t\t});\n\t\t\tlet body = res.pipe(new PassThrough$1());\n\n\t\t\tconst response_options = {\n\t\t\t\turl: request.url,\n\t\t\t\tstatus: res.statusCode,\n\t\t\t\tstatusText: res.statusMessage,\n\t\t\t\theaders: headers,\n\t\t\t\tsize: request.size,\n\t\t\t\ttimeout: request.timeout,\n\t\t\t\tcounter: request.counter\n\t\t\t};\n\n\t\t\t// HTTP-network fetch step 12.1.1.3\n\t\t\tconst codings = headers.get('Content-Encoding');\n\n\t\t\t// HTTP-network fetch step 12.1.1.4: handle content codings\n\n\t\t\t// in following scenarios we ignore compression support\n\t\t\t// 1. compression support is disabled\n\t\t\t// 2. HEAD request\n\t\t\t// 3. no Content-Encoding header\n\t\t\t// 4. no content response (204)\n\t\t\t// 5. content not modified response (304)\n\t\t\tif (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For Node v6+\n\t\t\t// Be less strict when decoding compressed responses, since sometimes\n\t\t\t// servers send slightly invalid responses that are still accepted\n\t\t\t// by common browsers.\n\t\t\t// Always using Z_SYNC_FLUSH is what cURL does.\n\t\t\tconst zlibOptions = {\n\t\t\t\tflush: zlib.Z_SYNC_FLUSH,\n\t\t\t\tfinishFlush: zlib.Z_SYNC_FLUSH\n\t\t\t};\n\n\t\t\t// for gzip\n\t\t\tif (codings == 'gzip' || codings == 'x-gzip') {\n\t\t\t\tbody = body.pipe(zlib.createGunzip(zlibOptions));\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for deflate\n\t\t\tif (codings == 'deflate' || codings == 'x-deflate') {\n\t\t\t\t// handle the infamous raw deflate response from old servers\n\t\t\t\t// a hack for old IIS and Apache servers\n\t\t\t\tconst raw = res.pipe(new PassThrough$1());\n\t\t\t\traw.once('data', function (chunk) {\n\t\t\t\t\t// see http://stackoverflow.com/questions/37519828\n\t\t\t\t\tif ((chunk[0] & 0x0F) === 0x08) {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflate());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbody = body.pipe(zlib.createInflateRaw());\n\t\t\t\t\t}\n\t\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\t\tresolve(response);\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// for br\n\t\t\tif (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') {\n\t\t\t\tbody = body.pipe(zlib.createBrotliDecompress());\n\t\t\t\tresponse = new Response(body, response_options);\n\t\t\t\tresolve(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// otherwise, use response as-is\n\t\t\tresponse = new Response(body, response_options);\n\t\t\tresolve(response);\n\t\t});\n\n\t\twriteToStream(req, request);\n\t});\n}\n/**\n * Redirect code matching\n *\n * @param Number code Status code\n * @return Boolean\n */\nfetch.isRedirect = function (code) {\n\treturn code === 301 || code === 302 || code === 303 || code === 307 || code === 308;\n};\n\n// expose Promise\nfetch.Promise = global.Promise;\n\nmodule.exports = exports = fetch;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = exports;\nexports.Headers = Headers;\nexports.Request = Request;\nexports.Response = Response;\nexports.FetchError = FetchError;\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function () {\n return onceStrict(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var f = function () {\n if (f.called) return f.value\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n f.called = false\n return f\n}\n\nfunction onceStrict (fn) {\n var f = function () {\n if (f.called)\n throw new Error(f.onceError)\n f.called = true\n return f.value = fn.apply(this, arguments)\n }\n var name = fn.name || 'Function wrapped with `once`'\n f.onceError = name + \" shouldn't be called more than once\"\n f.called = false\n return f\n}\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n if (sideChannel.has(object)) {\n throw new RangeError('Cyclic object value');\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n var value = typeof key === 'object' && key.value !== undefined ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, true);\n var valueSideChannel = getSideChannel();\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar match = String.prototype.match;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nvar inspectCustom = require('./util.inspect').custom;\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\nvar toStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag !== 'undefined' ? Symbol.toStringTag : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('options \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n return String(obj);\n }\n if (typeof obj === 'bigint') {\n return String(obj) + 'n';\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = seen.slice();\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function') {\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + String(obj.nodeName).toLowerCase();\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + xs.join(', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n return obj[inspectSymbol]();\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + ys.join(', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return String(s).replace(/\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = str.replace(/(['\\\\])/g, '\\\\$1').replace(/[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase();\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = Array(opts.indent + 1).join(' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: Array(depth + 1).join(baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + xs.join(',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ((/[^\\w$]/).test(key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","module.exports = require('util').inspect;\n","module.exports = require('./lib/tunnel');\n","'use strict';\n\nvar net = require('net');\nvar tls = require('tls');\nvar http = require('http');\nvar https = require('https');\nvar events = require('events');\nvar assert = require('assert');\nvar util = require('util');\n\n\nexports.httpOverHttp = httpOverHttp;\nexports.httpsOverHttp = httpsOverHttp;\nexports.httpOverHttps = httpOverHttps;\nexports.httpsOverHttps = httpsOverHttps;\n\n\nfunction httpOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n return agent;\n}\n\nfunction httpsOverHttp(options) {\n var agent = new TunnelingAgent(options);\n agent.request = http.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\nfunction httpOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n return agent;\n}\n\nfunction httpsOverHttps(options) {\n var agent = new TunnelingAgent(options);\n agent.request = https.request;\n agent.createSocket = createSecureSocket;\n agent.defaultPort = 443;\n return agent;\n}\n\n\nfunction TunnelingAgent(options) {\n var self = this;\n self.options = options || {};\n self.proxyOptions = self.options.proxy || {};\n self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets;\n self.requests = [];\n self.sockets = [];\n\n self.on('free', function onFree(socket, host, port, localAddress) {\n var options = toOptions(host, port, localAddress);\n for (var i = 0, len = self.requests.length; i < len; ++i) {\n var pending = self.requests[i];\n if (pending.host === options.host && pending.port === options.port) {\n // Detect the request to connect same origin server,\n // reuse the connection.\n self.requests.splice(i, 1);\n pending.request.onSocket(socket);\n return;\n }\n }\n socket.destroy();\n self.removeSocket(socket);\n });\n}\nutil.inherits(TunnelingAgent, events.EventEmitter);\n\nTunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) {\n var self = this;\n var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress));\n\n if (self.sockets.length >= this.maxSockets) {\n // We are over limit so we'll add it to the queue.\n self.requests.push(options);\n return;\n }\n\n // If we are under maxSockets create a new one.\n self.createSocket(options, function(socket) {\n socket.on('free', onFree);\n socket.on('close', onCloseOrRemove);\n socket.on('agentRemove', onCloseOrRemove);\n req.onSocket(socket);\n\n function onFree() {\n self.emit('free', socket, options);\n }\n\n function onCloseOrRemove(err) {\n self.removeSocket(socket);\n socket.removeListener('free', onFree);\n socket.removeListener('close', onCloseOrRemove);\n socket.removeListener('agentRemove', onCloseOrRemove);\n }\n });\n};\n\nTunnelingAgent.prototype.createSocket = function createSocket(options, cb) {\n var self = this;\n var placeholder = {};\n self.sockets.push(placeholder);\n\n var connectOptions = mergeOptions({}, self.proxyOptions, {\n method: 'CONNECT',\n path: options.host + ':' + options.port,\n agent: false,\n headers: {\n host: options.host + ':' + options.port\n }\n });\n if (options.localAddress) {\n connectOptions.localAddress = options.localAddress;\n }\n if (connectOptions.proxyAuth) {\n connectOptions.headers = connectOptions.headers || {};\n connectOptions.headers['Proxy-Authorization'] = 'Basic ' +\n new Buffer(connectOptions.proxyAuth).toString('base64');\n }\n\n debug('making CONNECT request');\n var connectReq = self.request(connectOptions);\n connectReq.useChunkedEncodingByDefault = false; // for v0.6\n connectReq.once('response', onResponse); // for v0.6\n connectReq.once('upgrade', onUpgrade); // for v0.6\n connectReq.once('connect', onConnect); // for v0.7 or later\n connectReq.once('error', onError);\n connectReq.end();\n\n function onResponse(res) {\n // Very hacky. This is necessary to avoid http-parser leaks.\n res.upgrade = true;\n }\n\n function onUpgrade(res, socket, head) {\n // Hacky.\n process.nextTick(function() {\n onConnect(res, socket, head);\n });\n }\n\n function onConnect(res, socket, head) {\n connectReq.removeAllListeners();\n socket.removeAllListeners();\n\n if (res.statusCode !== 200) {\n debug('tunneling socket could not be established, statusCode=%d',\n res.statusCode);\n socket.destroy();\n var error = new Error('tunneling socket could not be established, ' +\n 'statusCode=' + res.statusCode);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n if (head.length > 0) {\n debug('got illegal response body from proxy');\n socket.destroy();\n var error = new Error('got illegal response body from proxy');\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n return;\n }\n debug('tunneling connection has established');\n self.sockets[self.sockets.indexOf(placeholder)] = socket;\n return cb(socket);\n }\n\n function onError(cause) {\n connectReq.removeAllListeners();\n\n debug('tunneling socket could not be established, cause=%s\\n',\n cause.message, cause.stack);\n var error = new Error('tunneling socket could not be established, ' +\n 'cause=' + cause.message);\n error.code = 'ECONNRESET';\n options.request.emit('error', error);\n self.removeSocket(placeholder);\n }\n};\n\nTunnelingAgent.prototype.removeSocket = function removeSocket(socket) {\n var pos = this.sockets.indexOf(socket)\n if (pos === -1) {\n return;\n }\n this.sockets.splice(pos, 1);\n\n var pending = this.requests.shift();\n if (pending) {\n // If we have pending requests and a socket gets closed a new one\n // needs to be created to take over in the pool for the one that closed.\n this.createSocket(pending, function(socket) {\n pending.request.onSocket(socket);\n });\n }\n};\n\nfunction createSecureSocket(options, cb) {\n var self = this;\n TunnelingAgent.prototype.createSocket.call(self, options, function(socket) {\n var hostHeader = options.request.getHeader('host');\n var tlsOptions = mergeOptions({}, self.options, {\n socket: socket,\n servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host\n });\n\n // 0 is dummy port for v0.6\n var secureSocket = tls.connect(0, tlsOptions);\n self.sockets[self.sockets.indexOf(socket)] = secureSocket;\n cb(secureSocket);\n });\n}\n\n\nfunction toOptions(host, port, localAddress) {\n if (typeof host === 'string') { // since v0.10\n return {\n host: host,\n port: port,\n localAddress: localAddress\n };\n }\n return host; // for v0.11 or later\n}\n\nfunction mergeOptions(target) {\n for (var i = 1, len = arguments.length; i < len; ++i) {\n var overrides = arguments[i];\n if (typeof overrides === 'object') {\n var keys = Object.keys(overrides);\n for (var j = 0, keyLen = keys.length; j < keyLen; ++j) {\n var k = keys[j];\n if (overrides[k] !== undefined) {\n target[k] = overrides[k];\n }\n }\n }\n }\n return target;\n}\n\n\nvar debug;\nif (process.env.NODE_DEBUG && /\\btunnel\\b/.test(process.env.NODE_DEBUG)) {\n debug = function() {\n var args = Array.prototype.slice.call(arguments);\n if (typeof args[0] === 'string') {\n args[0] = 'TUNNEL: ' + args[0];\n } else {\n args.unshift('TUNNEL:');\n }\n console.error.apply(console, args);\n }\n} else {\n debug = function() {};\n}\nexports.debug = debug; // for test\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar basiccreds_1 = require(\"./handlers/basiccreds\");\nexports.BasicCredentialHandler = basiccreds_1.BasicCredentialHandler;\nvar bearertoken_1 = require(\"./handlers/bearertoken\");\nexports.BearerCredentialHandler = bearertoken_1.BearerCredentialHandler;\nvar ntlm_1 = require(\"./handlers/ntlm\");\nexports.NtlmCredentialHandler = ntlm_1.NtlmCredentialHandler;\nvar personalaccesstoken_1 = require(\"./handlers/personalaccesstoken\");\nexports.PersonalAccessTokenCredentialHandler = personalaccesstoken_1.PersonalAccessTokenCredentialHandler;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst url = require(\"url\");\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst util = require(\"./Util\");\nlet fs;\nlet tunnel;\nvar HttpCodes;\n(function (HttpCodes) {\n HttpCodes[HttpCodes[\"OK\"] = 200] = \"OK\";\n HttpCodes[HttpCodes[\"MultipleChoices\"] = 300] = \"MultipleChoices\";\n HttpCodes[HttpCodes[\"MovedPermanently\"] = 301] = \"MovedPermanently\";\n HttpCodes[HttpCodes[\"ResourceMoved\"] = 302] = \"ResourceMoved\";\n HttpCodes[HttpCodes[\"SeeOther\"] = 303] = \"SeeOther\";\n HttpCodes[HttpCodes[\"NotModified\"] = 304] = \"NotModified\";\n HttpCodes[HttpCodes[\"UseProxy\"] = 305] = \"UseProxy\";\n HttpCodes[HttpCodes[\"SwitchProxy\"] = 306] = \"SwitchProxy\";\n HttpCodes[HttpCodes[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n HttpCodes[HttpCodes[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n HttpCodes[HttpCodes[\"BadRequest\"] = 400] = \"BadRequest\";\n HttpCodes[HttpCodes[\"Unauthorized\"] = 401] = \"Unauthorized\";\n HttpCodes[HttpCodes[\"PaymentRequired\"] = 402] = \"PaymentRequired\";\n HttpCodes[HttpCodes[\"Forbidden\"] = 403] = \"Forbidden\";\n HttpCodes[HttpCodes[\"NotFound\"] = 404] = \"NotFound\";\n HttpCodes[HttpCodes[\"MethodNotAllowed\"] = 405] = \"MethodNotAllowed\";\n HttpCodes[HttpCodes[\"NotAcceptable\"] = 406] = \"NotAcceptable\";\n HttpCodes[HttpCodes[\"ProxyAuthenticationRequired\"] = 407] = \"ProxyAuthenticationRequired\";\n HttpCodes[HttpCodes[\"RequestTimeout\"] = 408] = \"RequestTimeout\";\n HttpCodes[HttpCodes[\"Conflict\"] = 409] = \"Conflict\";\n HttpCodes[HttpCodes[\"Gone\"] = 410] = \"Gone\";\n HttpCodes[HttpCodes[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\n HttpCodes[HttpCodes[\"InternalServerError\"] = 500] = \"InternalServerError\";\n HttpCodes[HttpCodes[\"NotImplemented\"] = 501] = \"NotImplemented\";\n HttpCodes[HttpCodes[\"BadGateway\"] = 502] = \"BadGateway\";\n HttpCodes[HttpCodes[\"ServiceUnavailable\"] = 503] = \"ServiceUnavailable\";\n HttpCodes[HttpCodes[\"GatewayTimeout\"] = 504] = \"GatewayTimeout\";\n})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}));\nconst HttpRedirectCodes = [HttpCodes.MovedPermanently, HttpCodes.ResourceMoved, HttpCodes.SeeOther, HttpCodes.TemporaryRedirect, HttpCodes.PermanentRedirect];\nconst HttpResponseRetryCodes = [HttpCodes.BadGateway, HttpCodes.ServiceUnavailable, HttpCodes.GatewayTimeout];\nconst NetworkRetryErrors = ['ECONNRESET', 'ENOTFOUND', 'ESOCKETTIMEDOUT', 'ETIMEDOUT', 'ECONNREFUSED'];\nconst RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD'];\nconst ExponentialBackoffCeiling = 10;\nconst ExponentialBackoffTimeSlice = 5;\nclass HttpClientResponse {\n constructor(message) {\n this.message = message;\n }\n readBody() {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n let buffer = Buffer.alloc(0);\n const encodingCharset = util.obtainContentCharset(this);\n // Extract Encoding from header: 'content-encoding'\n // Match `gzip`, `gzip, deflate` variations of GZIP encoding\n const contentEncoding = this.message.headers['content-encoding'] || '';\n const isGzippedEncoded = new RegExp('(gzip$)|(gzip, *deflate)').test(contentEncoding);\n this.message.on('data', function (data) {\n const chunk = (typeof data === 'string') ? Buffer.from(data, encodingCharset) : data;\n buffer = Buffer.concat([buffer, chunk]);\n }).on('end', function () {\n return __awaiter(this, void 0, void 0, function* () {\n if (isGzippedEncoded) { // Process GZipped Response Body HERE\n const gunzippedBody = yield util.decompressGzippedContent(buffer, encodingCharset);\n resolve(gunzippedBody);\n }\n else {\n resolve(buffer.toString(encodingCharset));\n }\n });\n }).on('error', function (err) {\n reject(err);\n });\n }));\n }\n}\nexports.HttpClientResponse = HttpClientResponse;\nfunction isHttps(requestUrl) {\n let parsedUrl = url.parse(requestUrl);\n return parsedUrl.protocol === 'https:';\n}\nexports.isHttps = isHttps;\nvar EnvironmentVariables;\n(function (EnvironmentVariables) {\n EnvironmentVariables[\"HTTP_PROXY\"] = \"HTTP_PROXY\";\n EnvironmentVariables[\"HTTPS_PROXY\"] = \"HTTPS_PROXY\";\n EnvironmentVariables[\"NO_PROXY\"] = \"NO_PROXY\";\n})(EnvironmentVariables || (EnvironmentVariables = {}));\nclass HttpClient {\n constructor(userAgent, handlers, requestOptions) {\n this._ignoreSslError = false;\n this._allowRedirects = true;\n this._allowRedirectDowngrade = false;\n this._maxRedirects = 50;\n this._allowRetries = false;\n this._maxRetries = 1;\n this._keepAlive = false;\n this._disposed = false;\n this.userAgent = userAgent;\n this.handlers = handlers || [];\n let no_proxy = process.env[EnvironmentVariables.NO_PROXY];\n if (no_proxy) {\n this._httpProxyBypassHosts = [];\n no_proxy.split(',').forEach(bypass => {\n this._httpProxyBypassHosts.push(util.buildProxyBypassRegexFromEnv(bypass));\n });\n }\n this.requestOptions = requestOptions;\n if (requestOptions) {\n if (requestOptions.ignoreSslError != null) {\n this._ignoreSslError = requestOptions.ignoreSslError;\n }\n this._socketTimeout = requestOptions.socketTimeout;\n this._httpProxy = requestOptions.proxy;\n if (requestOptions.proxy && requestOptions.proxy.proxyBypassHosts) {\n this._httpProxyBypassHosts = [];\n requestOptions.proxy.proxyBypassHosts.forEach(bypass => {\n this._httpProxyBypassHosts.push(new RegExp(bypass, 'i'));\n });\n }\n this._certConfig = requestOptions.cert;\n if (this._certConfig) {\n // If using cert, need fs\n fs = require('fs');\n // cache the cert content into memory, so we don't have to read it from disk every time\n if (this._certConfig.caFile && fs.existsSync(this._certConfig.caFile)) {\n this._ca = fs.readFileSync(this._certConfig.caFile, 'utf8');\n }\n if (this._certConfig.certFile && fs.existsSync(this._certConfig.certFile)) {\n this._cert = fs.readFileSync(this._certConfig.certFile, 'utf8');\n }\n if (this._certConfig.keyFile && fs.existsSync(this._certConfig.keyFile)) {\n this._key = fs.readFileSync(this._certConfig.keyFile, 'utf8');\n }\n }\n if (requestOptions.allowRedirects != null) {\n this._allowRedirects = requestOptions.allowRedirects;\n }\n if (requestOptions.allowRedirectDowngrade != null) {\n this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade;\n }\n if (requestOptions.maxRedirects != null) {\n this._maxRedirects = Math.max(requestOptions.maxRedirects, 0);\n }\n if (requestOptions.keepAlive != null) {\n this._keepAlive = requestOptions.keepAlive;\n }\n if (requestOptions.allowRetries != null) {\n this._allowRetries = requestOptions.allowRetries;\n }\n if (requestOptions.maxRetries != null) {\n this._maxRetries = requestOptions.maxRetries;\n }\n }\n }\n options(requestUrl, additionalHeaders) {\n return this.request('OPTIONS', requestUrl, null, additionalHeaders || {});\n }\n get(requestUrl, additionalHeaders) {\n return this.request('GET', requestUrl, null, additionalHeaders || {});\n }\n del(requestUrl, additionalHeaders) {\n return this.request('DELETE', requestUrl, null, additionalHeaders || {});\n }\n post(requestUrl, data, additionalHeaders) {\n return this.request('POST', requestUrl, data, additionalHeaders || {});\n }\n patch(requestUrl, data, additionalHeaders) {\n return this.request('PATCH', requestUrl, data, additionalHeaders || {});\n }\n put(requestUrl, data, additionalHeaders) {\n return this.request('PUT', requestUrl, data, additionalHeaders || {});\n }\n head(requestUrl, additionalHeaders) {\n return this.request('HEAD', requestUrl, null, additionalHeaders || {});\n }\n sendStream(verb, requestUrl, stream, additionalHeaders) {\n return this.request(verb, requestUrl, stream, additionalHeaders);\n }\n /**\n * Makes a raw http request.\n * All other methods such as get, post, patch, and request ultimately call this.\n * Prefer get, del, post and patch\n */\n request(verb, requestUrl, data, headers) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._disposed) {\n throw new Error(\"Client has already been disposed.\");\n }\n let parsedUrl = url.parse(requestUrl);\n let info = this._prepareRequest(verb, parsedUrl, headers);\n // Only perform retries on reads since writes may not be idempotent.\n let maxTries = (this._allowRetries && RetryableHttpVerbs.indexOf(verb) != -1) ? this._maxRetries + 1 : 1;\n let numTries = 0;\n let response;\n while (numTries < maxTries) {\n try {\n response = yield this.requestRaw(info, data);\n }\n catch (err) {\n numTries++;\n if (err && err.code && NetworkRetryErrors.indexOf(err.code) > -1 && numTries < maxTries) {\n yield this._performExponentialBackoff(numTries);\n continue;\n }\n throw err;\n }\n // Check if it's an authentication challenge\n if (response && response.message && response.message.statusCode === HttpCodes.Unauthorized) {\n let authenticationHandler;\n for (let i = 0; i < this.handlers.length; i++) {\n if (this.handlers[i].canHandleAuthentication(response)) {\n authenticationHandler = this.handlers[i];\n break;\n }\n }\n if (authenticationHandler) {\n return authenticationHandler.handleAuthentication(this, info, data);\n }\n else {\n // We have received an unauthorized response but have no handlers to handle it.\n // Let the response return to the caller.\n return response;\n }\n }\n let redirectsRemaining = this._maxRedirects;\n while (HttpRedirectCodes.indexOf(response.message.statusCode) != -1\n && this._allowRedirects\n && redirectsRemaining > 0) {\n const redirectUrl = response.message.headers[\"location\"];\n if (!redirectUrl) {\n // if there's no location to redirect to, we won't\n break;\n }\n let parsedRedirectUrl = url.parse(redirectUrl);\n if (parsedUrl.protocol == 'https:' && parsedUrl.protocol != parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) {\n throw new Error(\"Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.\");\n }\n // we need to finish reading the response before reassigning response\n // which will leak the open socket.\n yield response.readBody();\n // let's make the request with the new redirectUrl\n info = this._prepareRequest(verb, parsedRedirectUrl, headers);\n response = yield this.requestRaw(info, data);\n redirectsRemaining--;\n }\n if (HttpResponseRetryCodes.indexOf(response.message.statusCode) == -1) {\n // If not a retry code, return immediately instead of retrying\n return response;\n }\n numTries += 1;\n if (numTries < maxTries) {\n yield response.readBody();\n yield this._performExponentialBackoff(numTries);\n }\n }\n return response;\n });\n }\n /**\n * Needs to be called if keepAlive is set to true in request options.\n */\n dispose() {\n if (this._agent) {\n this._agent.destroy();\n }\n this._disposed = true;\n }\n /**\n * Raw request.\n * @param info\n * @param data\n */\n requestRaw(info, data) {\n return new Promise((resolve, reject) => {\n let callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n resolve(res);\n };\n this.requestRawWithCallback(info, data, callbackForResult);\n });\n }\n /**\n * Raw request with callback.\n * @param info\n * @param data\n * @param onResult\n */\n requestRawWithCallback(info, data, onResult) {\n let socket;\n if (typeof (data) === 'string') {\n info.options.headers[\"Content-Length\"] = Buffer.byteLength(data, 'utf8');\n }\n let callbackCalled = false;\n let handleResult = (err, res) => {\n if (!callbackCalled) {\n callbackCalled = true;\n onResult(err, res);\n }\n };\n let req = info.httpModule.request(info.options, (msg) => {\n let res = new HttpClientResponse(msg);\n handleResult(null, res);\n });\n req.on('socket', (sock) => {\n socket = sock;\n });\n // If we ever get disconnected, we want the socket to timeout eventually\n req.setTimeout(this._socketTimeout || 3 * 60000, () => {\n if (socket) {\n socket.destroy();\n }\n handleResult(new Error('Request timeout: ' + info.options.path), null);\n });\n req.on('error', function (err) {\n // err has statusCode property\n // res should have headers\n handleResult(err, null);\n });\n if (data && typeof (data) === 'string') {\n req.write(data, 'utf8');\n }\n if (data && typeof (data) !== 'string') {\n data.on('close', function () {\n req.end();\n });\n data.pipe(req);\n }\n else {\n req.end();\n }\n }\n _prepareRequest(method, requestUrl, headers) {\n const info = {};\n info.parsedUrl = requestUrl;\n const usingSsl = info.parsedUrl.protocol === 'https:';\n info.httpModule = usingSsl ? https : http;\n const defaultPort = usingSsl ? 443 : 80;\n info.options = {};\n info.options.host = info.parsedUrl.hostname;\n info.options.port = info.parsedUrl.port ? parseInt(info.parsedUrl.port) : defaultPort;\n info.options.path = (info.parsedUrl.pathname || '') + (info.parsedUrl.search || '');\n info.options.method = method;\n info.options.timeout = (this.requestOptions && this.requestOptions.socketTimeout) || this._socketTimeout;\n this._socketTimeout = info.options.timeout;\n info.options.headers = this._mergeHeaders(headers);\n if (this.userAgent != null) {\n info.options.headers[\"user-agent\"] = this.userAgent;\n }\n info.options.agent = this._getAgent(info.parsedUrl);\n // gives handlers an opportunity to participate\n if (this.handlers && !this._isPresigned(url.format(requestUrl))) {\n this.handlers.forEach((handler) => {\n handler.prepareRequest(info.options);\n });\n }\n return info;\n }\n _isPresigned(requestUrl) {\n if (this.requestOptions && this.requestOptions.presignedUrlPatterns) {\n const patterns = this.requestOptions.presignedUrlPatterns;\n for (let i = 0; i < patterns.length; i++) {\n if (requestUrl.match(patterns[i])) {\n return true;\n }\n }\n }\n return false;\n }\n _mergeHeaders(headers) {\n const lowercaseKeys = obj => Object.keys(obj).reduce((c, k) => (c[k.toLowerCase()] = obj[k], c), {});\n if (this.requestOptions && this.requestOptions.headers) {\n return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers));\n }\n return lowercaseKeys(headers || {});\n }\n _getAgent(parsedUrl) {\n let agent;\n let proxy = this._getProxy(parsedUrl);\n let useProxy = proxy.proxyUrl && proxy.proxyUrl.hostname && !this._isMatchInBypassProxyList(parsedUrl);\n if (this._keepAlive && useProxy) {\n agent = this._proxyAgent;\n }\n if (this._keepAlive && !useProxy) {\n agent = this._agent;\n }\n // if agent is already assigned use that agent.\n if (!!agent) {\n return agent;\n }\n const usingSsl = parsedUrl.protocol === 'https:';\n let maxSockets = 100;\n if (!!this.requestOptions) {\n maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets;\n }\n if (useProxy) {\n // If using proxy, need tunnel\n if (!tunnel) {\n tunnel = require('tunnel');\n }\n const agentOptions = {\n maxSockets: maxSockets,\n keepAlive: this._keepAlive,\n proxy: {\n proxyAuth: proxy.proxyAuth,\n host: proxy.proxyUrl.hostname,\n port: proxy.proxyUrl.port\n },\n };\n let tunnelAgent;\n const overHttps = proxy.proxyUrl.protocol === 'https:';\n if (usingSsl) {\n tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp;\n }\n else {\n tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp;\n }\n agent = tunnelAgent(agentOptions);\n this._proxyAgent = agent;\n }\n // if reusing agent across request and tunneling agent isn't assigned create a new agent\n if (this._keepAlive && !agent) {\n const options = { keepAlive: this._keepAlive, maxSockets: maxSockets };\n agent = usingSsl ? new https.Agent(options) : new http.Agent(options);\n this._agent = agent;\n }\n // if not using private agent and tunnel agent isn't setup then use global agent\n if (!agent) {\n agent = usingSsl ? https.globalAgent : http.globalAgent;\n }\n if (usingSsl && this._ignoreSslError) {\n // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process\n // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options\n // we have to cast it to any and change it directly\n agent.options = Object.assign(agent.options || {}, { rejectUnauthorized: false });\n }\n if (usingSsl && this._certConfig) {\n agent.options = Object.assign(agent.options || {}, { ca: this._ca, cert: this._cert, key: this._key, passphrase: this._certConfig.passphrase });\n }\n return agent;\n }\n _getProxy(parsedUrl) {\n let usingSsl = parsedUrl.protocol === 'https:';\n let proxyConfig = this._httpProxy;\n // fallback to http_proxy and https_proxy env\n let https_proxy = process.env[EnvironmentVariables.HTTPS_PROXY];\n let http_proxy = process.env[EnvironmentVariables.HTTP_PROXY];\n if (!proxyConfig) {\n if (https_proxy && usingSsl) {\n proxyConfig = {\n proxyUrl: https_proxy\n };\n }\n else if (http_proxy) {\n proxyConfig = {\n proxyUrl: http_proxy\n };\n }\n }\n let proxyUrl;\n let proxyAuth;\n if (proxyConfig) {\n if (proxyConfig.proxyUrl.length > 0) {\n proxyUrl = url.parse(proxyConfig.proxyUrl);\n }\n if (proxyConfig.proxyUsername || proxyConfig.proxyPassword) {\n proxyAuth = proxyConfig.proxyUsername + \":\" + proxyConfig.proxyPassword;\n }\n }\n return { proxyUrl: proxyUrl, proxyAuth: proxyAuth };\n }\n _isMatchInBypassProxyList(parsedUrl) {\n if (!this._httpProxyBypassHosts) {\n return false;\n }\n let bypass = false;\n this._httpProxyBypassHosts.forEach(bypassHost => {\n if (bypassHost.test(parsedUrl.href)) {\n bypass = true;\n }\n });\n return bypass;\n }\n _performExponentialBackoff(retryNumber) {\n retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber);\n const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber);\n return new Promise(resolve => setTimeout(() => resolve(), ms));\n }\n}\nexports.HttpClient = HttpClient;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst httpm = require(\"./HttpClient\");\nconst util = require(\"./Util\");\nclass RestClient {\n /**\n * Creates an instance of the RestClient\n * @constructor\n * @param {string} userAgent - userAgent for requests\n * @param {string} baseUrl - (Optional) If not specified, use full urls per request. If supplied and a function passes a relative url, it will be appended to this\n * @param {ifm.IRequestHandler[]} handlers - handlers are typically auth handlers (basic, bearer, ntlm supplied)\n * @param {ifm.IRequestOptions} requestOptions - options for each http requests (http proxy setting, socket timeout)\n */\n constructor(userAgent, baseUrl, handlers, requestOptions) {\n this.client = new httpm.HttpClient(userAgent, handlers, requestOptions);\n if (baseUrl) {\n this._baseUrl = baseUrl;\n }\n }\n /**\n * Gets a resource from an endpoint\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} requestUrl - fully qualified or relative url\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n options(requestUrl, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(requestUrl, this._baseUrl);\n let res = yield this.client.options(url, this._headersFromOptions(options));\n return this.processResponse(res, options);\n });\n }\n /**\n * Gets a resource from an endpoint\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} resource - fully qualified url or relative path\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n get(resource, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(resource, this._baseUrl, (options || {}).queryParameters);\n let res = yield this.client.get(url, this._headersFromOptions(options));\n return this.processResponse(res, options);\n });\n }\n /**\n * Deletes a resource from an endpoint\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} resource - fully qualified or relative url\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n del(resource, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(resource, this._baseUrl, (options || {}).queryParameters);\n let res = yield this.client.del(url, this._headersFromOptions(options));\n return this.processResponse(res, options);\n });\n }\n /**\n * Creates resource(s) from an endpoint\n * T type of object returned.\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} resource - fully qualified or relative url\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n create(resource, resources, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(resource, this._baseUrl);\n let headers = this._headersFromOptions(options, true);\n let data = JSON.stringify(resources, null, 2);\n let res = yield this.client.post(url, data, headers);\n return this.processResponse(res, options);\n });\n }\n /**\n * Updates resource(s) from an endpoint\n * T type of object returned.\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} resource - fully qualified or relative url\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n update(resource, resources, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(resource, this._baseUrl);\n let headers = this._headersFromOptions(options, true);\n let data = JSON.stringify(resources, null, 2);\n let res = yield this.client.patch(url, data, headers);\n return this.processResponse(res, options);\n });\n }\n /**\n * Replaces resource(s) from an endpoint\n * T type of object returned.\n * Be aware that not found returns a null. Other error conditions reject the promise\n * @param {string} resource - fully qualified or relative url\n * @param {IRequestOptions} requestOptions - (optional) requestOptions object\n */\n replace(resource, resources, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(resource, this._baseUrl);\n let headers = this._headersFromOptions(options, true);\n let data = JSON.stringify(resources, null, 2);\n let res = yield this.client.put(url, data, headers);\n return this.processResponse(res, options);\n });\n }\n uploadStream(verb, requestUrl, stream, options) {\n return __awaiter(this, void 0, void 0, function* () {\n let url = util.getUrl(requestUrl, this._baseUrl);\n let headers = this._headersFromOptions(options, true);\n let res = yield this.client.sendStream(verb, url, stream, headers);\n return this.processResponse(res, options);\n });\n }\n _headersFromOptions(options, contentType) {\n options = options || {};\n let headers = options.additionalHeaders || {};\n headers[\"Accept\"] = options.acceptHeader || \"application/json\";\n if (contentType) {\n let found = false;\n for (let header in headers) {\n if (header.toLowerCase() == \"content-type\") {\n found = true;\n }\n }\n if (!found) {\n headers[\"Content-Type\"] = 'application/json; charset=utf-8';\n }\n }\n return headers;\n }\n static dateTimeDeserializer(key, value) {\n if (typeof value === 'string') {\n let a = new Date(value);\n if (!isNaN(a.valueOf())) {\n return a;\n }\n }\n return value;\n }\n processResponse(res, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n const statusCode = res.message.statusCode;\n const response = {\n statusCode: statusCode,\n result: null,\n headers: {}\n };\n // not found leads to null obj returned\n if (statusCode == httpm.HttpCodes.NotFound) {\n resolve(response);\n }\n let obj;\n let contents;\n // get the result from the body\n try {\n contents = yield res.readBody();\n if (contents && contents.length > 0) {\n if (options && options.deserializeDates) {\n obj = JSON.parse(contents, RestClient.dateTimeDeserializer);\n }\n else {\n obj = JSON.parse(contents);\n }\n if (options && options.responseProcessor) {\n response.result = options.responseProcessor(obj);\n }\n else {\n response.result = obj;\n }\n }\n response.headers = res.message.headers;\n }\n catch (err) {\n // Invalid resource (contents not json); leaving result obj null\n }\n // note that 3xx redirects are handled by the http layer.\n if (statusCode > 299) {\n let msg;\n // if exception/error in body, attempt to get better error\n if (obj && obj.message) {\n msg = obj.message;\n }\n else if (contents && contents.length > 0) {\n // it may be the case that the exception is in the body message as string\n msg = contents;\n }\n else {\n msg = \"Failed request: (\" + statusCode + \")\";\n }\n let err = new Error(msg);\n // attach statusCode and body obj (if available) to the error object\n err['statusCode'] = statusCode;\n if (response.result) {\n err['result'] = response.result;\n }\n reject(err);\n }\n else {\n resolve(response);\n }\n }));\n });\n }\n}\nexports.RestClient = RestClient;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst qs = require(\"qs\");\nconst url = require(\"url\");\nconst path = require(\"path\");\nconst zlib = require(\"zlib\");\n/**\n * creates an url from a request url and optional base url (http://server:8080)\n * @param {string} resource - a fully qualified url or relative path\n * @param {string} baseUrl - an optional baseUrl (http://server:8080)\n * @param {IRequestOptions} options - an optional options object, could include QueryParameters e.g.\n * @return {string} - resultant url\n */\nfunction getUrl(resource, baseUrl, queryParams) {\n const pathApi = path.posix || path;\n let requestUrl = '';\n if (!baseUrl) {\n requestUrl = resource;\n }\n else if (!resource) {\n requestUrl = baseUrl;\n }\n else {\n const base = url.parse(baseUrl);\n const resultantUrl = url.parse(resource);\n // resource (specific per request) elements take priority\n resultantUrl.protocol = resultantUrl.protocol || base.protocol;\n resultantUrl.auth = resultantUrl.auth || base.auth;\n resultantUrl.host = resultantUrl.host || base.host;\n resultantUrl.pathname = pathApi.resolve(base.pathname, resultantUrl.pathname);\n if (!resultantUrl.pathname.endsWith('/') && resource.endsWith('/')) {\n resultantUrl.pathname += '/';\n }\n requestUrl = url.format(resultantUrl);\n }\n return queryParams ?\n getUrlWithParsedQueryParams(requestUrl, queryParams) :\n requestUrl;\n}\nexports.getUrl = getUrl;\n/**\n *\n * @param {string} requestUrl\n * @param {IRequestQueryParams} queryParams\n * @return {string} - Request's URL with Query Parameters appended/parsed.\n */\nfunction getUrlWithParsedQueryParams(requestUrl, queryParams) {\n const url = requestUrl.replace(/\\?$/g, ''); // Clean any extra end-of-string \"?\" character\n const parsedQueryParams = qs.stringify(queryParams.params, buildParamsStringifyOptions(queryParams));\n return `${url}${parsedQueryParams}`;\n}\n/**\n * Build options for QueryParams Stringifying.\n *\n * @param {IRequestQueryParams} queryParams\n * @return {object}\n */\nfunction buildParamsStringifyOptions(queryParams) {\n let options = {\n addQueryPrefix: true,\n delimiter: (queryParams.options || {}).separator || '&',\n allowDots: (queryParams.options || {}).shouldAllowDots || false,\n arrayFormat: (queryParams.options || {}).arrayFormat || 'repeat',\n encodeValuesOnly: (queryParams.options || {}).shouldOnlyEncodeValues || true\n };\n return options;\n}\n/**\n * Decompress/Decode gzip encoded JSON\n * Using Node.js built-in zlib module\n *\n * @param {Buffer} buffer\n * @param {string} charset? - optional; defaults to 'utf-8'\n * @return {Promise}\n */\nfunction decompressGzippedContent(buffer, charset) {\n return __awaiter(this, void 0, void 0, function* () {\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n zlib.gunzip(buffer, function (error, buffer) {\n if (error) {\n reject(error);\n }\n resolve(buffer.toString(charset || 'utf-8'));\n });\n }));\n });\n}\nexports.decompressGzippedContent = decompressGzippedContent;\n/**\n * Builds a RegExp to test urls against for deciding\n * wether to bypass proxy from an entry of the\n * environment variable setting NO_PROXY\n *\n * @param {string} bypass\n * @return {RegExp}\n */\nfunction buildProxyBypassRegexFromEnv(bypass) {\n try {\n // We need to keep this around for back-compat purposes\n return new RegExp(bypass, 'i');\n }\n catch (err) {\n if (err instanceof SyntaxError && (bypass || \"\").startsWith(\"*\")) {\n let wildcardEscaped = bypass.replace('*', '(.*)');\n return new RegExp(wildcardEscaped, 'i');\n }\n throw err;\n }\n}\nexports.buildProxyBypassRegexFromEnv = buildProxyBypassRegexFromEnv;\n/**\n * Obtain Response's Content Charset.\n * Through inspecting `content-type` response header.\n * It Returns 'utf-8' if NO charset specified/matched.\n *\n * @param {IHttpClientResponse} response\n * @return {string} - Content Encoding Charset; Default=utf-8\n */\nfunction obtainContentCharset(response) {\n // Find the charset, if specified.\n // Search for the `charset=CHARSET` string, not including `;,\\r\\n`\n // Example: content-type: 'application/json;charset=utf-8'\n // |__ matches would be ['charset=utf-8', 'utf-8', index: 18, input: 'application/json; charset=utf-8']\n // |_____ matches[1] would have the charset :tada: , in our example it's utf-8\n // However, if the matches Array was empty or no charset found, 'utf-8' would be returned by default.\n const nodeSupportedEncodings = ['ascii', 'utf8', 'utf16le', 'ucs2', 'base64', 'binary', 'hex'];\n const contentType = response.message.headers['content-type'] || '';\n const matches = contentType.match(/charset=([^;,\\r\\n]+)/i);\n return (matches && matches[1] && nodeSupportedEncodings.indexOf(matches[1]) != -1) ? matches[1] : 'utf-8';\n}\nexports.obtainContentCharset = obtainContentCharset;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass BasicCredentialHandler {\n constructor(username, password, allowCrossOriginAuthentication) {\n this.username = username;\n this.password = password;\n this.allowCrossOriginAuthentication = allowCrossOriginAuthentication;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!this.origin) {\n this.origin = options.host;\n }\n // If this is a redirection, don't set the Authorization header\n if (this.origin === options.host || this.allowCrossOriginAuthentication) {\n options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`;\n }\n options.headers['X-TFS-FedAuthRedirect'] = 'Suppress';\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BasicCredentialHandler = BasicCredentialHandler;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass BearerCredentialHandler {\n constructor(token, allowCrossOriginAuthentication) {\n this.token = token;\n this.allowCrossOriginAuthentication = allowCrossOriginAuthentication;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!this.origin) {\n this.origin = options.host;\n }\n // If this is a redirection, don't set the Authorization header\n if (this.origin === options.host || this.allowCrossOriginAuthentication) {\n options.headers['Authorization'] = `Bearer ${this.token}`;\n }\n options.headers['X-TFS-FedAuthRedirect'] = 'Suppress';\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.BearerCredentialHandler = BearerCredentialHandler;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst _ = require(\"underscore\");\nconst ntlm = require(\"../opensource/Node-SMB/lib/ntlm\");\nclass NtlmCredentialHandler {\n constructor(username, password, workstation, domain) {\n this._ntlmOptions = {};\n this._ntlmOptions.username = username;\n this._ntlmOptions.password = password;\n this._ntlmOptions.domain = domain || '';\n this._ntlmOptions.workstation = workstation || '';\n }\n prepareRequest(options) {\n // No headers or options need to be set. We keep the credentials on the handler itself.\n // If a (proxy) agent is set, remove it as we don't support proxy for NTLM at this time\n if (options.agent) {\n delete options.agent;\n }\n }\n canHandleAuthentication(response) {\n if (response && response.message && response.message.statusCode === 401) {\n // Ensure that we're talking NTLM here\n // Once we have the www-authenticate header, split it so we can ensure we can talk NTLM\n const wwwAuthenticate = response.message.headers['www-authenticate'];\n return wwwAuthenticate && (wwwAuthenticate.split(', ').indexOf(\"NTLM\") >= 0);\n }\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return new Promise((resolve, reject) => {\n const callbackForResult = function (err, res) {\n if (err) {\n reject(err);\n }\n // We have to readbody on the response before continuing otherwise there is a hang.\n res.readBody().then(() => {\n resolve(res);\n });\n };\n this.handleAuthenticationPrivate(httpClient, requestInfo, objs, callbackForResult);\n });\n }\n handleAuthenticationPrivate(httpClient, requestInfo, objs, finalCallback) {\n // Set up the headers for NTLM authentication\n requestInfo.options = _.extend(requestInfo.options, {\n username: this._ntlmOptions.username,\n password: this._ntlmOptions.password,\n domain: this._ntlmOptions.domain,\n workstation: this._ntlmOptions.workstation\n });\n requestInfo.options.agent = httpClient.isSsl ?\n new https.Agent({ keepAlive: true }) :\n new http.Agent({ keepAlive: true });\n let self = this;\n // The following pattern of sending the type1 message following immediately (in a setImmediate) is\n // critical for the NTLM exchange to happen. If we removed setImmediate (or call in a different manner)\n // the NTLM exchange will always fail with a 401.\n this.sendType1Message(httpClient, requestInfo, objs, function (err, res) {\n if (err) {\n return finalCallback(err, null, null);\n }\n /// We have to readbody on the response before continuing otherwise there is a hang.\n res.readBody().then(() => {\n // It is critical that we have setImmediate here due to how connection requests are queued.\n // If setImmediate is removed then the NTLM handshake will not work.\n // setImmediate allows us to queue a second request on the same connection. If this second\n // request is not queued on the connection when the first request finishes then node closes\n // the connection. NTLM requires both requests to be on the same connection so we need this.\n setImmediate(function () {\n self.sendType3Message(httpClient, requestInfo, objs, res, finalCallback);\n });\n });\n });\n }\n // The following method is an adaptation of code found at https://github.com/SamDecrock/node-http-ntlm/blob/master/httpntlm.js\n sendType1Message(httpClient, requestInfo, objs, finalCallback) {\n const type1HexBuffer = ntlm.encodeType1(this._ntlmOptions.workstation, this._ntlmOptions.domain);\n const type1msg = `NTLM ${type1HexBuffer.toString('base64')}`;\n const type1options = {\n headers: {\n 'Connection': 'keep-alive',\n 'Authorization': type1msg\n },\n timeout: requestInfo.options.timeout || 0,\n agent: requestInfo.httpModule,\n };\n const type1info = {};\n type1info.httpModule = requestInfo.httpModule;\n type1info.parsedUrl = requestInfo.parsedUrl;\n type1info.options = _.extend(type1options, _.omit(requestInfo.options, 'headers'));\n return httpClient.requestRawWithCallback(type1info, objs, finalCallback);\n }\n // The following method is an adaptation of code found at https://github.com/SamDecrock/node-http-ntlm/blob/master/httpntlm.js\n sendType3Message(httpClient, requestInfo, objs, res, callback) {\n if (!res.message.headers && !res.message.headers['www-authenticate']) {\n throw new Error('www-authenticate not found on response of second request');\n }\n /**\n * Server will respond with challenge/nonce\n * assigned to response's \"WWW-AUTHENTICATE\" header\n * and should adhere to RegExp /^NTLM\\s+(.+?)(,|\\s+|$)/\n */\n const serverNonceRegex = /^NTLM\\s+(.+?)(,|\\s+|$)/;\n const serverNonce = Buffer.from((res.message.headers['www-authenticate'].match(serverNonceRegex) || [])[1], 'base64');\n let type2msg;\n /**\n * Wrap decoding the Server's challenge/nonce in\n * try-catch block to throw more comprehensive\n * Error with clear message to consumer\n */\n try {\n type2msg = ntlm.decodeType2(serverNonce);\n }\n catch (error) {\n throw new Error(`Decoding Server's Challenge to Obtain Type2Message failed with error: ${error.message}`);\n }\n const type3msg = ntlm.encodeType3(this._ntlmOptions.username, this._ntlmOptions.workstation, this._ntlmOptions.domain, type2msg, this._ntlmOptions.password).toString('base64');\n const type3options = {\n headers: {\n 'Authorization': `NTLM ${type3msg}`,\n 'Connection': 'Close'\n },\n agent: requestInfo.httpModule,\n };\n const type3info = {};\n type3info.httpModule = requestInfo.httpModule;\n type3info.parsedUrl = requestInfo.parsedUrl;\n type3options.headers = _.extend(type3options.headers, requestInfo.options.headers);\n type3info.options = _.extend(type3options, _.omit(requestInfo.options, 'headers'));\n return httpClient.requestRawWithCallback(type3info, objs, callback);\n }\n}\nexports.NtlmCredentialHandler = NtlmCredentialHandler;\n","\"use strict\";\n// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass PersonalAccessTokenCredentialHandler {\n constructor(token, allowCrossOriginAuthentication) {\n this.token = token;\n this.allowCrossOriginAuthentication = allowCrossOriginAuthentication;\n }\n // currently implements pre-authorization\n // TODO: support preAuth = false where it hooks on 401\n prepareRequest(options) {\n if (!this.origin) {\n this.origin = options.host;\n }\n // If this is a redirection, don't set the Authorization header\n if (this.origin === options.host || this.allowCrossOriginAuthentication) {\n options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`;\n }\n options.headers['X-TFS-FedAuthRedirect'] = 'Suppress';\n }\n // This handler cannot handle 401\n canHandleAuthentication(response) {\n return false;\n }\n handleAuthentication(httpClient, requestInfo, objs) {\n return null;\n }\n}\nexports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler;\n","var crypto = require('crypto');\n\nfunction zeroextend(str, len)\n{\n while (str.length < len)\n str = '0' + str;\n return (str);\n}\n\n/*\n * Fix (odd) parity bits in a 64-bit DES key.\n */\nfunction oddpar(buf)\n{\n for (var j = 0; j < buf.length; j++) {\n var par = 1;\n for (var i = 1; i < 8; i++) {\n par = (par + ((buf[j] >> i) & 1)) % 2;\n }\n buf[j] |= par & 1;\n }\n return buf;\n}\n\n/*\n * Expand a 56-bit key buffer to the full 64-bits for DES.\n *\n * Based on code sample in:\n * http://www.innovation.ch/personal/ronald/ntlm.html\n */\nfunction expandkey(key56)\n{\n var key64 = new Buffer(8);\n\n key64[0] = key56[0] & 0xFE;\n key64[1] = ((key56[0] << 7) & 0xFF) | (key56[1] >> 1);\n key64[2] = ((key56[1] << 6) & 0xFF) | (key56[2] >> 2);\n key64[3] = ((key56[2] << 5) & 0xFF) | (key56[3] >> 3);\n key64[4] = ((key56[3] << 4) & 0xFF) | (key56[4] >> 4);\n key64[5] = ((key56[4] << 3) & 0xFF) | (key56[5] >> 5);\n key64[6] = ((key56[5] << 2) & 0xFF) | (key56[6] >> 6);\n key64[7] = (key56[6] << 1) & 0xFF;\n\n return key64;\n}\n\n/*\n * Convert a binary string to a hex string\n */\nfunction bintohex(bin)\n{\n var buf = (Buffer.isBuffer(buf) ? buf : new Buffer(bin, 'binary'));\n var str = buf.toString('hex').toUpperCase();\n return zeroextend(str, 32);\n}\n\n\nmodule.exports.zeroextend = zeroextend;\nmodule.exports.oddpar = oddpar;\nmodule.exports.expandkey = expandkey;\nmodule.exports.bintohex = bintohex;\n","var log = console.log;\nvar crypto = require('crypto');\nvar $ = require('./common');\nvar lmhashbuf = require('./smbhash').lmhashbuf;\nvar nthashbuf = require('./smbhash').nthashbuf;\n\n\nfunction encodeType1(hostname, ntdomain) {\n hostname = hostname.toUpperCase();\n ntdomain = ntdomain.toUpperCase();\n var hostnamelen = Buffer.byteLength(hostname, 'ascii');\n var ntdomainlen = Buffer.byteLength(ntdomain, 'ascii');\n\n var pos = 0;\n var buf = new Buffer(32 + hostnamelen + ntdomainlen);\n\n buf.write('NTLMSSP', pos, 7, 'ascii'); // byte protocol[8];\n pos += 7;\n buf.writeUInt8(0, pos);\n pos++;\n\n buf.writeUInt8(0x01, pos); // byte type;\n pos++;\n\n buf.fill(0x00, pos, pos + 3); // byte zero[3];\n pos += 3;\n\n buf.writeUInt16LE(0xb203, pos); // short flags;\n pos += 2;\n\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(ntdomainlen, pos); // short dom_len;\n pos += 2;\n buf.writeUInt16LE(ntdomainlen, pos); // short dom_len;\n pos += 2;\n\n var ntdomainoff = 0x20 + hostnamelen;\n buf.writeUInt16LE(ntdomainoff, pos); // short dom_off;\n pos += 2;\n\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(hostnamelen, pos); // short host_len;\n pos += 2;\n buf.writeUInt16LE(hostnamelen, pos); // short host_len;\n pos += 2;\n\n buf.writeUInt16LE(0x20, pos); // short host_off;\n pos += 2;\n\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.write(hostname, 0x20, hostnamelen, 'ascii');\n buf.write(ntdomain, ntdomainoff, ntdomainlen, 'ascii');\n\n return buf;\n}\n\n\n/*\n * \n */\nfunction decodeType2(buf)\n{\n var proto = buf.toString('ascii', 0, 7);\n if (buf[7] !== 0x00 || proto !== 'NTLMSSP')\n throw new Error('magic was not NTLMSSP');\n\n var type = buf.readUInt8(8);\n if (type !== 0x02)\n throw new Error('message was not NTLMSSP type 0x02');\n\n //var msg_len = buf.readUInt16LE(16);\n\n //var flags = buf.readUInt16LE(20);\n\n var nonce = buf.slice(24, 32);\n return nonce;\n}\n\nfunction encodeType3(username, hostname, ntdomain, nonce, password) {\n hostname = hostname.toUpperCase();\n ntdomain = ntdomain.toUpperCase();\n\n var lmh = new Buffer(21);\n lmhashbuf(password).copy(lmh);\n lmh.fill(0x00, 16); // null pad to 21 bytes\n var nth = new Buffer(21);\n nthashbuf(password).copy(nth);\n nth.fill(0x00, 16); // null pad to 21 bytes\n\n var lmr = makeResponse(lmh, nonce);\n var ntr = makeResponse(nth, nonce);\n\n var usernamelen = Buffer.byteLength(username, 'ucs2');\n var hostnamelen = Buffer.byteLength(hostname, 'ucs2');\n var ntdomainlen = Buffer.byteLength(ntdomain, 'ucs2');\n var lmrlen = 0x18;\n var ntrlen = 0x18;\n\n var ntdomainoff = 0x40;\n var usernameoff = ntdomainoff + ntdomainlen;\n var hostnameoff = usernameoff + usernamelen;\n var lmroff = hostnameoff + hostnamelen;\n var ntroff = lmroff + lmrlen;\n\n var pos = 0;\n var msg_len = 64 + ntdomainlen + usernamelen + hostnamelen + lmrlen + ntrlen;\n var buf = new Buffer(msg_len);\n\n buf.write('NTLMSSP', pos, 7, 'ascii'); // byte protocol[8];\n pos += 7;\n buf.writeUInt8(0, pos);\n pos++;\n\n buf.writeUInt8(0x03, pos); // byte type;\n pos++;\n\n buf.fill(0x00, pos, pos + 3); // byte zero[3];\n pos += 3;\n\n buf.writeUInt16LE(lmrlen, pos); // short lm_resp_len;\n pos += 2;\n buf.writeUInt16LE(lmrlen, pos); // short lm_resp_len;\n pos += 2;\n buf.writeUInt16LE(lmroff, pos); // short lm_resp_off;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(ntrlen, pos); // short nt_resp_len;\n pos += 2;\n buf.writeUInt16LE(ntrlen, pos); // short nt_resp_len;\n pos += 2;\n buf.writeUInt16LE(ntroff, pos); // short nt_resp_off;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(ntdomainlen, pos); // short dom_len;\n pos += 2;\n buf.writeUInt16LE(ntdomainlen, pos); // short dom_len;\n pos += 2;\n buf.writeUInt16LE(ntdomainoff, pos); // short dom_off;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(usernamelen, pos); // short user_len;\n pos += 2;\n buf.writeUInt16LE(usernamelen, pos); // short user_len;\n pos += 2;\n buf.writeUInt16LE(usernameoff, pos); // short user_off;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(hostnamelen, pos); // short host_len;\n pos += 2;\n buf.writeUInt16LE(hostnamelen, pos); // short host_len;\n pos += 2;\n buf.writeUInt16LE(hostnameoff, pos); // short host_off;\n pos += 2;\n buf.fill(0x00, pos, pos + 6); // byte zero[6];\n pos += 6;\n\n buf.writeUInt16LE(msg_len, pos); // short msg_len;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.writeUInt16LE(0x8201, pos); // short flags;\n pos += 2;\n buf.fill(0x00, pos, pos + 2); // byte zero[2];\n pos += 2;\n\n buf.write(ntdomain, ntdomainoff, ntdomainlen, 'ucs2');\n buf.write(username, usernameoff, usernamelen, 'ucs2');\n buf.write(hostname, hostnameoff, hostnamelen, 'ucs2');\n lmr.copy(buf, lmroff, 0, lmrlen);\n ntr.copy(buf, ntroff, 0, ntrlen);\n\n return buf;\n}\n\nfunction makeResponse(hash, nonce)\n{\n var out = new Buffer(24);\n for (var i = 0; i < 3; i++) {\n var keybuf = $.oddpar($.expandkey(hash.slice(i * 7, i * 7 + 7)));\n var des = crypto.createCipheriv('DES-ECB', keybuf, '');\n var str = des.update(nonce.toString('binary'), 'binary', 'binary');\n out.write(str, i * 8, i * 8 + 8, 'binary');\n }\n return out;\n}\n\nexports.encodeType1 = encodeType1;\nexports.decodeType2 = decodeType2;\nexports.encodeType3 = encodeType3;\n\n// Convenience methods.\n\nexports.challengeHeader = function (hostname, domain) {\n return 'NTLM ' + exports.encodeType1(hostname, domain).toString('base64');\n};\n\nexports.responseHeader = function (res, url, domain, username, password) {\n var serverNonce = new Buffer((res.headers['www-authenticate'].match(/^NTLM\\s+(.+?)(,|\\s+|$)/) || [])[1], 'base64');\n var hostname = require('url').parse(url).hostname;\n return 'NTLM ' + exports.encodeType3(username, hostname, domain, exports.decodeType2(serverNonce), password).toString('base64')\n};\n\n// Import smbhash module.\n\nexports.smbhash = require('./smbhash');\n","var crypto = require('crypto');\nvar $ = require('./common');\n\n/*\n * Generate the LM Hash\n */\nfunction lmhashbuf(inputstr)\n{\n /* ASCII --> uppercase */\n var x = inputstr.substring(0, 14).toUpperCase();\n var xl = Buffer.byteLength(x, 'ascii');\n\n /* null pad to 14 bytes */\n var y = new Buffer(14);\n y.write(x, 0, xl, 'ascii');\n y.fill(0, xl);\n\n /* insert odd parity bits in key */\n var halves = [\n $.oddpar($.expandkey(y.slice(0, 7))),\n $.oddpar($.expandkey(y.slice(7, 14)))\n ];\n\n /* DES encrypt magic number \"KGS!@#$%\" to two\n * 8-byte ciphertexts, (ECB, no padding)\n */\n var buf = new Buffer(16);\n var pos = 0;\n var cts = halves.forEach(function(z) {\n var des = crypto.createCipheriv('DES-ECB', z, '');\n var str = des.update('KGS!@#$%', 'binary', 'binary');\n buf.write(str, pos, pos + 8, 'binary');\n pos += 8;\n });\n\n /* concat the two ciphertexts to form 16byte value,\n * the LM hash */\n return buf;\n}\n\nfunction nthashbuf(str)\n{\n /* take MD4 hash of UCS-2 encoded password */\n var ucs2 = new Buffer(str, 'ucs2');\n var md4 = crypto.createHash('md4');\n md4.update(ucs2);\n return new Buffer(md4.digest('binary'), 'binary');\n}\n\nfunction lmhash(is)\n{\n return $.bintohex(lmhashbuf(is));\n}\n\nfunction nthash(is)\n{\n return $.bintohex(nthashbuf(is));\n}\n\nmodule.exports.nthashbuf = nthashbuf;\nmodule.exports.lmhashbuf = lmhashbuf;\n\nmodule.exports.nthash = nthash;\nmodule.exports.lmhash = lmhash;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUserAgent() {\n if (typeof navigator === \"object\" && \"userAgent\" in navigator) {\n return navigator.userAgent;\n }\n\n if (typeof process === \"object\" && \"version\" in process) {\n return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`;\n }\n\n return \"\";\n}\n\nexports.getUserAgent = getUserAgent;\n//# sourceMappingURL=index.js.map\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n if (fn && cb) return wrappy(fn)(cb)\n\n if (typeof fn !== 'function')\n throw new TypeError('need wrapper function')\n\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k]\n })\n\n return wrapper\n\n function wrapper() {\n var args = new Array(arguments.length)\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n var ret = fn.apply(this, args)\n var cb = args[args.length-1]\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k]\n })\n }\n return ret\n }\n}\n",null,"// Underscore.js 1.13.1\n// https://underscorejs.org\n// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// Current version.\nvar VERSION = '1.13.1';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nvar root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nvar ArrayProto = Array.prototype, ObjProto = Object.prototype;\nvar SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nvar push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nvar supportsArrayBuffer = typeof ArrayBuffer !== 'undefined',\n supportsDataView = typeof DataView !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nvar nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nvar _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nvar hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nvar MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n\n// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nfunction restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n\n// Is a given variable an object?\nfunction isObject(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n}\n\n// Is a given value equal to null?\nfunction isNull(obj) {\n return obj === null;\n}\n\n// Is a given variable undefined?\nfunction isUndefined(obj) {\n return obj === void 0;\n}\n\n// Is a given value a boolean?\nfunction isBoolean(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n\n// Is a given value a DOM element?\nfunction isElement(obj) {\n return !!(obj && obj.nodeType === 1);\n}\n\n// Internal function for creating a `toString`-based type tester.\nfunction tagTester(name) {\n var tag = '[object ' + name + ']';\n return function(obj) {\n return toString.call(obj) === tag;\n };\n}\n\nvar isString = tagTester('String');\n\nvar isNumber = tagTester('Number');\n\nvar isDate = tagTester('Date');\n\nvar isRegExp = tagTester('RegExp');\n\nvar isError = tagTester('Error');\n\nvar isSymbol = tagTester('Symbol');\n\nvar isArrayBuffer = tagTester('ArrayBuffer');\n\nvar isFunction = tagTester('Function');\n\n// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old\n// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\nvar isFunction$1 = isFunction;\n\nvar hasObjectTag = tagTester('Object');\n\n// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`.\n// In IE 11, the most common among them, this problem also applies to\n// `Map`, `WeakMap` and `Set`.\nvar hasStringTagBug = (\n supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8)))\n ),\n isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map));\n\nvar isDataView = tagTester('DataView');\n\n// In IE 10 - Edge 13, we need a different heuristic\n// to determine whether an object is a `DataView`.\nfunction ie10IsDataView(obj) {\n return obj != null && isFunction$1(obj.getInt8) && isArrayBuffer(obj.buffer);\n}\n\nvar isDataView$1 = (hasStringTagBug ? ie10IsDataView : isDataView);\n\n// Is a given value an array?\n// Delegates to ECMA5's native `Array.isArray`.\nvar isArray = nativeIsArray || tagTester('Array');\n\n// Internal function to check whether `key` is an own property name of `obj`.\nfunction has$1(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n}\n\nvar isArguments = tagTester('Arguments');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return has$1(obj, 'callee');\n };\n }\n}());\n\nvar isArguments$1 = isArguments;\n\n// Is a given object a finite number?\nfunction isFinite$1(obj) {\n return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj));\n}\n\n// Is the given value `NaN`?\nfunction isNaN$1(obj) {\n return isNumber(obj) && _isNaN(obj);\n}\n\n// Predicate-generating function. Often useful outside of Underscore.\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n// Common internal logic for `isArrayLike` and `isBufferLike`.\nfunction createSizePropertyCheck(getSizeProperty) {\n return function(collection) {\n var sizeProperty = getSizeProperty(collection);\n return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX;\n }\n}\n\n// Internal helper to generate a function to obtain property `key` from `obj`.\nfunction shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n\n// Internal helper to obtain the `byteLength` property of an object.\nvar getByteLength = shallowProperty('byteLength');\n\n// Internal helper to determine whether we should spend extensive checks against\n// `ArrayBuffer` et al.\nvar isBufferLike = createSizePropertyCheck(getByteLength);\n\n// Is a given value a typed array?\nvar typedArrayPattern = /\\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\\]/;\nfunction isTypedArray(obj) {\n // `ArrayBuffer.isView` is the most future-proof, so use it when available.\n // Otherwise, fall back on the above regular expression.\n return nativeIsView ? (nativeIsView(obj) && !isDataView$1(obj)) :\n isBufferLike(obj) && typedArrayPattern.test(toString.call(obj));\n}\n\nvar isTypedArray$1 = supportsArrayBuffer ? isTypedArray : constant(false);\n\n// Internal helper to obtain the `length` property of an object.\nvar getLength = shallowProperty('length');\n\n// Internal helper to create a simple lookup structure.\n// `collectNonEnumProps` used to depend on `_.contains`, but this led to\n// circular imports. `emulatedSet` is a one-off solution that only works for\n// arrays of strings.\nfunction emulatedSet(keys) {\n var hash = {};\n for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true;\n return {\n contains: function(key) { return hash[key]; },\n push: function(key) {\n hash[key] = true;\n return keys.push(key);\n }\n };\n}\n\n// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't\n// be iterated by `for key in ...` and thus missed. Extends `keys` in place if\n// needed.\nfunction collectNonEnumProps(obj, keys) {\n keys = emulatedSet(keys);\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = isFunction$1(constructor) && constructor.prototype || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has$1(obj, prop) && !keys.contains(prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) {\n keys.push(prop);\n }\n }\n}\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nfunction keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has$1(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nfunction isEmpty(obj) {\n if (obj == null) return true;\n // Skip the more expensive `toString`-based type checks if `obj` has no\n // `.length`.\n var length = getLength(obj);\n if (typeof length == 'number' && (\n isArray(obj) || isString(obj) || isArguments$1(obj)\n )) return length === 0;\n return getLength(keys(obj)) === 0;\n}\n\n// Returns whether an object has a given set of `key:value` pairs.\nfunction isMatch(object, attrs) {\n var _keys = keys(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n\n// If Underscore is called as a function, it returns a wrapped object that can\n// be used OO-style. This wrapper holds altered versions of all functions added\n// through `_.mixin`. Wrapped objects may be chained.\nfunction _$1(obj) {\n if (obj instanceof _$1) return obj;\n if (!(this instanceof _$1)) return new _$1(obj);\n this._wrapped = obj;\n}\n\n_$1.VERSION = VERSION;\n\n// Extracts the result from a wrapped and chained object.\n_$1.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxies for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_$1.prototype.valueOf = _$1.prototype.toJSON = _$1.prototype.value;\n\n_$1.prototype.toString = function() {\n return String(this._wrapped);\n};\n\n// Internal function to wrap or shallow-copy an ArrayBuffer,\n// typed array or DataView to a new view, reusing the buffer.\nfunction toBufferView(bufferSource) {\n return new Uint8Array(\n bufferSource.buffer || bufferSource,\n bufferSource.byteOffset || 0,\n getByteLength(bufferSource)\n );\n}\n\n// We use this string twice, so give it a name for minification.\nvar tagDataView = '[object DataView]';\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction eq(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n}\n\n// Internal recursive comparison function for `_.isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _$1) a = a._wrapped;\n if (b instanceof _$1) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n // Work around a bug in IE 10 - Edge 13.\n if (hasStringTagBug && className == '[object Object]' && isDataView$1(a)) {\n if (!isDataView$1(b)) return false;\n className = tagDataView;\n }\n switch (className) {\n // These types are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n case '[object ArrayBuffer]':\n case tagDataView:\n // Coerce to typed array so we can fall through.\n return deepEq(toBufferView(a), toBufferView(b), aStack, bStack);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays && isTypedArray$1(a)) {\n var byteLength = getByteLength(a);\n if (byteLength !== getByteLength(b)) return false;\n if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true;\n areArrays = true;\n }\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction$1(aCtor) && aCtor instanceof aCtor &&\n isFunction$1(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var _keys = keys(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!(has$1(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\n\n// Perform a deep comparison to check if two objects are equal.\nfunction isEqual(a, b) {\n return eq(a, b);\n}\n\n// Retrieve all the enumerable property names of an object.\nfunction allKeys(obj) {\n if (!isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n}\n\n// Since the regular `Object.prototype.toString` type tests don't work for\n// some types in IE 11, we use a fingerprinting heuristic instead, based\n// on the methods. It's not great, but it's the best we got.\n// The fingerprint method lists are defined below.\nfunction ie11fingerprint(methods) {\n var length = getLength(methods);\n return function(obj) {\n if (obj == null) return false;\n // `Map`, `WeakMap` and `Set` have no enumerable keys.\n var keys = allKeys(obj);\n if (getLength(keys)) return false;\n for (var i = 0; i < length; i++) {\n if (!isFunction$1(obj[methods[i]])) return false;\n }\n // If we are testing against `WeakMap`, we need to ensure that\n // `obj` doesn't have a `forEach` method in order to distinguish\n // it from a regular `Map`.\n return methods !== weakMapMethods || !isFunction$1(obj[forEachName]);\n };\n}\n\n// In the interest of compact minification, we write\n// each string in the fingerprints only once.\nvar forEachName = 'forEach',\n hasName = 'has',\n commonInit = ['clear', 'delete'],\n mapTail = ['get', hasName, 'set'];\n\n// `Map`, `WeakMap` and `Set` each have slightly different\n// combinations of the above sublists.\nvar mapMethods = commonInit.concat(forEachName, mapTail),\n weakMapMethods = commonInit.concat(mapTail),\n setMethods = ['add'].concat(commonInit, forEachName, hasName);\n\nvar isMap = isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map');\n\nvar isWeakMap = isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap');\n\nvar isSet = isIE11 ? ie11fingerprint(setMethods) : tagTester('Set');\n\nvar isWeakSet = tagTester('WeakSet');\n\n// Retrieve the values of an object's properties.\nfunction values(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of `_.object` with one argument.\nfunction pairs(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [_keys[i], obj[_keys[i]]];\n }\n return pairs;\n}\n\n// Invert the keys and values of an object. The values must be serializable.\nfunction invert(obj) {\n var result = {};\n var _keys = keys(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n\n// Return a sorted list of the function names available on the object.\nfunction functions(obj) {\n var names = [];\n for (var key in obj) {\n if (isFunction$1(obj[key])) names.push(key);\n }\n return names.sort();\n}\n\n// An internal function for creating assigner functions.\nfunction createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n\n// Extend a given object with all the properties in passed-in object(s).\nvar extend = createAssigner(allKeys);\n\n// Assigns a given object with all the own properties in the passed-in\n// object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nvar extendOwn = createAssigner(keys);\n\n// Fill in a given object with default properties.\nvar defaults = createAssigner(allKeys, true);\n\n// Create a naked function reference for surrogate-prototype-swapping.\nfunction ctor() {\n return function(){};\n}\n\n// An internal function for creating a new object that inherits from another.\nfunction baseCreate(prototype) {\n if (!isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n var Ctor = ctor();\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nfunction create(prototype, props) {\n var result = baseCreate(prototype);\n if (props) extendOwn(result, props);\n return result;\n}\n\n// Create a (shallow-cloned) duplicate of an object.\nfunction clone(obj) {\n if (!isObject(obj)) return obj;\n return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n\n// Invokes `interceptor` with the `obj` and then returns `obj`.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nfunction tap(obj, interceptor) {\n interceptor(obj);\n return obj;\n}\n\n// Normalize a (deep) property `path` to array.\n// Like `_.iteratee`, this function can be customized.\nfunction toPath$1(path) {\n return isArray(path) ? path : [path];\n}\n_$1.toPath = toPath$1;\n\n// Internal wrapper for `_.toPath` to enable minification.\n// Similar to `cb` for `_.iteratee`.\nfunction toPath(path) {\n return _$1.toPath(path);\n}\n\n// Internal function to obtain a nested property in `obj` along `path`.\nfunction deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n\n// Get the value of the (deep) property on `path` from `object`.\n// If any property in `path` does not exist or if the value is\n// `undefined`, return `defaultValue` instead.\n// The `path` is normalized through `_.toPath`.\nfunction get(object, path, defaultValue) {\n var value = deepGet(object, toPath(path));\n return isUndefined(value) ? defaultValue : value;\n}\n\n// Shortcut function for checking if an object has a given property directly on\n// itself (in other words, not on a prototype). Unlike the internal `has`\n// function, this public version can also traverse nested properties.\nfunction has(obj, path) {\n path = toPath(path);\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (!has$1(obj, key)) return false;\n obj = obj[key];\n }\n return !!length;\n}\n\n// Keep the identity function around for default iteratees.\nfunction identity(value) {\n return value;\n}\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nfunction matcher(attrs) {\n attrs = extendOwn({}, attrs);\n return function(obj) {\n return isMatch(obj, attrs);\n };\n}\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indices.\nfunction property(path) {\n path = toPath(path);\n return function(obj) {\n return deepGet(obj, path);\n };\n}\n\n// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nfunction optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `_.identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nfunction baseIteratee(value, context, argCount) {\n if (value == null) return identity;\n if (isFunction$1(value)) return optimizeCb(value, context, argCount);\n if (isObject(value) && !isArray(value)) return matcher(value);\n return property(value);\n}\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only `argCount` argument.\nfunction iteratee(value, context) {\n return baseIteratee(value, context, Infinity);\n}\n_$1.iteratee = iteratee;\n\n// The function we call internally to generate a callback. It invokes\n// `_.iteratee` if overridden, otherwise `baseIteratee`.\nfunction cb(value, context, argCount) {\n if (_$1.iteratee !== iteratee) return _$1.iteratee(value, context);\n return baseIteratee(value, context, argCount);\n}\n\n// Returns the results of applying the `iteratee` to each element of `obj`.\n// In contrast to `_.map` it returns an object.\nfunction mapObject(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = keys(obj),\n length = _keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = _keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n// Predicate-generating function. Often useful outside of Underscore.\nfunction noop(){}\n\n// Generates a function for a given object that returns a given property.\nfunction propertyOf(obj) {\n if (obj == null) return noop;\n return function(path) {\n return get(obj, path);\n };\n}\n\n// Run a function **n** times.\nfunction times(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n}\n\n// Return a random integer between `min` and `max` (inclusive).\nfunction random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n\n// A (possibly faster) way to get the current timestamp as an integer.\nvar now = Date.now || function() {\n return new Date().getTime();\n};\n\n// Internal helper to generate functions for escaping and unescaping strings\n// to/from HTML interpolation.\nfunction createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\n\n// Internal list of HTML entities for escaping.\nvar escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\n\n// Function for escaping strings to HTML interpolation.\nvar _escape = createEscaper(escapeMap);\n\n// Internal list of HTML entities for unescaping.\nvar unescapeMap = invert(escapeMap);\n\n// Function for unescaping strings from HTML interpolation.\nvar _unescape = createEscaper(unescapeMap);\n\n// By default, Underscore uses ERB-style template delimiters. Change the\n// following template settings to use alternative delimiters.\nvar templateSettings = _$1.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n};\n\n// When customizing `_.templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nfunction escapeChar(match) {\n return '\\\\' + escapes[match];\n}\n\n// In order to prevent third-party code injection through\n// `_.templateSettings.variable`, we test it against the following regular\n// expression. It is intentionally a bit more liberal than just matching valid\n// identifiers, but still prevents possible loopholes through defaults or\n// destructuring assignment.\nvar bareIdentifier = /^\\s*(\\w|\\$)+\\s*$/;\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nfunction template(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = defaults({}, settings, _$1.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n var argument = settings.variable;\n if (argument) {\n // Insure against third-party code injection. (CVE-2021-23358)\n if (!bareIdentifier.test(argument)) throw new Error(\n 'variable is not a bare identifier: ' + argument\n );\n } else {\n // If a variable is not specified, place data values in local scope.\n source = 'with(obj||{}){\\n' + source + '}\\n';\n argument = 'obj';\n }\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(argument, '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _$1);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n}\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nfunction result(obj, path, fallback) {\n path = toPath(path);\n var length = path.length;\n if (!length) {\n return isFunction$1(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = isFunction$1(prop) ? prop.call(obj) : prop;\n }\n return obj;\n}\n\n// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nfunction uniqueId(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n\n// Start chaining a wrapped Underscore object.\nfunction chain(obj) {\n var instance = _$1(obj);\n instance._chain = true;\n return instance;\n}\n\n// Internal function to execute `sourceFunc` bound to `context` with optional\n// `args`. Determines whether to execute a function as a constructor or as a\n// normal function.\nfunction executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (isObject(result)) return result;\n return self;\n}\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. `_` acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\nvar partial = restArguments(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _$1;\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally).\nvar bind = restArguments(function(func, context, args) {\n if (!isFunction$1(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n});\n\n// Internal helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nvar isArrayLike = createSizePropertyCheck(getLength);\n\n// Internal implementation of a recursive `flatten` function.\nfunction flatten$1(input, depth, strict, output) {\n output = output || [];\n if (!depth && depth !== 0) {\n depth = Infinity;\n } else if (depth <= 0) {\n return output.concat(input);\n }\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (isArray(value) || isArguments$1(value))) {\n // Flatten current level of array or arguments object.\n if (depth > 1) {\n flatten$1(value, depth - 1, strict, output);\n idx = output.length;\n } else {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nvar bindAll = restArguments(function(obj, keys) {\n keys = flatten$1(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = bind(obj[key], obj);\n }\n return obj;\n});\n\n// Memoize an expensive function by storing its results.\nfunction memoize(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has$1(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n}\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nvar delay = restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n});\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nvar defer = partial(delay, _$1, 1);\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nfunction throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var _now = now();\n if (!previous && options.leading === false) previous = _now;\n var remaining = wait - (_now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = _now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n\n// When a sequence of calls of the returned function ends, the argument\n// function is triggered. The end of a sequence is defined by the `wait`\n// parameter. If `immediate` is passed, the argument function will be\n// triggered at the beginning of the sequence instead of at the end.\nfunction debounce(func, wait, immediate) {\n var timeout, previous, args, result, context;\n\n var later = function() {\n var passed = now() - previous;\n if (wait > passed) {\n timeout = setTimeout(later, wait - passed);\n } else {\n timeout = null;\n if (!immediate) result = func.apply(context, args);\n // This check is needed because `func` can recursively invoke `debounced`.\n if (!timeout) args = context = null;\n }\n };\n\n var debounced = restArguments(function(_args) {\n context = this;\n args = _args;\n previous = now();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n if (immediate) result = func.apply(context, args);\n }\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = args = context = null;\n };\n\n return debounced;\n}\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nfunction wrap(func, wrapper) {\n return partial(wrapper, func);\n}\n\n// Returns a negated version of the passed-in predicate.\nfunction negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n\n// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nfunction compose() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n// Returns a function that will only be executed on and after the Nth call.\nfunction after(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n\n// Returns a function that will only be executed up to (but not including) the\n// Nth call.\nfunction before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nvar once = partial(before, 2);\n\n// Returns the first key on an object that passes a truth test.\nfunction findKey(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = keys(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n\n// Internal function to generate `_.findIndex` and `_.findLastIndex`.\nfunction createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n\n// Returns the first index on an array-like that passes a truth test.\nvar findIndex = createPredicateIndexFinder(1);\n\n// Returns the last index on an array-like that passes a truth test.\nvar findLastIndex = createPredicateIndexFinder(-1);\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nfunction sortedIndex(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n\n// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.\nfunction createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), isNaN$1);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nvar indexOf = createIndexFinder(1, findIndex, sortedIndex);\n\n// Return the position of the last occurrence of an item in an array,\n// or -1 if the item is not included in the array.\nvar lastIndexOf = createIndexFinder(-1, findLastIndex);\n\n// Return the first value which passes a truth test.\nfunction find(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\n\n// Convenience version of a common use case of `_.find`: getting the first\n// object containing specific `key:value` pairs.\nfunction findWhere(obj, attrs) {\n return find(obj, matcher(attrs));\n}\n\n// The cornerstone for collection functions, an `each`\n// implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nfunction each(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = keys(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\n\n// Return the results of applying the iteratee to each element.\nfunction map(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n// Internal helper to create a reducing function, iterating left or right.\nfunction createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n}\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nvar reduce = createReduce(1);\n\n// The right-associative version of reduce, also known as `foldr`.\nvar reduceRight = createReduce(-1);\n\n// Return all the elements that pass a truth test.\nfunction filter(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\n\n// Return all the elements for which a truth test fails.\nfunction reject(obj, predicate, context) {\n return filter(obj, negate(cb(predicate)), context);\n}\n\n// Determine whether all of the elements pass a truth test.\nfunction every(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n}\n\n// Determine if at least one element in the object passes a truth test.\nfunction some(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n}\n\n// Determine if the array or object contains a given item (using `===`).\nfunction contains(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return indexOf(obj, item, fromIndex) >= 0;\n}\n\n// Invoke a method (with arguments) on every item in a collection.\nvar invoke = restArguments(function(obj, path, args) {\n var contextPath, func;\n if (isFunction$1(path)) {\n func = path;\n } else {\n path = toPath(path);\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n});\n\n// Convenience version of a common use case of `_.map`: fetching a property.\nfunction pluck(obj, key) {\n return map(obj, property(key));\n}\n\n// Convenience version of a common use case of `_.filter`: selecting only\n// objects containing specific `key:value` pairs.\nfunction where(obj, attrs) {\n return filter(obj, matcher(attrs));\n}\n\n// Return the maximum element (or element-based computation).\nfunction max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n// Return the minimum element (or element-based computation).\nfunction min(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `_.map`.\nfunction sample(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n return obj[random(obj.length - 1)];\n }\n var sample = isArrayLike(obj) ? clone(obj) : values(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n\n// Shuffle a collection.\nfunction shuffle(obj) {\n return sample(obj, Infinity);\n}\n\n// Sort the object's values by a criterion produced by an iteratee.\nfunction sortBy(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return pluck(map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n}\n\n// An internal function used for aggregate \"group by\" operations.\nfunction group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nvar groupBy = group(function(result, value, key) {\n if (has$1(result, key)) result[key].push(value); else result[key] = [value];\n});\n\n// Indexes the object's values by a criterion, similar to `_.groupBy`, but for\n// when you know that your index values will be unique.\nvar indexBy = group(function(result, value, key) {\n result[key] = value;\n});\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nvar countBy = group(function(result, value, key) {\n if (has$1(result, key)) result[key]++; else result[key] = 1;\n});\n\n// Split a collection into two arrays: one whose elements all pass the given\n// truth test, and one whose elements all do not pass the truth test.\nvar partition = group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n}, true);\n\n// Safely create a real, live array from anything iterable.\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\nfunction toArray(obj) {\n if (!obj) return [];\n if (isArray(obj)) return slice.call(obj);\n if (isString(obj)) {\n // Keep surrogate pair characters together.\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return map(obj, identity);\n return values(obj);\n}\n\n// Return the number of elements in a collection.\nfunction size(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n\n// Internal `_.pick` helper function to determine whether `key` is an enumerable\n// property name of `obj`.\nfunction keyInObj(value, key, obj) {\n return key in obj;\n}\n\n// Return a copy of the object only containing the allowed properties.\nvar pick = restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (isFunction$1(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten$1(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n});\n\n// Return a copy of the object without the disallowed properties.\nvar omit = restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (isFunction$1(iteratee)) {\n iteratee = negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = map(flatten$1(keys, false, false), String);\n iteratee = function(value, key) {\n return !contains(keys, key);\n };\n }\n return pick(obj, iteratee, context);\n});\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nfunction initial(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `_.map`.\nfunction first(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[0];\n return initial(array, array.length - n);\n}\n\n// Returns everything but the first entry of the `array`. Especially useful on\n// the `arguments` object. Passing an **n** will return the rest N values in the\n// `array`.\nfunction rest(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n}\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nfunction last(array, n, guard) {\n if (array == null || array.length < 1) return n == null || guard ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return rest(array, Math.max(0, array.length - n));\n}\n\n// Trim out all falsy values from an array.\nfunction compact(array) {\n return filter(array, Boolean);\n}\n\n// Flatten out an array, either recursively (by default), or up to `depth`.\n// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively.\nfunction flatten(array, depth) {\n return flatten$1(array, depth, false);\n}\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nvar difference = restArguments(function(array, rest) {\n rest = flatten$1(rest, true, true);\n return filter(array, function(value){\n return !contains(rest, value);\n });\n});\n\n// Return a version of the array that does not contain the specified value(s).\nvar without = restArguments(function(array, otherArrays) {\n return difference(array, otherArrays);\n});\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nfunction uniq(array, isSorted, iteratee, context) {\n if (!isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nvar union = restArguments(function(arrays) {\n return uniq(flatten$1(arrays, true, true));\n});\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nfunction intersection(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n}\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nfunction unzip(array) {\n var length = array && max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = pluck(array, index);\n }\n return result;\n}\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nvar zip = restArguments(unzip);\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of `_.pairs`.\nfunction object(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n}\n\n// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nfunction range(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n}\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nfunction chunk(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n}\n\n// Helper function to continue chaining intermediate results.\nfunction chainResult(instance, obj) {\n return instance._chain ? _$1(obj).chain() : obj;\n}\n\n// Add your own custom functions to the Underscore object.\nfunction mixin(obj) {\n each(functions(obj), function(name) {\n var func = _$1[name] = obj[name];\n _$1.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_$1, args));\n };\n });\n return _$1;\n}\n\n// Add all mutator `Array` functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _$1.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) {\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) {\n delete obj[0];\n }\n }\n return chainResult(this, obj);\n };\n});\n\n// Add all accessor `Array` functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _$1.prototype[name] = function() {\n var obj = this._wrapped;\n if (obj != null) obj = method.apply(obj, arguments);\n return chainResult(this, obj);\n };\n});\n\n// Named Exports\n\nvar allExports = {\n __proto__: null,\n VERSION: VERSION,\n restArguments: restArguments,\n isObject: isObject,\n isNull: isNull,\n isUndefined: isUndefined,\n isBoolean: isBoolean,\n isElement: isElement,\n isString: isString,\n isNumber: isNumber,\n isDate: isDate,\n isRegExp: isRegExp,\n isError: isError,\n isSymbol: isSymbol,\n isArrayBuffer: isArrayBuffer,\n isDataView: isDataView$1,\n isArray: isArray,\n isFunction: isFunction$1,\n isArguments: isArguments$1,\n isFinite: isFinite$1,\n isNaN: isNaN$1,\n isTypedArray: isTypedArray$1,\n isEmpty: isEmpty,\n isMatch: isMatch,\n isEqual: isEqual,\n isMap: isMap,\n isWeakMap: isWeakMap,\n isSet: isSet,\n isWeakSet: isWeakSet,\n keys: keys,\n allKeys: allKeys,\n values: values,\n pairs: pairs,\n invert: invert,\n functions: functions,\n methods: functions,\n extend: extend,\n extendOwn: extendOwn,\n assign: extendOwn,\n defaults: defaults,\n create: create,\n clone: clone,\n tap: tap,\n get: get,\n has: has,\n mapObject: mapObject,\n identity: identity,\n constant: constant,\n noop: noop,\n toPath: toPath$1,\n property: property,\n propertyOf: propertyOf,\n matcher: matcher,\n matches: matcher,\n times: times,\n random: random,\n now: now,\n escape: _escape,\n unescape: _unescape,\n templateSettings: templateSettings,\n template: template,\n result: result,\n uniqueId: uniqueId,\n chain: chain,\n iteratee: iteratee,\n partial: partial,\n bind: bind,\n bindAll: bindAll,\n memoize: memoize,\n delay: delay,\n defer: defer,\n throttle: throttle,\n debounce: debounce,\n wrap: wrap,\n negate: negate,\n compose: compose,\n after: after,\n before: before,\n once: once,\n findKey: findKey,\n findIndex: findIndex,\n findLastIndex: findLastIndex,\n sortedIndex: sortedIndex,\n indexOf: indexOf,\n lastIndexOf: lastIndexOf,\n find: find,\n detect: find,\n findWhere: findWhere,\n each: each,\n forEach: each,\n map: map,\n collect: map,\n reduce: reduce,\n foldl: reduce,\n inject: reduce,\n reduceRight: reduceRight,\n foldr: reduceRight,\n filter: filter,\n select: filter,\n reject: reject,\n every: every,\n all: every,\n some: some,\n any: some,\n contains: contains,\n includes: contains,\n include: contains,\n invoke: invoke,\n pluck: pluck,\n where: where,\n max: max,\n min: min,\n shuffle: shuffle,\n sample: sample,\n sortBy: sortBy,\n groupBy: groupBy,\n indexBy: indexBy,\n countBy: countBy,\n partition: partition,\n toArray: toArray,\n size: size,\n pick: pick,\n omit: omit,\n first: first,\n head: first,\n take: first,\n initial: initial,\n last: last,\n rest: rest,\n tail: rest,\n drop: rest,\n compact: compact,\n flatten: flatten,\n without: without,\n uniq: uniq,\n unique: uniq,\n union: union,\n intersection: intersection,\n difference: difference,\n unzip: unzip,\n transpose: unzip,\n zip: zip,\n object: object,\n range: range,\n chunk: chunk,\n mixin: mixin,\n 'default': _$1\n};\n\n// Default Export\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API.\n_._ = _;\n\nexports.VERSION = VERSION;\nexports._ = _;\nexports._escape = _escape;\nexports._unescape = _unescape;\nexports.after = after;\nexports.allKeys = allKeys;\nexports.before = before;\nexports.bind = bind;\nexports.bindAll = bindAll;\nexports.chain = chain;\nexports.chunk = chunk;\nexports.clone = clone;\nexports.compact = compact;\nexports.compose = compose;\nexports.constant = constant;\nexports.contains = contains;\nexports.countBy = countBy;\nexports.create = create;\nexports.debounce = debounce;\nexports.defaults = defaults;\nexports.defer = defer;\nexports.delay = delay;\nexports.difference = difference;\nexports.each = each;\nexports.every = every;\nexports.extend = extend;\nexports.extendOwn = extendOwn;\nexports.filter = filter;\nexports.find = find;\nexports.findIndex = findIndex;\nexports.findKey = findKey;\nexports.findLastIndex = findLastIndex;\nexports.findWhere = findWhere;\nexports.first = first;\nexports.flatten = flatten;\nexports.functions = functions;\nexports.get = get;\nexports.groupBy = groupBy;\nexports.has = has;\nexports.identity = identity;\nexports.indexBy = indexBy;\nexports.indexOf = indexOf;\nexports.initial = initial;\nexports.intersection = intersection;\nexports.invert = invert;\nexports.invoke = invoke;\nexports.isArguments = isArguments$1;\nexports.isArray = isArray;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isBoolean = isBoolean;\nexports.isDataView = isDataView$1;\nexports.isDate = isDate;\nexports.isElement = isElement;\nexports.isEmpty = isEmpty;\nexports.isEqual = isEqual;\nexports.isError = isError;\nexports.isFinite = isFinite$1;\nexports.isFunction = isFunction$1;\nexports.isMap = isMap;\nexports.isMatch = isMatch;\nexports.isNaN = isNaN$1;\nexports.isNull = isNull;\nexports.isNumber = isNumber;\nexports.isObject = isObject;\nexports.isRegExp = isRegExp;\nexports.isSet = isSet;\nexports.isString = isString;\nexports.isSymbol = isSymbol;\nexports.isTypedArray = isTypedArray$1;\nexports.isUndefined = isUndefined;\nexports.isWeakMap = isWeakMap;\nexports.isWeakSet = isWeakSet;\nexports.iteratee = iteratee;\nexports.keys = keys;\nexports.last = last;\nexports.lastIndexOf = lastIndexOf;\nexports.map = map;\nexports.mapObject = mapObject;\nexports.matcher = matcher;\nexports.max = max;\nexports.memoize = memoize;\nexports.min = min;\nexports.mixin = mixin;\nexports.negate = negate;\nexports.noop = noop;\nexports.now = now;\nexports.object = object;\nexports.omit = omit;\nexports.once = once;\nexports.pairs = pairs;\nexports.partial = partial;\nexports.partition = partition;\nexports.pick = pick;\nexports.pluck = pluck;\nexports.property = property;\nexports.propertyOf = propertyOf;\nexports.random = random;\nexports.range = range;\nexports.reduce = reduce;\nexports.reduceRight = reduceRight;\nexports.reject = reject;\nexports.rest = rest;\nexports.restArguments = restArguments;\nexports.result = result;\nexports.sample = sample;\nexports.shuffle = shuffle;\nexports.size = size;\nexports.some = some;\nexports.sortBy = sortBy;\nexports.sortedIndex = sortedIndex;\nexports.tap = tap;\nexports.template = template;\nexports.templateSettings = templateSettings;\nexports.throttle = throttle;\nexports.times = times;\nexports.toArray = toArray;\nexports.toPath = toPath$1;\nexports.union = union;\nexports.uniq = uniq;\nexports.uniqueId = uniqueId;\nexports.unzip = unzip;\nexports.values = values;\nexports.where = where;\nexports.without = without;\nexports.wrap = wrap;\nexports.zip = zip;\n//# sourceMappingURL=underscore-node-f.cjs.map\n","// Underscore.js 1.13.1\n// https://underscorejs.org\n// (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\nvar underscoreNodeF = require('./underscore-node-f.cjs');\n\n\n\nmodule.exports = underscoreNodeF._;\n//# sourceMappingURL=underscore-node.cjs.map\n","module.exports = require(\"assert\");","module.exports = require(\"crypto\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"net\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"stream\");","module.exports = require(\"tls\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\tvar threw = true;\n\ttry {\n\t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\tthrew = false;\n\t} finally {\n\t\tif(threw) delete __webpack_module_cache__[moduleId];\n\t}\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\nif (typeof __webpack_require__ !== 'undefined') __webpack_require__.ab = __dirname + \"/\";","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(3109);\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;AChTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC/KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACtvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC5/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC15BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACjeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACjwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC1OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACt2EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC74IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7mBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AClYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7eA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC3uFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC3LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC9QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACriJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACx9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACv1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC5PA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoJA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7vBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACh5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7xFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrsDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC13CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACl+CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC9MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACjLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACv5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC73EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACv2BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACnnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC9uDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AChvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC3iBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACx0BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC3KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACnDA;AACA;AACA;AACA;AACA;;;A;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzCA;AACA;AACA;AACA;AACA;;;A;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AChnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACjSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC1PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC3HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;ACndA;;;A;;;;;ACAA;;;A;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACpfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC3NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AChCA;;;A;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;AC7mEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;A;;;;;;ACVA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;;;ACAA;;A;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7BA;AACA;;;;ACDA;AACA;AACA;AACA;;;;A","sourceRoot":""} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index cc0399a..28e7f8e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1727,104 +1727,6 @@ } } }, - "@typescript-eslint/scope-manager": { - "version": "4.28.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.3.tgz", - "integrity": "sha512-/8lMisZ5NGIzGtJB+QizQ5eX4Xd8uxedFfMBXOKuJGP0oaBBVEMbJVddQKDXyyB0bPlmt8i6bHV89KbwOelJiQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.28.3", - "@typescript-eslint/visitor-keys": "4.28.3" - } - }, - "@typescript-eslint/types": { - "version": "4.28.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.3.tgz", - "integrity": "sha512-kQFaEsQBQVtA9VGVyciyTbIg7S3WoKHNuOp/UF5RG40900KtGqfoiETWD/v0lzRXc+euVE9NXmfer9dLkUJrkA==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "4.28.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.3.tgz", - "integrity": "sha512-YAb1JED41kJsqCQt1NcnX5ZdTA93vKFCMP4lQYG6CFxd0VzDJcKttRlMrlG+1qiWAw8+zowmHU1H0OzjWJzR2w==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.28.3", - "@typescript-eslint/visitor-keys": "4.28.3", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "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" - } - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "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" - } - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "4.28.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.3.tgz", - "integrity": "sha512-ri1OzcLnk1HH4gORmr1dllxDzzrN6goUIz/P4MHFV0YZJDCADPR3RvYNp0PW2SetKTThar6wlbFTL00hV2Q+fg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "4.28.3", - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, "@vercel/ncc": { "version": "0.29.0", "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.29.0.tgz", diff --git a/package.json b/package.json index af5be77..0eb2377 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "format": "prettier --write **/*.ts", "format-check": "prettier --check **/*.ts", "lint": "eslint src/**/*.ts", + "lint:fix": "eslint src/**/*.ts --fix", "package": "ncc build --source-map --license licenses.txt", "test": "jest", "all": "npm run build && npm run format && npm run lint && npm run package && npm test" diff --git a/src/ActionEvent.ts b/src/actionEvent.ts similarity index 100% rename from src/ActionEvent.ts rename to src/actionEvent.ts diff --git a/src/azureDevOpsClient.ts b/src/azureDevOpsClient.ts index 29e2027..79dc843 100644 --- a/src/azureDevOpsClient.ts +++ b/src/azureDevOpsClient.ts @@ -1,9 +1,9 @@ -import * as core from '@actions/core'; import * as azdev from 'azure-devops-node-api'; -import { IGitApi } from 'azure-devops-node-api/GitApi'; -import { GitRepository, GitRefUpdate, GitRefUpdateResult } from 'azure-devops-node-api/interfaces/GitInterfaces'; +import * as core from '@actions/core'; +import { AppConfig, ConfigService } from './configService'; +import { GitRefUpdate, GitRefUpdateResult, GitRepository } from 'azure-devops-node-api/interfaces/GitInterfaces'; import { CreateBranchOptions } from './azureDevOpsService'; -import { ConfigService, AppConfig } from './configService'; +import { IGitApi } from 'azure-devops-node-api/GitApi'; export class AzureDevOpsClient { private _appConfig: AppConfig = ConfigService.defaultAppConfig; diff --git a/src/azureDevOpsService.ts b/src/azureDevOpsService.ts index f00e0d6..e31684a 100644 --- a/src/azureDevOpsService.ts +++ b/src/azureDevOpsService.ts @@ -1,5 +1,5 @@ import * as core from '@actions/core'; -import { ConfigService, AppConfig } from './configService'; +import { AppConfig, ConfigService } from './configService'; import { AzureDevOpsClient } from './azureDevOpsClient'; export interface CreateBranchOptions { diff --git a/src/chatOpService.ts b/src/chatOpService.ts index f579ac9..516c82b 100644 --- a/src/chatOpService.ts +++ b/src/chatOpService.ts @@ -1,4 +1,4 @@ -import { ChatOpCommand, ChatOpParam, chatOps, chatOpInfo, ParamValueMap } from './ChatOps'; +import { ChatOpCommand, ChatOpParam, ParamValueMap, chatOpInfo, chatOps } from './chatOps'; export class ChatOpService { private constructor() {} diff --git a/src/ChatOps.ts b/src/chatOps.ts similarity index 90% rename from src/ChatOps.ts rename to src/chatOps.ts index f40b0cc..f4b9260 100644 --- a/src/ChatOps.ts +++ b/src/chatOps.ts @@ -6,7 +6,6 @@ export interface ChatOpInfo { export type ChatOpCommand = '/create-branch-ado' | '/cb-ado' | 'None'; export type ChatOpParam = '-username' | '-branch' | 'None'; -// eslint-disable-next-line @typescript-eslint/no-unused-vars export type ParamValueMap = { [_ in ChatOpParam]?: string }; const createBranchChatOpInfo: ChatOpInfo = { diff --git a/src/main.ts b/src/main.ts index 19ae011..e58a61d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,13 +1,14 @@ import * as core from '@actions/core'; import * as github from '@actions/github'; -import { context } from '@actions/github/lib/utils'; +import { ChatOpCommand, ChatOpParam, ParamValueMap } from './chatOps'; +import { ActionEvent } from './actionEvent'; +import { AzureDevOpsService } from './azureDevOpsService'; import { ChatOpService } from './chatOpService'; +import { ConfigService } from './configService'; +// eslint-disable-next-line import/no-unresolved import { IssueCommentEvent } from '@octokit/webhooks-definitions/schema'; -import { ActionEvent } from './ActionEvent'; -import { ChatOpCommand, ChatOpParam, ParamValueMap } from './ChatOps'; -import { AzureDevOpsService } from './azureDevOpsService'; import { Octokit } from '@octokit/rest'; -import { ConfigService } from './configService'; +import { context } from '@actions/github/lib/utils'; async function run(): Promise { try { From ed1f81d6f08a157d733a7c6ef7390b46a008f0c1 Mon Sep 17 00:00:00 2001 From: Philip Gai Date: Mon, 6 Sep 2021 06:00:56 +0000 Subject: [PATCH 17/17] Add branding --- action.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/action.yml b/action.yml index 9bf1b3c..0bf4909 100644 --- a/action.yml +++ b/action.yml @@ -1,6 +1,9 @@ name: "Azure DevOps ChatOps" description: "Integrate GitHub with Azure DevOps via ChatOps" author: "philip-gai" +branding: + icon: 'git-branch' + color: 'blue' inputs: ado_domain: description: "The domain your ADO instance is in"